-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy path03e1eddf444bde1fad8f6d623fef553d.html
More file actions
7 lines (7 loc) · 361 KB
/
03e1eddf444bde1fad8f6d623fef553d.html
File metadata and controls
7 lines (7 loc) · 361 KB
1
2
3
4
5
6
7
<!DOCTYPE html><html lang="en" prefix="og: http://ogp.me/ns# article: http://ogp.me/ns/article#"><head><meta charset="utf-8"><meta property="sailthru.title" content="A famous view in San Francisco is going to change"><meta name="sailthru.date" content="2023-12-22 10:50:53 -0800"><meta name="sailthru.description" content="Workers are replacing the charming rusting chain that lines the road to Fort Point with a dull metal barrier."><meta name="sailthru.author" content="Kent German"><meta name="sailthru_uid" content="18569276"><meta name="sailthru_pubname" content="sfgate"><meta name="sailthru_siteid" content="19"><meta name="sailthru.tags" content="julian-espinoza,marine-drive,fort-point,san-francisco,golden-gate-national-recreation-area,presidio,golden-gate-bridge,lincoln-boulevard,civil-war,instagram,flickr,vertigo,julian-espinoza,marine-drive,fort-point,san-francisco,golden-gate-national-recreation-area,presidio,golden-gate-bridge,lincoln-boulevard,civil-war,instagram,flickr,vertigo"><meta name="sailthru.image.thumb" content="https://s.hdnux.com/photos/01/35/55/34/24565517/3/sailthruImage.jpg"><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><meta name="msvalidate.01" content="9451CA04ABC9D1D5C6419C73B4C4F7B7"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="HandheldFriendly" content="true"><meta name="format-detection" content="telephone=no"><meta name="twitter:dnt" content="on"><meta property="fb:pages" content="105702905593,307851324523,12852567813,480760515417232,288240529145,316774245761,984197758297116,7457442370,207033189701,207346283795,222959748728,207042068180,72983690774,339413234035,343689323559,345828366626,234821559861394,335699426867,10150105039485602,338983127562,364516539001,337922332042,115637335153191,372011535931,333376634908,127590790608884,141923885872653,655037391286291,320774811368833,1740489152861748,469700473093040,386754203367,556449374478585,340999853450,350771491032,1120648627959218,342017778245,338463361591,138772706196968,1641688532739111,326312697536,353120110016,343366744658,335009494554,347261603104,350924013892,257724773860,361203926417,367174215398,284154645394,334501182354,350279743224,154340691263654,147848678611852,361381078011,362831597677,10150095255780118"><meta name="apple-mobile-web-app-title" content="sfgate"><meta name="id" content="article-18569276-wcm"><meta id="internalEid" name="internal:eid" content="article-18569276"><link rel="canonical" href="https://www.sfgate.com/bayarea/article/fort-point-chain-removal-san-francisco-18569276.php"><meta name="date.release" content="2023-12-22 18:50:53"><meta name="time.release" content="2023-12-22 18:50:53"><meta name="subject" content="Julian Espinoza, Marine Drive, Fort Point, San Francisco, Golden Gate National Recreation Area, Presidio, Golden Gate Bridge, Lincoln Boulevard, Civil War, Instagram, Flickr, Vertigo"><meta name="news_keywords" content="Julian Espinoza, Marine Drive, Fort Point, San Francisco, Golden Gate National Recreation Area, Presidio, Golden Gate Bridge, Lincoln Boulevard, Civil War, Instagram, Flickr, Vertigo"><meta name="sections" content="News, Bay Area & State"><meta property="article:published_time" content="2023-12-22 18:50:53"><meta property="article:content_tier" content="article"><meta property="article:modified_time" content="2023-12-22T18:50:53Z"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:image" content="https://s.hdnux.com/photos/01/35/55/34/24565517/3/rawImage.jpg"><meta name="twitter:description" content="Photographers won't love the removal of a barrier chain on the road to Fort Point."><meta name="twitter:title" content="A famous view in San Francisco is going to change"><meta name="twitter:site" content="@SFGate"><meta property="fb:app_id" content="1609422252616351"><meta property="fb:admins" content="100006394927810"><meta name="author" content="Kent German"><meta name="author.name" content="Kent German"><title>A famous view in San Francisco is going to change</title><meta name="description" content="Workers are replacing the charming rusting chain that lines the road to Fort Point with a dull metal barrier."><meta name="keywords" content="Julian Espinoza, Marine Drive, Fort Point, San Francisco, Golden Gate National Recreation Area, Presidio, Golden Gate Bridge, Lincoln Boulevard, Civil War, Instagram, Flickr, Vertigo"><meta name="robots" content="max-image-preview:large, index, follow"><meta name="nlpPerson" content="Julian Espinoza"><meta name="nlpLocation" content="Marine Drive, Fort Point, San Francisco, Golden Gate National Recreation Area, Presidio, Golden Gate Bridge, Lincoln Boulevard"><meta name="nlpEvent" content="Civil War"><meta name="nlpOther" content="Instagram, Flickr, Vertigo"><meta property="article:tag" content="Julian Espinoza"><meta property="article:tag" content="Marine Drive, Fort Point, San Francisco, Golden Gate National Recreation Area, Presidio, Golden Gate Bridge, Lincoln Boulevard"><meta property="article:tag" content="Civil War"><meta property="article:tag" content="Instagram, Flickr, Vertigo"><meta property="og:type" content="article"><meta property="og:image" content="https://s.hdnux.com/photos/01/35/55/34/24565517/3/rawImage.jpg"><meta property="og:url" content="https://www.sfgate.com/bayarea/article/fort-point-chain-removal-san-francisco-18569276.php"><meta property="og:site_name" content="SFGATE"><meta property="og:title" content="A famous view in San Francisco is going to change"><meta property="og:description" content="Workers are replacing the charming rusting chain that lines the road to Fort Point with a dull metal barrier."><meta property="og:datePublished" content="2023-12-22 18:50:53"><meta name="og:locale" content="en_US"><script type="application/ld+json" id="page-json-ld-0">{"@context":"https://schema.org","@type":"NewsArticle","mainEntityOfPage":"https://www.sfgate.com/bayarea/article/fort-point-chain-removal-san-francisco-18569276.php","url":"https://www.sfgate.com/bayarea/article/fort-point-chain-removal-san-francisco-18569276.php","headline":"A famous view in San Francisco is going to change","articleSection":"News/Bay Area & State","publisher":{"@type":"NewsMediaOrganization","name":"SFGATE","url":"https://www.sfgate.com","logo":{"@type":"ImageObject","url":"https://www.sfgate.com/img/ldjson_logo.png","width":600,"height":60},"location":{"@type":"Place","name":"SFGATE","address":{"@type":"PostalAddress","addressLocality":"San Francisco","addressRegion":"CA"}},"sameAs":["https://www.facebook.com/SFGate/","https://twitter.com/sfgate/","https://instagram.com/sfgate/","https://www.pinterest.com/sfgate/"]},"description":"Workers are replacing the charming rusting chain that lines the road to Fort Point with a dull metal barrier.","image":{"@type":"imageObject","width":2048,"height":1365,"url":"https://s.hdnux.com/photos/01/35/55/34/24565517/3/rawImage.jpg","thumbnailUrl":"https://s.hdnux.com/photos/01/35/55/34/24565517/3/square_small.jpg","caption":"Link loss: Say goodbye to San Francisco’s favorite chain."},"articleBody":"Marine Drive in the Presidio isn’t even a mile along, but as it descends a short hill from Lincoln Boulevard, you’re awarded with one of the most commanding views in San Francisco. Ahead, the Golden Gate Bridge towers above the hulk of Fort Point, while on the right, the constantly churning bay splashes on the rocky shore. Over the next few weeks, though, that view is going to change. The bridge and fort will still be there, but a large barrier chain that keeps awe-struck drivers from plunging into the icy water is being replaced by a more pedestrian aluminum barrier. If you haven’t visited the site, you’d be forgiven for wondering what’s so special about a chain. But THIS chain, dangling between crumbling posts and rusty from years of fog and salty spray, has been featured in countless photos on Instagram and Flickr. At least one Instagram user is already mourning the chain’s loss. But a spokesman from the Golden Gate National Recreation Area, which manages the area, said there’s a good reason for its removal. The new two-rail, 3-foot tall barrier will be more tolerant of the harsh marine environment, said spokesperson Julian Espinoza, and its smaller footprint will make the narrow roadway safer for everyone. And while they’ll still be awarded unobstructed views, he acknowledged the pain of photographers the world over. “While we appreciate that some visitors really like the old design, the new barrier will improve the safety of the pedestrians, cyclists and drivers using Marine Drive and that’s been our priority for this project,” Espinoza said. Though the chain in its current design almost looked as if it was as old as the Civil War-era fort, Espinoza said it was installed only in the 1990s. Its replacement, on the other hand, will look closer to the barrier that lined Marine Drive during the 1950s (a fact confirmed by watching the relevant scene from 1958’s “Vertigo”). If you’re eager to get one last shot, get there fast, as the project is moving ahead quickly. One lane of the roadway will be closed during the construction period (now scheduled to end Jan. 24), but Espinoza said visitors will still have full access to Fort Point during that time. Food | 22 years ago, they got a tattoo and free Mexican food for lifeLocal | Nearly every SF home has this feature, but few people use itTravel | The tiny port town unlike anywhere else in the Bay AreaHistory | The kitschy history of the Bay Area's themed Fry's Electronics","datePublished":"2023-12-22T18:50:53Z","dateModified":"2023-12-22T18:50:53Z","author":[{"@type":"Person","name":"Kent German","jobTitle":"News Editor","url":"https://www.sfgate.com/author/kent-german/"}],"inLanguage":"en"}</script><script type="application/ld+json" id="page-json-ld-1">{"@context":"https://schema.org","@type":"WebPage","breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":"1","item":{"@type":"WebPage","@id":"https://www.sfgate.com","name":"Home"}},{"@type":"ListItem","position":"2","item":{"@type":"WebPage","@id":"https://www.sfgate.com/news/","name":"News"}},{"@type":"ListItem","position":"3","item":{"@type":"WebPage","@id":"https://www.sfgate.com/bayarea/","name":"Bay Area & State"}}]},"publisher":{"@type":"NewsMediaOrganization","name":"SFGATE","url":"https://www.sfgate.com/","address":{"@type":"PostalAddress","addressLocality":"San Francisco","addressRegion":"CA"},"logo":{"@type":"ImageObject","url":"https://www.sfgate.com/img/ldjson_logo.png","width":"600","height":"60"},"sameAs":["https://www.facebook.com/SFGate/","https://twitter.com/sfgate/","https://instagram.com/sfgate/","https://www.pinterest.com/sfgate/"]}}</script><link rel="preload" as="image" media="(max-width: NaNpx) and (min-width: 1154px)" href="https://s.hdnux.com/photos/01/35/55/34/24565517/3/960x0.webp"><link rel="preload" as="image" media="(max-width: 1153px) and (min-width: 1074px)" href="https://s.hdnux.com/photos/01/35/55/34/24565517/3/720x0.webp"><link rel="preload" as="image" media="(max-width: 1073px) and (min-width: 1048px)" href="https://s.hdnux.com/photos/01/35/55/34/24565517/3/640x0.webp"><link rel="preload" as="image" media="(max-width: 1047px) and (min-width: 1024px)" href="https://s.hdnux.com/photos/01/35/55/34/24565517/3/1080x0.webp"><link rel="preload" as="image" media="(max-width: 1023px) and (min-width: 784px)" href="https://s.hdnux.com/photos/01/35/55/34/24565517/3/960x0.webp"><link rel="preload" as="image" media="(max-width: 783px) and (min-width: 768px)" href="https://s.hdnux.com/photos/01/35/55/34/24565517/3/720x0.webp"><link rel="preload" as="image" media="(max-width: 767px) and (min-width: 720px)" href="https://s.hdnux.com/photos/01/35/55/34/24565517/3/960x0.webp"><link rel="preload" as="image" media="(max-width: 719px) and (min-width: 640px)" href="https://s.hdnux.com/photos/01/35/55/34/24565517/3/720x0.webp"><link rel="preload" as="image" media="(max-width: 639px) and (min-width: 480px)" href="https://s.hdnux.com/photos/01/35/55/34/24565517/3/640x0.webp"><link rel="preload" as="image" media="(max-width: 479px) and (min-width: 360px)" href="https://s.hdnux.com/photos/01/35/55/34/24565517/3/480x0.webp"><link rel="preload" as="image" media="(max-width: 359px) and (min-width: 240px)" href="https://s.hdnux.com/photos/01/35/55/34/24565517/3/360x0.webp"><link rel="preload" as="image" media="(max-width: 239px)" href="https://s.hdnux.com/photos/01/35/55/34/24565517/3/240x0.webp"><meta name="next-head-count" content="73"><link rel="preconnect" href="https://s.hdnux.com"><link rel="preconnect" href="https://securepubads.g.doubleclick.net"><link rel="preload" href="/fonts/big-shoulders-display/Big-Shoulders-Display-Bold.woff2" as="font" crossorigin="anonymous"><link rel="preload" href="/fonts/big-shoulders-display/Big-Shoulders-Display-SemiBold.woff2" as="font" crossorigin="anonymous"><link rel="preload" href="/fonts/big-shoulders-display/Big-Shoulders-Display-Black.woff2" as="font" crossorigin="anonymous"><link rel="preload" href="/fonts/dm-sans/DM-Sans-Bold.woff2" as="font" crossorigin="anonymous"><link rel="preload" href="/fonts/dm-sans/DM-Sans-Regular.woff2" as="font" crossorigin="anonymous"><link rel="preload" href="/fonts/dm-sans/DM-Sans-Italic.woff2" as="font" crossorigin="anonymous"><link rel="preload" href="/fonts/sora/Sora-Bold.woff2" as="font" crossorigin="anonymous"><link rel="preload" href="/fonts/sora/Sora-Regular.woff2" as="font" crossorigin="anonymous"><link rel="preload" href="/fonts/sora/Sora-SemiBold.woff2" as="font" crossorigin="anonymous"><style>@font-face {font-family: "Big Shoulders Display";src: url("/fonts/big-shoulders-display/Big-Shoulders-Display-Bold.woff2") format("woff2"),url("/fonts/big-shoulders-display/Big-Shoulders-Display-Bold.ttf") format("truetype");font-weight: 700;font-style:regular;font-display: swap;}@font-face {font-family: "Big Shoulders Display";src: url("/fonts/big-shoulders-display/Big-Shoulders-Display-SemiBold.woff2") format("woff2"),url("/fonts/big-shoulders-display/Big-Shoulders-Display-SemiBold.ttf") format("truetype");font-weight: 600;font-style:regular;font-display: swap;}@font-face {font-family: "Big Shoulders Display";src: url("/fonts/big-shoulders-display/Big-Shoulders-Display-Black.woff2") format("woff2"),url("/fonts/big-shoulders-display/Big-Shoulders-Display-Black.ttf") format("truetype");font-weight: 900;font-style:regular;font-display: swap;}@font-face {font-family: "DM Sans";src: url("/fonts/dm-sans/DM-Sans-Bold.woff2") format("woff2"),url("/fonts/dm-sans/DM-Sans-Bold.ttf") format("truetype");font-weight: 700;font-style:regular;font-display: swap;}@font-face {font-family: "DM Sans";src: url("/fonts/dm-sans/DM-Sans-Regular.woff2") format("woff2"),url("/fonts/dm-sans/DM-Sans-Italic.woff2") format("woff2"),url("/fonts/dm-sans/DM-Sans-Regular.ttf") format("truetype"),url("/fonts/dm-sans/DM-Sans-Italic.ttf") format("truetype");font-weight: 400;font-style:regular;font-display: swap;}@font-face {font-family: "Sora";src: url("/fonts/sora/Sora-Bold.woff2") format("woff2"),url("/fonts/sora/Sora-Bold.ttf") format("truetype");font-weight: 700;font-style:regular;font-display: swap;}@font-face {font-family: "Sora";src: url("/fonts/sora/Sora-Regular.woff2") format("woff2"),url("/fonts/sora/Sora-Regular.ttf") format("truetype");font-weight: 400;font-style:regular;font-display: swap;}@font-face {font-family: "Sora";src: url("/fonts/sora/Sora-SemiBold.woff2") format("woff2"),url("/fonts/sora/Sora-SemiBold.ttf") format("truetype");font-weight: 600;font-style:regular;font-display: swap;}@font-face {font-family: "Montserrat";src: url("/fonts/montserrat/Montserrat-MediumItalic.ttf");font-weight: 500;font-style:italic;font-display: swap;}</style><style>/* // brandTheme: sfgate // fontStack: LifestyleDefault // */
:root { --primary: #4a90e2;--primaryRGB: 74,144,226;--primaryAccessible: #10519d;--primaryAccessibleRGB: 16,81,157;--secondary: #29339b;--secondaryRGB: 41,51,155;--secondaryAccessible: #1b236b;--tertiary: #ffb100;--tertiaryRGB: 255,177,0;--white: #ffffff;--gray100: #f7f7f7;--gray200: #e7e7e7;--gray300: #e2e2e2;--gray400: #cccccc;--gray500: #ababab;--gray600: #767676;--gray700: #444444;--black: #111111;--feature: #ac947d;--featureBg: #fff9f3;--alert: #cb0024;--success: #c7e5c2;--focus: #85c4ff;--developing: #51754b;--justin: #0074e0;--advertising: #f6c8f8;--sponsor: #513bc2;--black50: rgba(0, 0, 0, 0.5);--black60: rgba(0, 0, 0, 0.6);--white80: rgba(255, 255, 255, 0.8);--primary10: rgba(74, 144, 226, 0.1);--primary15: rgba(74, 144, 226, 0.15);--primary20: rgba(74, 144, 226, 0.2);--primary80: rgba(74, 144, 226, 0.8);--goodDay100: #e0e9ff;--goodDay200: #afc5ff;--goodDay300: #4962b6;--goodDay400: #26305d;--primaryAccessible80: rgba(16, 81, 157, 0.8);--happyPlace100: #fbf8f4;--happyHour100: #bf4563;--happyHour300: #622232;--happyHour400: #2c1c20;--gBlackSunrise: linear-gradient(180deg, rgba(0, 0, 0, 0.2) 0%, #000000 100%);--gBlackSunset: linear-gradient(180deg, rgba(0, 0, 0, 0.7) 2.96%, rgba(0, 0, 0, 0) 55.93%);--gWhiteSunrise: linear-gradient(0deg, #FFFFFF 22.92%, rgba(255, 255, 255, 0) 100%);--gWhiteFull: linear-gradient(0deg, #FFFFFF 100%, rgba(255, 255, 255, 0) 100%);--s0: 0px;--s1: 1px;--s2: 2px;--s4: 4px;--s6: 6px;--s8: 8px;--s9: 9px;--s10: 10px;--s12: 12px;--s14: 14px;--s16: 16px;--s17: 17px;--s18: 18px;--s20: 20px;--s24: 24px;--s25: 25px;--s28: 28px;--s32: 32px;--s33: 33px;--s35: 35px;--s36: 36px;--s40: 40px;--s48: 48px;--s56: 56px;--s60: 60px;--s64: 64px;--s72: 72px;--s75: 75px;--s80: 80px;--s88: 88px;--s96: 96px;--s100: 100px;--s136: 136px;--s152: 152px;--ls0-5: -0.5px;--ls0-3: -0.25px;--ls0: 0px;--ls01: 0.15px;--ls02: 0.25px;--ls05: 0.5px;--ls07: 0.75px;--ls10: 1px;--ls12: 1.25px;--ls15: 1.5px;--ls20: 2px;--ls40: 4px;--ps0: 0px;--ps1: 1px;--ps20: 20px;--ps32: 32px;--br0: 0px;--br2: 2px;--br4: 4px;--br8: 8px;--bw0: 0px;--bw1: 1px;--bw2: 2px;--bw3: 3px;--bw4: 4px;--lh10: 1em;--lh11: 1.1em;--lh12: 1.2em;--lh13: 1.3em;--lh15: 1.5em;--lh18: 1.8em;--fs9: 0.624rem;--fs11: 0.702rem;--fs12: 0.79rem;--fs13: 0.8125rem;--fs14: 0.889rem;--fs16: 1rem;--fs18: 1.125rem;--fs20: 1.266rem;--fs22: 1.424rem;--fs23: 1.4375rem;--fs25: 1.602rem;--fs29: 1.8125rem;--fs28: 1.802rem;--fs32: 2.027rem;--fs36: 2.281rem;--fs38: 2.375rem;--fs41: 2.566rem;--fs46: 2.887rem;--fs51: 3.247rem;--fs52: 3.25rem;--fs58: 3.653rem;--fs65: 4.11rem;--fs68: 4.25rem;--fs73: 4.624rem;--fs93: 5.852rem;--fs105: 6.583rem;--fs118: 7.406rem;--fs133: 8.332rem; }
:root { --primaryAccessible: #D60036;--primaryAccessibleRGB: 214,0,54;--primary: #ff1d46;--primaryRGB: 255,29,70;--secondary: #CBF700;--secondaryRGB: 203,247,0;--secondaryAccessible: #528300;--tertiary: #ff1d46;--tertiaryRGB: 255,29,70;--baseFontSize: 18px;--fontDefinition: LifestyleDefault; }
:root { --fontA: Big Shoulders Display;--fontA-weight: 900;--fontA-style: regular;--fontB: Big Shoulders Display;--fontB-weight: 700;--fontB-style: regular;--fontC: Big Shoulders Display;--fontC-weight: 600;--fontC-style: regular;--fontD: Sora;--fontD-weight: 700;--fontD-style: regular;--fontE: Sora;--fontE-weight: 600;--fontE-style: regular;--fontF: Sora;--fontF-weight: 400;--fontF-style: regular;--fontG: Sora;--fontG-weight: 400;--fontG-style: regular;--fontH: Montserrat;--fontH-weight: 500;--fontH-style: italic;--fontI: DM Sans;--fontI-weight: 700;--fontI-style: regular;--fontJ: DM Sans;--fontJ-weight: 400;--fontJ-style: regular;--fallbackFontA: Arial;--fallbackFontA-weight: 400;--fallbackFontA-style: regular;--fallbackFontB: Arial;--fallbackFontB-weight: 400;--fallbackFontB-style: regular;--fallbackFontC: Arial;--fallbackFontC-weight: 400;--fallbackFontC-style: regular;--fallbackFontD: Arial;--fallbackFontD-weight: 400;--fallbackFontD-style: regular;--fallbackFontE: Arial;--fallbackFontE-weight: 400;--fallbackFontE-style: regular;--fallbackFontF: Arial;--fallbackFontF-weight: 400;--fallbackFontF-style: regular;--fallbackFontG: Arial;--fallbackFontG-weight: 400;--fallbackFontG-style: regular;--fallbackFontH: Arial;--fallbackFontH-weight: 400;--fallbackFontH-style: regular;--fallbackFontI: Verdana;--fallbackFontI-weight: 400;--fallbackFontI-style: regular;--fallbackFontJ: Verdana;--fallbackFontJ-weight: 400;--fallbackFontJ-style: regular; }
:root { --ohShitHeader-lineheight: 1.2em;--ohShitHeader-letterspacing: 0px;--ohShitHeader-font: var(--fontD), var(--fallbackFontD);--ohShitHeader-weight: var(--fontD-weight);--ohShitHeader-style: var(--fontD-style);--ohShitHeader-lg-size: 3.653rem;--ohShitHeader-md-size: 3.653rem;--ohShitHeader-sm-size: 2.027rem;--ohShitSubheader-lineheight: 1.2em;--ohShitSubheader-letterspacing: 0.25px;--ohShitSubheader-font: var(--fontD), var(--fallbackFontD);--ohShitSubheader-weight: var(--fontD-weight);--ohShitSubheader-style: var(--fontD-style);--ohShitSubheader-lg-size: 2.027rem;--ohShitSubheader-md-size: 2.027rem;--ohShitSubheader-sm-size: 1.4375rem;--ultraLarge-lineheight: 1.2em;--ultraLarge-letterspacing: 0px;--ultraLarge-font: var(--fontD), var(--fallbackFontD);--ultraLarge-weight: var(--fontD-weight);--ultraLarge-style: var(--fontD-style);--ultraLarge-lg-size: 2.887rem;--ultraLarge-md-size: 2.887rem;--ultraLarge-sm-size: 1.4375rem;--primary-lineheight: 1.2em;--primary-letterspacing: 0px;--primary-font: var(--fontD), var(--fallbackFontD);--primary-weight: var(--fontD-weight);--primary-style: var(--fontD-style);--primary-lg-size: 2rem;--primary-md-size: 1.4375rem;--primary-sm-size: 1.125rem;--primary-xs-size: 1rem;--secondary-lineheight: 1.3em;--secondary-letterspacing: 0px;--secondary-font: var(--fontD), var(--fallbackFontD);--secondary-weight: var(--fontD-weight);--secondary-style: var(--fontD-style);--secondary-lg-size: 1.4375rem;--secondary-md-size: 1.4375rem;--secondary-sm-size: 1.125rem;--tertiary-lineheight: 1.3em;--tertiary-letterspacing: 0px;--tertiary-font: var(--fontD), var(--fallbackFontD);--tertiary-weight: var(--fontD-weight);--tertiary-style: var(--fontD-style);--tertiary-lg-size: 1.4375rem;--tertiary-md-size: 1.125rem;--tertiary-sm-size: 1rem;--allTextFeature-lineheight: 1.2em;--allTextFeature-letterspacing: 0.75px;--allTextFeature-font: var(--fontD), var(--fallbackFontD);--allTextFeature-weight: var(--fontD-weight);--allTextFeature-style: var(--fontD-style);--allTextFeature-lg-size: 3.653rem;--allTextFeature-md-size: 3.653rem;--allTextFeature-sm-size: 2rem;--allText-lineheight: 1.2em;--allText-letterspacing: 0px;--allText-font: var(--fontD), var(--fallbackFontD);--allText-weight: var(--fontD-weight);--allText-style: var(--fontD-style);--allText-lg-size: 2rem;--allText-md-size: 1.8125rem;--allText-sm-size: 1.4375rem;--feature-lineheight: 1.2em;--feature-letterspacing: 0.75px;--feature-font: var(--fontD), var(--fallbackFontD);--feature-weight: var(--fontD-weight);--feature-style: var(--fontD-style);--feature-lg-size: 2.566rem;--feature-md-size: 2.566rem;--feature-sm-size: 2rem;--related-lineheight: 1.3em;--related-letterspacing: 0px;--related-font: var(--fontE), var(--fallbackFontE);--related-weight: var(--fontE-weight);--related-style: var(--fontE-style);--related-size: 1rem;--default-lineheight: 1.2em;--default-letterspacing: 0px;--default-font: var(--fontB), var(--fallbackFontB);--default-weight: var(--fontB-weight);--default-style: var(--fontB-style);--default-lg-size: 2.566rem;--default-md-size: 2rem;--default-sm-size: 1.25rem;--specialPackageHeader-lineheight: 0em;--specialPackageHeader-letterspacing: 0px;--specialPackageHeader-font: var(--fontB), var(--fallbackFontB);--specialPackageHeader-weight: var(--fontB-weight);--specialPackageHeader-style: var(--fontB-style);--specialPackageHeader-lg-size: 1.4375rem;--specialPackageHeader-md-size: 1.4375rem;--specialPackageHeader-sm-size: 0.889rem;--dropshadow-lineheight: 1.2em;--dropshadow-letterspacing: 0px;--dropshadow-font: var(--fontB), var(--fallbackFontB);--dropshadow-weight: var(--fontB-weight);--dropshadow-style: var(--fontB-style);--dropshadow-lg-size: 1.25rem;--dropshadow-md-size: 2rem;--dropshadow-sm-size: 1.125rem;--article-lineheight: 1.2em;--article-letterspacing: 0px;--article-font: var(--fontE), var(--fallbackFontE);--article-weight: var(--fontE-weight);--article-style: var(--fontE-style);--article-size: 1.125rem;--highlight-lineheight: 1.2em;--highlight-letterspacing: 0.75px;--highlight-font: var(--fontC), var(--fallbackFontC);--highlight-weight: var(--fontC-weight);--highlight-style: var(--fontC-style);--highlight-lg-size: 2.281rem;--highlight-md-size: 2.281rem;--highlight-sm-size: 2rem;--latestNews-lineheight: 1.2em;--latestNews-letterspacing: 0.75px;--latestNews-font: var(--fontB), var(--fallbackFontB);--latestNews-weight: var(--fontB-weight);--latestNews-style: var(--fontB-style);--latestNews-size: 2rem;--buyArea-lineheight: 1.2em;--buyArea-letterspacing: 0px;--buyArea-font: var(--fontB), var(--fallbackFontB);--buyArea-weight: var(--fontB-weight);--buyArea-style: var(--fontB-style);--buyArea-lg-size: 1.25rem;--buyArea-md-size: 1.25rem;--buyArea-sm-size: 1.125rem;--mostPopular-lineheight: 1.2em;--mostPopular-letterspacing: 0.75px;--mostPopular-font: var(--fontB), var(--fallbackFontB);--mostPopular-weight: var(--fontB-weight);--mostPopular-style: var(--fontB-style);--mostPopular-lg-size: 2.887rem;--mostPopular-md-size: 2.887rem;--mostPopular-sm-size: 2rem;--nameplate-lineheight: 1.1em;--nameplate-letterspacing: 0.75px;--nameplate-font: var(--fontB), var(--fallbackFontB);--nameplate-weight: var(--fontB-weight);--nameplate-style: var(--fontB-style);--nameplate-lg-size: 4.624rem;--nameplate-sm-size: 1.8125rem;--nameplateSubsection-lineheight: 1.3em;--nameplateSubsection-letterspacing: 0px;--nameplateSubsection-font: var(--fontD), var(--fallbackFontD);--nameplateSubsection-weight: var(--fontD-weight);--nameplateSubsection-style: var(--fontD-style);--nameplateSubsection-size: 1.125rem;--abstract-lineheight: 1.3em;--abstract-letterspacing: 0px;--abstract-font: var(--fontF), var(--fallbackFontF);--abstract-weight: var(--fontF-weight);--abstract-style: var(--fontF-style);--abstract-size: 1rem;--subCardAbstract-lineheight: 1.2em;--subCardAbstract-letterspacing: 0px;--subCardAbstract-font: var(--fontF), var(--fallbackFontF);--subCardAbstract-weight: var(--fontF-weight);--subCardAbstract-style: var(--fontF-style);--subCardAbstract-lg-size: 0.8125rem;--subCardAbstract-md-size: 0.8125rem;--subCardAbstract-sm-size: 0.6875rem;--smallTimestamp-lineheight: 1.2em;--smallTimestamp-letterspacing: 0px;--smallTimestamp-font: var(--fontF), var(--fallbackFontF);--smallTimestamp-weight: var(--fontF-weight);--smallTimestamp-style: var(--fontF-style);--smallTimestamp-size: 0.889rem;--cardByline-lineheight: 1.3em;--cardByline-letterspacing: 0.5px;--cardByline-font: var(--fontE), var(--fallbackFontE);--cardByline-weight: var(--fontE-weight);--cardByline-style: var(--fontE-style);--cardByline-size: 0.889rem;--largeTag-lineheight: 1.2em;--largeTag-letterspacing: 4px;--largeTag-font: var(--fontA), var(--fallbackFontA);--largeTag-weight: var(--fontA-weight);--largeTag-style: var(--fontA-style);--largeTag-size: 0.889rem;--smallBoldTag-lineheight: 1.2em;--smallBoldTag-letterspacing: 1px;--smallBoldTag-font: var(--fontA), var(--fallbackFontA);--smallBoldTag-weight: var(--fontA-weight);--smallBoldTag-style: var(--fontA-style);--smallBoldTag-size: 0.889rem;--smallTag-lineheight: 1.2em;--smallTag-letterspacing: 1px;--smallTag-font: var(--fontA), var(--fallbackFontA);--smallTag-weight: var(--fontA-weight);--smallTag-style: var(--fontA-style);--smallTag-size: 0.889rem;--authorTitle-lineheight: 1.2em;--authorTitle-letterspacing: 0px;--authorTitle-font: var(--fontG), var(--fallbackFontG);--authorTitle-weight: var(--fontG-weight);--authorTitle-style: var(--fontG-style);--authorTitle-size: 0.889rem;--authorName-lineheight: 1.2em;--authorName-letterspacing: 0px;--authorName-font: var(--fontF), var(--fallbackFontF);--authorName-weight: var(--fontF-weight);--authorName-style: var(--fontF-style);--authorName-size: 0.889rem;--credit-lineheight: 1.2em;--credit-letterspacing: 0px;--credit-font: var(--fontH), var(--fallbackFontH);--credit-weight: var(--fontH-weight);--credit-style: var(--fontH-style);--credit-lg-size: 1rem;--credit-sm-size: 0.889rem;--featureAbstract-lineheight: 1.2em;--featureAbstract-letterspacing: 0px;--featureAbstract-font: var(--fontF), var(--fallbackFontF);--featureAbstract-weight: var(--fontF-weight);--featureAbstract-style: var(--fontF-style);--featureAbstract-lg-size: 1.8125rem;--featureAbstract-md-size: 1.4375rem;--featureAbstract-sm-size: 1.125rem;--featureByline-lineheight: 1.2em;--featureByline-letterspacing: 0px;--featureByline-font: var(--fontD), var(--fallbackFontD);--featureByline-weight: var(--fontD-weight);--featureByline-style: var(--fontD-style);--featureByline-size: 1.125rem;--featureHeadline-lineheight: 1.1em;--featureHeadline-letterspacing: 0.75px;--featureHeadline-font: var(--fontD), var(--fallbackFontD);--featureHeadline-weight: var(--fontD-weight);--featureHeadline-style: var(--fontD-style);--featureHeadline-lg-size: 3.625rem;--featureHeadline-md-size: 3.25rem;--featureHeadline-sm-size: 2.5625rem;--featureDeck-lineheight: 0em;--featureDeck-letterspacing: 0px;--featureDeck-font: var(--fontG), var(--fallbackFontG);--featureDeck-weight: var(--fontG-weight);--featureDeck-style: var(--fontG-style);--featureDeck-lg-size: 1.4375rem;--featureDeck-md-size: 1.4375rem;--featureDeck-sm-size: 1.125rem;--featureBreadcrumb-lineheight: 1.2em;--featureBreadcrumb-letterspacing: 0.5px;--featureBreadcrumb-font: var(--fontD), var(--fallbackFontD);--featureBreadcrumb-weight: var(--fontD-weight);--featureBreadcrumb-style: var(--fontD-style);--featureBreadcrumb-lg-size: 1.125rem;--featureBreadcrumb-md-size: 1.125rem;--featureBreadcrumb-sm-size: 1rem;--featureHomeButton-lineheight: 1.2em;--featureHomeButton-letterspacing: 0px;--featureHomeButton-font: var(--fontE), var(--fallbackFontE);--featureHomeButton-weight: var(--fontE-weight);--featureHomeButton-style: var(--fontE-style);--featureHomeButton-size: 1.125rem;--featureDropcap-lineheight: 1.1em;--featureDropcap-letterspacing: 0px;--featureDropcap-font: var(--fontB), var(--fallbackFontB);--featureDropcap-weight: var(--fontB-weight);--featureDropcap-style: var(--fontB-style);--featureDropcap-size: 4.11rem;--featureTag-lineheight: 1.2em;--featureTag-letterspacing: 0px;--featureTag-font: var(--fontA), var(--fallbackFontA);--featureTag-weight: var(--fontA-weight);--featureTag-style: var(--fontA-style);--featureTag-size: 1rem;--standardHeadline-lineheight: 1.1em;--standardHeadline-letterspacing: 0.75px;--standardHeadline-font: var(--fontD), var(--fallbackFontD);--standardHeadline-weight: var(--fontD-weight);--standardHeadline-style: var(--fontD-style);--standardHeadline-lg-size: 2.875rem;--standardHeadline-md-size: 2.281rem;--standardHeadline-sm-size: 1.802rem;--deck-lineheight: 1.3em;--deck-letterspacing: 0px;--deck-font: var(--fontG), var(--fallbackFontG);--deck-weight: var(--fontG-weight);--deck-style: var(--fontG-style);--deck-lg-size: 1.25rem;--deck-md-size: 1.125rem;--deck-sm-size: 1rem;--breadcrumb-lineheight: 1.2em;--breadcrumb-letterspacing: 2px;--breadcrumb-font: var(--fontA), var(--fallbackFontA);--breadcrumb-weight: var(--fontA-weight);--breadcrumb-style: var(--fontA-style);--breadcrumb-lg-size: 1rem;--breadcrumb-md-size: 0.889rem;--breadcrumb-sm-size: 0.889rem;--byline-lineheight: 1.2em;--byline-letterspacing: 0px;--byline-font: var(--fontD), var(--fallbackFontD);--byline-weight: var(--fontD-weight);--byline-style: var(--fontD-style);--byline-lg-size: 1rem;--byline-sm-size: 0.889rem;--largeTimestamp-lineheight: 1.2em;--largeTimestamp-letterspacing: 0px;--largeTimestamp-font: var(--fontG), var(--fallbackFontG);--largeTimestamp-weight: var(--fontG-weight);--largeTimestamp-style: var(--fontG-style);--largeTimestamp-size: 1rem;--photoCaption-lineheight: 1.2em;--photoCaption-letterspacing: 0px;--photoCaption-font: var(--fontG), var(--fallbackFontG);--photoCaption-weight: var(--fontG-weight);--photoCaption-style: var(--fontG-style);--photoCaption-size: 0.889rem;--photoCredit-lineheight: 1.2em;--photoCredit-letterspacing: 0px;--photoCredit-font: var(--fontG), var(--fallbackFontG);--photoCredit-weight: var(--fontG-weight);--photoCredit-style: var(--fontG-style);--photoCredit-size: 0.8125rem;--primaryInlineHeader-lineheight: 1.1em;--primaryInlineHeader-letterspacing: 0px;--primaryInlineHeader-font: var(--fontE), var(--fallbackFontE);--primaryInlineHeader-weight: var(--fontE-weight);--primaryInlineHeader-style: var(--fontE-style);--primaryInlineHeader-lg-size: 2rem;--primaryInlineHeader-sm-size: 1.8125rem;--secondaryInlineHeader-lineheight: 1.2em;--secondaryInlineHeader-letterspacing: 0px;--secondaryInlineHeader-font: var(--fontE), var(--fallbackFontE);--secondaryInlineHeader-weight: var(--fontE-weight);--secondaryInlineHeader-style: var(--fontE-style);--secondaryInlineHeader-size: 1.4375rem;--tertiaryInlineHeader-lineheight: 1.2em;--tertiaryInlineHeader-letterspacing: 0px;--tertiaryInlineHeader-font: var(--fontE), var(--fallbackFontE);--tertiaryInlineHeader-weight: var(--fontE-weight);--tertiaryInlineHeader-style: var(--fontE-style);--tertiaryInlineHeader-size: 1.125rem;--articleBody-lineheight: 1.8em;--articleBody-letterspacing: 0px;--articleBody-font: var(--fontJ), var(--fallbackFontJ);--articleBody-weight: var(--fontJ-weight);--articleBody-style: var(--fontJ-style);--articleBody-size: 1.125rem;--moduleBody-lineheight: 1.5em;--moduleBody-letterspacing: 0px;--moduleBody-font: var(--fontG), var(--fallbackFontG);--moduleBody-weight: var(--fontG-weight);--moduleBody-style: var(--fontG-style);--moduleBody-size: 1rem;--pullquote-lineheight: 1.3em;--pullquote-letterspacing: 0px;--pullquote-font: var(--fontE), var(--fallbackFontE);--pullquote-weight: var(--fontE-weight);--pullquote-style: var(--fontE-style);--pullquote-lg-size: 2rem;--pullquote-md-size: 2rem;--pullquote-sm-size: 1.25rem;--pullquoteAttribution-lineheight: 1.2em;--pullquoteAttribution-letterspacing: 0px;--pullquoteAttribution-font: var(--fontG), var(--fallbackFontG);--pullquoteAttribution-weight: var(--fontG-weight);--pullquoteAttribution-style: var(--fontG-style);--pullquoteAttribution-lg-size: 1.25rem;--pullquoteAttribution-md-size: 1.25rem;--pullquoteAttribution-sm-size: 1.125rem;--blockquote-lineheight: 1.3em;--blockquote-letterspacing: 0px;--blockquote-font: var(--fontH), var(--fallbackFontH);--blockquote-weight: var(--fontH-weight);--blockquote-style: var(--fontH-style);--blockquote-size: 1.125rem;--dropcapCharacter-lineheight: 1.1em;--dropcapCharacter-letterspacing: 0px;--dropcapCharacter-font: var(--fontB), var(--fallbackFontB);--dropcapCharacter-weight: var(--fontB-weight);--dropcapCharacter-style: var(--fontB-style);--dropcapCharacter-size: 5.852rem;--numeral-lineheight: 1.2em;--numeral-letterspacing: 0px;--numeral-font: var(--fontE), var(--fallbackFontE);--numeral-weight: var(--fontE-weight);--numeral-style: var(--fontE-style);--numeral-lg-size: 2rem;--numeral-md-size: 2rem;--numeral-sm-size: 1.25rem;--button-lineheight: 1.5em;--button-letterspacing: 0px;--button-font: var(--fontE), var(--fallbackFontE);--button-weight: var(--fontE-weight);--button-style: var(--fontE-style);--button-lg-size: 1rem;--button-md-size: 1rem;--button-sm-size: 0.8125rem;--standardButton-lineheight: 1.5em;--standardButton-letterspacing: 0px;--standardButton-font: var(--fontE), var(--fallbackFontE);--standardButton-weight: var(--fontE-weight);--standardButton-style: var(--fontE-style);--standardButton-lg-size: 1rem;--standardButton-md-size: 1rem;--standardButton-sm-size: 0.8125rem;--underlinedButton-lineheight: 1.5em;--underlinedButton-letterspacing: 0px;--underlinedButton-font: var(--fontE), var(--fallbackFontE);--underlinedButton-weight: var(--fontE-weight);--underlinedButton-style: var(--fontE-style);--underlinedButton-lg-size: 1rem;--underlinedButton-md-size: 1rem;--underlinedButton-sm-size: 0.8125rem;--alertBarHeadline-lineheight: 1.2em;--alertBarHeadline-letterspacing: 0px;--alertBarHeadline-font: var(--fontD), var(--fallbackFontD);--alertBarHeadline-weight: var(--fontD-weight);--alertBarHeadline-style: var(--fontD-style);--alertBarHeadline-lg-size: 1.25rem;--alertBarHeadline-md-size: 1.25rem;--alertBarHeadline-sm-size: 1rem;--alertBarKicker-lineheight: 1.2em;--alertBarKicker-letterspacing: 0px;--alertBarKicker-font: var(--fontD), var(--fallbackFontD);--alertBarKicker-weight: var(--fontD-weight);--alertBarKicker-style: var(--fontD-style);--alertBarKicker-size: 0.889rem;--sponsorLabel-lineheight: 1.2em;--sponsorLabel-letterspacing: 1px;--sponsorLabel-font: var(--fontG), var(--fallbackFontG);--sponsorLabel-weight: var(--fontG-weight);--sponsorLabel-style: var(--fontG-style);--sponsorLabel-lg-size: 1.125rem;--sponsorLabel-md-size: 1.125rem;--sponsorLabel-sm-size: 1rem;--sponsorLabel-xs-size: 0.889rem;--collectionHeaderTag-lineheight: 1.2em;--collectionHeaderTag-letterspacing: 1px;--collectionHeaderTag-font: var(--fontA), var(--fallbackFontA);--collectionHeaderTag-weight: var(--fontA-weight);--collectionHeaderTag-style: var(--fontA-style);--collectionHeaderTag-size: 0.6875rem;--videoTitle-lineheight: 1.2em;--videoTitle-letterspacing: 0px;--videoTitle-font: var(--fontE), var(--fallbackFontE);--videoTitle-weight: var(--fontE-weight);--videoTitle-style: var(--fontE-style);--videoTitle-lg-size: 1.25rem;--videoTitle-sm-size: 1rem;--hamburgerMenuSection-lineheight: 1.2em;--hamburgerMenuSection-letterspacing: 0px;--hamburgerMenuSection-font: var(--fontD), var(--fallbackFontD);--hamburgerMenuSection-weight: var(--fontD-weight);--hamburgerMenuSection-style: var(--fontD-style);--hamburgerMenuSection-size: 1.25rem;--hamburgerMenuSubsection-lineheight: 1.3em;--hamburgerMenuSubsection-letterspacing: 0px;--hamburgerMenuSubsection-font: var(--fontG), var(--fallbackFontG);--hamburgerMenuSubsection-weight: var(--fontG-weight);--hamburgerMenuSubsection-style: var(--fontG-style);--hamburgerMenuSubsection-size: 1.125rem;--title-lineheight: 1.2em;--title-letterspacing: 0px;--title-font: var(--fontE), var(--fallbackFontE);--title-weight: var(--fontE-weight);--title-style: var(--fontE-style);--title-size: 1.125rem;--time-lineheight: 1.3em;--time-letterspacing: 0px;--time-font: var(--fontE), var(--fallbackFontE);--time-weight: var(--fontE-weight);--time-style: var(--fontE-style);--time-size: 0.889rem;--dateAndPrice-lineheight: 1.3em;--dateAndPrice-letterspacing: 0px;--dateAndPrice-font: var(--fontG), var(--fallbackFontG);--dateAndPrice-weight: var(--fontG-weight);--dateAndPrice-style: var(--fontG-style);--dateAndPrice-size: 0.889rem;--uiLabel1-lineheight: 1.2em;--uiLabel1-letterspacing: 0px;--uiLabel1-font: var(--fontD), var(--fallbackFontD);--uiLabel1-weight: var(--fontD-weight);--uiLabel1-style: var(--fontD-style);--uiLabel1-size: 1.125rem;--uiLabel2-lineheight: 1.2em;--uiLabel2-letterspacing: 0px;--uiLabel2-font: var(--fontD), var(--fallbackFontD);--uiLabel2-weight: var(--fontD-weight);--uiLabel2-style: var(--fontD-style);--uiLabel2-size: 0.889rem;--uiHeader1-lineheight: 1.1em;--uiHeader1-letterspacing: 0px;--uiHeader1-font: var(--fontA), var(--fallbackFontA);--uiHeader1-weight: var(--fontA-weight);--uiHeader1-style: var(--fontA-style);--uiHeader1-size: 2.887rem;--uiHeader2-lineheight: 1.2em;--uiHeader2-letterspacing: 0px;--uiHeader2-font: var(--fontA), var(--fallbackFontA);--uiHeader2-weight: var(--fontA-weight);--uiHeader2-style: var(--fontA-style);--uiHeader2-size: 2.281rem;--uiHeader3-lineheight: 1.2em;--uiHeader3-letterspacing: 0px;--uiHeader3-font: var(--fontA), var(--fallbackFontA);--uiHeader3-weight: var(--fontA-weight);--uiHeader3-style: var(--fontA-style);--uiHeader3-size: 2rem;--uiHeader4-lineheight: 1.2em;--uiHeader4-letterspacing: 0px;--uiHeader4-font: var(--fontE), var(--fallbackFontE);--uiHeader4-weight: var(--fontE-weight);--uiHeader4-style: var(--fontE-style);--uiHeader4-size: 1.4375rem;--uiHeader5-lineheight: 1.2em;--uiHeader5-letterspacing: 0px;--uiHeader5-font: var(--fontA), var(--fallbackFontA);--uiHeader5-weight: var(--fontA-weight);--uiHeader5-style: var(--fontA-style);--uiHeader5-size: 1.4375rem;--uiHeader6-lineheight: 1.2em;--uiHeader6-letterspacing: 0px;--uiHeader6-font: var(--fontE), var(--fallbackFontE);--uiHeader6-weight: var(--fontE-weight);--uiHeader6-style: var(--fontE-style);--uiHeader6-size: 1.25rem;--uiHeader7-lineheight: 1.2em;--uiHeader7-letterspacing: 0px;--uiHeader7-font: var(--fontB), var(--fallbackFontB);--uiHeader7-weight: var(--fontB-weight);--uiHeader7-style: var(--fontB-style);--uiHeader7-size: 1.125rem;--uiHeader8-lineheight: 1.2em;--uiHeader8-letterspacing: 0px;--uiHeader8-font: var(--fontE), var(--fallbackFontE);--uiHeader8-weight: var(--fontE-weight);--uiHeader8-style: var(--fontE-style);--uiHeader8-size: 1.125rem;--uiHeader9-lineheight: 1.2em;--uiHeader9-letterspacing: 0px;--uiHeader9-font: var(--fontE), var(--fallbackFontE);--uiHeader9-weight: var(--fontE-weight);--uiHeader9-style: var(--fontE-style);--uiHeader9-size: 1rem;--uiHeader10-lineheight: 1.2em;--uiHeader10-letterspacing: 0px;--uiHeader10-font: var(--fontD), var(--fallbackFontD);--uiHeader10-weight: var(--fontD-weight);--uiHeader10-style: var(--fontD-style);--uiHeader10-size: 1rem;--uiHeader11-lineheight: 1.2em;--uiHeader11-letterspacing: 0px;--uiHeader11-font: var(--fontE), var(--fallbackFontE);--uiHeader11-weight: var(--fontE-weight);--uiHeader11-style: var(--fontE-style);--uiHeader11-size: 0.8125rem;--uiHeader12-lineheight: 1.2em;--uiHeader12-letterspacing: 0px;--uiHeader12-font: var(--fontE), var(--fallbackFontE);--uiHeader12-weight: var(--fontE-weight);--uiHeader12-style: var(--fontE-style);--uiHeader12-size: 0.6875rem;--successMessage-lineheight: 1.2em;--successMessage-letterspacing: 0px;--successMessage-font: var(--fontE), var(--fallbackFontE);--successMessage-weight: var(--fontE-weight);--successMessage-style: var(--fontE-style);--successMessage-lg-size: 1rem;--successMessage-md-size: 0.889rem;--successMessage-sm-size: 0.8125rem;--bigSubheader-lineheight: 1.2em;--bigSubheader-letterspacing: 0px;--bigSubheader-font: var(--fontE), var(--fallbackFontE);--bigSubheader-weight: var(--fontE-weight);--bigSubheader-style: var(--fontE-style);--bigSubheader-lg-size: 1.6875rem;--bigSubheader-sm-size: 1.125rem;--bigItalic1-lineheight: 1.2em;--bigItalic1-letterspacing: 0px;--bigItalic1-font: var(--fontH), var(--fallbackFontH);--bigItalic1-weight: var(--fontH-weight);--bigItalic1-style: var(--fontH-style);--bigItalic1-size: 1.8125rem;--bigItalic2-lineheight: 1.2em;--bigItalic2-letterspacing: 0px;--bigItalic2-font: var(--fontH), var(--fallbackFontH);--bigItalic2-weight: var(--fontH-weight);--bigItalic2-style: var(--fontH-style);--bigItalic2-size: 1.125rem;--bigButton1-lineheight: 1.2em;--bigButton1-letterspacing: 0px;--bigButton1-font: var(--fontD), var(--fallbackFontD);--bigButton1-weight: var(--fontD-weight);--bigButton1-style: var(--fontD-style);--bigButton1-size: 2rem;--bigButton2-lineheight: 1.2em;--bigButton2-letterspacing: 0px;--bigButton2-font: var(--fontD), var(--fallbackFontD);--bigButton2-weight: var(--fontD-weight);--bigButton2-style: var(--fontD-style);--bigButton2-size: 1.125rem;--uiTextExtraLarge-lineheight: 1.3em;--uiTextExtraLarge-letterspacing: 0px;--uiTextExtraLarge-font: var(--fontG), var(--fallbackFontG);--uiTextExtraLarge-weight: var(--fontG-weight);--uiTextExtraLarge-style: var(--fontG-style);--uiTextExtraLarge-size: 1.125rem;--uiTextLarge-lineheight: 1.3em;--uiTextLarge-letterspacing: 0px;--uiTextLarge-font: var(--fontG), var(--fallbackFontG);--uiTextLarge-weight: var(--fontG-weight);--uiTextLarge-style: var(--fontG-style);--uiTextLarge-size: 1rem;--uiTextMedium-lineheight: 1.3em;--uiTextMedium-letterspacing: 0px;--uiTextMedium-font: var(--fontG), var(--fallbackFontG);--uiTextMedium-weight: var(--fontG-weight);--uiTextMedium-style: var(--fontG-style);--uiTextMedium-size: 0.889rem;--uiTextSmall-lineheight: 1.2em;--uiTextSmall-letterspacing: 0px;--uiTextSmall-font: var(--fontG), var(--fallbackFontG);--uiTextSmall-weight: var(--fontG-weight);--uiTextSmall-style: var(--fontG-style);--uiTextSmall-size: 0.8125rem;--uiTextSmallItalic-lineheight: 1.2em;--uiTextSmallItalic-letterspacing: 0px;--uiTextSmallItalic-font: var(--fontH), var(--fallbackFontH);--uiTextSmallItalic-weight: var(--fontH-weight);--uiTextSmallItalic-style: var(--fontH-style);--uiTextSmallItalic-size: 0.8125rem;--uiTextExtraSmall-lineheight: 1.2em;--uiTextExtraSmall-letterspacing: 0px;--uiTextExtraSmall-font: var(--fontG), var(--fallbackFontG);--uiTextExtraSmall-weight: var(--fontG-weight);--uiTextExtraSmall-style: var(--fontG-style);--uiTextExtraSmall-size: 0.6875rem;--uiTextNoFontSize-lineheight: 1.2em;--uiTextNoFontSize-letterspacing: 0px;--uiTextNoFontSize-font: var(--fontG), var(--fallbackFontG);--uiTextNoFontSize-weight: var(--fontG-weight);--uiTextNoFontSize-style: var(--fontG-style);--uiTextNoFontSize-size: undefinedrem;--imageListHeader-lineheight: 1.2em;--imageListHeader-letterspacing: 0px;--imageListHeader-font: var(--fontE), var(--fallbackFontE);--imageListHeader-weight: var(--fontE-weight);--imageListHeader-style: var(--fontE-style);--imageListHeader-lg-size: 2rem;--imageListHeader-md-size: 2rem;--imageListHeader-sm-size: 1.125rem;--marketingHeader1-lineheight: 1.2em;--marketingHeader1-letterspacing: 0px;--marketingHeader1-font: var(--fontD), var(--fallbackFontD);--marketingHeader1-weight: var(--fontD-weight);--marketingHeader1-style: var(--fontD-style);--marketingHeader1-lg-size: 4.25rem;--marketingHeader1-md-size: 2.281rem;--marketingHeader1-sm-size: 1.437rem;--marketingHeader2-lineheight: 1.2em;--marketingHeader2-letterspacing: 0px;--marketingHeader2-font: var(--fontE), var(--fallbackFontE);--marketingHeader2-weight: var(--fontE-weight);--marketingHeader2-style: var(--fontE-style);--marketingHeader2-lg-size: 1.4375rem;--marketingHeader2-md-size: 1.25rem;--marketingHeader2-sm-size: 1rem;--marketingHeader3-lineheight: 1.2em;--marketingHeader3-letterspacing: 0px;--marketingHeader3-font: var(--fontE), var(--fallbackFontE);--marketingHeader3-weight: var(--fontE-weight);--marketingHeader3-style: var(--fontE-style);--marketingHeader3-lg-size: 1rem;--marketingHeader3-md-size: 1rem;--marketingHeader3-sm-size: 0.8125rem;--marketingHeader4-lineheight: 1.2em;--marketingHeader4-letterspacing: 0px;--marketingHeader4-font: var(--fontE), var(--fallbackFontE);--marketingHeader4-weight: var(--fontE-weight);--marketingHeader4-style: var(--fontE-style);--marketingHeader4-lg-size: 1.4375rem;--marketingHeader4-md-size: 1.4375rem;--marketingHeader4-sm-size: 1.125rem;--marketingHeader5-lineheight: 1.2em;--marketingHeader5-letterspacing: 0px;--marketingHeader5-font: var(--fontB), var(--fallbackFontB);--marketingHeader5-weight: var(--fontB-weight);--marketingHeader5-style: var(--fontB-style);--marketingHeader5-lg-size: 2rem;--marketingHeader5-md-size: 1.4375rem;--marketingHeader5-sm-size: 1rem;--marketingHeader6-lineheight: 1.2em;--marketingHeader6-letterspacing: 0px;--marketingHeader6-font: var(--fontB), var(--fallbackFontB);--marketingHeader6-weight: var(--fontB-weight);--marketingHeader6-style: var(--fontB-style);--marketingHeader6-lg-size: 2rem;--marketingHeader6-md-size: 1.4375rem;--marketingHeader6-sm-size: 1rem; }</style><meta name="msapplication-TileColor" content="#ff1d46"><link rel="shortcut icon" href="/sites/sfgate/favicon.ico"><link rel="apple-touch-icon" href="/sites/sfgate/apple-touch-icon-196x196.png" sizes="196x196"><link rel="apple-touch-icon" href="/sites/sfgate/apple-touch-icon-152x152.png" sizes="152x152"><link rel="icon" href="/sites/sfgate/favicon-32x32.png" type="image/png" sizes="32x32"><link rel="icon" href="/sites/sfgate/favicon-16x16.png" type="image/png" sizes="16x16"></head><body><div style="height:0;width:0" data-logo-svg-source="true"><svg viewBox="0 0 129 46" fill="none" xmlns="http://www.w3.org/2000/svg" id="logosource-sf-gate" aria-label="SF Gate Logo"><desc>SF Gate Logo</desc><path fill-rule="evenodd" clip-rule="evenodd" d="M57.5945 0.941406C63.1142 0.941406 65.853 3.17641 65.9508 7.76502L65.9535 8.02236V18.0485H57.0767V8.83699C57.0767 7.94651 56.6119 7.50596 55.6824 7.46205L55.5232 7.45839H54.1917C53.2106 7.45839 52.6942 7.85208 52.6426 8.69273L52.6383 8.83699V37.6621C52.6383 38.5526 53.103 38.9932 54.0325 39.0371L54.1917 39.0407H55.6712C56.7224 39.0407 57.2424 38.647 57.2943 37.8064L57.2986 37.6621V27.3853H54.4876V20.9937H66.1014V38.4767C66.1014 43.1526 63.3917 45.4726 58.0423 45.5554L57.7424 45.5577H51.9725C46.4528 45.5577 43.714 43.3227 43.6162 38.7341L43.6135 38.4767V8.02236C43.6135 3.34654 46.2519 1.02652 51.6687 0.943706L51.9725 0.941406H57.5945ZM13.6543 0.941437C19.1014 0.941437 21.9102 3.17644 22.0105 7.76505L22.0133 8.0224V17.6726H13.2105V8.77435C13.2105 7.88388 12.7457 7.44332 11.8162 7.39942L11.657 7.39576H10.9173C9.86318 7.39576 9.40991 7.79164 9.36721 8.63711L9.36386 8.77435V14.8527C9.36386 16.1624 9.76442 16.9065 10.8827 17.6761L11.0652 17.7979L18.3146 22.4976C21.1147 24.2614 22.103 25.8481 22.1587 28.862L22.1612 29.1399V38.4768C22.1612 43.1526 19.4515 45.4726 14.1022 45.5554L13.8023 45.5577H8.77207C3.25232 45.5577 0.513567 43.3227 0.415801 38.7341L0.413086 38.4768V27.6987H9.28988V37.7248C9.28988 38.6178 9.69045 39.0583 10.6818 39.1001L10.8433 39.1034H11.657C12.7111 39.1034 13.1644 38.7075 13.2071 37.8621L13.2105 37.7248V30.7065C13.2105 29.3969 12.8099 28.6527 11.6917 27.8832L11.5091 27.7613L4.2597 23.0616C1.39043 21.2994 0.468787 19.5962 0.415564 16.6948L0.413086 16.4193V8.0224C0.413086 3.34657 3.05148 1.02656 8.46828 0.943737L8.77207 0.941437H13.6543ZM38.9206 8.08407L41.1575 1.31644H24.8982V45.1808H33.849V26.6951H40.9504V19.9274H33.849V8.08407H38.9206ZM85.7782 1.31644L91.696 45.1808H82.7453L82.0055 38.7891H76.4575L75.7918 45.1808H67.5807L73.4986 1.31644H85.7782ZM109.894 8.08407V1.31644H89.995V8.08407H95.395V45.1808H104.42V8.08407H109.894ZM128.432 1.31659L126.143 8.08423L121.063 8.08506V19.5525H128.461V26.3201H121.063V38.3515L128.587 38.3506L126.71 45.1809L112.113 45.1818V1.31742L128.432 1.31659ZM77.1235 32.1485L79.1948 11.9082L81.34 32.1485H77.1235Z" fill="var(--logoColorPrimary)"></path></svg><svg viewBox="0 0 166 113" fill="none" xmlns="http://www.w3.org/2000/svg" id="logosource-sfgate-badge"><path fill-rule="evenodd" clip-rule="evenodd" d="M33.7346 0.5C47.4066 0.5 54.4563 6.1105 54.7082 17.6293L54.7152 18.2753V42.5H32.6206V20.1629C32.6206 17.9275 31.4542 16.8216 29.1212 16.7114L28.7216 16.7022H26.8649C24.2191 16.7022 23.0815 17.696 22.9743 19.8184L22.9659 20.1629V35.4213C22.9659 38.709 23.9713 40.5769 26.778 42.5088L27.2362 42.8146L45.4317 54.6123C52.4598 59.0399 54.9403 63.023 55.0802 70.5887L55.0865 71.2865V94.7246C55.0865 106.462 48.2853 112.286 34.8587 112.494L34.106 112.5H21.4805C7.62629 112.5 0.752202 106.889 0.506815 95.3707L0.5 94.7246V67.6685H22.7802V92.837C22.7802 95.0786 23.7856 96.1844 26.274 96.2894L26.6792 96.2977H28.7216C31.3674 96.2977 32.5051 95.3039 32.6122 93.1815L32.6206 92.837V75.219C32.6206 71.9314 31.6152 70.0634 28.8085 68.1316L28.3503 67.8258L10.1548 56.0281C2.95307 51.6045 0.639805 47.3288 0.50622 40.0456L0.5 39.3539V18.2753C0.5 6.53758 7.12219 0.713672 20.718 0.505774L21.4805 0.5H33.7346ZM144.022 0.5C157.876 0.5 164.75 6.1105 164.995 17.6293L165.002 18.2753V43.4438H142.722V20.3202C142.722 18.0849 141.556 16.9789 139.223 16.8687L138.823 16.8595H135.481C133.018 16.8595 131.722 17.8478 131.593 19.9581L131.582 20.3202V92.6798C131.582 94.9151 132.748 96.021 135.081 96.1313L135.481 96.1404H139.194C141.833 96.1404 143.138 95.1522 143.268 93.0419L143.279 92.6798V66.882H136.224V50.8371H165.374V94.7247C165.374 106.462 158.572 112.286 145.146 112.494L144.393 112.5H129.911C116.057 112.5 109.183 106.889 108.937 95.3707L108.93 94.7247V18.2753C108.93 6.53759 115.553 0.713673 129.148 0.505774L129.911 0.5H144.022ZM97.1514 18.4321L102.766 1.44336H61.9561V111.556H84.422V65.1512H102.246V48.1625H84.422V18.4321H97.1514Z" fill="currentColor"></path></svg><svg id="logosource-hearst" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 260 25" aria-label="Hearst Newspapers Logo"><desc>Hearst Newspapers Logo</desc><path fill="var(--logoColorPrimary)" d="M227.51,223.48a2.36,2.36,0,0,0-.3.66.36.36,0,0,0,.37.4c.82,0,2.58-2.15,2.81-2.15a.27.27,0,0,1,.3.27c0,.69-2.85,3.67-5.1,3.67-.6,0-.83-.2-.83-.56a4.72,4.72,0,0,1,.46-1.43l3.78-8.05a3,3,0,0,0,.33-1.33.79.79,0,0,0-.76-.89c-1.19,0-2.35,1.36-6.17,7.52a30.35,30.35,0,0,0-1.92,3.58c-.33.73-.56,1.16-1.09,1.16s-.79-.2-.79-.59a4.23,4.23,0,0,1,.33-1.1l3.14-8.42a4.52,4.52,0,0,0,.33-1.12c0-.27-.19-.43-.49-.43-.87,0-2.42,2.45-2.75,2.45a.26.26,0,0,1-.27-.27c0-.36.4-.76.6-1.06.46-.66,2.42-2.85,3.71-2.85.8,0,1,.5,1,1.4,0,1.29-2,5.5-2,5.86,0,.07,0,.17.07.17s.23-.2.39-.47c.6-1,3.52-7,6.6-7,1.26,0,2,.66,2,1.83a6.87,6.87,0,0,1-.86,2.61l-3,6.1Z" transform="translate(-84.31 -208.87)"></path><path fill="var(--logoColorPrimary)" d="M242.56,215.43c0,1.19-1.23,4.27-6.8,5.2a4.51,4.51,0,0,0-.26,1.56c0,1.85.69,2.35,1.95,2.35,1.89,0,3.48-2.65,3.75-2.65s.26.1.26.3-2.42,4.34-5,4.34c-2,0-2.78-1.72-2.78-3.84,0-4.41,3.91-9.75,6.93-9.75,1.42,0,2,1.36,2,2.49ZM236,219.9c4.14-1.22,5.47-3.78,5.47-5.13,0-.6-.2-1.23-1-1.23s-3.25,1.75-4.44,6.36Z" transform="translate(-84.31 -208.87)"></path><path fill="var(--logoColorPrimary)" d="M247.79,217.08a4,4,0,0,0,.4-1.45c0-.27-.1-.57-.4-.57-1.65,0-3.28,3.38-3.74,3.38-.24,0-.3-.06-.3-.26,0-.6,3.94-5.24,5.7-5.24.89,0,1.19.5,1.19,1.1a5.1,5.1,0,0,1-.5,1.79l-2.51,6.76a2.54,2.54,0,0,0-.2,1,.89.89,0,0,0,1,.93c1.83,0,4.15-3,5.51-5.6a42.25,42.25,0,0,0,2.22-5.17c.2-.56.33-.7,1.09-.7.56,0,.73.17.73.37,0,.9-3.25,7-3.25,9.88,0,1.19.46,1.42,1.13,1.42,1.92,0,6.43-5.57,6.43-8.09,0-1.09-.23-1.78-.23-2.45,0-.86.36-1.46.82-1.46s.87.63.87,1.73c0,4.8-6.8,12.06-9.28,12.06-1.43,0-1.86-1.19-1.86-2.15a9.57,9.57,0,0,1,.66-2.92l-.06-.07c-1.4,2-4.18,5.14-6.3,5.14-.6,0-1.62-1-1.62-2.62a6.1,6.1,0,0,1,.49-2l2-4.81Z" transform="translate(-84.31 -208.87)"></path><path fill="var(--logoColorPrimary)" d="M272.75,214.27a.73.73,0,0,1-.83.79c-1,0-1.26-1.32-2.09-1.32-.53,0-1.06.36-1.06,1.39a15.21,15.21,0,0,0,.76,3.45,14.92,14.92,0,0,1,.77,3.87c0,2.59-1.46,4.08-4.05,4.08-1.92,0-2.65-.66-2.65-1.69a.89.89,0,0,1,.86-.9c1.2,0,1,1.8,2.32,1.8a1.73,1.73,0,0,0,1.86-2,13.7,13.7,0,0,0-.76-3.45,14.12,14.12,0,0,1-.76-3.38c0-2.42,1.25-4,3.67-4,1.13,0,2,.43,2,1.33Z" transform="translate(-84.31 -208.87)"></path><path fill="var(--logoColorPrimary)" d="M277.89,214.17c-.4.07-2,.46-2.32.46a.32.32,0,0,1-.34-.33.39.39,0,0,1,.34-.4l2.52-.49,1.16-3.72c.23-.76.46-.82,1-.82s.85.16.85.66-.66,2.25-1.05,3.64a23.35,23.35,0,0,1,2.45-.23c2.62,0,3.34,1.23,3.34,2.79,0,3.18-3.28,10.54-8.71,10.54a5.7,5.7,0,0,1-1.06-.1l-1.49,5a.59.59,0,0,0,0,.26.85.85,0,0,0,.5.77c.36.19,2.29.49,2.29.79s-.2.33-.7.33-1.62-.16-2.68-.16-2.39-.1-3.58-.1a.28.28,0,0,1-.3-.3c0-.46,1.06-.23,1.69-.56s.66-.57,1-1.5l5.14-16.5Zm-.8,8.82a3.43,3.43,0,0,0-.17,1c0,.83.27,1.43,1.5,1.43,2.75,0,5.4-7.53,5.4-9.35,0-1.36-.9-2.26-2.65-2.26-1.23,0-1.33.14-1.66,1.2l-2.42,8Z" transform="translate(-84.31 -208.87)"></path><path fill="var(--logoColorPrimary)" d="M295.28,214.73c.53,0,1.06.14,1.33.14a1,1,0,0,0,.86-.63c.36-.73.56-1,1.43-1,.56,0,.76.14.76.47a1.82,1.82,0,0,1-.2.6l-4.31,9.44a1.27,1.27,0,0,0-.2.56c0,.2.13.24.37.24,1.15,0,3.31-3.05,3.68-3.05s.3.06.3.29c0,.5-4.08,4.71-5.81,4.71-.56,0-.79-.2-.79-.59,0-1.13,1.66-4.25,2.08-5.14l-.06-.07-1.46,1.59c-1.66,1.82-4.44,4.21-6.39,4.21-1.23,0-1.46-1.16-1.46-1.89,0-4,6-9.91,9.87-9.91Zm-6.79,9.81c2.26,0,8-5.86,8-8,0-.56-.31-1-1.23-1-2.92,0-7.82,5.23-7.82,8a1,1,0,0,0,1.09,1Z" transform="translate(-84.31 -208.87)"></path><path fill="var(--logoColorPrimary)" d="M304.66,214.17c-.39.07-2,.46-2.32.46a.31.31,0,0,1-.33-.33.39.39,0,0,1,.33-.4l2.52-.49,1.16-3.72c.23-.76.46-.82,1-.82s.86.16.86.66-.66,2.25-1.06,3.64a23.83,23.83,0,0,1,2.45-.23c2.62,0,3.35,1.23,3.35,2.79,0,3.18-3.28,10.54-8.72,10.54a5.59,5.59,0,0,1-1.05-.1l-1.5,5a.77.77,0,0,0,0,.26.85.85,0,0,0,.5.77c.36.19,2.28.49,2.28.79s-.2.33-.69.33-1.63-.16-2.69-.16-2.39-.1-3.58-.1a.28.28,0,0,1-.29-.3c0-.46,1.06-.23,1.68-.56s.67-.57,1-1.5l5.14-16.5Zm-.79,8.82a3.43,3.43,0,0,0-.17,1c0,.83.27,1.43,1.5,1.43,2.74,0,5.39-7.53,5.39-9.35,0-1.36-.89-2.26-2.65-2.26-1.22,0-1.32.14-1.65,1.2l-2.42,8Z" transform="translate(-84.31 -208.87)"></path><path fill="var(--logoColorPrimary)" d="M322.89,215.43c0,1.19-1.22,4.27-6.79,5.2a4.54,4.54,0,0,0-.27,1.56c0,1.85.7,2.35,2,2.35,1.89,0,3.48-2.65,3.74-2.65s.27.1.27.3-2.42,4.34-5,4.34c-2,0-2.78-1.72-2.78-3.84,0-4.41,3.91-9.75,6.93-9.75,1.42,0,2,1.36,2,2.49Zm-6.59,4.47c4.14-1.22,5.47-3.78,5.47-5.13,0-.6-.2-1.23-1-1.23s-3.25,1.75-4.44,6.36Z" transform="translate(-84.31 -208.87)"></path><path fill="var(--logoColorPrimary)" d="M327.57,216.69a3.32,3.32,0,0,0,.16-.7c0-.26-.06-.5-.4-.5-.76,0-2.32,2.95-2.75,2.95-.2,0-.26-.19-.26-.36,0-.46,3.31-5.14,4.67-5.14.7,0,.79.43.79,1.06a27.68,27.68,0,0,1-1,5.17c-.2.7-.53,1.49-.53,1.59s0,.14,0,.14.13-.14.16-.2c1-1.59,3.82-7.76,5.77-7.76,1.13,0,1.26.5,1.26,1.59,0,.76-.13,1.93-1.26,1.93s-.43-1.53-.93-1.53c-1.36,0-6.33,10.08-6.86,11.11a.55.55,0,0,1-.56.29c-.23,0-.73-.06-.73-.53a4.4,4.4,0,0,1,.13-.63l2.36-8.48Z" transform="translate(-84.31 -208.87)"></path><path fill="var(--logoColorPrimary)" d="M343.87,214.27a.73.73,0,0,1-.83.79c-1,0-1.25-1.32-2.08-1.32-.54,0-1.07.36-1.07,1.39a14.77,14.77,0,0,0,.77,3.45,15.31,15.31,0,0,1,.76,3.87c0,2.59-1.46,4.08-4,4.08-1.93,0-2.66-.66-2.66-1.69a.89.89,0,0,1,.87-.9c1.19,0,1,1.8,2.31,1.8a1.72,1.72,0,0,0,1.86-2,13.7,13.7,0,0,0-.76-3.45,14.19,14.19,0,0,1-.77-3.38c0-2.42,1.27-4,3.69-4,1.12,0,1.95.43,1.95,1.33Z" transform="translate(-84.31 -208.87)"></path><polygon fill="var(--logoColorPrimary)" points="0 2.63 5.63 2.63 5.63 7.68 8.27 7.68 8.27 2.63 13.9 2.63 13.9 17.58 8.27 17.58 8.27 12 5.63 12 5.63 17.58 0 17.58 0 2.63 0 2.63"></polygon><polygon fill="var(--logoColorPrimary)" points="24.29 2.63 35.48 2.63 35.48 6.47 29.93 6.47 29.93 8.09 35.08 8.09 35.08 11.93 29.93 11.93 29.93 13.7 35.66 13.7 35.66 17.58 24.29 17.58 24.29 2.63 24.29 2.63"></polygon><path fill="var(--logoColorPrimary)" d="M128.1,226.47h5.68l.55-2.39h4.35l.51,2.39h6.17l-4.71-15h-7.6l-5,15Zm9.76-6h-2.65l1.37-5.9,1.28,5.9Z" transform="translate(-84.31 -208.87)"></path><path fill="var(--logoColorPrimary)" d="M153.54,226.45h5.64V221a4.7,4.7,0,0,1,.51,0c1.35,0,1.54.64,1.77,2.25l.14,1.11a17.64,17.64,0,0,0,.44,2.08h5.71c-.25-1.11-.44-2-.52-2.66l-.19-1.6c-.27-2.16-.75-3.07-2.76-3.41,2-.52,2.95-1.68,2.95-3.49,0-3-1.93-3.79-6-3.79h-7.65v14.95Zm5.64-8.79v-2.82c.24,0,.45,0,.64,0,1.26,0,1.82.4,1.82,1.33s-.7,1.53-2,1.53a2.88,2.88,0,0,1-.41,0" transform="translate(-84.31 -208.87)"></path><path fill="var(--logoColorPrimary)" d="M181.34,221.65v.12c0,1,.46,1.49,1.43,1.49s1.4-.43,1.4-1.07a1.07,1.07,0,0,0-.59-1c-.77-.38-2.12-.59-3.88-1.15-2.41-.77-3.54-1.95-3.54-4,0-2.94,2.38-4.7,6.74-4.7,4,0,6.06,1.47,6.06,4.11v.31h-5c-.07-.89-.48-1.33-1.31-1.33s-1.25.44-1.25,1c0,1,1,1,2.93,1.52,3.47.92,5.13,1.88,5.13,4.6,0,3.16-2.53,5.22-6.85,5.22s-6.71-1.66-6.71-4.51a5.25,5.25,0,0,1,0-.54Z" transform="translate(-84.31 -208.87)"></path><polygon fill="var(--logoColorPrimary)" points="125.3 6.62 121.7 6.62 121.7 17.58 115.93 17.58 115.93 6.62 112.31 6.62 112.31 2.63 125.3 2.63 125.3 6.62 125.3 6.62"></polygon></svg></div><link rel="preload" href="/_next/static/css/3b7246742fc902e7.css" as="style"><link rel="stylesheet" href="/_next/static/css/3b7246742fc902e7.css" data-n-g=""><link rel="preload" href="/_next/static/css/d0aba2f90605c69c.css" as="style"><link rel="stylesheet" href="/_next/static/css/d0aba2f90605c69c.css" data-n-p=""><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script><script id="hnpprivacyId" src="https://www.sfgate.com/hdn/dynamic/hnpprivacy-min.js" defer="" data-nscript="beforeInteractive"></script><script defer="" src="/_next/static/chunks/4274.d13b890b8719e3a5.js"></script><script defer="" src="/_next/static/chunks/6258.a122556681504c5d.js"></script><script defer="" src="/_next/static/chunks/780.cea9ac400bd42082.js"></script><script defer="" src="/_next/static/chunks/5807.755ff90d4aafdde4.js"></script><script defer="" src="/_next/static/chunks/307.329c3c4842787201.js"></script><script defer="" src="/_next/static/chunks/7742.613556abd087de02.js"></script><script defer="" src="/_next/static/chunks/4975.48a20f8843b8dd5a.js"></script><script defer="" src="/_next/static/chunks/4413.3f4d6539069e82d9.js"></script><script defer="" src="/_next/static/chunks/9889.4384844e8f6c1ff3.js"></script><script defer="" src="/_next/static/chunks/4250.35df63d52fe24eea.js"></script><script defer="" src="/_next/static/chunks/1980.ed5c830c4571e9f3.js"></script><script defer="" src="/_next/static/chunks/1428.e7e748045e152cf2.js"></script><script defer="" src="/_next/static/chunks/64.14f2054efc5fa912.js"></script><script defer="" src="/_next/static/chunks/9156.0d47ee1910739bc4.js"></script><script defer="" src="/_next/static/chunks/2182.9b649856008105d6.js"></script><script defer="" src="/_next/static/chunks/7176.ce93730bc73f9204.js"></script><script defer="" src="/_next/static/chunks/8897.7f4cee763a5c4344.js"></script><script defer="" src="/_next/static/chunks/4147.1ba9e0639ecc34c0.js"></script><script defer="" src="/_next/static/chunks/5958.2a99680dacdbc24f.js"></script><script defer="" src="/_next/static/chunks/8180.2b8e3285ed37b3e6.js"></script><script defer="" src="/_next/static/chunks/6992.7a23d226f40dc894.js"></script><script defer="" src="/_next/static/chunks/1158.2d7b83d48578c457.js"></script><script defer="" src="/_next/static/chunks/3571.de9244319b1107c1.js"></script><script defer="" src="/_next/static/chunks/9121.f6572a1961909b17.js"></script><script defer="" src="/_next/static/chunks/6073.ae14a4c579b4e653.js"></script><script defer="" src="/_next/static/chunks/6514.b16a279cd8dfea8b.js"></script><script defer="" src="/_next/static/chunks/6660.d79af3d07c085dcd.js"></script><script defer="" src="/_next/static/chunks/4658.ed05f976a26965f1.js"></script><script defer="" src="/_next/static/chunks/4918.b7ddeab2e61b5808.js"></script><script src="/_next/static/chunks/webpack-ce8e1f4726711831.js" defer=""></script><script src="/_next/static/chunks/framework-5ccd8d6d85c444a9.js" defer=""></script><script src="/_next/static/chunks/main-5110137a1465b231.js" defer=""></script><script src="/_next/static/chunks/pages/_app-edfef23515b6d173.js" defer=""></script><script src="/_next/static/chunks/117-668f6982df291192.js" defer=""></script><script src="/_next/static/chunks/9329-a68c32409ccc5fea.js" defer=""></script><script src="/_next/static/chunks/9010-73fd93726689efc4.js" defer=""></script><script src="/_next/static/chunks/5548-459c62ab34badb49.js" defer=""></script><script src="/_next/static/chunks/748-9af0e5b8724fa28e.js" defer=""></script><script src="/_next/static/chunks/1631-151e8a991eb415e6.js" defer=""></script><script src="/_next/static/chunks/251-6fa0ce573732498a.js" defer=""></script><script src="/_next/static/chunks/pages/%5B...all%5D-92f70dab2b103461.js" defer=""></script><script src="/_next/static/vx6pMFQfRwni0c3YG05Em/_buildManifest.js" defer=""></script><script src="/_next/static/vx6pMFQfRwni0c3YG05Em/_ssgManifest.js" defer=""></script><script>let FF_FOUC_FIX</script><div id="__next"><div class="LoadingIndicator_container__2D_zg LoadingIndicator_complete__elXsa z1005 pen fix top left bg-primary y4px tw03"></div><div><div data-block-type="ad" data-small-id="Crown" data-large-id="Crown" data-unit="hnp-sfgate.com/article_dtc" class="tac ox-hidden"></div></div><header class="top z1003 s bg-white b-gray300"><div class="pageHeader mya aic grid xs:px20 mw1400px x100 mxa h3h1n9r xs:py16 h15rpw5w"><span class="abs top bgt ctp mw50px xs:mw140px j15desut"><a href="#content" aria-label="Skip to main content">Skip to main content</a></span><div class="xs:ml0 ml20 mr16 xs:mr16 col1 row1 sm:row1span2"><button class="bn bgt cp f aic jcc fdc g4 c-inherit c-black td300 hover:o70 -mb4 c15ycr21" aria-label="menu" aria-expanded="false"><svg width="19" height="14" fill="none" viewBox="0 0 23 15" class="p0"><path id="Shape" fill-rule="evenodd" clip-rule="evenodd" d="M2.17984 3.50003C2.17984 3.15486 2.45967 2.87503 2.80484 2.87503H20.1948C20.54 2.87503 20.8198 3.15486 20.8198 3.50003C20.8198 3.84521 20.54 4.12503 20.1948 4.12503H2.80484C2.45967 4.12503 2.17984 3.84521 2.17984 3.50003ZM2.18 7.50007C2.18 7.15489 2.45982 6.87507 2.805 6.87507H11.8387C12.1839 6.87507 12.4637 7.15489 12.4637 7.50007C12.4637 7.84525 12.1839 8.12507 11.8387 8.12507H2.805C2.45982 8.12507 2.18 7.84525 2.18 7.50007ZM2.18 11.5001C2.18 11.1549 2.45982 10.8751 2.805 10.8751H20.195C20.5402 10.8751 20.82 11.1549 20.82 11.5001C20.82 11.8452 20.5402 12.1251 20.195 12.1251H2.805C2.45982 12.1251 2.18 11.8452 2.18 11.5001Z" fill="currentColor"></path></svg><div class="f fdc g4"></div></button></div><aside aria-hidden="true" class="bg-white -ttx100vw md:-ttx330px vh c187jyjj x100vw md:mw330px fix top bottom left z1001 p20 f fdc oy-auto"><div class="f aic rel mb8" role="search"><button class="bn bgt cp f aic jcc fdc g4 c-inherit c-black td300 hover:o70 mr8 md:none" aria-label="close"><svg width="16" height="16" fill="none" viewBox="0 0 14 13" class="p0 c-black td300 hover:o70"><path id="Path 5" d="M2.50195 2.00183L11.4983 10.9981" stroke="currentColor" stroke-width="1.25" stroke-linecap="round"></path><path id="Path 5_2" d="M2.50195 10.9982L11.4983 2.00187" stroke="currentColor" stroke-width="1.25" stroke-linecap="round"></path></svg><div class="f fdc g4"></div></button><input id="searchInput" type="text" placeholder="Search" aria-label="search bar" class="ff-fontG fw-fontG fs-fontG lh13 fs14 b-gray400 placeholder:c-gray600 c-black border br4 x100 pr40 py12 pl16 bgt ow1 o-focus" value=""><button class="bn bgt cp f aic jcc fdc g4 c-inherit c-black td300 hover:o70 abs right top bottom mr16" aria-label="search"><svg width="16" height="16" fill="none" viewBox="0 0 16 17" class="p0 c-black td300 hover:o70"><circle cx="7.49843" cy="7.99843" r="5.87343" stroke="currentColor" stroke-width="1.25"></circle><line x1="11.8585" y1="11.902" x2="14.923" y2="14.4733" stroke="currentColor" stroke-width="1.25" stroke-linecap="round"></line></svg><div class="f fdc g4"></div></button></div><a href="https://link.sfgate.com/join/signup-sfgate" data-link="native" role="button" class="td300 cp f aic jcc disabled:cd wsn px16 py8 ff-fontE fw-fontE fs-fontE lh15 lg:fs16 fs12 bg-primaryAccessible hover:o80 c-white disabled:bg-gray300 disabled:c-gray600 border bn tac br48px mt8">Newsletters</a><nav class="sy8 mt8"><div class="x100"><div class="f jcb py8"><a href="/" data-link="native" data-eid="navigationItem-979" class="hover:tdn hover:o70 td300 tpo ttfeio ff-fontD fw-fontD fs-fontD lh12 fs20 c-black">Home</a><button class="bn bgt cp f aic jcc fdc g4 c-inherit c-black td300 hover:o70" aria-label="expand menu"><svg width="16" height="16" fill="none" viewBox="0 0 8 14" class="p0 c-gray500 hover:c-gray400 rot90"><path d="M1.64558 0.700159C1.3527 0.407255 0.877829 0.407236 0.584925 0.700118C0.29202 0.993 0.292002 1.46787 0.584884 1.76078L1.64558 0.700159ZM6.35399 7.53033L6.8843 8.06068L7.945 7.00006L7.41469 6.46971L6.35399 7.53033ZM0.584884 1.76078L6.35399 7.53033L7.41469 6.46971L1.64558 0.700159L0.584884 1.76078Z" fill="currentColor" class="r1rpzmwd tpt td100 ttfl"></path><path d="M1.64558 13.2998C1.3527 13.5927 0.877829 13.5928 0.584925 13.2999C0.29202 13.007 0.292002 12.5321 0.584884 12.2392L1.64558 13.2998ZM6.35399 6.46967L6.8843 5.93932L7.945 6.99994L7.41469 7.53029L6.35399 6.46967ZM0.584884 12.2392L6.35399 6.46967L7.41469 7.53029L1.64558 13.2998L0.584884 12.2392Z" fill="currentColor" class="l1aso11h tpt td100 ttfl"></path></svg><div class="f fdc g4"></div></button></div><ul class="ff-fontG fw-fontG fs-fontG lh13 fs18 c-gray600 hide lir ml24 mt8 sy16"><li> <a href="/home/article/About-SFGATE-15613713.php" data-link="native" data-eid="navigationItem-1094" class="">About SFGATE</a></li><li> <a href="/home/article/SFGATE-Staff-15734829.php" data-link="native" data-eid="navigationItem-1100" class="">Contact SFGATE</a></li><li> <a href="https://link.sfgate.com/join/signup-sfgate" data-link="native" data-eid="navigationItem-3140" class="">Newsletters</a></li><li> <a href="http://sfc.ipublishmarketplace.com/sf-marketplace/" data-link="native" data-eid="navigationItem-3383" class="">Classifieds</a></li><li> <a href="/standards/" data-link="native" data-eid="navigationItem-5749" class="">Standards & Practices</a></li><li> <a href="https://marketing.sfgate.com/advertise-with-us-today?utm_source=sfgate" data-link="native" data-eid="navigationItem-1096" class="">Advertise With Us</a></li><li> <a href="/privacy-policy/" data-link="native" data-eid="navigationItem-1097" class="">Privacy Notice</a></li><li> <a href="/termsandconditions/" data-link="native" data-eid="navigationItem-3085" class="">Terms of Use</a></li><li> <a href="http://www.aboutads.info/choices/" data-link="native" data-eid="navigationItem-3087" class="">Ad Choices</a></li><li> <a href="/mydata/" data-link="native" data-eid="navigationItem-5429" class="">Your Privacy Choices</a></li></ul></div><div class="x100"><div class="f jcb py8"><a href="/news/" data-link="native" data-eid="navigationItem-978" class="hover:tdn hover:o70 td300 tpo ttfeio ff-fontD fw-fontD fs-fontD lh12 fs20 c-black">News</a><button class="bn bgt cp f aic jcc fdc g4 c-inherit c-black td300 hover:o70" aria-label="expand menu"><svg width="16" height="16" fill="none" viewBox="0 0 8 14" class="p0 c-gray500 hover:c-gray400 rot90"><path d="M1.64558 0.700159C1.3527 0.407255 0.877829 0.407236 0.584925 0.700118C0.29202 0.993 0.292002 1.46787 0.584884 1.76078L1.64558 0.700159ZM6.35399 7.53033L6.8843 8.06068L7.945 7.00006L7.41469 6.46971L6.35399 7.53033ZM0.584884 1.76078L6.35399 7.53033L7.41469 6.46971L1.64558 0.700159L0.584884 1.76078Z" fill="currentColor" class="r1rpzmwd tpt td100 ttfl"></path><path d="M1.64558 13.2998C1.3527 13.5927 0.877829 13.5928 0.584925 13.2999C0.29202 13.007 0.292002 12.5321 0.584884 12.2392L1.64558 13.2998ZM6.35399 6.46967L6.8843 5.93932L7.945 6.99994L7.41469 7.53029L6.35399 6.46967ZM0.584884 12.2392L6.35399 6.46967L7.41469 7.53029L1.64558 13.2998L0.584884 12.2392Z" fill="currentColor" class="l1aso11h tpt td100 ttfl"></path></svg><div class="f fdc g4"></div></button></div><ul class="ff-fontG fw-fontG fs-fontG lh13 fs18 c-gray600 hide lir ml24 mt8 sy16"><li> <a href="/bayarea/" data-link="native" data-eid="navigationItem-4203" class="">Bay Area</a></li><li> <a href="/california-wildfires/" data-link="native" data-eid="navigationItem-4425" class="">California Wildfires</a></li><li> <a href="/education/" data-link="native" data-eid="navigationItem-3950" class="">Education</a></li><li> <a href="/weather/" data-link="native" data-eid="navigationItem-4204" class="">Weather</a></li><li> <a href="/health/" data-link="native" data-eid="navigationItem-1001" class="">Health</a></li><li> <a href="/sponsoredarticles/business/" data-link="native" data-eid="navigationItem-1320" class="">Sponsored Content</a></li><li> <a href="/politics/" data-link="native" data-eid="navigationItem-994" class="">Politics</a></li></ul></div><div class="x100"><div class="f jcb py8"><a href="/local/" data-link="native" data-eid="navigationItem-5392" class="hover:tdn hover:o70 td300 tpo ttfeio ff-fontD fw-fontD fs-fontD lh12 fs20 c-black">Local</a><button class="bn bgt cp f aic jcc fdc g4 c-inherit c-black td300 hover:o70" aria-label="expand menu"><svg width="16" height="16" fill="none" viewBox="0 0 8 14" class="p0 c-gray500 hover:c-gray400 rot90"><path d="M1.64558 0.700159C1.3527 0.407255 0.877829 0.407236 0.584925 0.700118C0.29202 0.993 0.292002 1.46787 0.584884 1.76078L1.64558 0.700159ZM6.35399 7.53033L6.8843 8.06068L7.945 7.00006L7.41469 6.46971L6.35399 7.53033ZM0.584884 1.76078L6.35399 7.53033L7.41469 6.46971L1.64558 0.700159L0.584884 1.76078Z" fill="currentColor" class="r1rpzmwd tpt td100 ttfl"></path><path d="M1.64558 13.2998C1.3527 13.5927 0.877829 13.5928 0.584925 13.2999C0.29202 13.007 0.292002 12.5321 0.584884 12.2392L1.64558 13.2998ZM6.35399 6.46967L6.8843 5.93932L7.945 6.99994L7.41469 7.53029L6.35399 6.46967ZM0.584884 12.2392L6.35399 6.46967L7.41469 7.53029L1.64558 13.2998L0.584884 12.2392Z" fill="currentColor" class="l1aso11h tpt td100 ttfl"></path></svg><div class="f fdc g4"></div></button></div><ul class="ff-fontG fw-fontG fs-fontG lh13 fs18 c-gray600 hide lir ml24 mt8 sy16"><li> <a href="/sfhistory/" data-link="native" data-eid="navigationItem-5393" class="">SF History</a></li><li> <a href="/sponsoredarticles/lifestyle/" data-link="native" data-eid="navigationItem-4342" class="">Sponsored Content</a></li></ul></div><div class="x100"><div class="f jcb py8"><a href="/la/" data-link="native" data-eid="navigationItem-6389" class="hover:tdn hover:o70 td300 tpo ttfeio ff-fontD fw-fontD fs-fontD lh12 fs20 c-black">Los Angeles</a></div></div><div class="x100"><div class="f jcb py8"><a href="/best/" data-link="native" data-eid="navigationItem-6381" class="hover:tdn hover:o70 td300 tpo ttfeio ff-fontD fw-fontD fs-fontD lh12 fs20 c-black">Best Of</a></div></div><div class="x100"><div class="f jcb py8"><a href="/sports/" data-link="native" data-eid="navigationItem-980" class="hover:tdn hover:o70 td300 tpo ttfeio ff-fontD fw-fontD fs-fontD lh12 fs20 c-black">Sports</a><button class="bn bgt cp f aic jcc fdc g4 c-inherit c-black td300 hover:o70" aria-label="expand menu"><svg width="16" height="16" fill="none" viewBox="0 0 8 14" class="p0 c-gray500 hover:c-gray400 rot90"><path d="M1.64558 0.700159C1.3527 0.407255 0.877829 0.407236 0.584925 0.700118C0.29202 0.993 0.292002 1.46787 0.584884 1.76078L1.64558 0.700159ZM6.35399 7.53033L6.8843 8.06068L7.945 7.00006L7.41469 6.46971L6.35399 7.53033ZM0.584884 1.76078L6.35399 7.53033L7.41469 6.46971L1.64558 0.700159L0.584884 1.76078Z" fill="currentColor" class="r1rpzmwd tpt td100 ttfl"></path><path d="M1.64558 13.2998C1.3527 13.5927 0.877829 13.5928 0.584925 13.2999C0.29202 13.007 0.292002 12.5321 0.584884 12.2392L1.64558 13.2998ZM6.35399 6.46967L6.8843 5.93932L7.945 6.99994L7.41469 7.53029L6.35399 6.46967ZM0.584884 12.2392L6.35399 6.46967L7.41469 7.53029L1.64558 13.2998L0.584884 12.2392Z" fill="currentColor" class="l1aso11h tpt td100 ttfl"></path></svg><div class="f fdc g4"></div></button></div><ul class="ff-fontG fw-fontG fs-fontG lh13 fs18 c-gray600 hide lir ml24 mt8 sy16"><li> <a href="/49ers/" data-link="native" data-eid="navigationItem-1010" class="">49ers</a></li><li> <a href="/giants/" data-link="native" data-eid="navigationItem-1012" class="">Giants</a></li><li> <a href="/athletics/" data-link="native" data-eid="navigationItem-1013" class="">A's</a></li><li> <a href="/warriors/" data-link="native" data-eid="navigationItem-1014" class="">Warriors</a></li></ul></div><div class="x100"><div class="f jcb py8"><a href="/sf-culture/" data-link="native" data-eid="navigationItem-5388" class="hover:tdn hover:o70 td300 tpo ttfeio ff-fontD fw-fontD fs-fontD lh12 fs20 c-black">Culture</a><button class="bn bgt cp f aic jcc fdc g4 c-inherit c-black td300 hover:o70" aria-label="expand menu"><svg width="16" height="16" fill="none" viewBox="0 0 8 14" class="p0 c-gray500 hover:c-gray400 rot90"><path d="M1.64558 0.700159C1.3527 0.407255 0.877829 0.407236 0.584925 0.700118C0.29202 0.993 0.292002 1.46787 0.584884 1.76078L1.64558 0.700159ZM6.35399 7.53033L6.8843 8.06068L7.945 7.00006L7.41469 6.46971L6.35399 7.53033ZM0.584884 1.76078L6.35399 7.53033L7.41469 6.46971L1.64558 0.700159L0.584884 1.76078Z" fill="currentColor" class="r1rpzmwd tpt td100 ttfl"></path><path d="M1.64558 13.2998C1.3527 13.5927 0.877829 13.5928 0.584925 13.2999C0.29202 13.007 0.292002 12.5321 0.584884 12.2392L1.64558 13.2998ZM6.35399 6.46967L6.8843 5.93932L7.945 6.99994L7.41469 7.53029L6.35399 6.46967ZM0.584884 12.2392L6.35399 6.46967L7.41469 7.53029L1.64558 13.2998L0.584884 12.2392Z" fill="currentColor" class="l1aso11h tpt td100 ttfl"></path></svg><div class="f fdc g4"></div></button></div><ul class="ff-fontG fw-fontG fs-fontG lh13 fs18 c-gray600 hide lir ml24 mt8 sy16"><li> <a href="/movies/" data-link="native" data-eid="navigationItem-1028" class="">Movies</a></li><li> <a href="/streaming/" data-link="native" data-eid="navigationItem-5390" class="">Streaming</a></li><li> <a href="/tech/" data-link="native" data-eid="navigationItem-5391" class="">Tech & Social Media</a></li><li> <a href="/market/" data-link="native" data-eid="navigationItem-6101" class="">Marketplace</a></li><li> <a href="/cannabis" data-link="native" data-eid="navigationItem-3223" class="">Cannabis</a></li><li> <a href="/senior-living/" data-link="native" data-eid="navigationItem-5039" class="">Senior Living</a></li></ul></div><div class="x100"><div class="f jcb py8"><a href="/food/" data-link="native" data-eid="navigationItem-983" class="hover:tdn hover:o70 td300 tpo ttfeio ff-fontD fw-fontD fs-fontD lh12 fs20 c-black">Food + Drink</a></div></div><div class="x100"><div class="f jcb py8"><a href="/travel/" data-link="native" data-eid="navigationItem-985" class="hover:tdn hover:o70 td300 tpo ttfeio ff-fontD fw-fontD fs-fontD lh12 fs20 c-black">Travel</a><button class="bn bgt cp f aic jcc fdc g4 c-inherit c-black td300 hover:o70" aria-label="expand menu"><svg width="16" height="16" fill="none" viewBox="0 0 8 14" class="p0 c-gray500 hover:c-gray400 rot90"><path d="M1.64558 0.700159C1.3527 0.407255 0.877829 0.407236 0.584925 0.700118C0.29202 0.993 0.292002 1.46787 0.584884 1.76078L1.64558 0.700159ZM6.35399 7.53033L6.8843 8.06068L7.945 7.00006L7.41469 6.46971L6.35399 7.53033ZM0.584884 1.76078L6.35399 7.53033L7.41469 6.46971L1.64558 0.700159L0.584884 1.76078Z" fill="currentColor" class="r1rpzmwd tpt td100 ttfl"></path><path d="M1.64558 13.2998C1.3527 13.5927 0.877829 13.5928 0.584925 13.2999C0.29202 13.007 0.292002 12.5321 0.584884 12.2392L1.64558 13.2998ZM6.35399 6.46967L6.8843 5.93932L7.945 6.99994L7.41469 7.53029L6.35399 6.46967ZM0.584884 12.2392L6.35399 6.46967L7.41469 7.53029L1.64558 13.2998L0.584884 12.2392Z" fill="currentColor" class="l1aso11h tpt td100 ttfl"></path></svg><div class="f fdc g4"></div></button></div><ul class="ff-fontG fw-fontG fs-fontG lh13 fs18 c-gray600 hide lir ml24 mt8 sy16"><li> <a href="/renotahoe/" data-link="native" data-eid="navigationItem-1062" class="">Tahoe</a></li><li> <a href="/california-parks/" data-link="native" data-eid="navigationItem-5693" class="">California Parks</a></li><li> <a href="/disneyland/" data-link="native" data-eid="navigationItem-5694" class="">Disneyland</a></li><li> <a href="/hawaii/" data-link="native" data-eid="navigationItem-1063" class="">Hawaii</a></li><li> <a href="/winecountry/" data-link="native" data-eid="navigationItem-1060" class="">Wine Country</a></li><li> <a href="/monterey-carmel/" data-link="native" data-eid="navigationItem-1061" class="">Monterey-Carmel</a></li></ul></div><div class="x100"><div class="f jcb py8"><a href="/realestate/" data-link="native" data-eid="navigationItem-989" class="hover:tdn hover:o70 td300 tpo ttfeio ff-fontD fw-fontD fs-fontD lh12 fs20 c-black">Real Estate</a><button class="bn bgt cp f aic jcc fdc g4 c-inherit c-black td300 hover:o70" aria-label="expand menu"><svg width="16" height="16" fill="none" viewBox="0 0 8 14" class="p0 c-gray500 hover:c-gray400 rot90"><path d="M1.64558 0.700159C1.3527 0.407255 0.877829 0.407236 0.584925 0.700118C0.29202 0.993 0.292002 1.46787 0.584884 1.76078L1.64558 0.700159ZM6.35399 7.53033L6.8843 8.06068L7.945 7.00006L7.41469 6.46971L6.35399 7.53033ZM0.584884 1.76078L6.35399 7.53033L7.41469 6.46971L1.64558 0.700159L0.584884 1.76078Z" fill="currentColor" class="r1rpzmwd tpt td100 ttfl"></path><path d="M1.64558 13.2998C1.3527 13.5927 0.877829 13.5928 0.584925 13.2999C0.29202 13.007 0.292002 12.5321 0.584884 12.2392L1.64558 13.2998ZM6.35399 6.46967L6.8843 5.93932L7.945 6.99994L7.41469 7.53029L6.35399 6.46967ZM0.584884 12.2392L6.35399 6.46967L7.41469 7.53029L1.64558 13.2998L0.584884 12.2392Z" fill="currentColor" class="l1aso11h tpt td100 ttfl"></path></svg><div class="f fdc g4"></div></button></div><ul class="ff-fontG fw-fontG fs-fontG lh13 fs18 c-gray600 hide lir ml24 mt8 sy16"><li> <a href="/newhomes/" data-link="native" data-eid="navigationItem-1134" class="">New Homes</a></li><li> <a href="/openhomes/" data-link="native" data-eid="navigationItem-1135" class="">(Virtual) Open Homes</a></li><li> <a href="/luxuryhomes/" data-link="native" data-eid="navigationItem-1137" class="">Luxury</a></li><li> <a href="/rentals/" data-link="native" data-eid="navigationItem-1138" class="">Rentals</a></li><li> <a href="/mortgagerates/" data-link="native" data-eid="navigationItem-1139" class="">Mortgage Rates</a></li><li> <a href="https://ezads.sfchron.com/sf-adportal/realestate/index.html?utm_campaign=subnav" data-link="native" data-eid="navigationItem-1142" class="">Place a Real Estate Ad</a></li><li> <a href="/neighborhoods/" data-link="native" data-eid="navigationItem-1143" class="">Neighborhood Guides</a></li><li> <a href="/homeandgarden/" data-link="native" data-eid="navigationItem-1047" class="">Home & Garden</a></li></ul></div><div class="x100"><div class="f jcb py8"><a href="https://www.legacy.com/obituaries/sfgate?ipid=desktopnav9-12" data-link="native" data-eid="navigationItem-4351" class="hover:tdn hover:o70 td300 tpo ttfeio ff-fontD fw-fontD fs-fontD lh12 fs20 c-black">Obits</a><button class="bn bgt cp f aic jcc fdc g4 c-inherit c-black td300 hover:o70" aria-label="expand menu"><svg width="16" height="16" fill="none" viewBox="0 0 8 14" class="p0 c-gray500 hover:c-gray400 rot90"><path d="M1.64558 0.700159C1.3527 0.407255 0.877829 0.407236 0.584925 0.700118C0.29202 0.993 0.292002 1.46787 0.584884 1.76078L1.64558 0.700159ZM6.35399 7.53033L6.8843 8.06068L7.945 7.00006L7.41469 6.46971L6.35399 7.53033ZM0.584884 1.76078L6.35399 7.53033L7.41469 6.46971L1.64558 0.700159L0.584884 1.76078Z" fill="currentColor" class="r1rpzmwd tpt td100 ttfl"></path><path d="M1.64558 13.2998C1.3527 13.5927 0.877829 13.5928 0.584925 13.2999C0.29202 13.007 0.292002 12.5321 0.584884 12.2392L1.64558 13.2998ZM6.35399 6.46967L6.8843 5.93932L7.945 6.99994L7.41469 7.53029L6.35399 6.46967ZM0.584884 12.2392L6.35399 6.46967L7.41469 7.53029L1.64558 13.2998L0.584884 12.2392Z" fill="currentColor" class="l1aso11h tpt td100 ttfl"></path></svg><div class="f fdc g4"></div></button></div><ul class="ff-fontG fw-fontG fs-fontG lh13 fs18 c-gray600 hide lir ml24 mt8 sy16"><li> <a href="https://www.legacy.com/obituaries/sfgate?ipid=desktopnav9-12" data-link="native" data-eid="navigationItem-4353" class="">Obituaries</a></li><li> <a href="http://ezads.sfchron.com/sf-adportal/obits/index.html?ipid=desktopnav9-12" data-link="native" data-eid="navigationItem-4352" class="">Place an Obituary</a></li></ul></div><div class="b-gray400 bb pen"></div><div class="x100"><div class="f jcb py8"><a href="https://www.sfgate.com/coupons" data-link="native" data-eid="navigationItem-5565" class="hover:tdn hover:o70 td300 tpo ttfeio ff-fontD fw-fontD fs-fontD lh12 fs20 c-black">Coupons</a></div></div><div class="x100"><div class="f jcb py8"><a href="/shopping/" data-link="native" data-eid="navigationItem-5610" class="hover:tdn hover:o70 td300 tpo ttfeio ff-fontD fw-fontD fs-fontD lh12 fs20 c-black">Shopping</a></div></div><div class="x100"><div class="f jcb py8"><a href="https://www.sfgate.com/puzzles/" data-link="native" data-eid="navigationItem-6374" class="hover:tdn hover:o70 td300 tpo ttfeio ff-fontD fw-fontD fs-fontD lh12 fs20 c-black">Puzzmo</a></div></div></nav></aside><div aria-label="overlay" role="button" tabindex="0" class="fix top bottom left right bg-black td300 tpo ttfeio o0 vh"></div><a href="/" data-link="native" aria-label="Site Logo - Back to Home" class="f aic mxvw36 sm:mxvw22 y32px sm:y48px my8 lg:col1Span md:row1 md:jsfc md:ml0 sm:row1 md:col1Span md:jsfc sm:ml0 xs:my0"><svg viewBox="0 0 129 46" fill="none" xmlns="http://www.w3.org/2000/svg" class="y100 b1f26hy5" role="img" aria-label="SF Gate Logo"><desc>SF Gate Logo</desc><use href="#logosource-sf-gate"></use></svg></a><a href="https://link.sfgate.com/join/signup-sfgate" data-link="native" role="button" class="td300 cp f aic jcc disabled:cd wsn px16 py8 ff-fontE fw-fontE fs-fontE lh15 lg:fs16 fs12 bg-primaryAccessible hover:o80 c-white disabled:bg-gray300 disabled:c-gray600 border bn tac sm:br48px xs:row1 xs:col4 col1span3">Newsletters</a></div><div class="b-gray300 bb pen none xs:block"></div></header><main class="mnh100vh rel"><div data-layout="Layout1Column" class="f fdc mxa mb16 sm:mb40"><div class="zone center"><div data-eid="collection-122065-news_alert_bar" class="package"><div class="f ais jcb sm:jcc fw sm:fwn px20 py16 bb bg-white b-gray300 xs:py24 sm:aic sm:fdr sm:pr16 sm:py32 sm:pl32 md:pl36 md:jcs lg:pl16 lg:jcc td300 tpo"><div class="f jcc aic mb8 sm:my0 sm:mr16"><span class="asfs ttu z0 p0 wsn ls12 ff-fontD fw-fontD fs-fontD lh12 fs14 c-justin">TOP STORY</span></div><div class="wsn sm:none"></div><div><span><div class="f sm:aic aie sm:pb0 sm:pr16"><a href="/bayarea/article/family-mourns-student-died-uc-berkeley-18672739.php" data-link="native" class="hover:o70 td300 sm:text-one-line text-two-line ff-fontD fw-fontD fs-fontD lh12 fs16 xs:fs20">Former YouTube CEO's son identified as student who died at UC Berkeley</a><div class="wsn none sm:block"></div></div></span></div></div></div><div class="package y100 md:pt40"><div><div data-block-type="ad" data-small-id="Flex1" data-large-id="Flex1" data-unit="hnp-sfgate.com/article_dtc" class="tac sm:mnh90px f aic jcc mt16 md:mt0 mnh90px ox-hidden"></div></div></div></div></div><div data-layout="Layout1Column" class="f fdc mxa mb16 sm:mb40"><div class="zone center f fdc g40"><div class="package"><section class="mw1200px mx20 lg:mx36 xl:mxa mb16"><div class="f fdc sy16"><div class="f fw aic ff-fontA fw-fontA fs-fontA lh12 ls20 ps1 lg:fs16 fs14 ls20"><a href="/news/" data-link="native" class="c-primaryAccessible ttu hover:o70 td300">News</a><span class="c-black mx8">|</span><a href="/bayarea/" data-link="native" class="c-primaryAccessible ttu hover:o70 td300">Bay Area & State</a></div><div class="rel"><div id="content" class="abs -top100"></div><h1 class="block ff-fontD fw-fontD fs-fontD lh11 ls07 lg:fs46 sm:fs36 fs28 ls07">A famous view in San Francisco is going to change</h1></div><h2 class="c-gray700 ff-fontG fw-fontG fs-fontG lh13 lg:fs20 md:fs18 fs16 tal">Workers are replacing the charming rusty chain that lines the road to Fort Point with a dull metal barrier</h2><div class="f jcb sm:aic sm:fdr sm:g0 fdc ais g16"><div class="f fdc sy4"><span class="c-gray700 f aic g2 fw owa"><span class="lg:fs16"><span class="ff-fontG fw-fontG fs-fontG lh12 ps1 lg:fs16 fs14 lg:fs16">By </span><span class="ff-fontD fw-fontD fs-fontD lh12 ps1 lg:fs16 fs14"><a href="/author/kent-german/" data-link="native" class="c-primaryAccessible hover:o70 td300 wbbw">Kent German</a></span></span></span><span><span class="ff-fontG fw-fontG fs-fontG lh12 ps1 lg:fs16 fs14 c-gray600"><time datetime="2023-12-22 10:50:53">Dec 22, 2023</time></span></span></div><div class="aic sx12 f"><a target="_blank" rel="noopener noreferrer" class="y32px" href="https://www.facebook.com/dialog/feed?app_id=1609422252616351&link=https%3A%2F%2Fsfgate.com%2Fbayarea%2Farticle%2Ffort-point-chain-removal-san-francisco-18569276.php%3Futm_campaign%3DCMS%2520Sharing%2520Tools%2520(Premium)%26utm_source%3Dfacebook.com%26utm_medium%3Dreferral&name=A%20famous%20view%20in%20San%20Francisco%20is%20going%20to%20change&description=Photographers%20won't%20love%20the%20removal%20of%20a%20barrier%20chain%20on%20the%20road%20to%20Fort%20Point.&picture=https%3A%2F%2Fs.hdnux.com%2Fphotos%2F01%2F35%2F55%2F34%2F24565517%2F3%2FrawImage.jpg&redirect_uri=https%3A%2F%2Fsfgate.com%2Fbayarea%2Farticle%2Ffort-point-chain-removal-san-francisco-18569276.php%3Futm_campaign%3DCMS%2520Sharing%2520Tools%2520(Premium)%26utm_source%3DUTMSOURCE%26utm_medium%3DUTMMEDIUM" aria-label="Share to Facebook"><svg width="32" height="32" fill="none" viewBox="0 0 33 33" class="p0 c-black td300 hover:o70"><circle cx="16.0518" cy="16.75" r="15.375" stroke="currentColor" stroke-width="1.25"></circle><path xmlns="http://www.w3.org/2000/svg" id="Path" d="M21.0518 8.86538V11.4038H19.4163C18.1351 11.4038 17.8955 11.9712 17.8955 12.7885V14.6058H20.9476L20.5413 17.4519H17.8955V24.75H14.708V17.4519H12.0518V14.6058H14.708V12.5096C14.708 10.0769 16.3226 8.75 18.6768 8.75C19.8018 8.75 20.7705 8.82692 21.0518 8.86538Z" fill="currentColor"></path></svg></a><a target="_blank" rel="noopener noreferrer" class="y32px" href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fsfgate.com%2Fbayarea%2Farticle%2Ffort-point-chain-removal-san-francisco-18569276.php%3Futm_campaign%3DCMS%2520Sharing%2520Tools%2520(Premium)%26utm_source%3Dt.co%26utm_medium%3Dreferral&text=A%20famous%20view%20in%20San%20Francisco%20is%20going%20to%20change&via=SFGate" aria-label="Share to Twitter"><svg width="32" height="32" fill="none" viewBox="0 0 33 33" class="p0 c-black td300 hover:o70"><circle cx="16.0518" cy="16.75" r="15.375" stroke="currentColor" stroke-width="1.25"></circle><path d="M24.0518 11.4125C23.6051 12.1125 23.0467 12.7359 22.4071 13.2391C22.4172 13.3922 22.4172 13.5453 22.4172 13.6984C22.4172 18.3687 19.1177 23.75 13.0873 23.75C11.2294 23.75 9.50353 23.1703 8.05176 22.1641C8.31572 22.1969 8.56952 22.2078 8.84364 22.2078C10.3766 22.2078 11.7878 21.65 12.9147 20.6984C11.4731 20.6656 10.265 19.6484 9.84871 18.2484C10.0518 18.2812 10.2548 18.3031 10.468 18.3031C10.7624 18.3031 11.0568 18.2594 11.3309 18.1828C9.82841 17.8547 8.7015 16.4328 8.7015 14.7156C8.7015 14.7047 8.7015 14.6828 8.7015 14.6719C9.13805 14.9344 9.64567 15.0984 10.1837 15.1203C9.30049 14.4859 8.72181 13.4031 8.72181 12.1781C8.72181 11.5219 8.88425 10.9203 9.16851 10.3953C10.7827 12.5391 13.2091 13.9391 15.9299 14.0922C15.8792 13.8297 15.8487 13.5563 15.8487 13.2828C15.8487 11.3359 17.3106 9.75 19.1279 9.75C20.0721 9.75 20.9249 10.1766 21.5238 10.8656C22.265 10.7125 22.9756 10.4172 23.6051 10.0125C23.3614 10.8328 22.8436 11.5219 22.1634 11.9594C22.8233 11.8828 23.4629 11.6859 24.0518 11.4125Z" fill="currentColor"></path></svg></a><a target="_blank" rel="noopener noreferrer" href="mailto:?subject=Your%20friend%20has%20shared%20a%20SFGATE%20link%20with%20you%3A&body=A%20famous%20view%20in%20San%20Francisco%20is%20going%20to%20change%0A%0Ahttps%3A%2F%2Fsfgate.com%2Fbayarea%2Farticle%2Ffort-point-chain-removal-san-francisco-18569276.php%3Futm_campaign%3DCMS%2520Sharing%2520Tools%2520(Premium)%26utm_source%3Dshare-by-email%26utm_medium%3Demail%0A%0APhotographers%20won't%20love%20the%20removal%20of%20a%20barrier%20chain%20on%20the%20road%20to%20Fort%20Point.%0A%0AThis%20message%20was%20sent%20via%20SFGATE" class="y32px" aria-label="Share from Email"><svg width="32" height="32" fill="none" viewBox="0 0 33 33" class="p0 c-black td300 hover:o70"><circle xmlns="http://www.w3.org/2000/svg" id="Circle" cx="16.0518" cy="16.75" r="15.375" stroke="currentColor" stroke-width="1.25"></circle><path xmlns="http://www.w3.org/2000/svg" id="Shape" fill-rule="evenodd" clip-rule="evenodd" d="M23.3018 11.75H9.80176C9.38754 11.75 9.05176 12.0944 9.05176 12.5192V20.9808C9.05176 21.4056 9.38754 21.75 9.80176 21.75H23.3018C23.716 21.75 24.0518 21.4056 24.0518 20.9808V12.5192C24.0518 12.0944 23.716 11.75 23.3018 11.75ZM11.4429 18.7566L13.6221 16.5774L11.4804 15.0575C11.3455 14.9618 11.3184 14.781 11.4197 14.6536C11.521 14.5263 11.7125 14.5006 11.8473 14.5963L16.5419 17.9279L21.2546 14.596C21.3896 14.5005 21.581 14.5265 21.6821 14.6541C21.7832 14.7816 21.7557 14.9624 21.6206 15.0578L19.5887 16.4944L21.7547 18.6604C21.8674 18.7731 21.8674 18.9557 21.7547 19.0683C21.6421 19.181 21.4594 19.181 21.3468 19.0683L19.1362 16.8578C19.1277 16.8493 19.1198 16.8403 19.1126 16.8311L16.7246 18.5194C16.6159 18.5962 16.4666 18.5961 16.3581 18.5191L14.0953 16.9133C14.0854 16.9276 14.0741 16.9412 14.0614 16.954L11.8509 19.1645C11.7382 19.2772 11.5556 19.2772 11.4429 19.1645C11.3303 19.0518 11.3303 18.8692 11.4429 18.7566Z" fill="currentColor"></path></svg></a></div></div></div><div></div><div class="b-gray500 bb pen mt16 col1Span row2 mb16 lg:gra"></div></section></div></div></div><div data-layout="Layout2ColumnPadded" class="f fdc lg:fdr lg:sx56 mx20 sm:mx32 xl:mxa xl:mw1200px mb20"><div class="mnw0 sm:px40 lg:px56 x100"><div class="package"><article class="rel"><figure class="rel f m0 fdc -mx20 sm:-mx40 lg:-mx56 x100vw si6437x l1x7eyin mb32"><div class="rel x100 block"><picture><img title="Article Image" alt="Link loss: Say goodbye to San Francisco’s favorite chain." loading="eager" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEBLAEsAAD/2wBDAA0JCgsKCA0LCgsODg0PEyAVExISEyccHhcgLikxMC4pLSwzOko+MzZGNywtQFdBRkxOUlNSMj5aYVpQYEpRUk//2wBDAQ4ODhMREyYVFSZPNS01T09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0//wAARCAAFAAgDASIAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAX/xAAcEAACAgIDAAAAAAAAAAAAAAAAAgERAwQSMsH/xAAVAQEBAAAAAAAAAAAAAAAAAAADBP/EABkRAQEAAwEAAAAAAAAAAAAAAAIBAAMRkf/aAAwDAQACEQMRAD8AqI+d1jhOut12w37AAH1NI9tyXcCVySeZ/9k=" style="aspect-ratio:3 / 2" class="x100 y100 opc bgpc ofcv bgscv block mnh0px fill"></picture></div><figcaption id="mediaCaptionAria" class="f fdc g2 rel pt8 px20 sm:px0"><span class="ff-fontG fw-fontG fs-fontG lh12 fs14 c-gray700 ya block"><span><p>Link loss: Say goodbye to San Francisco’s favorite chain.</p></span></span><span class="ff-fontG fw-fontG fs-fontG lh12 fs13 c-gray600 block mt2 mr48"><span>Smith Collection/Gado/Gado via Getty Images</span></span></figcaption></figure><div class="r1udwkp5 d1uy5mhj ff-fontJ fw-fontJ fs-fontJ lh18 fs18 mb32" data-block-type="text" data-dropcap="false"><p>Marine Drive in the <a href="https://www.sfgate.com/local/article/the-presidio-18171254.php" data-link="native" target="_blank" rel="noopener" class="">Presidio</a> isn’t even a mile along, but as it descends a short hill from Lincoln Boulevard, you’re awarded with one of the most commanding views in San Francisco. Ahead, the <a href="https://www.sfgate.com/local/article/golden-gate-bridge-17635462.php" data-link="native" target="_blank" rel="noopener" class="">Golden Gate Bridge</a> towers above the hulk of <a href="https://www.sfgate.com/local/article/SF-Fort-Point-Candlelight-Tour-is-better-at-night-16819913.php" data-link="native" target="_blank" rel="noopener" class="">Fort Point</a>, while on the right, the constantly churning bay splashes on the rocky shore.</p></div><div data-eid="item-100634" class="mb32 ar16-9"><img src="https://cdn-channels-pixel.ex.co/events/0012000001fxZm9AAE?integrationType=DEFAULT&template=design%2Farticle%2Fplatypus_two_column.tpl" alt="" class="x1px y1px vh abs" aria-hidden="true" width="1" height="1"><div id="30b0aaf4-cc13-4972-9cf9-ad9a05e5e62d"></div></div><div class="r1udwkp5 d1uy5mhj ff-fontJ fw-fontJ fs-fontJ lh18 fs18 mb32" data-block-type="text" data-dropcap="false"><p>Over the next few weeks, though, that view is going to change. The bridge and fort will still be there, but a large barrier chain that keeps awe-struck drivers from plunging into the icy water is being replaced by a more pedestrian aluminum barrier.</p></div><div class="r1udwkp5 d1uy5mhj ff-fontJ fw-fontJ fs-fontJ lh18 fs18 mb32" data-block-type="text" data-dropcap="false"><p>If you haven’t visited the site, you’d be forgiven for wondering what’s so special about a chain. But THIS chain, dangling between crumbling posts and rusty from years of fog and salty spray, has been featured in countless photos on <a href="https://www.instagram.com/explore/locations/380821229/fort-point-national-historic-site/" data-link="native" target="_blank" rel="noopener" class="">Instagram</a> and <a href="https://www.flickr.com/search/?text=fort%20point%20san%20francisco&view_all=1" data-link="native" target="_blank" rel="noopener" class="">Flickr</a>.</p></div><div class="pt16 sy16 bb bt b-gray300"><div class=""><p class="uiHeader11 f aic jcc ttu">Advertisement</p><p class="uiTextSmall f aic jcc">Article continues below this ad</p></div><div data-block-type="ad" data-small-id="A300" data-large-id="Inline-1" data-unit="hnp-sfgate.com/article_dtc" class="tac sm:mnh300px mb16 ox-hidden"></div></div><div class="r1udwkp5 d1uy5mhj ff-fontJ fw-fontJ fs-fontJ lh18 fs18 mb32" data-block-type="text" data-dropcap="false"><p>At least <a href="https://www.instagram.com/reel/C1Fbaf7PxRy/?igsh=MjJkMmIyYzQxYw%3D%3D" data-link="native" target="_blank" rel="noopener" class="">one Instagram user</a> is already mourning the chain’s loss. But a spokesman from the <a href="https://www.sfgate.com/california-parks/article/GGNRA-is-California-s-most-popular-national-park-17179619.php" data-link="native" target="_blank" rel="noopener" class="">Golden Gate National Recreation Area</a>, which manages the area, said there’s a good reason for its removal. </p></div><figure class="rel f m0 fdc -mx20 sm:mx0 x100vw sm:x100 mb32"><div class="rel x100 block"><picture><img title="Article Image" alt="The new barrier lining Marine Drive is smaller, but less romantic, than the former rusty chain." loading="lazy" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAA0JCgsKCA0LCgsODg0PEyAVExISEyccHhcgLikxMC4pLSwzOko+MzZGNywtQFdBRkxOUlNSMj5aYVpQYEpRUk//2wBDAQ4ODhMREyYVFSZPNS01T09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0//wAARCAAFAAgDAREAAhEBAxEB/8QAFAABAAAAAAAAAAAAAAAAAAAAA//EABwQAQACAgMBAAAAAAAAAAAAAAEDEQQhAAJBUf/EABUBAQEAAAAAAAAAAAAAAAAAAAAB/8QAFxEBAAMAAAAAAAAAAAAAAAAAAAEREv/aAAwDAQACEQMRAD8AOOTISasmTQStq32sPujfnJqSn//Z" style="aspect-ratio:3 / 2" class="x100 y100 opc bgpc ofcv bgscv block mnh0px fill"></picture></div><figcaption id="mediaCaptionAria" class="f fdc g2 rel pt8 px20 sm:px0"><span class="ff-fontG fw-fontG fs-fontG lh12 fs14 c-gray700 ya block"><span><p>The new barrier lining Marine Drive is smaller, but less romantic, than the former rusty chain.</p></span></span><span class="ff-fontG fw-fontG fs-fontG lh12 fs13 c-gray600 block mt2 mr48"><span>Golden Gate National Recreation Area</span></span></figcaption></figure><div class="r1udwkp5 d1uy5mhj ff-fontJ fw-fontJ fs-fontJ lh18 fs18 mb32" data-block-type="text" data-dropcap="false"><p>The new two-rail, 3-foot tall barrier will be more tolerant of the harsh marine environment, said spokesperson Julian Espinoza, and its smaller footprint will make the narrow roadway safer for everyone. And while they’ll still be awarded unobstructed views, he acknowledged the pain of photographers the world over.</p></div><div class="r1udwkp5 d1uy5mhj ff-fontJ fw-fontJ fs-fontJ lh18 fs18 mb32" data-block-type="text" data-dropcap="false"><p>“While we appreciate that some visitors really like the old design, the new barrier will improve the safety of the pedestrians, cyclists and drivers using Marine Drive and that’s been our priority for this project,” Espinoza said.</p></div><div class="md:pt16 md:sy16 md:bb md:bt b-gray300"><div class="vh y0 mb0 md:vv md:y100 md:mb16"><p class="uiHeader11 f aic jcc ttu">Advertisement</p><p class="uiTextSmall f aic jcc">Article continues below this ad</p></div><div data-block-type="ad" data-small-id="NTV7ARD" data-large-id="Inline-2" data-unit="hnp-sfgate.com/article_dtc" class="tac sm:mnh300px mb16 ox-hidden"></div></div><div class="r1udwkp5 d1uy5mhj ff-fontJ fw-fontJ fs-fontJ lh18 fs18 mb32" data-block-type="text" data-dropcap="false"><p>Though the chain in its current design almost looked as if it was as old as the Civil War-era fort, Espinoza said it was installed only in the 1990s. Its replacement, on the other hand, will look closer to the barrier that lined Marine Drive during the 1950s (a fact confirmed by <a href="https://www.youtube.com/watch?v=B8cWjLMuJgo" data-link="native" target="_blank" rel="noopener" class="">watching</a> the <a href="https://reelsf.com/reelsf/vertigo-fort-point" data-link="native" target="_blank" rel="noopener" class="">relevant scene</a> from 1958’s “<a href="https://www.imdb.com/title/tt0052357/" data-link="native" target="_blank" rel="noopener" class="">Vertigo</a>”). </p></div><div class="r1udwkp5 d1uy5mhj ff-fontJ fw-fontJ fs-fontJ lh18 fs18 mb32" data-block-type="text" data-dropcap="false"><p>If you’re eager to get one last shot, get there fast, as the project is moving ahead quickly. One lane of the roadway <a href="https://www.nps.gov/fopo/index.htm" data-link="native" target="_blank" rel="noopener" class="">will be closed</a> during the construction period (now scheduled to end Jan. 24), but Espinoza said visitors will still have full access to Fort Point during that time.</p></div><div data-eid="card-20210" class="mb32"><div class="b-gray400 bb pen x100"></div><div class="f ais fdc pt24"><div class="tac c-black ff-fontE fw-fontE fs-fontE md:lh11 lh12 sm:fs32 fs22 mb24">BEST OF SFGATE</div></div><div class="r1udwkp5 n4l52un ff-fontG fw-fontG fs-fontG lh15 fs16 mb20" data-block-type="text" data-dropcap="false"><p><strong>Food </strong>| <a href="https://www.sfgate.com/food/article/casa-sanchez-tattoos-free-meal-promo-san-francisco-16465800.php" data-link="native" class="">22 years ago, they got a tattoo and free Mexican food for life</a><br><strong>Local </strong>| <a href="https://www.sfgate.com/local/editorspicks/article/The-story-behind-picture-rails-and-why-so-many-SF-16038879.php" data-link="native" target="_blank" rel="noopener" class="">Nearly every SF home has this feature, but few people use it</a><br><strong>Travel</strong> | <a href="https://www.sfgate.com/travel/article/Bay-Area-Port-Costa-day-trip-16607354.php" data-link="native" target="_blank" rel="noopener" class="">The tiny port town unlike anywhere else in the Bay Area</a><br><strong>History </strong>| <a href="https://www.sfgate.com/essays/article/Remembering-the-Disney-World-of-electronic-stores-15837042.php" data-link="native" class="">The kitschy history of the Bay Area's themed Fry's Electronics</a></p></div><div class="b-gray400 bb pen x100"></div></div><div class="y1px x100 abs bgn top"></div><div style="top:25%" class="y1px x100 abs bgn"></div><div style="top:50%" class="y1px x100 abs bgn"></div><div style="top:75%" class="y1px x100 abs bgn"></div><div class="y1px x100 abs bgn bottom"></div></article></div><div class="package"><span class="mb16 block"><span class="ff-fontG fw-fontG fs-fontG lh12 ps1 lg:fs16 fs14 c-gray600"><time datetime="2023-12-22 10:50:53">Dec 22, 2023</time></span></span><div class="bt bb b-gray400 py16 pr8"><div class="f aic jcb mb8 fw g8"><div class="f fdc sy4"><span class="c-gray700 f aic g2 fw owa"><span class="fs16"><span class="ff-fontG fw-fontG fs-fontG lh12 ps1 lg:fs16 fs14 fs16">By </span><span class="ff-fontD fw-fontD fs-fontD lh12 ps1 lg:fs16 fs14"><a href="/author/kent-german/" data-link="native" class="c-primaryAccessible hover:o70 td300 wbbw">Kent German</a></span></span></span></div><div class="sx8 f"></div></div><div class="ff-fontG fw-fontG fs-fontG lh13 fs16 fs16 c-gray700 sy16"><p>Kent German is a News Editor at SFGATE. A California native, he's a USF graduate and a veteran of CNET where he wrote the review of the first iPhone. He's also a dog person and a proud aviation geek with a healthy knowledge of airport codes. Email him at kent.german@sfgate.com.</p></div></div></div></div><div class="none lg:f mnw300px x300px fdc g40 jcb"><div class="package y100 none md:block"><div class="s top97"><div data-block-type="ad" data-large-id="A300" data-unit="hnp-sfgate.com/article_dtc" class="tac ox-hidden"></div></div></div><div data-eid="collection-118393-mostPopular" class="package"><div class="f fdc sy32 lg:sy24"><div class="ttc f aic sx16"><h2 class="wsn ff-fontE fw-fontE fs-fontE lh12 fs18">Most Popular</h2><div class="bb bw2 x100 b-primary"></div></div><div class="grid pl0"><div class="f fdr aib"><span class="c-primaryAccessible mr8 ff-fontE fw-fontE fs-fontE lh12 fs20">1<!-- -->.</span><div class="f fdc g8 ml4"><h2 class="owa c-black ff-fontD fw-fontD fs-fontD lh13 fs18"><a href="/bayarea/article/family-mourns-student-died-uc-berkeley-18672739.php" data-link="native" class="tdn hover:o70 td300">Former YouTube CEO's son identified as student who died at UC Berkeley</a></h2></div></div><div class="bsd bw2 b-gray600 bb pen my16 lg:my24"></div><div class="f fdc jcb"><div class="f fdr aib"><span class="c-primaryAccessible mr8 ff-fontE fw-fontE fs-fontE lh12 fs20">2<!-- -->.</span><div class="f fdc g8"><h2 class="owa c-black ff-fontD fw-fontD fs-fontD lh13 fs18"><a href="/horoscope/article/horoscope-saturday-02-17-24-christopher-renstrom-18659319.php" data-link="native" class="tdn hover:o70 td300">Horoscope for Saturday, 02/17/24 by Christopher Renstrom</a></h2></div></div><div class="bsd bw2 b-gray600 bb pen my16 lg:my24"></div></div><div class="f fdc jcb"><div class="f fdr aib"><span class="c-primaryAccessible mr8 ff-fontE fw-fontE fs-fontE lh12 fs20">3<!-- -->.</span><div class="f fdc g8"><h2 class="owa c-black ff-fontD fw-fontD fs-fontD lh13 fs18"><a href="/travel/article/del-mar-california-rail-project-18672664.php" data-link="native" class="tdn hover:o70 td300">Residents of wealthy California town outraged, concerned over rail plans</a></h2></div></div><div class="bsd bw2 b-gray600 bb pen my16 lg:my24"></div></div><div class="f fdc jcb"><div class="f fdr aib"><span class="c-primaryAccessible mr8 ff-fontE fw-fontE fs-fontE lh12 fs20">4<!-- -->.</span><div class="f fdc g8"><h2 class="owa c-black ff-fontD fw-fontD fs-fontD lh13 fs18"><a href="/weather/article/rain-forecast-for-bay-area-presidents-day-weekend-18671922.php" data-link="native" class="tdn hover:o70 td300">Weather service issues timeline for 2 storms set to soak Bay Area this weekend</a></h2></div></div><div class="bsd bw2 b-gray600 bb pen my16 lg:my24"></div></div><div class="f fdc jcb"><div class="f fdr aib"><span class="c-primaryAccessible mr8 ff-fontE fw-fontE fs-fontE lh12 fs20">5<!-- -->.</span><div class="f fdc g8"><h2 class="owa c-black ff-fontD fw-fontD fs-fontD lh13 fs18"><a href="/travel/article/nps-threatens-termination-west-coast-national-park-18670333.php" data-link="native" class="tdn hover:o70 td300">NPS threatens 'extremely rare' termination at West Coast national park</a></h2></div></div></div></div></div></div><div data-eid="collection-108907-dynamic_thumbnail_list" class="package"><div class="f fdc sy28"><div class="f aic"><div class="f aic rel ttu xmc mb8 ml8 ff-fontB fw-fontB fs-fontB lh12 fs18 md:fs20"><h2 class="p16 m2 z1 f aic wsn">Shopping<div class="ml12 border bw2 br50 x8px y8px"></div></h2><svg preserveAspectRatio="none" width="96%" height="100%" class="inline-block abs top8 -left8 c-primary" viewBox="0 0 145 55" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M131.6,0H8C3.6,0,0,3.6,0,8v39c0,4.4,3.6,8,8,8h123.4c1.9,0,3.8-0.7,5.3-2l5.6-4.9c1.7-1.5,2.7-3.7,2.7-6V12.2
c0-2.4-1.1-4.8-3-6.3l-5.4-4.2C135.2,0.6,133.4,0,131.6,0z"></path></svg><svg preserveAspectRatio="none" width="100%" height="100%" class="inline-block abs top left" viewBox="0 0 151 55" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M136.5,1H9C4.6,1,1,4.6,1,9v37c0,4.4,3.6,8,8,8h127.3c1.9,0,3.7-0.6,5.1-1.8l5.7-4.7c1.8-1.5,2.9-3.8,2.9-6.2 V13.1c0-2.5-1.2-4.9-3.2-6.4l-5.5-4.1C139.9,1.5,138.2,1,136.5,1z" fill="white" stroke="#111111" stroke-width="2" vector-effect="non-scaling-stroke"></path></svg></div><div class="bb bw2 x100 b-black ml-1 mb8"></div></div><div><div class="fdc jcb"><article class="grid col1-min"><div class="f fdc sy8 mr8 col1 row1 jce"><h2 class="owa c-black ff-fontD fw-fontD fs-fontD lh13 fs18 xs:fs22 lg:fs16"><a href="/shopping/article/dryer-vent-cleaning-kit-amazon-18670453.php" data-link="native" class="tdn hover:o70 td300">This $10 dryer vent cleaning kit can save you hundreds</a></h2></div><div class="grid sy8 row2 col1"><a href="/shopping/article/dryer-vent-cleaning-kit-amazon-18670453.php" class="c-gray700 m0 ff-fontF fw-fontF fs-fontF lh13 fs16 fs16 lh13 none">Prevent dryer fires, lower your power bill, extend the life of your appliance and more. </a></div><div class="block col2 row1span3 ml8 x78px xs:x100px sm:x140px lg:x78px"><a href="/shopping/article/dryer-vent-cleaning-kit-amazon-18670453.php" data-link="native" class=""><div class="rel x100 block"><picture><img title="This $10 dryer vent cleaning kit can save you hundreds" alt="Sealegend Dryer Vent Cleaner Kit [https://www.amazon.com/Cleaner-Vacuum-Attachment-Remover-Washer/dp/B08LGB4Z5C?th=1] - $9.95 at Amazon" loading="lazy" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAMAAABPT11nAAAAaVBMVEX/ygDqvCPevUDbpQr80QD9yQD/ywD+ywD+uxD/yADOyUS5oUC+lA7/zwL9xQP/xwP+wgn/xAHcyS3Htk25pi3AlQv+xwL/wwTdvy6SxZHDwEO4qC7VqAb/0AD+zAD/zADjxiC9vEXrxhRYRZ3GAAAANUlEQVQI12NgYGRiZmFlY2fg4OTi5uHl42cQEBQSFhHlFWNgF5eQlJKWkWVgkJNXkFdUYgMAKUwCjahSOKoAAAAASUVORK5CYII=" style="aspect-ratio:1 / 1" class="x100 y100 opc bgpc ofcv bgscv block mnh0px fill"></picture></div></a></div></article><div class="b-gray400 bb pen my16"></div></div><div class="fdc jcb"><article class="grid col1-min"><div class="f fdc sy8 mr8 col1 row1 jce"><h2 class="owa c-black ff-fontD fw-fontD fs-fontD lh13 fs18 xs:fs22 lg:fs16"><a href="/shopping/article/best-upholstery-cleaner-18621619.php" data-link="native" class="tdn hover:o70 td300">9 best upholstery cleaners for couches, cars and more</a></h2></div><div class="grid sy8 row2 col1"><a href="/shopping/article/best-upholstery-cleaner-18621619.php" class="c-gray700 m0 ff-fontF fw-fontF fs-fontF lh13 fs16 fs16 lh13 none">From DIY cleaners to premade solutions, these are the top expert-recommended picks. </a></div><div class="block col2 row1span3 ml8 x78px xs:x100px sm:x140px lg:x78px"><a href="/shopping/article/best-upholstery-cleaner-18621619.php" data-link="native" class=""><div class="rel x100 block"><picture><img title="9 best upholstery cleaners for couches, cars and more" alt="Give your upholstery a little TLC with these expert-recommended cleaners. " loading="lazy" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAMAAABPT11nAAAAdVBMVEW3aP+aWdylYOHKh7jHg7vEh7LJkK24bO27Z/9zV2uDW4bTiMLFe8bCj6LBqJ+8bO1ZSVNnRnq1hd+ogbyycddrb5mtYP++bP9OPE9pY2WktIKhrH2Di6VYcWStZO68a/98YESBamSqkayjiqahgcKliLO4a/YglPH5AAAANUlEQVQI12NgYGRiZmFlY2fg4OTi5uHl42fgEBAUEhYRFWMQl5CUkpaRlWOQV1BUUlZRVQMAK28C7q6QIREAAAAASUVORK5CYII=" style="aspect-ratio:1 / 1" class="x100 y100 opc bgpc ofcv bgscv block mnh0px fill"></picture></div></a></div></article><div class="b-gray400 bb pen my16"></div></div><div class="fdc jcb"><article class="grid col1-min"><div class="f fdc sy8 mr8 col1 row1 jce"><h2 class="owa c-black ff-fontD fw-fontD fs-fontD lh13 fs18 xs:fs22 lg:fs16"><a href="/shopping/article/incubus-tour-tickets-san-francisco-18651681.php" data-link="native" class="tdn hover:o70 td300">Tickets to see Incubus at Chase Center just went on sale</a></h2></div><div class="grid sy8 row2 col1"><a href="/shopping/article/incubus-tour-tickets-san-francisco-18651681.php" class="c-gray700 m0 ff-fontF fw-fontF fs-fontF lh13 fs16 fs16 lh13 none">Snatch up tickets to the Sept. 12 concert at Chase Center before they're gone. </a></div><div class="block col2 row1span3 ml8 x78px xs:x100px sm:x140px lg:x78px"><a href="/shopping/article/incubus-tour-tickets-san-francisco-18651681.php" data-link="native" class=""><div class="rel x100 block"><picture><img title="Tickets to see Incubus at Chase Center just went on sale" alt="Grab tickets to see Incubus live in San Francisco before they sell out. " loading="lazy" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAMAAABPT11nAAAAdVBMVEUhIy4ZHCdVSUkwLTQgISsdHyk4Nz8dHSUiIywWGSO5iGnUpH5GPDwXGiQjJCwtKjAsKzIjIypHLSKqhWhsXlg1MzgaGCAUExkkJTE3Nz2OiouhlY5bW15qZmcODRRVQERHLiU5KyhfWVuamJw+O0AbGR8eGiGDgf6rAAAANUlEQVQI12NgYGRiZmFlY2fg4OTi5uHl42cQEBQSFhEVE2eQkJSSlpGVE2eQV1BUUlZRVQMALPUC/WVYxJ8AAAAASUVORK5CYII=" style="aspect-ratio:1 / 1" class="x100 y100 opc bgpc ofcv bgscv block mnh0px fill"></picture></div></a></div></article><div class="b-gray400 bb pen my16"></div></div><div class="fdc jcb"><article class="grid col1-min"><div class="f fdc sy8 mr8 col1 row1 jce"><h2 class="owa c-black ff-fontD fw-fontD fs-fontD lh13 fs18 xs:fs22 lg:fs16"><a href="/shopping/article/hasan-minhaj-tour-san-francisco-18638127.php" data-link="native" class="tdn hover:o70 td300">Hasan Minhaj tour tickets are under $100 right now</a></h2></div><div class="grid sy8 row2 col1"><a href="/shopping/article/hasan-minhaj-tour-san-francisco-18638127.php" class="c-gray700 m0 ff-fontF fw-fontF fs-fontF lh13 fs16 fs16 lh13 none">The comedian and Nor Cal native has four shows at the Masonic this week.</a></div><div class="block col2 row1span3 ml8 x78px xs:x100px sm:x140px lg:x78px"><a href="/shopping/article/hasan-minhaj-tour-san-francisco-18638127.php" data-link="native" class=""><div class="rel x100 block"><picture><img title="Hasan Minhaj tour tickets are under $100 right now" alt="Bay Area fans have four chances to catch comedian Hasan Minhaj live this weekend." loading="lazy" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAMAAABPT11nAAAAXVBMVEUBAQMHBgkvKCkAAAICAgQBAQICAQIAAAEUDg2PaVwAAQMFBAUBAQECAgIAAAAhIiRuZGYDAgMDAgIAAQEEBAQyMDFhVlUdHCBbSEcPCwoKCQogHyA9PUA7Oz0TEBAjRJfzAAAANUlEQVQI12NgYGBkYmZhYGVgY+fg5OJm5WHg5eMXEOQREmbgEREVE5eQ5GPgk5KWkZXj4wEAITkCJXPquqYAAAAASUVORK5CYII=" style="aspect-ratio:1 / 1" class="x100 y100 opc bgpc ofcv bgscv block mnh0px fill"></picture></div></a></div></article><div class="b-gray400 bb pen my16"></div></div><div class="fdc jcb"><article class="grid col1-min"><div class="f fdc sy8 mr8 col1 row1 jce"><h2 class="owa c-black ff-fontD fw-fontD fs-fontD lh13 fs18 xs:fs22 lg:fs16"><a href="/shopping/article/best-underseat-luggage-18627967.php" data-link="native" class="tdn hover:o70 td300">The best underseat luggage according to travel experts</a></h2></div><div class="grid sy8 row2 col1"><a href="/shopping/article/best-underseat-luggage-18627967.php" class="c-gray700 m0 ff-fontF fw-fontF fs-fontF lh13 fs16 fs16 lh13 none">Travel experts swear by these compact and convenient bags. </a></div><div class="block col2 row1span3 ml8 x78px xs:x100px sm:x140px lg:x78px"><a href="/shopping/article/best-underseat-luggage-18627967.php" data-link="native" class=""><div class="rel x100 block"><picture><img title="The best underseat luggage according to travel experts" alt="No overhead bin space? No problem. " loading="lazy" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAMAAABPT11nAAAAeFBMVEVly/9xsN2GlbFsvOyd1/hbY2SDqsFuz/+S0/7MmKSpcoS8l6i5vLsfFwqPgXal4f99zP23pcDBmq2zqcCpscVlY2p2nLh30P9lx/5fxvy55//Vt6iYaFTw+f5ly/1nxv1px/1jw/qL1f+vqrKjgnmpz+5mw/xpyP5eWWOnAAAANUlEQVQI12NgYGRiZmFlY2fg4OTi5uHl42cQEBQSFhEVE2eQkJSSlpGVk2dQUFRSVlFVUwcALWkDDZQ9l9UAAAAASUVORK5CYII=" style="aspect-ratio:1 / 1" class="x100 y100 opc bgpc ofcv bgscv block mnh0px fill"></picture></div></a></div></article><div class="b-gray400 bb pen my16"></div></div><div class="fdc jcb"><article class="grid col1-min"><div class="f fdc sy8 mr8 col1 row1 jce"><h2 class="owa c-black ff-fontD fw-fontD fs-fontD lh13 fs18 xs:fs22 lg:fs16"><a href="/shopping/article/best-grout-cleaner-18535663.php" data-link="native" class="tdn hover:o70 td300">The 10 best ways to clean your grout — and keep it sparkling</a></h2></div><div class="grid sy8 row2 col1"><a href="/shopping/article/best-grout-cleaner-18535663.php" class="c-gray700 m0 ff-fontF fw-fontF fs-fontF lh13 fs16 fs16 lh13 none">Including DIY solutions, store-bought cleaners, tools and more.</a></div><div class="block col2 row1span3 ml8 x78px xs:x100px sm:x140px lg:x78px"><a href="/shopping/article/best-grout-cleaner-18535663.php" data-link="native" class=""><div class="rel x100 block"><picture><img title="The 10 best ways to clean your grout — and keep it sparkling" alt="You can create a DIY grout cleaning solution with basic household products like baking soda, or opt for a pre-made formulation. " loading="lazy" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAMAAABPT11nAAAAdVBMVEX/0wDxtBbppybtsxX5zhy5kNLTpeHTpOP/1QDNqD7HlIjgvkHsvW+jln3Ro9/TpeL/0ADi04G4xPndzXnfqsLMy27QqcnTpOf/zgD63Ffd2qjbvIO/n79rfT+6orzXpen+zgP/0QDksZ/Gqsa0zkO+sKnWo+xNullAAAAANUlEQVQI12NgYGRiZmFlY2fg4OTi5uHl42cQEBQSFhEVE2eQkJSSlpGVk2cQUFBUUlZRVQMALM0C9noPrXEAAAAASUVORK5CYII=" style="aspect-ratio:1 / 1" class="x100 y100 opc bgpc ofcv bgscv block mnh0px fill"></picture></div></a></div></article></div></div></div></div><div class="package y100 none md:block"><div class="s top97"><div data-block-type="ad" data-large-id="NTV7ARD" data-unit="hnp-sfgate.com/article_dtc" class="tac ox-hidden"></div></div></div><div data-eid="item-102119" class="r1udwkp5 d1uy5mhj ff-fontJ fw-fontJ fs-fontJ lh18 fs18"><script src="https://www.sfgate.com/best/wp-json/deals/v1/wcm-freeform/freeform.js?id=328" data-shopping-freeform-template="platypus-collection-column"></script></div><div data-eid="item-100258"><div id="taboola-right-rail-thumbnails"></div></div><div class="package y100 none md:block"><div class="s top97"><div data-block-type="ad" data-large-id="RB-1" data-unit="hnp-sfgate.com/article_dtc" class="tac ox-hidden"></div></div></div></div></div><div data-layout="Layout1Column" class="f fdc mx20 sm:mx32 xl:mxa sy20 mb40 xl:mw1200px"><div class="zone center f fdc g40"><div data-eid="item-100257"><div id="taboola-below-article-feed"></div></div></div></div><div class="s mt0 mw1200px z1001 bottom mb40" data-layout="LayoutSticky1Column"><div class="zone center"><div class="package y100 block xs:none x100 bg-gray200 bt b-gray400"><div class="adhesion--outer"><div data-block-type="ad" data-small-id="MAD" data-unit="hnp-sfgate.com/article_dtc" class="tac sm:mhi ox-hidden"></div></div></div></div></div></main><div class="b-gray300 bb pen"></div><div class=""><footer class="ma rel mb72 px24 md:pt56 xl:px100 mw1400px"><button class="aic pr24 md:pr32 xl:pr100 ff-fontE fw-fontE fs-fontE lh12 fs16 c-inherit abs sx8 b-transparent bgn cp hover:o70 right top16 f jcb"><span><span class="none md:inline">Return To </span>Top</span> <svg width="16" height="16" fill="none" viewBox="0 0 8 14" class="p0 rot270"><path d="M1.64558 0.700159C1.3527 0.407255 0.877829 0.407236 0.584925 0.700118C0.29202 0.993 0.292002 1.46787 0.584884 1.76078L1.64558 0.700159ZM6.35399 7.53033L6.8843 8.06068L7.945 7.00006L7.41469 6.46971L6.35399 7.53033ZM0.584884 1.76078L6.35399 7.53033L7.41469 6.46971L1.64558 0.700159L0.584884 1.76078Z" fill="currentColor" class="r1rpzmwd tpt td100 ttfl"></path><path d="M1.64558 13.2998C1.3527 13.5927 0.877829 13.5928 0.584925 13.2999C0.29202 13.007 0.292002 12.5321 0.584884 12.2392L1.64558 13.2998ZM6.35399 6.46967L6.8843 5.93932L7.945 6.99994L7.41469 7.53029L6.35399 6.46967ZM0.584884 12.2392L6.35399 6.46967L7.41469 7.53029L1.64558 13.2998L0.584884 12.2392Z" fill="currentColor" class="l1aso11h tpt td100 ttfl"></path></svg></button><div class="f fdc lg:fdr"><div class="f"><div class="pt16 md:pt0 md:mb20 sy16 pr32 md:pr40"><a href="/" data-link="native" aria-label="Site Logo - Back to Home" class="f aic mxvw36 sm:mxvw22 y48px"><svg viewBox="0 0 129 46" fill="none" xmlns="http://www.w3.org/2000/svg" class="y100 b1f26hy5" role="img" aria-label="SF Gate Logo"><desc>SF Gate Logo</desc><use href="#logosource-sf-gate"></use></svg></a><div class="sx8 x130px"><a href="https://www.facebook.com/SFGate/" data-link="native" aria-label="Facebook Page" class="tdn hover:o70 td300"><svg width="32" height="32" fill="none" viewBox="0 0 33 33" class="p0"><circle cx="16.0518" cy="16.75" r="15.375" stroke="currentColor" stroke-width="1.25"></circle><path xmlns="http://www.w3.org/2000/svg" id="Path" d="M21.0518 8.86538V11.4038H19.4163C18.1351 11.4038 17.8955 11.9712 17.8955 12.7885V14.6058H20.9476L20.5413 17.4519H17.8955V24.75H14.708V17.4519H12.0518V14.6058H14.708V12.5096C14.708 10.0769 16.3226 8.75 18.6768 8.75C19.8018 8.75 20.7705 8.82692 21.0518 8.86538Z" fill="currentColor"></path></svg></a><a href="https://twitter.com/sfgate/" data-link="native" aria-label="Twitter Page" class="tdn hover:o70 td300"><svg width="32" height="32" fill="none" viewBox="0 0 33 33" class="p0"><circle cx="16.0518" cy="16.75" r="15.375" stroke="currentColor" stroke-width="1.25"></circle><path d="M24.0518 11.4125C23.6051 12.1125 23.0467 12.7359 22.4071 13.2391C22.4172 13.3922 22.4172 13.5453 22.4172 13.6984C22.4172 18.3687 19.1177 23.75 13.0873 23.75C11.2294 23.75 9.50353 23.1703 8.05176 22.1641C8.31572 22.1969 8.56952 22.2078 8.84364 22.2078C10.3766 22.2078 11.7878 21.65 12.9147 20.6984C11.4731 20.6656 10.265 19.6484 9.84871 18.2484C10.0518 18.2812 10.2548 18.3031 10.468 18.3031C10.7624 18.3031 11.0568 18.2594 11.3309 18.1828C9.82841 17.8547 8.7015 16.4328 8.7015 14.7156C8.7015 14.7047 8.7015 14.6828 8.7015 14.6719C9.13805 14.9344 9.64567 15.0984 10.1837 15.1203C9.30049 14.4859 8.72181 13.4031 8.72181 12.1781C8.72181 11.5219 8.88425 10.9203 9.16851 10.3953C10.7827 12.5391 13.2091 13.9391 15.9299 14.0922C15.8792 13.8297 15.8487 13.5563 15.8487 13.2828C15.8487 11.3359 17.3106 9.75 19.1279 9.75C20.0721 9.75 20.9249 10.1766 21.5238 10.8656C22.265 10.7125 22.9756 10.4172 23.6051 10.0125C23.3614 10.8328 22.8436 11.5219 22.1634 11.9594C22.8233 11.8828 23.4629 11.6859 24.0518 11.4125Z" fill="currentColor"></path></svg></a><a href="https://instagram.com/sfgate/" data-link="native" aria-label="Instagram Page" class="tdn hover:o70 td300"><svg width="32" height="32" fill="none" viewBox="0 0 33 33" class="p0"><circle cx="16.0518" cy="16.75" r="15.375" stroke="currentColor" stroke-width="1.25"></circle><path d="M16.0521 14.3668C14.7398 14.3668 13.6688 15.4377 13.6688 16.75C13.6688 18.0623 14.7398 19.1332 16.0521 19.1332C17.3643 19.1332 18.4353 18.0623 18.4353 16.75C18.4353 15.4377 17.3643 14.3668 16.0521 14.3668ZM23.1999 16.75C23.1999 15.7631 23.2089 14.7851 23.1534 13.8C23.098 12.6558 22.837 11.6403 22.0003 10.8036C21.1618 9.96507 20.148 9.70583 19.0038 9.65041C18.0169 9.59499 17.039 9.60393 16.0538 9.60393C15.0669 9.60393 14.089 9.59499 13.1039 9.65041C11.9596 9.70583 10.9441 9.96686 10.1074 10.8036C9.26891 11.6421 9.00967 12.6558 8.95424 13.8C8.89882 14.7869 8.90776 15.7649 8.90776 16.75C8.90776 17.7351 8.89882 18.7149 8.95424 19.7C9.00967 20.8442 9.27069 21.8597 10.1074 22.6964C10.9459 23.5349 11.9596 23.7942 13.1039 23.8496C14.0908 23.905 15.0687 23.8961 16.0538 23.8961C17.0407 23.8961 18.0187 23.905 19.0038 23.8496C20.148 23.7942 21.1636 23.5331 22.0003 22.6964C22.8388 21.8579 23.098 20.8442 23.1534 19.7C23.2107 18.7149 23.1999 17.7369 23.1999 16.75ZM16.0521 20.4169C14.0228 20.4169 12.3851 18.7792 12.3851 16.75C12.3851 14.7208 14.0228 13.0831 16.0521 13.0831C18.0813 13.0831 19.719 14.7208 19.719 16.75C19.719 18.7792 18.0813 20.4169 16.0521 20.4169ZM19.8691 13.7893C19.3954 13.7893 19.0128 13.4067 19.0128 12.9329C19.0128 12.4591 19.3954 12.0765 19.8691 12.0765C20.3429 12.0765 20.7255 12.4591 20.7255 12.9329C20.7257 13.0454 20.7036 13.1568 20.6606 13.2608C20.6176 13.3648 20.5546 13.4592 20.475 13.5388C20.3955 13.6183 20.301 13.6814 20.197 13.7244C20.0931 13.7674 19.9816 13.7894 19.8691 13.7893Z" fill="currentColor"></path></svg></a></div></div><div class="b-gray300 br pen mr40 md:f none"></div><div class="none md:f md:sx40 lg:sx100"><div class="f g20 fdc"><p class="ff-fontD fw-fontD fs-fontD lh12 fs14">About</p><a href="/home/article/about-sfgate-15613713.php" data-link="native" class="ff-fontG fw-fontG fs-fontG lh13 fs14 hover:o70 tpo ttfeio td300 f aic wwb">Our Company</a><a href="https://eevd.fa.us6.oraclecloud.com/hcmUI/CandidateExperience/en/sites/CX_11007" data-link="native" class="ff-fontG fw-fontG fs-fontG lh13 fs14 hover:o70 tpo ttfeio td300 f aic wwb">Careers</a><a href="/ai_use/" data-link="native" class="ff-fontG fw-fontG fs-fontG lh13 fs14 hover:o70 tpo ttfeio td300 f aic wwb">Our Use of AI</a><a href="/standards/" data-link="native" class="ff-fontG fw-fontG fs-fontG lh13 fs14 hover:o70 tpo ttfeio td300 f aic wwb">Ethics Policy</a></div><div class="f g20 fdc"><p class="ff-fontD fw-fontD fs-fontD lh12 fs14">Contact</p><a href="/feedback/" data-link="native" class="ff-fontG fw-fontG fs-fontG lh13 fs14 hover:o70 tpo ttfeio td300 f aic wwb">Feedback</a><a href="/home/article/sfgate-staff-15734829.php" data-link="native" class="ff-fontG fw-fontG fs-fontG lh13 fs14 hover:o70 tpo ttfeio td300 f aic wwb pr8">Newsroom Contacts</a></div><div class="f g20 fdc"><p class="ff-fontD fw-fontD fs-fontD lh12 fs14">Services</p><a href="https://marketing.sfgate.com/advertise-with-us-today" data-link="native" class="ff-fontG fw-fontG fs-fontG lh13 fs14 hover:o70 tpo ttfeio td300 f aic wwb pr8">Advertise with us</a><a href="https://sfc.ipublishmarketplace.com/sf-marketplace/?_ga=2.232885150.144726059.1689005135-2074906391.1687899301" data-link="native" class="ff-fontG fw-fontG fs-fontG lh13 fs14 hover:o70 tpo ttfeio td300 f aic wwb">Classifieds</a><a href="/market/" data-link="native" class="ff-fontG fw-fontG fs-fontG lh13 fs14 hover:o70 tpo ttfeio td300 f aic wwb">Sponsor Content</a><a href="https://marketing.sfgate.com/industries/recruitment" data-link="native" class="ff-fontG fw-fontG fs-fontG lh13 fs14 hover:o70 tpo ttfeio td300 f aic wwb">Recruitment</a></div><div class="f g20 fdc"><p class="ff-fontD fw-fontD fs-fontD lh12 fs14">Quick Links</p><a href="/auto/" data-link="native" class="ff-fontG fw-fontG fs-fontG lh13 fs14 hover:o70 tpo ttfeio td300 f aic wwb">Cars</a><a href="/jobs/" data-link="native" class="ff-fontG fw-fontG fs-fontG lh13 fs14 hover:o70 tpo ttfeio td300 f aic wwb">Jobs</a><a href="/weather/" data-link="native" class="ff-fontG fw-fontG fs-fontG lh13 fs14 hover:o70 tpo ttfeio td300 f aic wwb">Weather</a><a href="https://www.legacy.com/us/obituaries/sfgate/today?_ga=2.235506305.144726059.1689005135-2074906391.1687899301" data-link="native" class="ff-fontG fw-fontG fs-fontG lh13 fs14 hover:o70 tpo ttfeio td300 f aic wwb">Obituaries</a></div></div></div></div><div class="f md:none fdc mt16"><div class="x100"><div class="f jcb py8 mb8"><span class="ff-fontD fw-fontD fs-fontD lh12 fs20 c-black">About</span><button class="bn bgt cp f aic jcc fdc g4 c-inherit c-black td300 hover:o70" aria-label="expand menu"><svg width="16" height="16" fill="none" viewBox="0 0 8 14" class="p0 hover:c-gray600 rot90"><path d="M1.64558 0.700159C1.3527 0.407255 0.877829 0.407236 0.584925 0.700118C0.29202 0.993 0.292002 1.46787 0.584884 1.76078L1.64558 0.700159ZM6.35399 7.53033L6.8843 8.06068L7.945 7.00006L7.41469 6.46971L6.35399 7.53033ZM0.584884 1.76078L6.35399 7.53033L7.41469 6.46971L1.64558 0.700159L0.584884 1.76078Z" fill="currentColor" class="r1rpzmwd tpt td100 ttfl"></path><path d="M1.64558 13.2998C1.3527 13.5927 0.877829 13.5928 0.584925 13.2999C0.29202 13.007 0.292002 12.5321 0.584884 12.2392L1.64558 13.2998ZM6.35399 6.46967L6.8843 5.93932L7.945 6.99994L7.41469 7.53029L6.35399 6.46967ZM0.584884 12.2392L6.35399 6.46967L7.41469 7.53029L1.64558 13.2998L0.584884 12.2392Z" fill="currentColor" class="l1aso11h tpt td100 ttfl"></path></svg><div class="f fdc g4"></div></button></div><ul class="ff-fontG fw-fontG fs-fontG lh13 fs18 c-gray600 hide mb16 lir ml24 mt8 sy16"><li> <a href="/home/article/about-sfgate-15613713.php" data-link="native" class="">Our Company</a></li><li> <a href="https://eevd.fa.us6.oraclecloud.com/hcmUI/CandidateExperience/en/sites/CX_11007" data-link="native" class="">Careers</a></li><li> <a href="/ai_use/" data-link="native" class="">Our Use of AI</a></li><li> <a href="/standards/" data-link="native" class="">Ethics Policy</a></li></ul></div><div class="b-gray300 bb pen mb8"></div><div class="x100"><div class="f jcb py8 mb8"><span class="ff-fontD fw-fontD fs-fontD lh12 fs20 c-black">Contact</span><button class="bn bgt cp f aic jcc fdc g4 c-inherit c-black td300 hover:o70" aria-label="expand menu"><svg width="16" height="16" fill="none" viewBox="0 0 8 14" class="p0 hover:c-gray600 rot90"><path d="M1.64558 0.700159C1.3527 0.407255 0.877829 0.407236 0.584925 0.700118C0.29202 0.993 0.292002 1.46787 0.584884 1.76078L1.64558 0.700159ZM6.35399 7.53033L6.8843 8.06068L7.945 7.00006L7.41469 6.46971L6.35399 7.53033ZM0.584884 1.76078L6.35399 7.53033L7.41469 6.46971L1.64558 0.700159L0.584884 1.76078Z" fill="currentColor" class="r1rpzmwd tpt td100 ttfl"></path><path d="M1.64558 13.2998C1.3527 13.5927 0.877829 13.5928 0.584925 13.2999C0.29202 13.007 0.292002 12.5321 0.584884 12.2392L1.64558 13.2998ZM6.35399 6.46967L6.8843 5.93932L7.945 6.99994L7.41469 7.53029L6.35399 6.46967ZM0.584884 12.2392L6.35399 6.46967L7.41469 7.53029L1.64558 13.2998L0.584884 12.2392Z" fill="currentColor" class="l1aso11h tpt td100 ttfl"></path></svg><div class="f fdc g4"></div></button></div><ul class="ff-fontG fw-fontG fs-fontG lh13 fs18 c-gray600 hide mb16 lir ml24 mt8 sy16"><li> <a href="/feedback/" data-link="native" class="">Feedback</a></li><li> <a href="/home/article/sfgate-staff-15734829.php" data-link="native" class="">Newsroom Contacts</a></li></ul></div><div class="b-gray300 bb pen mb8"></div><div class="x100"><div class="f jcb py8 mb8"><span class="ff-fontD fw-fontD fs-fontD lh12 fs20 c-black">Services</span><button class="bn bgt cp f aic jcc fdc g4 c-inherit c-black td300 hover:o70" aria-label="expand menu"><svg width="16" height="16" fill="none" viewBox="0 0 8 14" class="p0 hover:c-gray600 rot90"><path d="M1.64558 0.700159C1.3527 0.407255 0.877829 0.407236 0.584925 0.700118C0.29202 0.993 0.292002 1.46787 0.584884 1.76078L1.64558 0.700159ZM6.35399 7.53033L6.8843 8.06068L7.945 7.00006L7.41469 6.46971L6.35399 7.53033ZM0.584884 1.76078L6.35399 7.53033L7.41469 6.46971L1.64558 0.700159L0.584884 1.76078Z" fill="currentColor" class="r1rpzmwd tpt td100 ttfl"></path><path d="M1.64558 13.2998C1.3527 13.5927 0.877829 13.5928 0.584925 13.2999C0.29202 13.007 0.292002 12.5321 0.584884 12.2392L1.64558 13.2998ZM6.35399 6.46967L6.8843 5.93932L7.945 6.99994L7.41469 7.53029L6.35399 6.46967ZM0.584884 12.2392L6.35399 6.46967L7.41469 7.53029L1.64558 13.2998L0.584884 12.2392Z" fill="currentColor" class="l1aso11h tpt td100 ttfl"></path></svg><div class="f fdc g4"></div></button></div><ul class="ff-fontG fw-fontG fs-fontG lh13 fs18 c-gray600 hide mb16 lir ml24 mt8 sy16"><li> <a href="https://marketing.sfgate.com/advertise-with-us-today" data-link="native" class="">Advertise with us</a></li><li> <a href="https://sfc.ipublishmarketplace.com/sf-marketplace/?_ga=2.232885150.144726059.1689005135-2074906391.1687899301" data-link="native" class="">Classifieds</a></li><li> <a href="/market/" data-link="native" class="">Sponsor Content</a></li><li> <a href="https://marketing.sfgate.com/industries/recruitment" data-link="native" class="">Recruitment</a></li></ul></div><div class="b-gray300 bb pen mb8"></div><div class="x100"><div class="f jcb py8 mb8"><span class="ff-fontD fw-fontD fs-fontD lh12 fs20 c-black">Quick Links</span><button class="bn bgt cp f aic jcc fdc g4 c-inherit c-black td300 hover:o70" aria-label="expand menu"><svg width="16" height="16" fill="none" viewBox="0 0 8 14" class="p0 hover:c-gray600 rot90"><path d="M1.64558 0.700159C1.3527 0.407255 0.877829 0.407236 0.584925 0.700118C0.29202 0.993 0.292002 1.46787 0.584884 1.76078L1.64558 0.700159ZM6.35399 7.53033L6.8843 8.06068L7.945 7.00006L7.41469 6.46971L6.35399 7.53033ZM0.584884 1.76078L6.35399 7.53033L7.41469 6.46971L1.64558 0.700159L0.584884 1.76078Z" fill="currentColor" class="r1rpzmwd tpt td100 ttfl"></path><path d="M1.64558 13.2998C1.3527 13.5927 0.877829 13.5928 0.584925 13.2999C0.29202 13.007 0.292002 12.5321 0.584884 12.2392L1.64558 13.2998ZM6.35399 6.46967L6.8843 5.93932L7.945 6.99994L7.41469 7.53029L6.35399 6.46967ZM0.584884 12.2392L6.35399 6.46967L7.41469 7.53029L1.64558 13.2998L0.584884 12.2392Z" fill="currentColor" class="l1aso11h tpt td100 ttfl"></path></svg><div class="f fdc g4"></div></button></div><ul class="ff-fontG fw-fontG fs-fontG lh13 fs18 c-gray600 hide mb16 lir ml24 mt8 sy16"><li> <a href="/auto/" data-link="native" class="">Cars</a></li><li> <a href="/jobs/" data-link="native" class="">Jobs</a></li><li> <a href="/weather/" data-link="native" class="">Weather</a></li><li> <a href="https://www.legacy.com/us/obituaries/sfgate/today?_ga=2.235506305.144726059.1689005135-2074906391.1687899301" data-link="native" class="">Obituaries</a></li></ul></div><div class="b-gray300 bb pen mb8"></div></div><div class="b-gray300 bb pen none md:block mt40"></div><div class="ff-fontG fw-fontG fs-fontG lh12 fs11 sm:fs14 c-gray600 mt8 sm:mt16 f fw sx8 sm:sx16 lg:sx24 aic jcc sm:jcs pb20 md:jcs md:mt24 spov33s"><span class="f aic sx8"><div class="f aic mxvw36 sm:mxvw22 y11px xa inline"><svg viewBox="0 0 260 25" fill="none" xmlns="http://www.w3.org/2000/svg" class="y100 g13976mp" role="img" aria-label="Hearst Newspapers Logo"><desc id="hearst">Hearst Newspapers Logo</desc><use href="#logosource-hearst"></use></svg></div><span class="ml1">© <!-- -->2024<!-- --> <!-- -->Hearst Communications, Inc.</span></span><a href="/termsandconditions/" data-link="native" target="" class="c-gray600 tdn hover:o70 td300">Terms of Use</a><a href="/privacy-policy/" data-link="native" target="" class="c-gray600 tdn hover:o70 td300">Privacy Notice</a><a href="https://www.sfgate.com/privacy-policy/#caprivacyrights" data-link="native" target="" class="c-gray600 tdn hover:o70 td300">CA Notice at Collection</a><a href="https://www.sfgate.com/privacy-policy/#shinethelight" data-link="native" target="" class="c-gray600 tdn hover:o70 td300">Your CA Privacy Rights (Shine the Light)</a><a href="https://www.sfgate.com/privacy-policy/#daaoptout" data-link="native" target="" class="c-gray600 tdn hover:o70 td300">DAA Industry Opt Out</a><div><a href="https://www.sfgate.com/mydata/" data-link="native" class="border p12 block hover:o70 td300 b-black c-black">Your Privacy Choices (Opt Out of Sale/Targeted Ads)</a></div></div></footer></div><div data-newrelic="true"><script type="text/javascript">window.NREUM||(NREUM={});NREUM.info = {"agent":"","beacon":"bam.nr-data.net","errorBeacon":"bam.nr-data.net","licenseKey":"NRJS-bef5859a29fb3c538c2","applicationID":"584873719","agentToken":null,"applicationTime":211.70774,"transactionName":"M11VbURXX0NXAUdbWgoXYFxUcENRWwdEXUcPbUVQGXhUSEIIQB1yIWwYFm0YHx5XDl9v","queueTime":0,"ttGuid":"6427c4d40b14af85"}; (window.NREUM||(NREUM={})).init={privacy:{cookies_enabled:true},ajax:{deny_list:["bam.nr-data.net"]},distributed_tracing:{enabled:true}};(window.NREUM||(NREUM={})).loader_config={agentID:"594374097",accountID:"3540744",trustKey:"41019",xpid:"VwMDUVFXDBAFXFVaAAIAV10=",licenseKey:"NRJS-bef5859a29fb3c538c2",applicationID:"584873719"};;/*! For license information please see nr-loader-spa-1.252.0.min.js.LICENSE.txt */
(()=>{var e,t,r={234:(e,t,r)=>{"use strict";r.d(t,{P_:()=>m,Mt:()=>b,C5:()=>s,DL:()=>w,OP:()=>D,lF:()=>O,Yu:()=>E,Dg:()=>v,CX:()=>c,GE:()=>x,sU:()=>N});var n=r(8632),i=r(9567);const o={beacon:n.ce.beacon,errorBeacon:n.ce.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0},a={};function s(e){if(!e)throw new Error("All info objects require an agent identifier!");if(!a[e])throw new Error("Info for ".concat(e," was never set"));return a[e]}function c(e,t){if(!e)throw new Error("All info objects require an agent identifier!");a[e]=(0,i.D)(t,o);const r=(0,n.ek)(e);r&&(r.info=a[e])}const u=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var d=r(7056),l=r(50);const f="[data-nr-mask]",h=()=>{const e={mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{feature_flags:[],proxy:{assets:void 0,beacon:void 0},privacy:{cookies_enabled:!0},ajax:{deny_list:void 0,block_internal:!0,enabled:!0,harvestTimeSeconds:10,autoStart:!0},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},session:{domain:void 0,expiresMs:d.oD,inactiveMs:d.Hb},ssl:void 0,obfuscate:void 0,jserrors:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},metrics:{enabled:!0,autoStart:!0},page_action:{enabled:!0,harvestTimeSeconds:30,autoStart:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,harvestTimeSeconds:30,long_task:!1,autoStart:!0},session_trace:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},harvest:{tooManyRequestsDelay:60},session_replay:{autoStart:!0,enabled:!1,harvestTimeSeconds:60,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inline_images:!1,inline_stylesheet:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){u(t)?e.mask_selector="".concat(t,",").concat(f):""===t||null===t?e.mask_selector=f:(0,l.Z)("An invalid session_replay.mask_selector was provided. '*' will be used.",t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){u(t)?e.block_selector+=",".concat(t):""!==t&&(0,l.Z)("An invalid session_replay.block_selector was provided and will not be used",t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,l.Z)("An invalid session_replay.mask_input_option was provided and will not be used",t)}},spa:{enabled:!0,harvestTimeSeconds:10,autoStart:!0}}},p={},g="All configuration objects require an agent identifier!";function m(e){if(!e)throw new Error(g);if(!p[e])throw new Error("Configuration for ".concat(e," was never set"));return p[e]}function v(e,t){if(!e)throw new Error(g);p[e]=(0,i.D)(t,h());const r=(0,n.ek)(e);r&&(r.init=p[e])}function b(e,t){if(!e)throw new Error(g);var r=m(e);if(r){for(var n=t.split("."),i=0;i<n.length-1;i++)if("object"!=typeof(r=r[n[i]]))return;r=r[n[n.length-1]]}return r}const y={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},A={};function w(e){if(!e)throw new Error("All loader-config objects require an agent identifier!");if(!A[e])throw new Error("LoaderConfig for ".concat(e," was never set"));return A[e]}function x(e,t){if(!e)throw new Error("All loader-config objects require an agent identifier!");A[e]=(0,i.D)(t,y);const r=(0,n.ek)(e);r&&(r.loader_config=A[e])}const E=(0,n.mF)().o;var _=r(385),T=r(6818);const S={buildEnv:T.Re,customTransaction:void 0,disabled:!1,distMethod:T.gF,isolatedBacklog:!1,loaderType:void 0,maxBytes:3e4,offset:Math.floor(_._A?.performance?.timeOrigin||_._A?.performance?.timing?.navigationStart||Date.now()),onerror:void 0,origin:""+_._A.location,ptid:void 0,releaseIds:{},session:void 0,xhrWrappable:"function"==typeof _._A.XMLHttpRequest?.prototype?.addEventListener,version:T.q4,denyList:void 0},R={};function D(e){if(!e)throw new Error("All runtime objects require an agent identifier!");if(!R[e])throw new Error("Runtime for ".concat(e," was never set"));return R[e]}function N(e,t){if(!e)throw new Error("All runtime objects require an agent identifier!");R[e]=(0,i.D)(t,S);const r=(0,n.ek)(e);r&&(r.runtime=R[e])}function O(e){return function(e){try{const t=s(e);return!!t.licenseKey&&!!t.errorBeacon&&!!t.applicationID}catch(e){return!1}}(e)}},9567:(e,t,r)=>{"use strict";r.d(t,{D:()=>i});var n=r(50);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.Z)("Setting a Configurable requires an object as input");if(!t||"object"!=typeof t)return(0,n.Z)("Setting a Configurable requires a model to set its initial properties");const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),o=0===Object.keys(r).length?e:r;for(let a in o)if(void 0!==e[a])try{Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):"object"==typeof e[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){(0,n.Z)("An error occurred while setting a property of a Configurable",e)}return r}catch(e){(0,n.Z)("An error occured while setting a Configurable",e)}}},6818:(e,t,r)=>{"use strict";r.d(t,{Re:()=>i,gF:()=>o,lF:()=>a,q4:()=>n});const n="1.252.0",i="PROD",o="CDN",a="2.0.0-alpha.11"},385:(e,t,r)=>{"use strict";r.d(t,{FN:()=>c,IF:()=>l,LW:()=>a,Nk:()=>h,Tt:()=>u,_A:()=>o,cv:()=>p,iS:()=>s,il:()=>n,ux:()=>d,v6:()=>i,w1:()=>f});const n="undefined"!=typeof window&&!!window.document,i="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),o=n?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),a="complete"===o?.document?.readyState,s=Boolean("hidden"===o?.document?.visibilityState),c=""+o?.location,u=/iPad|iPhone|iPod/.test(o.navigator?.userAgent),d=u&&"undefined"==typeof SharedWorker,l=(()=>{const e=o.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),f=Boolean(n&&window.document.documentMode),h=!!o.navigator?.sendBeacon,p=Math.floor(o?.performance?.timeOrigin||o?.performance?.timing?.navigationStart||Date.now())},1117:(e,t,r)=>{"use strict";r.d(t,{w:()=>o});var n=r(50);const i={agentIdentifier:"",ee:void 0};class o{constructor(e){try{if("object"!=typeof e)return(0,n.Z)("shared context requires an object as input");this.sharedContext={},Object.assign(this.sharedContext,i),Object.entries(e).forEach((e=>{let[t,r]=e;Object.keys(i).includes(t)&&(this.sharedContext[t]=r)}))}catch(e){(0,n.Z)("An error occured while setting SharedContext",e)}}}},8e3:(e,t,r)=>{"use strict";r.d(t,{L:()=>d,R:()=>c});var n=r(8325),i=r(1284),o=r(4322),a=r(3325);const s={};function c(e,t){const r={staged:!1,priority:a.p[t]||0};u(e),s[e].get(t)||s[e].set(t,r)}function u(e){e&&(s[e]||(s[e]=new Map))}function d(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"feature",r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(u(e),!e||!s[e].get(t)||r)return c(t);s[e].get(t).staged=!0;const a=[...s[e]];function c(t){const r=e?n.ee.get(e):n.ee,a=o.X.handlers;if(r.backlog&&a){var s=r.backlog[t],c=a[t];if(c){for(var u=0;s&&u<s.length;++u)l(s[u],c);(0,i.D)(c,(function(e,t){(0,i.D)(t,(function(t,r){r[0].on(e,r[1])}))}))}delete a[t],r.backlog[t]=null,r.emit("drain-"+t,[])}}a.every((e=>{let[t,r]=e;return r.staged}))&&(a.sort(((e,t)=>e[1].priority-t[1].priority)),a.forEach((t=>{let[r]=t;s[e].delete(r),c(r)})))}function l(e,t){var r=e[1];(0,i.D)(t[r],(function(t,r){var n=e[0];if(r[0]===n){var i=r[1],o=e[3],a=e[2];i.apply(o,a)}}))}},8325:(e,t,r)=>{"use strict";r.d(t,{A:()=>c,ee:()=>u});var n=r(8632),i=r(2210),o=r(234);class a{constructor(e){this.contextId=e}}var s=r(3117);const c="nr@context:".concat(s.a),u=function e(t,r){var n={},s={},d={},f=!1;try{f=16===r.length&&(0,o.OP)(r).isolatedBacklog}catch(e){}var h={on:g,addEventListener:g,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,o){!1!==o&&(o=!0);if(u.aborted&&!i)return;t&&o&&t.emit(e,r,n);for(var a=p(n),c=m(e),d=c.length,l=0;l<d;l++)c[l].apply(a,r);var f=b()[s[e]];f&&f.push([h,e,r,a]);return a},get:v,listeners:m,context:p,buffer:function(e,t){const r=b();if(t=t||"feature",h.aborted)return;Object.entries(e||{}).forEach((e=>{let[n,i]=e;s[i]=t,t in r||(r[t]=[])}))},abort:l,aborted:!1,isBuffering:function(e){return!!b()[s[e]]},debugId:r,backlog:f?{}:t&&"object"==typeof t.backlog?t.backlog:{}};return h;function p(e){return e&&e instanceof a?e:e?(0,i.X)(e,c,(()=>new a(c))):new a(c)}function g(e,t){n[e]=m(e).concat(t)}function m(e){return n[e]||[]}function v(t){return d[t]=d[t]||e(h,t)}function b(){return h.backlog}}(void 0,"globalEE"),d=(0,n.fP)();function l(){u.aborted=!0,Object.keys(u.backlog).forEach((e=>{delete u.backlog[e]}))}d.ee||(d.ee=u)},5546:(e,t,r)=>{"use strict";r.d(t,{E:()=>n,p:()=>i});var n=r(8325).ee.get("handle");function i(e,t,r,i,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},4322:(e,t,r)=>{"use strict";r.d(t,{X:()=>o});var n=r(5546);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.E,i,e,t,r)}function a(e,t,r,i,o){o||(o="feature"),e||(e=n.E);var a=t[o]=t[o]||{};(a[r]=a[r]||[]).push([e,i])}},3239:(e,t,r)=>{"use strict";r.d(t,{bP:()=>s,iz:()=>c,m$:()=>a});var n=r(385);let i=!1,o=!1;try{const e={get passive(){return i=!0,!1},get signal(){return o=!0,!1}};n._A.addEventListener("test",null,e),n._A.removeEventListener("test",null,e)}catch(e){}function a(e,t){return i||o?{capture:!!e,passive:i,signal:t}:!!e}function s(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3?arguments[3]:void 0;window.addEventListener(e,t,a(r,n))}function c(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3?arguments[3]:void 0;document.addEventListener(e,t,a(r,n))}},3117:(e,t,r)=>{"use strict";r.d(t,{a:()=>n});const n=(0,r(4402).Rl)()},4402:(e,t,r)=>{"use strict";r.d(t,{Ht:()=>u,M:()=>c,Rl:()=>a,ky:()=>s});var n=r(385);const i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";function o(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=n._A?.crypto||n._A?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),i.split("").map((e=>"x"===e?o(t,r++).toString(16):"y"===e?(3&o()|8).toString(16):e)).join("")}function s(e){const t=n._A?.crypto||n._A?.msCrypto;let r,i=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var s=0;s<e;s++)a.push(o(r,i++).toString(16));return a.join("")}function c(){return s(16)}function u(){return s(32)}},7056:(e,t,r)=>{"use strict";r.d(t,{Bq:()=>n,Hb:()=>o,IK:()=>c,oD:()=>i,uT:()=>s,wO:()=>a});const n="NRBA",i=144e5,o=18e5,a={PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},s={SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},c={OFF:0,FULL:1,ERROR:2}},7894:(e,t,r)=>{"use strict";function n(){return Math.round(performance.now())}r.d(t,{z:()=>n})},7243:(e,t,r)=>{"use strict";r.d(t,{e:()=>i});var n=r(385);function i(e){if(0===(e||"").indexOf("data:"))return{protocol:"data"};try{const t=new URL(e,location.href),r={port:t.port,hostname:t.hostname,pathname:t.pathname,search:t.search,protocol:t.protocol.slice(0,t.protocol.indexOf(":")),sameOrigin:t.protocol===n._A?.location?.protocol&&t.host===n._A?.location?.host};return r.port&&""!==r.port||("http:"===t.protocol&&(r.port="80"),"https:"===t.protocol&&(r.port="443")),r.pathname&&""!==r.pathname?r.pathname.startsWith("/")||(r.pathname="/".concat(r.pathname)):r.pathname="/",r}catch(e){return{}}}},50:(e,t,r)=>{"use strict";function n(e,t){"function"==typeof console.warn&&(console.warn("New Relic: ".concat(e)),t&&console.warn(t))}r.d(t,{Z:()=>n})},2825:(e,t,r)=>{"use strict";r.d(t,{N:()=>d,T:()=>l});var n=r(8325),i=r(5546),o=r(3325),a=r(385);const s="newrelic";const c={stn:[o.D.sessionTrace],err:[o.D.jserrors,o.D.metrics],ins:[o.D.pageAction],spa:[o.D.spa],sr:[o.D.sessionReplay,o.D.sessionTrace]},u=new Set;function d(e,t){const r=n.ee.get(t);e&&"object"==typeof e&&(u.has(t)||(Object.entries(e).forEach((e=>{let[t,n]=e;c[t]?c[t].forEach((e=>{n?(0,i.p)("feat-"+t,[],void 0,e,r):(0,i.p)("block-"+t,[],void 0,e,r),(0,i.p)("rumresp-"+t,[Boolean(n)],void 0,e,r)})):n&&(0,i.p)("feat-"+t,[],void 0,void 0,r),l[t]=Boolean(n)})),Object.keys(c).forEach((e=>{void 0===l[e]&&(c[e]?.forEach((t=>(0,i.p)("rumresp-"+e,[!1],void 0,t,r))),l[e]=!1)})),u.add(t),function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};try{a._A.dispatchEvent(new CustomEvent(s,{detail:e}))}catch(e){}}({loaded:!0})))}const l={}},2210:(e,t,r)=>{"use strict";r.d(t,{X:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},1284:(e,t,r)=>{"use strict";r.d(t,{D:()=>n});const n=(e,t)=>Object.entries(e||{}).map((e=>{let[r,n]=e;return t(r,n)}))},4351:(e,t,r)=>{"use strict";r.d(t,{P:()=>o});var n=r(8325);const i=()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}};function o(e){try{return JSON.stringify(e,i())}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}}}},3960:(e,t,r)=>{"use strict";r.d(t,{KB:()=>a,b2:()=>o});var n=r(3239);function i(){return"undefined"==typeof document||"complete"===document.readyState}function o(e,t){if(i())return e();(0,n.bP)("load",e,t)}function a(e){if(i())return e();(0,n.iz)("DOMContentLoaded",e)}},8632:(e,t,r)=>{"use strict";r.d(t,{EZ:()=>d,ce:()=>o,ek:()=>u,fP:()=>a,gG:()=>l,h5:()=>c,mF:()=>s});var n=r(7894),i=r(385);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function a(){return i._A.NREUM||(i._A.NREUM={}),void 0===i._A.newrelic&&(i._A.newrelic=i._A.NREUM),i._A.NREUM}function s(){let e=a();return e.o||(e.o={ST:i._A.setTimeout,SI:i._A.setImmediate,CT:i._A.clearTimeout,XHR:i._A.XMLHttpRequest,REQ:i._A.Request,EV:i._A.Event,PR:i._A.Promise,MO:i._A.MutationObserver,FETCH:i._A.fetch}),e}function c(e,t){let r=a();r.initializedAgents??={},t.initializedAt={ms:(0,n.z)(),date:new Date},r.initializedAgents[e]=t}function u(e){let t=a();return t.initializedAgents?.[e]}function d(e,t){a()[e]=t}function l(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},7956:(e,t,r)=>{"use strict";r.d(t,{N:()=>i});var n=r(3239);function i(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0;(0,n.iz)("visibilitychange",(function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)}),r,i)}},1214:(e,t,r)=>{"use strict";r.d(t,{em:()=>b,u5:()=>R,QU:()=>O,_L:()=>P,Gm:()=>M,Lg:()=>L,BV:()=>Z,Kf:()=>Y});var n=r(8325),i=r(3117);const o="nr@original:".concat(i.a);var a=Object.prototype.hasOwnProperty,s=!1;function c(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,o){n||(n="");const a="-"===n.charAt(0);for(let s=0;s<t.length;s++){const c=t[s],u=e[c];d(u)||(e[c]=r(u,a?c+n:n,i,c,o))}},r.flag=o,r;function r(t,r,n,s,c){return d(t)?t:(r||(r=""),nrWrapper[o]=t,function(e,t,r){if(Object.defineProperty&&Object.keys)try{return Object.keys(e).forEach((function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})})),t}catch(e){u([e],r)}for(var n in e)a.call(e,n)&&(t[n]=e[n])}(t,nrWrapper,e),nrWrapper);function nrWrapper(){var o,a,d,l;try{a=this,o=[...arguments],d="function"==typeof n?n(o,a):n||{}}catch(t){u([t,"",[o,a,s],d],e)}i(r+"start",[o,a,s],d,c);try{return l=t.apply(a,o)}catch(e){throw i(r+"err",[o,a,e],d,c),e}finally{i(r+"end",[o,a,l],d,c)}}}function i(r,n,i,o){if(!s||t){var a=s;s=!0;try{e.emit(r,n,i,t,o)}catch(t){u([t,r,n,i],e)}s=a}}}function u(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function d(e){return!(e&&"function"==typeof e&&e.apply&&!e[o])}var l=r(2210),f=r(385);const h={},p=f._A.XMLHttpRequest,g="addEventListener",m="removeEventListener",v="nr@wrapped:".concat(n.A);function b(e){var t=function(e){return(e||n.ee).get("events")}(e);if(h[t.debugId]++)return t;h[t.debugId]=1;var r=c(t,!0);function i(e){r.inPlace(e,[g,m],"-",o)}function o(e,t){return e[1]}return"getPrototypeOf"in Object&&(f.il&&y(document,i),y(f._A,i),y(p.prototype,i)),t.on(g+"-start",(function(e,t){var n=e[1];if(null!==n&&("function"==typeof n||"object"==typeof n)){var i=(0,l.X)(n,v,(function(){var e={object:function(){if("function"!=typeof n.handleEvent)return;return n.handleEvent.apply(n,arguments)},function:n}[typeof n];return e?r(e,"fn-",null,e.name||"anonymous"):n}));this.wrapped=e[1]=i}})),t.on(m+"-start",(function(e){e[1]=this.wrapped||e[1]})),t}function y(e,t){let r=e;for(;"object"==typeof r&&!Object.prototype.hasOwnProperty.call(r,g);)r=Object.getPrototypeOf(r);for(var n=arguments.length,i=new Array(n>2?n-2:0),o=2;o<n;o++)i[o-2]=arguments[o];r&&t(r,...i)}var A="fetch-",w=A+"body-",x=["arrayBuffer","blob","json","text","formData"],E=f._A.Request,_=f._A.Response,T="prototype";const S={};function R(e){const t=function(e){return(e||n.ee).get("fetch")}(e);if(!(E&&_&&f._A.fetch))return t;if(S[t.debugId]++)return t;function r(e,r,i){var o=e[r];"function"==typeof o&&(e[r]=function(){var e,r=[...arguments],a={};t.emit(i+"before-start",[r],a),a[n.A]&&a[n.A].dt&&(e=a[n.A].dt);var s=o.apply(this,r);return t.emit(i+"start",[r,e],s),s.then((function(e){return t.emit(i+"end",[null,e],s),e}),(function(e){throw t.emit(i+"end",[e],s),e}))})}return S[t.debugId]=1,x.forEach((e=>{r(E[T],e,w),r(_[T],e,w)})),r(f._A,"fetch",A),t.on(A+"end",(function(e,r){var n=this;if(r){var i=r.headers.get("content-length");null!==i&&(n.rxSize=i),t.emit(A+"done",[null,r],n)}else t.emit(A+"done",[e],n)})),t}const D={},N=["pushState","replaceState"];function O(e){const t=function(e){return(e||n.ee).get("history")}(e);return!f.il||D[t.debugId]++||(D[t.debugId]=1,c(t).inPlace(window.history,N,"-")),t}var I=r(3239);const j={},C=["appendChild","insertBefore","replaceChild"];function P(e){const t=function(e){return(e||n.ee).get("jsonp")}(e);if(!f.il||j[t.debugId])return t;j[t.debugId]=!0;var r=c(t),i=/[?&](?:callback|cb)=([^&#]+)/,o=/(.*)\.([^.]+)/,a=/^(\w+)(\.|$)(.*)$/;function s(e,t){if(!e)return t;const r=e.match(a),n=r[1];return s(r[3],t[n])}return r.inPlace(Node.prototype,C,"dom-"),t.on("dom-start",(function(e){!function(e){if(!e||"string"!=typeof e.nodeName||"script"!==e.nodeName.toLowerCase())return;if("function"!=typeof e.addEventListener)return;var n=(a=e.src,c=a.match(i),c?c[1]:null);var a,c;if(!n)return;var u=function(e){var t=e.match(o);if(t&&t.length>=3)return{key:t[2],parent:s(t[1],window)};return{key:e,parent:window}}(n);if("function"!=typeof u.parent[u.key])return;var d={};function l(){t.emit("jsonp-end",[],d),e.removeEventListener("load",l,(0,I.m$)(!1)),e.removeEventListener("error",f,(0,I.m$)(!1))}function f(){t.emit("jsonp-error",[],d),t.emit("jsonp-end",[],d),e.removeEventListener("load",l,(0,I.m$)(!1)),e.removeEventListener("error",f,(0,I.m$)(!1))}r.inPlace(u.parent,[u.key],"cb-",d),e.addEventListener("load",l,(0,I.m$)(!1)),e.addEventListener("error",f,(0,I.m$)(!1)),t.emit("new-jsonp",[e.src],d)}(e[0])})),t}const k={};function M(e){const t=function(e){return(e||n.ee).get("mutation")}(e);if(!f.il||k[t.debugId])return t;k[t.debugId]=!0;var r=c(t),i=f._A.MutationObserver;return i&&(window.MutationObserver=function(e){return this instanceof i?new i(r(e,"fn-")):i.apply(this,arguments)},MutationObserver.prototype=i.prototype),t}const H={};function L(e){const t=function(e){return(e||n.ee).get("promise")}(e);if(H[t.debugId])return t;H[t.debugId]=!0;var r=t.context,i=c(t),a=f._A.Promise;return a&&function(){function e(r){var n=t.context(),o=i(r,"executor-",n,null,!1);const s=Reflect.construct(a,[o],e);return t.context(s).getCtx=function(){return n},s}f._A.Promise=e,Object.defineProperty(e,"name",{value:"Promise"}),e.toString=function(){return a.toString()},Object.setPrototypeOf(e,a),["all","race"].forEach((function(r){const n=a[r];e[r]=function(e){let i=!1;[...e||[]].forEach((e=>{this.resolve(e).then(a("all"===r),a(!1))}));const o=n.apply(this,arguments);return o;function a(e){return function(){t.emit("propagate",[null,!i],o,!1,!1),i=i||!e}}}})),["resolve","reject"].forEach((function(r){const n=a[r];e[r]=function(e){const r=n.apply(this,arguments);return e!==r&&t.emit("propagate",[e,!0],r,!1,!1),r}})),e.prototype=a.prototype;const n=a.prototype.then;a.prototype.then=function(){var e=this,o=r(e);o.promise=e;for(var a=arguments.length,s=new Array(a),c=0;c<a;c++)s[c]=arguments[c];s[0]=i(s[0],"cb-",o,null,!1),s[1]=i(s[1],"cb-",o,null,!1);const u=n.apply(this,s);return o.nextPromise=u,t.emit("propagate",[e,!0],u,!1,!1),u},a.prototype.then[o]=n,t.on("executor-start",(function(e){e[0]=i(e[0],"resolve-",this,null,!1),e[1]=i(e[1],"resolve-",this,null,!1)})),t.on("executor-err",(function(e,t,r){e[1](r)})),t.on("cb-end",(function(e,r,n){t.emit("propagate",[n,!0],this.nextPromise,!1,!1)})),t.on("propagate",(function(e,r,n){this.getCtx&&!r||(this.getCtx=function(){if(e instanceof Promise)var r=t.context(e);return r&&r.getCtx?r.getCtx():this})}))}(),t}const z={},F="setTimeout",B="setInterval",U="clearTimeout",V="-start",q="-",G=[F,"setImmediate",B,U,"clearImmediate"];function Z(e){const t=function(e){return(e||n.ee).get("timer")}(e);if(z[t.debugId]++)return t;z[t.debugId]=1;var r=c(t);return r.inPlace(f._A,G.slice(0,2),F+q),r.inPlace(f._A,G.slice(2,3),B+q),r.inPlace(f._A,G.slice(3),U+q),t.on(B+V,(function(e,t,n){e[0]=r(e[0],"fn-",null,n)})),t.on(F+V,(function(e,t,n){this.method=n,this.timerDuration=isNaN(e[1])?0:+e[1],e[0]=r(e[0],"fn-",this,n)})),t}var W=r(50);const X={},K=["open","send"];function Y(e){var t=e||n.ee;const r=function(e){return(e||n.ee).get("xhr")}(t);if(X[r.debugId]++)return r;X[r.debugId]=1,b(t);var i=c(r),o=f._A.XMLHttpRequest,a=f._A.MutationObserver,s=f._A.Promise,u=f._A.setInterval,d="readystatechange",l=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],h=[],p=f._A.XMLHttpRequest=function(e){const t=new o(e),n=r.context(t);try{r.emit("new-xhr",[t],n),t.addEventListener(d,(a=n,function(){var e=this;e.readyState>3&&!a.resolved&&(a.resolved=!0,r.emit("xhr-resolved",[],e)),i.inPlace(e,l,"fn-",w)}),(0,I.m$)(!1))}catch(e){(0,W.Z)("An error occurred while intercepting XHR",e);try{r.emit("internal-error",[e])}catch(e){}}var a;return t};function g(e,t){i.inPlace(t,["onreadystatechange"],"fn-",w)}if(function(e,t){for(var r in e)t[r]=e[r]}(o,p),p.prototype=o.prototype,i.inPlace(p.prototype,K,"-xhr-",w),r.on("send-xhr-start",(function(e,t){g(e,t),function(e){h.push(e),a&&(m?m.then(A):u?u(A):(v=-v,y.data=v))}(t)})),r.on("open-xhr-start",g),a){var m=s&&s.resolve();if(!u&&!s){var v=1,y=document.createTextNode(v);new a(A).observe(y,{characterData:!0})}}else t.on("fn-end",(function(e){e[0]&&e[0].type===d||A()}));function A(){for(var e=0;e<h.length;e++)g(0,h[e]);h.length&&(h=[])}function w(e,t){return t}return r}},7825:(e,t,r)=>{"use strict";r.d(t,{t:()=>n});const n=r(3325).D.ajax},6660:(e,t,r)=>{"use strict";r.d(t,{t:()=>n});const n=r(3325).D.jserrors},3081:(e,t,r)=>{"use strict";r.d(t,{gF:()=>o,mY:()=>i,t9:()=>n,vz:()=>s,xS:()=>a});const n=r(3325).D.metrics,i="sm",o="cm",a="storeSupportabilityMetrics",s="storeEventMetrics"},4649:(e,t,r)=>{"use strict";r.d(t,{t:()=>n});const n=r(3325).D.pageAction},7633:(e,t,r)=>{"use strict";r.d(t,{t:()=>n});const n=r(3325).D.pageViewEvent},9251:(e,t,r)=>{"use strict";r.d(t,{t:()=>n});const n=r(3325).D.pageViewTiming},7144:(e,t,r)=>{"use strict";r.d(t,{J0:()=>l,Mi:()=>d,Vb:()=>o,Ye:()=>s,fm:()=>c,i9:()=>a,t9:()=>i,u0:()=>u});var n=r(7056);const i=r(3325).D.sessionReplay,o=.12,a={DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},s=1e6,c=64e3,u={[n.IK.ERROR]:15e3,[n.IK.FULL]:3e5,[n.IK.OFF]:0},d={RESET:{message:"Session was reset",sm:"Reset"},IMPORT:{message:"Recorder failed to import",sm:"Import"},TOO_MANY:{message:"429: Too Many Requests",sm:"Too-Many"},TOO_BIG:{message:"Payload was too large",sm:"Too-Big"},CROSS_TAB:{message:"Session Entity was set to OFF on another tab",sm:"Cross-Tab"},ENTITLEMENTS:{message:"Session Replay is not allowed and will not be started",sm:"Entitlement"}},l=5e3},3614:(e,t,r)=>{"use strict";r.d(t,{BST_RESOURCE:()=>i,END:()=>s,FEATURE_NAME:()=>n,FN_END:()=>u,FN_START:()=>c,PUSH_STATE:()=>d,RESOURCE:()=>o,START:()=>a});const n=r(3325).D.sessionTrace,i="bstResource",o="resource",a="-start",s="-end",c="fn"+a,u="fn"+s,d="pushState"},7836:(e,t,r)=>{"use strict";r.d(t,{BODY:()=>x,CB_END:()=>E,CB_START:()=>u,END:()=>w,FEATURE_NAME:()=>i,FETCH:()=>T,FETCH_BODY:()=>v,FETCH_DONE:()=>m,FETCH_START:()=>g,FN_END:()=>c,FN_START:()=>s,INTERACTION:()=>f,INTERACTION_API:()=>d,INTERACTION_EVENTS:()=>o,JSONP_END:()=>b,JSONP_NODE:()=>p,JS_TIME:()=>_,MAX_TIMER_BUDGET:()=>a,REMAINING:()=>l,SPA_NODE:()=>h,START:()=>A,originalSetTimeout:()=>y});var n=r(234);const i=r(3325).D.spa,o=["click","submit","keypress","keydown","keyup","change"],a=999,s="fn-start",c="fn-end",u="cb-start",d="api-ixn-",l="remaining",f="interaction",h="spaNode",p="jsonpNode",g="fetch-start",m="fetch-done",v="fetch-body-",b="jsonp-end",y=n.Yu.ST,A="-start",w="-end",x="-body",E="cb"+w,_="jsTime",T="fetch"},5938:(e,t,r)=>{"use strict";r.d(t,{W:()=>i});var n=r(8325);class i{constructor(e,t,r){this.agentIdentifier=e,this.aggregator=t,this.ee=n.ee.get(e),this.featureName=r,this.blocked=!1}}},7530:(e,t,r)=>{"use strict";r.d(t,{j:()=>b});var n=r(3325),i=r(234),o=r(5546),a=r(8325),s=r(7894),c=r(8e3),u=r(3960),d=r(385),l=r(50),f=r(3081),h=r(8632);function p(){const e=(0,h.gG)();["setErrorHandler","finished","addToTrace","addRelease","addPageAction","setCurrentRouteName","setPageViewName","setCustomAttribute","interaction","noticeError","setUserId","setApplicationVersion","start","recordReplay","pauseReplay"].forEach((t=>{e[t]=function(){for(var r=arguments.length,n=new Array(r),i=0;i<r;i++)n[i]=arguments[i];return function(t){for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i<r;i++)n[i-1]=arguments[i];let o=[];return Object.values(e.initializedAgents).forEach((e=>{e.exposed&&e.api[t]&&o.push(e.api[t](...n))})),o.length>1?o:o[0]}(t,...n)}}))}var g=r(2825);const m=e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e};let v=!1;function b(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},b=arguments.length>2?arguments[2]:void 0,y=arguments.length>3?arguments[3]:void 0,{init:A,info:w,loader_config:x,runtime:E={loaderType:b},exposed:_=!0}=t;const T=(0,h.gG)();w||(A=T.init,w=T.info,x=T.loader_config),(0,i.Dg)(e.agentIdentifier,A||{}),(0,i.GE)(e.agentIdentifier,x||{}),w.jsAttributes??={},d.v6&&(w.jsAttributes.isWorker=!0),(0,i.CX)(e.agentIdentifier,w);const S=(0,i.P_)(e.agentIdentifier),R=[w.beacon,w.errorBeacon];v||(S.proxy.assets&&(m(S.proxy.assets),R.push(S.proxy.assets)),S.proxy.beacon&&R.push(S.proxy.beacon),p(),(0,h.EZ)("activatedFeatures",g.T)),E.denyList=[...S.ajax.deny_list||[],...S.ajax.block_internal?R:[]],(0,i.sU)(e.agentIdentifier,E),void 0===e.api&&(e.api=function(e,t){t||(0,c.R)(e,"api");const h={};var p=a.ee.get(e),g=p.get("tracer"),m="api-",v=m+"ixn-";function b(t,r,n,o){const a=(0,i.C5)(e);return null===r?delete a.jsAttributes[t]:(0,i.CX)(e,{...a,jsAttributes:{...a.jsAttributes,[t]:r}}),w(m,n,!0,o||null===r?"session":void 0)(t,r)}function y(){}["setErrorHandler","finished","addToTrace","addRelease"].forEach((e=>{h[e]=w(m,e,!0,"api")})),h.addPageAction=w(m,"addPageAction",!0,n.D.pageAction),h.setCurrentRouteName=w(m,"routeName",!0,n.D.spa),h.setPageViewName=function(t,r){if("string"==typeof t)return"/"!==t.charAt(0)&&(t="/"+t),(0,i.OP)(e).customTransaction=(r||"http://custom.transaction")+t,w(m,"setPageViewName",!0)()},h.setCustomAttribute=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if("string"==typeof e){if(["string","number","boolean"].includes(typeof t)||null===t)return b(e,t,"setCustomAttribute",r);(0,l.Z)("Failed to execute setCustomAttribute.\nNon-null value must be a string, number or boolean type, but a type of <".concat(typeof t,"> was provided."))}else(0,l.Z)("Failed to execute setCustomAttribute.\nName must be a string type, but a type of <".concat(typeof e,"> was provided."))},h.setUserId=function(e){if("string"==typeof e||null===e)return b("enduser.id",e,"setUserId",!0);(0,l.Z)("Failed to execute setUserId.\nNon-null value must be a string type, but a type of <".concat(typeof e,"> was provided."))},h.setApplicationVersion=function(e){if("string"==typeof e||null===e)return b("application.version",e,"setApplicationVersion",!1);(0,l.Z)("Failed to execute setApplicationVersion. Expected <String | null>, but got <".concat(typeof e,">."))},h.start=e=>{try{const t=e?"defined":"undefined";(0,o.p)(f.xS,["API/start/".concat(t,"/called")],void 0,n.D.metrics,p);const r=Object.values(n.D);if(void 0===e)e=r;else{if((e=Array.isArray(e)&&e.length?e:[e]).some((e=>!r.includes(e))))return(0,l.Z)("Invalid feature name supplied. Acceptable feature names are: ".concat(r));e.includes(n.D.pageViewEvent)||e.push(n.D.pageViewEvent)}e.forEach((e=>{p.emit("".concat(e,"-opt-in"))}))}catch(e){(0,l.Z)("An unexpected issue occurred",e)}},h.recordReplay=function(){(0,o.p)(f.xS,["API/recordReplay/called"],void 0,n.D.metrics,p),(0,o.p)("recordReplay",[],void 0,n.D.sessionReplay,p)},h.pauseReplay=function(){(0,o.p)(f.xS,["API/pauseReplay/called"],void 0,n.D.metrics,p),(0,o.p)("pauseReplay",[],void 0,n.D.sessionReplay,p)},h.interaction=function(){return(new y).get()};var A=y.prototype={createTracer:function(e,t){var r={},i=this,a="function"==typeof t;return(0,o.p)(f.xS,["API/createTracer/called"],void 0,n.D.metrics,p),(0,o.p)(v+"tracer",[(0,s.z)(),e,r],i,n.D.spa,p),function(){if(g.emit((a?"":"no-")+"fn-start",[(0,s.z)(),i,a],r),a)try{return t.apply(this,arguments)}catch(e){throw g.emit("fn-err",[arguments,this,e],r),e}finally{g.emit("fn-end",[(0,s.z)()],r)}}}};function w(e,t,r,i){return function(){return(0,o.p)(f.xS,["API/"+t+"/called"],void 0,n.D.metrics,p),i&&(0,o.p)(e+t,[(0,s.z)(),...arguments],r?null:this,i,p),r?void 0:this}}function x(){r.e(111).then(r.bind(r,7438)).then((t=>{let{setAPI:r}=t;r(e),(0,c.L)(e,"api")})).catch((()=>{(0,l.Z)("Downloading runtime APIs failed..."),(0,c.L)(e,"api",!0)}))}return["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((e=>{A[e]=w(v,e,void 0,n.D.spa)})),h.noticeError=function(e,t){"string"==typeof e&&(e=new Error(e)),(0,o.p)(f.xS,["API/noticeError/called"],void 0,n.D.metrics,p),(0,o.p)("err",[e,(0,s.z)(),!1,t],void 0,n.D.jserrors,p)},d.il?(0,u.b2)((()=>x()),!0):x(),h}(e.agentIdentifier,y)),void 0===e.exposed&&(e.exposed=_),v=!0}},1926:(e,t,r)=>{r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},3325:(e,t,r)=>{"use strict";r.d(t,{D:()=>n,p:()=>i});const n={ajax:"ajax",jserrors:"jserrors",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",spa:"spa"},i={[n.pageViewEvent]:1,[n.pageViewTiming]:2,[n.metrics]:3,[n.jserrors]:4,[n.ajax]:5,[n.sessionTrace]:6,[n.pageAction]:7,[n.spa]:8,[n.sessionReplay]:9}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>({111:"nr-spa",164:"nr-spa-compressor",433:"nr-spa-recorder"}[e]+"-1.252.0.min.js"),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA-1.252.0.PROD:",i.l=(r,n,o,a)=>{if(e[r])e[r].push(n);else{var s,c;if(void 0!==o)for(var u=document.getElementsByTagName("script"),d=0;d<u.length;d++){var l=u[d];if(l.getAttribute("src")==r||l.getAttribute("data-webpack")==t+o){s=l;break}}if(!s){c=!0;var f={111:"sha512-EIHTFh/PyMHLspjr+lbpdxFHzJXOF7HH8nedLZZTJSO0SyJ4rECM57ibYM67sib1O2FH0nhyrm4QKgl30mtD8w==",433:"sha512-wCJ0jwoj4FyJOrl6z7VLilNolSSxqqm/5L08FBzY2sXjVPFpnyu6p3obblBOv9lj2u9awQrvcEGqvjyYflheow==",164:"sha512-we5lwLCaVV8XgmWsFLhIuQ0Ja0mW9HH9YHLBzjhalvM84n3Rpvmg1iFz7BOZeYnHrjU5dcWOHrtqxvdjDNy2ag=="};(s=document.createElement("script")).charset="utf-8",s.timeout=120,i.nc&&s.setAttribute("nonce",i.nc),s.setAttribute("data-webpack",t+o),s.src=r,0!==s.src.indexOf(window.location.origin+"/")&&(s.crossOrigin="anonymous"),f[a]&&(s.integrity=f[a])}e[r]=[n];var h=(t,n)=>{s.onerror=s.onload=null,clearTimeout(p);var i=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},p=setTimeout(h.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=h.bind(null,s.onerror),s.onload=h.bind(null,s.onload),c&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.p="https://js-agent.newrelic.com/",(()=>{var e={801:0,92:0};i.f.j=(t,r)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,i)=>n=e[t]=[r,i]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,n[1](s)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,o,[a,s,c]=r,u=0;if(a.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(c)c(i)}for(t&&t(r);u<a.length;u++)o=a[u],i.o(e,o)&&e[o]&&e[o][0](),e[o]=0},r=self["webpackChunk:NRBA-1.252.0.PROD"]=self["webpackChunk:NRBA-1.252.0.PROD"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=>{"use strict";i(1926);var e=i(50);class t{#e(t){for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i<r;i++)n[i-1]=arguments[i];if("function"==typeof this.api?.[t])return this.api[t](...n);(0,e.Z)("Call to agent api ".concat(t," failed. The API is not currently initialized."))}addPageAction(e,t){return this.#e("addPageAction",e,t)}setPageViewName(e,t){return this.#e("setPageViewName",e,t)}setCustomAttribute(e,t,r){return this.#e("setCustomAttribute",e,t,r)}noticeError(e,t){return this.#e("noticeError",e,t)}setUserId(e){return this.#e("setUserId",e)}setApplicationVersion(e){return this.#e("setApplicationVersion",e)}setErrorHandler(e){return this.#e("setErrorHandler",e)}finished(e){return this.#e("finished",e)}addRelease(e,t){return this.#e("addRelease",e,t)}start(e){return this.#e("start",e)}recordReplay(){return this.#e("recordReplay")}pauseReplay(){return this.#e("pauseReplay")}addToTrace(e){return this.#e("addToTrace",e)}setCurrentRouteName(e){return this.#e("setCurrentRouteName",e)}interaction(){return this.#e("interaction")}}var r=i(3325),n=i(234);const o=Object.values(r.D);function a(e){const t={};return o.forEach((r=>{t[r]=function(e,t){return!1!==(0,n.Mt)(t,"".concat(e,".enabled"))}(r,e)})),t}var s=i(7530);var c=i(8e3),u=i(5938),d=i(3960),l=i(385);class f extends u.W{constructor(e,t,r){let i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];super(e,t,r),this.auto=i,this.abortHandler=void 0,this.featAggregate=void 0,this.onAggregateImported=void 0,!1===(0,n.Mt)(this.agentIdentifier,"".concat(this.featureName,".autoStart"))&&(this.auto=!1),this.auto&&(0,c.R)(e,r)}importAggregator(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(this.featAggregate)return;if(!this.auto)return void this.ee.on("".concat(this.featureName,"-opt-in"),(()=>{(0,c.R)(this.agentIdentifier,this.featureName),this.auto=!0,this.importAggregator()}));const r=l.il&&!0===(0,n.Mt)(this.agentIdentifier,"privacy.cookies_enabled");let o;this.onAggregateImported=new Promise((e=>{o=e}));const a=async()=>{let n;try{if(r){const{setupAgentSession:e}=await i.e(111).then(i.bind(i,1656));n=e(this.agentIdentifier)}}catch(t){(0,e.Z)("A problem occurred when starting up session manager. This page will not start or extend any session.",t)}try{if(!this.shouldImportAgg(this.featureName,n))return(0,c.L)(this.agentIdentifier,this.featureName),void o(!1);const{lazyFeatureLoader:e}=await i.e(111).then(i.bind(i,8582)),{Aggregate:r}=await e(this.featureName,"aggregate");this.featAggregate=new r(this.agentIdentifier,this.aggregator,t),o(!0)}catch(t){(0,e.Z)("Downloading and initializing ".concat(this.featureName," failed..."),t),this.abortHandler?.(),(0,c.L)(this.agentIdentifier,this.featureName,!0),o(!1)}};l.il?(0,d.b2)((()=>a()),!0):a()}shouldImportAgg(e,t){return e!==r.D.sessionReplay||!!n.Yu.MO&&(!1!==(0,n.Mt)(this.agentIdentifier,"session_trace.enabled")&&(!!t?.isNew||!!t?.state.sessionReplayMode))}}var h=i(7633);class p extends f{static featureName=h.t;constructor(e,t){let r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,t,h.t,r),this.importAggregator()}}var g=i(1117),m=i(1284);class v extends g.w{constructor(e){super(e),this.aggregatedData={}}store(e,t,r,n,i){var o=this.getBucket(e,t,r,i);return o.metrics=function(e,t){t||(t={count:0});return t.count+=1,(0,m.D)(e,(function(e,r){t[e]=b(r,t[e])})),t}(n,o.metrics),o}merge(e,t,r,n,i){var o=this.getBucket(e,t,n,i);if(o.metrics){var a=o.metrics;a.count+=r.count,(0,m.D)(r,(function(e,t){if("count"!==e){var n=a[e],i=r[e];i&&!i.c?a[e]=b(i.t,n):a[e]=function(e,t){if(!t)return e;t.c||(t=y(t.t));return t.min=Math.min(e.min,t.min),t.max=Math.max(e.max,t.max),t.t+=e.t,t.sos+=e.sos,t.c+=e.c,t}(i,a[e])}}))}else o.metrics=r}storeMetric(e,t,r,n){var i=this.getBucket(e,t,r);return i.stats=b(n,i.stats),i}getBucket(e,t,r,n){this.aggregatedData[e]||(this.aggregatedData[e]={});var i=this.aggregatedData[e][t];return i||(i=this.aggregatedData[e][t]={params:r||{}},n&&(i.custom=n)),i}get(e,t){return t?this.aggregatedData[e]&&this.aggregatedData[e][t]:this.aggregatedData[e]}take(e){for(var t={},r="",n=!1,i=0;i<e.length;i++)t[r=e[i]]=A(this.aggregatedData[r]),t[r].length&&(n=!0),delete this.aggregatedData[r];return n?t:null}}function b(e,t){return null==e?function(e){e?e.c++:e={c:1};return e}(t):t?(t.c||(t=y(t.t)),t.c+=1,t.t+=e,t.sos+=e*e,e>t.max&&(t.max=e),e<t.min&&(t.min=e),t):{t:e}}function y(e){return{t:e,min:e,max:e,sos:e*e,c:1}}function A(e){return"object"!=typeof e?[]:(0,m.D)(e,w)}function w(e,t){return t}var x=i(8632),E=i(4402),_=i(4351);var T=i(5546),S=i(7956),R=i(3239),D=i(7894),N=i(9251);class O extends f{static featureName=N.t;constructor(e,t){let r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,t,N.t,r),l.il&&((0,S.N)((()=>(0,T.p)("docHidden",[(0,D.z)()],void 0,N.t,this.ee)),!0),(0,R.bP)("pagehide",(()=>(0,T.p)("winPagehide",[(0,D.z)()],void 0,N.t,this.ee))),this.importAggregator())}}var I=i(3081);class j extends f{static featureName=I.t9;constructor(e,t){let r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,t,I.t9,r),this.importAggregator()}}var C=i(6660);class P{constructor(e,t,r,n){this.name="UncaughtError",this.message=e,this.sourceURL=t,this.line=r,this.column=n}}class k extends f{static featureName=C.t;#t=new Set;constructor(e,t){let n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,t,C.t,n);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on("fn-err",((e,t,n)=>{this.abortHandler&&!this.#t.has(n)&&(this.#t.add(n),(0,T.p)("err",[this.#r(n),(0,D.z)()],void 0,r.D.jserrors,this.ee))})),this.ee.on("internal-error",(e=>{this.abortHandler&&(0,T.p)("ierr",[this.#r(e),(0,D.z)(),!0],void 0,r.D.jserrors,this.ee)})),l._A.addEventListener("unhandledrejection",(e=>{this.abortHandler&&(0,T.p)("err",[this.#n(e),(0,D.z)(),!1,{unhandledPromiseRejection:1}],void 0,r.D.jserrors,this.ee)}),(0,R.m$)(!1,this.removeOnAbort?.signal)),l._A.addEventListener("error",(e=>{this.abortHandler&&(this.#t.has(e.error)?this.#t.delete(e.error):(0,T.p)("err",[this.#i(e),(0,D.z)()],void 0,r.D.jserrors,this.ee))}),(0,R.m$)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#o,this.importAggregator()}#o(){this.removeOnAbort?.abort(),this.#t.clear(),this.abortHandler=void 0}#r(e){return e instanceof Error?e:void 0!==e?.message?new P(e.message,e.filename||e.sourceURL,e.lineno||e.line,e.colno||e.col):new P("string"==typeof e?e:(0,_.P)(e))}#n(e){let t="Unhandled Promise Rejection: ";if(e?.reason instanceof Error)try{return e.reason.message=t+e.reason.message,e.reason}catch(t){return e.reason}if(void 0===e.reason)return new P(t);const r=this.#r(e.reason);return r.message=t+r.message,r}#i(e){if(e.error instanceof SyntaxError&&!/:\d+$/.test(e.error.stack?.trim())){const t=new P(e.message,e.filename,e.lineno,e.colno);return t.name=SyntaxError.name,t}return e.error instanceof Error?e.error:new P(e.message,e.filename,e.lineno,e.colno)}}var M=i(2210);let H=1;const L="nr@id";function z(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===l._A?0:(0,M.X)(e,L,(function(){return H++}))}function F(e){if("string"==typeof e&&e.length)return e.length;if("object"==typeof e){if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer&&e.byteLength)return e.byteLength;if("undefined"!=typeof Blob&&e instanceof Blob&&e.size)return e.size;if(!("undefined"!=typeof FormData&&e instanceof FormData))try{return(0,_.P)(e).length}catch(e){return}}}var B=i(1214),U=i(7243);class V{constructor(e){this.agentIdentifier=e}generateTracePayload(e){if(!this.shouldGenerateTrace(e))return null;var t=(0,n.DL)(this.agentIdentifier);if(!t)return null;var r=(t.accountID||"").toString()||null,i=(t.agentID||"").toString()||null,o=(t.trustKey||"").toString()||null;if(!r||!i)return null;var a=(0,E.M)(),s=(0,E.Ht)(),c=Date.now(),u={spanId:a,traceId:s,timestamp:c};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(u.traceContextParentHeader=this.generateTraceContextParentHeader(a,s),u.traceContextStateHeader=this.generateTraceContextStateHeader(a,c,r,i,o)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(u.newrelicHeader=this.generateTraceHeader(a,s,c,r,i,o)),u}generateTraceContextParentHeader(e,t){return"00-"+t+"-"+e+"-01"}generateTraceContextStateHeader(e,t,r,n,i){return i+"@nr=0-1-"+r+"-"+n+"-"+e+"----"+t}generateTraceHeader(e,t,r,n,i,o){if(!("function"==typeof l._A?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return o&&n!==o&&(a.d.tk=o),btoa((0,_.P)(a))}shouldGenerateTrace(e){return this.isDtEnabled()&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1,r={};if((0,n.Mt)(this.agentIdentifier,"distributed_tracing")&&(r=(0,n.P_)(this.agentIdentifier).distributed_tracing),e.sameOrigin)t=!0;else if(r.allowed_origins instanceof Array)for(var i=0;i<r.allowed_origins.length;i++){var o=(0,U.e)(r.allowed_origins[i]);if(e.hostname===o.hostname&&e.protocol===o.protocol&&e.port===o.port){t=!0;break}}return t}isDtEnabled(){var e=(0,n.Mt)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.enabled}excludeNewrelicHeader(){var e=(0,n.Mt)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=(0,n.Mt)(this.agentIdentifier,"distributed_tracing");return!!e&&!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=(0,n.Mt)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.cors_use_tracecontext_headers}}var q=i(7825),G=["load","error","abort","timeout"],Z=G.length,W=n.Yu.REQ,X=n.Yu.XHR;class K extends f{static featureName=q.t;constructor(e,t){let i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(super(e,t,q.t,i),(0,n.OP)(e).xhrWrappable){this.dt=new V(e),this.handler=(e,t,r,n)=>(0,T.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:"xhr",fetch:"fetch",beacon:"beacon"};l._A?.performance?.getEntriesByType("resource").forEach((t=>{if(t.initiatorType in e&&0!==t.responseStatus){const n={status:t.responseStatus},i={rxSize:t.transferSize,duration:Math.floor(t.duration),cbTime:0};Y(n,t.name),this.handler("xhr",[n,i,t.startTime,t.responseEnd,e[t.initiatorType]],void 0,r.D.ajax)}}))}catch(e){}(0,B.u5)(this.ee),(0,B.Kf)(this.ee),function(e,t,i,o){function a(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=x,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},e.addEventListener("load",(function(r){E(t,e)}),(0,R.m$)(!1)),l.IF||e.addEventListener("progress",(function(e){t.lastSize=e.loaded}),(0,R.m$)(!1))}function s(e){this.params={method:e[0]},Y(this,e[1]),this.metrics={}}function c(t,r){var i=(0,n.DL)(e);i.xpid&&this.sameOrigin&&r.setRequestHeader("X-NewRelic-ID",i.xpid);var a=o.generateTracePayload(this.parsedOrigin);if(a){var s=!1;a.newrelicHeader&&(r.setRequestHeader("newrelic",a.newrelicHeader),s=!0),a.traceContextParentHeader&&(r.setRequestHeader("traceparent",a.traceContextParentHeader),a.traceContextStateHeader&&r.setRequestHeader("tracestate",a.traceContextStateHeader),s=!0),s&&(this.dt=a)}}function u(e,r){var n=this.metrics,i=e[0],o=this;if(n&&i){var a=F(i);a&&(n.txSize=a)}this.startTime=(0,D.z)(),this.body=i,this.listener=function(e){try{"abort"!==e.type||o.loadCaptureCalled||(o.params.aborted=!0),("load"!==e.type||o.called===o.totalCbs&&(o.onloadCalled||"function"!=typeof r.onload)&&"function"==typeof o.end)&&o.end(r)}catch(e){try{t.emit("internal-error",[e])}catch(e){}}};for(var s=0;s<Z;s++)r.addEventListener(G[s],this.listener,(0,R.m$)(!1))}function d(e,t,r){this.cbTime+=e,t?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof r.onload||"function"!=typeof this.end||this.end(r)}function f(e,t){var r=""+z(e)+!!t;this.xhrGuids&&!this.xhrGuids[r]&&(this.xhrGuids[r]=!0,this.totalCbs+=1)}function h(e,t){var r=""+z(e)+!!t;this.xhrGuids&&this.xhrGuids[r]&&(delete this.xhrGuids[r],this.totalCbs-=1)}function p(){this.endTime=(0,D.z)()}function g(e,r){r instanceof X&&"load"===e[0]&&t.emit("xhr-load-added",[e[1],e[2]],r)}function m(e,r){r instanceof X&&"load"===e[0]&&t.emit("xhr-load-removed",[e[1],e[2]],r)}function v(e,t,r){t instanceof X&&("onload"===r&&(this.onload=!0),("load"===(e[0]&&e[0].type)||this.onload)&&(this.xhrCbStart=(0,D.z)()))}function b(e,r){this.xhrCbStart&&t.emit("xhr-cb-time",[(0,D.z)()-this.xhrCbStart,this.onload,r],r)}function y(e){var t,r=e[1]||{};if("string"==typeof e[0]?0===(t=e[0]).length&&l.il&&(t=""+l._A.location.href):e[0]&&e[0].url?t=e[0].url:l._A?.URL&&e[0]&&e[0]instanceof URL?t=e[0].href:"function"==typeof e[0].toString&&(t=e[0].toString()),"string"==typeof t&&0!==t.length){t&&(this.parsedOrigin=(0,U.e)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var n=o.generateTracePayload(this.parsedOrigin);if(n&&(n.newrelicHeader||n.traceContextParentHeader))if(e[0]&&e[0].headers)s(e[0].headers,n)&&(this.dt=n);else{var i={};for(var a in r)i[a]=r[a];i.headers=new Headers(r.headers||{}),s(i.headers,n)&&(this.dt=n),e.length>1?e[1]=i:e.push(i)}}function s(e,t){var r=!1;return t.newrelicHeader&&(e.set("newrelic",t.newrelicHeader),r=!0),t.traceContextParentHeader&&(e.set("traceparent",t.traceContextParentHeader),t.traceContextStateHeader&&e.set("tracestate",t.traceContextStateHeader),r=!0),r}}function A(e,t){this.params={},this.metrics={},this.startTime=(0,D.z)(),this.dt=t,e.length>=1&&(this.target=e[0]),e.length>=2&&(this.opts=e[1]);var r,n=this.opts||{},i=this.target;"string"==typeof i?r=i:"object"==typeof i&&i instanceof W?r=i.url:l._A?.URL&&"object"==typeof i&&i instanceof URL&&(r=i.href),Y(this,r);var o=(""+(i&&i instanceof W&&i.method||n.method||"GET")).toUpperCase();this.params.method=o,this.body=n.body,this.txSize=F(n.body)||0}function w(e,t){var n;this.endTime=(0,D.z)(),this.params||(this.params={}),this.params.status=t?t.status:0,"string"==typeof this.rxSize&&this.rxSize.length>0&&(n=+this.rxSize);var o={txSize:this.txSize,rxSize:n,duration:(0,D.z)()-this.startTime};i("xhr",[this.params,o,this.startTime,this.endTime,"fetch"],this,r.D.ajax)}function x(e){var t=this.params,n=this.metrics;if(!this.ended){this.ended=!0;for(var o=0;o<Z;o++)e.removeEventListener(G[o],this.listener,!1);t.aborted||(n.duration=(0,D.z)()-this.startTime,this.loadCaptureCalled||4!==e.readyState?null==t.status&&(t.status=0):E(this,e),n.cbTime=this.cbTime,i("xhr",[t,n,this.startTime,this.endTime,"xhr"],this,r.D.ajax))}}function E(e,n){e.params.status=n.status;var i=function(e,t){var r=e.responseType;return"json"===r&&null!==t?t:"arraybuffer"===r||"blob"===r||"json"===r?F(e.response):"text"===r||""===r||void 0===r?F(e.responseText):void 0}(n,e.lastSize);if(i&&(e.metrics.rxSize=i),e.sameOrigin){var o=n.getResponseHeader("X-NewRelic-App-Data");o&&((0,T.p)(I.mY,["Ajax/CrossApplicationTracing/Header/Seen"],void 0,r.D.metrics,t),e.params.cat=o.split(", ").pop())}e.loadCaptureCalled=!0}t.on("new-xhr",a),t.on("open-xhr-start",s),t.on("open-xhr-end",c),t.on("send-xhr-start",u),t.on("xhr-cb-time",d),t.on("xhr-load-added",f),t.on("xhr-load-removed",h),t.on("xhr-resolved",p),t.on("addEventListener-end",g),t.on("removeEventListener-end",m),t.on("fn-end",b),t.on("fetch-before-start",y),t.on("fetch-start",A),t.on("fn-start",v),t.on("fetch-done",w)}(e,this.ee,this.handler,this.dt),this.importAggregator()}}}function Y(e,t){var r=(0,U.e)(t),n=e.params||e;n.hostname=r.hostname,n.port=r.port,n.protocol=r.protocol,n.host=r.hostname+":"+r.port,n.pathname=r.pathname,e.parsedOrigin=r,e.sameOrigin=r.sameOrigin}var J=i(3614);const{BST_RESOURCE:Q,RESOURCE:ee,START:te,END:re,FEATURE_NAME:ne,FN_END:ie,FN_START:oe,PUSH_STATE:ae}=J;var se=i(7056),ce=i(7144);class ue extends f{static featureName=ce.t9;constructor(e,t){let r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,t,ce.t9,r);try{const e=JSON.parse(localStorage.getItem("NRBA_SESSION"));e.sessionReplayMode!==se.IK.OFF?this.#a(e.sessionReplayMode):this.importAggregator({})}catch(e){this.importAggregator({})}}async#a(e){const{Recorder:t}=await Promise.all([i.e(111),i.e(433)]).then(i.bind(i,4136));this.recorder=new t({mode:e,agentIdentifier:this.agentIdentifier}),this.recorder.startRecording(),this.importAggregator({recorder:this.recorder})}}var de=i(7836);const{FEATURE_NAME:le,START:fe,END:he,BODY:pe,CB_END:ge,JS_TIME:me,FETCH:ve,FN_START:be,CB_START:ye,FN_END:Ae}=de;var we=i(4649);class xe extends f{static featureName=we.t;constructor(e,t){let r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,t,we.t,r),this.importAggregator()}}new class extends t{constructor(t){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(0,E.ky)(16);super(),l._A?(this.agentIdentifier=r,this.sharedAggregator=new v({agentIdentifier:this.agentIdentifier}),this.features={},(0,x.h5)(r,this),this.desiredFeatures=new Set(t.features||[]),this.desiredFeatures.add(p),(0,s.j)(this,t,t.loaderType||"agent"),this.run()):(0,e.Z)("Failed to initial the agent. Could not determine the runtime environment.")}get config(){return{info:(0,n.C5)(this.agentIdentifier),init:(0,n.P_)(this.agentIdentifier),loader_config:(0,n.DL)(this.agentIdentifier),runtime:(0,n.OP)(this.agentIdentifier)}}run(){try{const t=a(this.agentIdentifier),n=[...this.desiredFeatures];n.sort(((e,t)=>r.p[e.featureName]-r.p[t.featureName])),n.forEach((n=>{if(t[n.featureName]||n.featureName===r.D.pageViewEvent){const i=function(e){switch(e){case r.D.ajax:return[r.D.jserrors];case r.D.sessionTrace:return[r.D.ajax,r.D.pageViewEvent];case r.D.sessionReplay:return[r.D.sessionTrace];case r.D.pageViewTiming:return[r.D.pageViewEvent];default:return[]}}(n.featureName);i.every((e=>t[e]))||(0,e.Z)("".concat(n.featureName," is enabled but one or more dependent features has been disabled (").concat((0,_.P)(i),"). This may cause unintended consequences or missing data...")),this.features[n.featureName]=new n(this.agentIdentifier,this.sharedAggregator)}}))}catch(t){(0,e.Z)("Failed to initialize all enabled instrument classes (agent aborted) -",t);for(const e in this.features)this.features[e].abortHandler?.();const r=(0,x.fP)();return delete r.initializedAgents[this.agentIdentifier]?.api,delete r.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator,r.ee?.abort(),delete r.ee?.get(this.agentIdentifier),!1}}}({features:[K,p,O,class extends f{static featureName=ne;constructor(e,t){if(super(e,t,ne,!(arguments.length>2&&void 0!==arguments[2])||arguments[2]),!l.il)return;const n=this.ee;let i;(0,B.QU)(n),this.eventsEE=(0,B.em)(n),this.eventsEE.on(oe,(function(e,t){this.bstStart=(0,D.z)()})),this.eventsEE.on(ie,(function(e,t){(0,T.p)("bst",[e[0],t,this.bstStart,(0,D.z)()],void 0,r.D.sessionTrace,n)})),n.on(ae+te,(function(e){this.time=(0,D.z)(),this.startPath=location.pathname+location.hash})),n.on(ae+re,(function(e){(0,T.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,r.D.sessionTrace,n)}));try{i=new PerformanceObserver((e=>{const t=e.getEntries();(0,T.p)(Q,[t],void 0,r.D.sessionTrace,n)})),i.observe({type:ee,buffered:!0})}catch(e){}this.importAggregator({resourceObserver:i})}},ue,j,xe,k,class extends f{static featureName=le;constructor(e,t){if(super(e,t,le,!(arguments.length>2&&void 0!==arguments[2])||arguments[2]),!l.il)return;if(!(0,n.OP)(e).xhrWrappable)return;try{this.removeOnAbort=new AbortController}catch(e){}let r,i=0;const o=this.ee.get("tracer"),a=(0,B._L)(this.ee),s=(0,B.Lg)(this.ee),c=(0,B.BV)(this.ee),u=(0,B.Kf)(this.ee),d=this.ee.get("events"),f=(0,B.u5)(this.ee),h=(0,B.QU)(this.ee),p=(0,B.Gm)(this.ee);function g(e,t){h.emit("newURL",[""+window.location,t])}function m(){i++,r=window.location.hash,this[be]=(0,D.z)()}function v(){i--,window.location.hash!==r&&g(0,!0);var e=(0,D.z)();this[me]=~~this[me]+e-this[be],this[Ae]=e}function b(e,t){e.on(t,(function(){this[t]=(0,D.z)()}))}this.ee.on(be,m),s.on(ye,m),a.on(ye,m),this.ee.on(Ae,v),s.on(ge,v),a.on(ge,v),this.ee.buffer([be,Ae,"xhr-resolved"],this.featureName),d.buffer([be],this.featureName),c.buffer(["setTimeout"+he,"clearTimeout"+fe,be],this.featureName),u.buffer([be,"new-xhr","send-xhr"+fe],this.featureName),f.buffer([ve+fe,ve+"-done",ve+pe+fe,ve+pe+he],this.featureName),h.buffer(["newURL"],this.featureName),p.buffer([be],this.featureName),s.buffer(["propagate",ye,ge,"executor-err","resolve"+fe],this.featureName),o.buffer([be,"no-"+be],this.featureName),a.buffer(["new-jsonp","cb-start","jsonp-error","jsonp-end"],this.featureName),b(f,ve+fe),b(f,ve+"-done"),b(a,"new-jsonp"),b(a,"jsonp-end"),b(a,"cb-start"),h.on("pushState-end",g),h.on("replaceState-end",g),window.addEventListener("hashchange",g,(0,R.m$)(!0,this.removeOnAbort?.signal)),window.addEventListener("load",g,(0,R.m$)(!0,this.removeOnAbort?.signal)),window.addEventListener("popstate",(function(){g(0,i>1)}),(0,R.m$)(!0,this.removeOnAbort?.signal)),this.abortHandler=this.#o,this.importAggregator()}#o(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}],loaderType:"spa"})})()})();</script></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"apiErrors":null,"page":{"enableLazyLoadingAfter":null,"isDemo":false,"devhub":null,"status":200,"meta":{"section":"Bay Area \u0026 State","sections":"News, Bay Area \u0026 State","facebookShareAdmins":"100006394927810","id":"article-18569276-wcm","eid":"article-18569276","lastModifiedDate":"2023-12-22T18:50:53Z","title":"A famous view in San Francisco is going to change","openGraphType":"article","openGraphImageUrl":"https://s.hdnux.com/photos/01/35/55/34/24565517/3/rawImage.jpg","excerpt":"Photographers won't love the removal of a barrier chain on the road to Fort Point.","alternateTitle":"A famous view in San Francisco is going to change","url":"/bayarea/article/fort-point-chain-removal-san-francisco-18569276.php","canonicalUrl":"https://www.sfgate.com/bayarea/article/fort-point-chain-removal-san-francisco-18569276.php","description":"Workers are replacing the charming rusting chain that lines the road to Fort Point with a dull metal barrier.","nlpTags":{"nlpOrganization":"","nlpPerson":"Julian Espinoza","nlpLocation":"Marine Drive, Fort Point, San Francisco, Golden Gate National Recreation Area, Presidio, Golden Gate Bridge, Lincoln Boulevard","nlpEvent":"Civil War","nlpOther":"Instagram, Flickr, Vertigo","nlpCategories":"","nlpConsumerGood":"","nlpUnknown":"","nlpWorkOfArt":""},"newsKeywords":"Julian Espinoza, Marine Drive, Fort Point, San Francisco, Golden Gate National Recreation Area, Presidio, Golden Gate Bridge, Lincoln Boulevard, Civil War, Instagram, Flickr, Vertigo","tags":{"subjects":"","categories":"","categoryTags":"","concepts":"","organizations":"","persons":"","keywords":"Julian Espinoza, Marine Drive, Fort Point, San Francisco, Golden Gate National Recreation Area, Presidio, Golden Gate Bridge, Lincoln Boulevard, Civil War, Instagram, Flickr, Vertigo","robots":"max-image-preview:large, index, follow","Googlebot-News":""},"publicationName":"SFGATE","publicationDate":"2023-12-22 18:50:53","siteDomain":"sfgate.com","socialHeadline":"A famous view in San Francisco is going to change","authorName":"Kent German","authorTitle":"","facebookAppId":"1609422252616351","twitterAccount":"SFGate","robots":null,"pageJsonLds":[{"@context":"https://schema.org","@type":"NewsArticle","mainEntityOfPage":"https://www.sfgate.com/bayarea/article/fort-point-chain-removal-san-francisco-18569276.php","url":"https://www.sfgate.com/bayarea/article/fort-point-chain-removal-san-francisco-18569276.php","headline":"A famous view in San Francisco is going to change","articleSection":"News/Bay Area \u0026 State","publisher":{"@type":"NewsMediaOrganization","name":"SFGATE","url":"https://www.sfgate.com","logo":{"@type":"ImageObject","url":"https://www.sfgate.com/img/ldjson_logo.png","width":600,"height":60},"location":{"@type":"Place","name":"SFGATE","address":{"@type":"PostalAddress","addressLocality":"San Francisco","addressRegion":"CA"}},"sameAs":["https://www.facebook.com/SFGate/","https://twitter.com/sfgate/","https://instagram.com/sfgate/","https://www.pinterest.com/sfgate/"]},"description":"Workers are replacing the charming rusting chain that lines the road to Fort Point with a dull metal barrier.","image":{"@type":"imageObject","width":2048,"height":1365,"url":"https://s.hdnux.com/photos/01/35/55/34/24565517/3/rawImage.jpg","thumbnailUrl":"https://s.hdnux.com/photos/01/35/55/34/24565517/3/square_small.jpg","caption":"Link loss: Say goodbye to San Francisco’s favorite chain."},"articleBody":"Marine Drive in the Presidio isn’t even a mile along, but as it descends a short hill from Lincoln Boulevard, you’re awarded with one of the most commanding views in San Francisco. Ahead, the Golden Gate Bridge towers above the hulk of Fort Point, while on the right, the constantly churning bay splashes on the rocky shore. Over the next few weeks, though, that view is going to change. The bridge and fort will still be there, but a large barrier chain that keeps awe-struck drivers from plunging into the icy water is being replaced by a more pedestrian aluminum barrier. If you haven’t visited the site, you’d be forgiven for wondering what’s so special about a chain. But THIS chain, dangling between crumbling posts and rusty from years of fog and salty spray, has been featured in countless photos on Instagram and Flickr. At least one Instagram user is already mourning the chain’s loss. But a spokesman from the Golden Gate National Recreation Area, which manages the area, said there’s a good reason for its removal. The new two-rail, 3-foot tall barrier will be more tolerant of the harsh marine environment, said spokesperson Julian Espinoza, and its smaller footprint will make the narrow roadway safer for everyone. And while they’ll still be awarded unobstructed views, he acknowledged the pain of photographers the world over. “While we appreciate that some visitors really like the old design, the new barrier will improve the safety of the pedestrians, cyclists and drivers using Marine Drive and that’s been our priority for this project,” Espinoza said. Though the chain in its current design almost looked as if it was as old as the Civil War-era fort, Espinoza said it was installed only in the 1990s. Its replacement, on the other hand, will look closer to the barrier that lined Marine Drive during the 1950s (a fact confirmed by watching the relevant scene from 1958’s “Vertigo”). If you’re eager to get one last shot, get there fast, as the project is moving ahead quickly. One lane of the roadway will be closed during the construction period (now scheduled to end Jan. 24), but Espinoza said visitors will still have full access to Fort Point during that time. Food | 22 years ago, they got a tattoo and free Mexican food for lifeLocal | Nearly every SF home has this feature, but few people use itTravel | The tiny port town unlike anywhere else in the Bay AreaHistory | The kitschy history of the Bay Area's themed Fry's Electronics","datePublished":"2023-12-22T18:50:53Z","dateModified":"2023-12-22T18:50:53Z","author":[{"@type":"Person","name":"Kent German","jobTitle":"News Editor","url":"https://www.sfgate.com/author/kent-german/"}],"inLanguage":"en"},{"@context":"https://schema.org","@type":"WebPage","breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":"1","item":{"@type":"WebPage","@id":"https://www.sfgate.com","name":"Home"}},{"@type":"ListItem","position":"2","item":{"@type":"WebPage","@id":"https://www.sfgate.com/news/","name":"News"}},{"@type":"ListItem","position":"3","item":{"@type":"WebPage","@id":"https://www.sfgate.com/bayarea/","name":"Bay Area \u0026 State"}}]},"publisher":{"@type":"NewsMediaOrganization","name":"SFGATE","url":"https://www.sfgate.com/","address":{"@type":"PostalAddress","addressLocality":"San Francisco","addressRegion":"CA"},"logo":{"@type":"ImageObject","url":"https://www.sfgate.com/img/ldjson_logo.png","width":"600","height":"60"},"sameAs":["https://www.facebook.com/SFGate/","https://twitter.com/sfgate/","https://instagram.com/sfgate/","https://www.pinterest.com/sfgate/"]}}],"metaRefresh":null,"sailthruLastModifiedDate":"2023-12-22 10:50:53 -0800","sailthruPubName":"sfgate","sailthruTags":"julian-espinoza,marine-drive,fort-point,san-francisco,golden-gate-national-recreation-area,presidio,golden-gate-bridge,lincoln-boulevard,civil-war,instagram,flickr,vertigo,julian-espinoza,marine-drive,fort-point,san-francisco,golden-gate-national-recreation-area,presidio,golden-gate-bridge,lincoln-boulevard,civil-war,instagram,flickr,vertigo","sailthruTitle":"A famous view in San Francisco is going to change"},"hdnDataLayer":{"contentObjectType":"article","contentObjectId":18569276,"contentObjectSubtype":"default","contentTitle":"A famous view in San Francisco is going to change","contentSubtitle":"Workers are replacing the charming rusty chain that lines the road to Fort Point with a dull metal barrier","contentSectionPath":["news","bay area \u0026 state"],"contentSiteSectionLevel1":"news","contentSiteSectionLevel2":"news:bay area \u0026 state","contentSiteSectionLevel3":"news:bay area \u0026 state","contentSiteSectionLevel4":"news:bay area \u0026 state","contentPubDate":"2023-12-22 18:50:53","contentPubDateTimestamp":1703271053,"contentLastModifiedDate":"2023-12-22 22:26:18","contentLastModifiedDateTimestamp":1703283978,"contentPublishedOnline":"2023-12-22 18:50:53","contentPublishedOnlineTimestamp":1703271053,"contentFirstPublishedOnline":"2023-12-22 18:50:53","contentFirstPublishedOnlineTimestamp":1703271053,"contentLastPublished":"2023-12-22 22:26:18","contentLastPublishedTimestamp":1703283978,"contentLastPublishedDisplayed":"2023-12-22 18:50:53","contentLastPublishedDisplayedTimestamp":1703271053,"contentWordCount":369,"contentWordCountRange":"301 - 400","contentParagraphCount":8,"contentKeywords":[],"contentKeySubjects":[],"contentKeyCategoryTags":[],"contentKeyPersons":[],"contentKeyOrganizations":[],"contentKeyConcepts":[],"contentKeyCategories":[],"contentKeyPlaces":[],"contentKeyNlpCategories":[],"contentKeyNlpPerson":["Julian Espinoza"],"contentKeyNlpLocation":["Marine Drive","Fort Point","San Francisco","Golden Gate National Recreation Area","Presidio","Golden Gate Bridge","Lincoln Boulevard"],"contentKeyNlpOrganization":[],"contentKeyNlpEvent":["Civil War"],"contentKeyNlpWorkOfArt":[],"contentKeyNlpConsumerGood":[],"contentKeyNlpOther":["Instagram","Flickr","Vertigo"],"contentKeyNlpUnknown":[],"contentDesignTemplate":"design/article/platypus_two_column.tpl","contentDisplayTemplate":"twoByOne","contentIsSensitive":false,"contentIsAffiliatedContent":false,"contentIsSponsoredContent":false,"contentIsPaidAdContent":false,"contentVideoPlatform":"exco","sourceAuthorName":"Kent German","sourceAuthorTitle":"","sourceOriginalSourceSite":"","sourcePublishingSite":"sfgate","sourceSourceSite":"sfgate","sharingOpenGraphUrl":"/bayarea/article/fort-point-chain-removal-san-francisco-18569276.php","sharingOpenGraphType":"article","hrefPageUrl":"/bayarea/article/fort-point-chain-removal-san-francisco-18569276.php","hrefCanonicalUrl":"todo","siteGeoloc":"todo","siteGeocities":{},"siteCommentsType":"none","siteCommentSiteKey":"todo","siteEntitledComments":"todo","siteSailthruId":"fca2a0390286f0e53120a668534d9529","siteRecaptchaKey":"todo","siteUseInstart":false,"siteAmazonTag":"hearstnp-sfg-20","siteSkimlinksPublisherId":"131678X1594033","siteTrackonomicsProfileCode":"hearstnews_31a2e_sfgate","presentationHasSlideshow":false,"presentationHasSlideshowListView":false,"presentationHasVideo":false,"presentationHasInteractive":null,"paywallPremiumStatus":"free","paywallPremiumEndDate":"","paywallPolicy":"free","adsAdMode":"lazy","adsVideoBidding":true,"revenueProfiles":{"profiles":{"nonsub":{"dump":{"value":false},"refresh":{"value":true},"interactiveInterval":{"value":"5"},"passiveInterval":{"value":"30"},"scrollInterval":{"value":"18"},"sequence":{"value":"2, 4"},"exco":{"value":true},"nativo":{"value":true},"taboola":{"value":true},"columnA":{"leaderboard":{"id":"Crown","render":true,"weight":3,"rightRail":false,"adhesive":false,"smallScreen":true,"largeScreen":true,"repeating":false,"repeatLimitSmall":1,"repeatLimitLarge":1,"template":"both"},"adhesive":{"id":"Flex1","render":false,"weight":3,"rightRail":false,"adhesive":false,"smallScreen":false,"largeScreen":false,"repeating":false,"repeatLimitSmall":1,"repeatLimitLarge":1,"template":"both"},"belowMasthead":{"id":"Flex1","render":true,"weight":3,"rightRail":false,"adhesive":false,"smallScreen":true,"largeScreen":true,"repeating":false,"repeatLimitSmall":1,"repeatLimitLarge":1,"template":"both"},"adhesion":{"id":"MAD","render":true,"weight":3,"rightRail":false,"adhesive":true,"smallScreen":true,"largeScreen":false,"repeating":false,"repeatLimitSmall":1,"repeatLimitLarge":1,"template":"both"},"BoxX":{"id":"Box","render":false,"weight":3,"rightRail":false,"adhesive":false,"smallScreen":false,"largeScreen":false,"repeating":false,"repeatLimitSmall":1,"repeatLimitLarge":1,"template":"one-col"}},"columnB":{"B0":{"id":"TMP300_3","render":false,"weight":1,"rightRail":false,"adhesive":false,"smallScreen":false,"largeScreen":false,"repeating":false,"repeatLimitSmall":1,"repeatLimitLarge":1,"template":"both"},"B1":{"id":"A300","render":true,"weight":2,"rightRail":true,"adhesive":false,"smallScreen":true,"largeScreen":true,"repeating":false,"repeatLimitSmall":1,"repeatLimitLarge":1,"template":"both"},"B2":{"id":"CONCERT1","render":false,"weight":3,"rightRail":false,"adhesive":false,"smallScreen":false,"largeScreen":false,"repeating":false,"repeatLimitSmall":1,"repeatLimitLarge":1,"template":"both"},"B3":{"id":"B300","render":false,"weight":4,"rightRail":false,"adhesive":false,"smallScreen":false,"largeScreen":false,"repeating":false,"repeatLimitSmall":1,"repeatLimitLarge":1,"template":"both"},"B4":{"id":"CONCERT2","render":false,"weight":5,"rightRail":false,"adhesive":false,"smallScreen":false,"largeScreen":false,"repeating":false,"repeatLimitSmall":1,"repeatLimitLarge":1,"template":"both"},"B5":{"id":"S300","render":false,"weight":6,"rightRail":false,"adhesive":false,"smallScreen":false,"largeScreen":false,"repeating":false,"repeatLimitSmall":1,"repeatLimitLarge":1,"template":"both"},"B6":{"id":"NTV7ARD","render":true,"weight":7,"rightRail":true,"adhesive":false,"smallScreen":true,"largeScreen":true,"repeating":false,"repeatLimitSmall":1,"repeatLimitLarge":1,"template":"both"},"B7":{"id":"Inline","render":true,"weight":8,"rightRail":false,"adhesive":false,"smallScreen":true,"largeScreen":true,"repeating":true,"repeatLimitSmall":999,"repeatLimitLarge":999,"template":"both"}},"columnC":[],"columnX":{"X0":{"id":"RB","render":true,"weight":9,"rightRail":true,"adhesive":false,"smallScreen":false,"largeScreen":true,"repeating":true,"repeatLimitSmall":999,"repeatLimitLarge":999,"template":"both"}}}}},"environmentCmsEnv":"production","environmentApiEnv":"prod","environmentDocDbEnv":"prod"},"dev":{"allowedSites":["19"]},"zoneSets":[{"id":"crownSet","layout":"Hidden","options":{},"zones":[{"id":"crownZone","options":{},"widgets":[{"id":"Crown","type":"Ad","options":{"small":"Crown","large":"Crown","adUnitPath":"hnp-sfgate.com/article_dtc","placement":"main","layout":"1Column"},"items":[]}]}]},{"id":"zoneSet2","layout":"1Column","options":{"excludeMargins":true,"excludeMaxWidth":true,"excludeBottomMargin":false,"excludeBottomMarginMobile":true},"zones":[{"id":"pzoneA","options":{},"widgets":[{"eid":"collection-122065-news_alert_bar","collections":[],"id":"zoneA1591288280150","type":"NewsAlertBar","options":{"content":null,"subClass":"topStory","title":{},"commerceType":"","placement":"main","layout":"1Column","isListing":false},"items":[{"__typename":"ArticleStub","type":"article","url":"/bayarea/article/family-mourns-student-died-uc-berkeley-18672739.php","title":"Former YouTube CEO's son identified as student who died at UC Berkeley","excerpt":"Berkeley freshman Marco Troper was the son of tech exec Susan Wojcicki and Dennis Troper.","abstract":"\u003cp\u003eBerkeley freshman Marco Troper was the son of tech exec Susan Wojcicki and Dennis Troper.\u003c/p\u003e","abstractPlainText":"Berkeley freshman Marco Troper was the son of tech exec Susan Wojcicki and Dennis Troper.","displayedDate":"2024-02-16 16:31:36","lastModifiedDate":"2024-02-16 21:30:28","elapsedTime":null,"authorName":"Amy Graff","authorHref":"","authors":[{"id":739,"name":"Amy Graff","title":"News Editor","url":"/author/amy-graff/","credit":null,"image":{"id":null,"url":"https://s.hdnux.com/photos/01/32/64/61/23809124/4/rawImage.jpg","base64":null,"width":918,"height":918,"guid":null,"dirPath":null,"alt":null,"title":null}}],"eyebrow":{"linkText":"Bay Area \u0026 State","url":"/bayarea/"},"badge":null,"image":{"url":"https://s.hdnux.com/photos/01/36/25/24/24728859/6/rawImage.jpg","b64":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAA0JCgsKCA0LCgsODg0PEyAVExISEyccHhcgLikxMC4pLSwzOko+MzZGNywtQFdBRkxOUlNSMj5aYVpQYEpRUk//2wBDAQ4ODhMREyYVFSZPNS01T09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0//wAARCAAFAAgDAREAAhEBAxEB/8QAFAABAAAAAAAAAAAAAAAAAAAAA//EABsQAQEAAgMBAAAAAAAAAAAAAAECBREAAwRR/8QAFQEBAQAAAAAAAAAAAAAAAAAAAwT/xAAcEQACAAcAAAAAAAAAAAAAAAAAAQIDBBETIWH/2gAMAwEAAhEDEQA/AFv2uNyKdc1aRNTutA7fhyGkhyK/RJmkf//Z","width":1264,"height":843,"caption":{"plain":"Marco Troper, 19, was a freshman at UC Berkeley.","html1":null,"serializedReact":null},"loading":"lazy","external":null},"collectionConfig":{"showTimestamp":false,"persistentTimestamp":false,"showLabels":false,"showEyebrows":true,"showByline":false,"useImg":false,"blurb":null,"useBlurb":false,"hideBlurbOnMobile":false,"forceHideEyebrows":false},"displayedDateFormat":"h:mm aaa","sponsored":null,"rmd":{"shortTitle":"Former YouTube CEO's son identified as student who died at UC Berkeley","title":"Former YouTube CEO's son identified as student who died at UC Berkeley","abstract":"\u003cp\u003eBerkeley freshman Marco Troper was the son of tech exec Susan Wojcicki and Dennis Troper.\u003c/p\u003e","authorBizobjects":[{"id":739,"name":"Amy Graff","title":"News Editor","url":"/author/amy-graff/","credit":"SFGATE","image":{"id":23809124,"url":null,"base64":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAA0JCgsKCA0LCgsODg0PEyAVExISEyccHhcgLikxMC4pLSwzOko+MzZGNywtQFdBRkxOUlNSMj5aYVpQYEpRUk//2wBDAQ4ODhMREyYVFSZPNS01T09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0//wAARCAAIAAgDAREAAhEBAxEB/8QAFAABAAAAAAAAAAAAAAAAAAAABv/EAB4QAAIBAwUAAAAAAAAAAAAAAAERAwACIQUSE1GR/8QAFQEBAQAAAAAAAAAAAAAAAAAABAX/xAAaEQACAgMAAAAAAAAAAAAAAAAAAQIRAwSB/9oADAMBAAIRAxEAPwAzJNBbp7G3kF+e0cL0OjpOym9hRyVw/9k=","width":918,"height":918,"guid":"photo_23809124","dirPath":"01/32/64/61/23809124/4","alt":null,"title":"Amy-Graff"}}],"bylineObjects":[{"id":739,"name":"Amy Graff","title":"News Editor","url":"/author/amy-graff/","credit":"SFGATE"}],"authors":["Amy Graff"],"isPaidadContent":false,"isPremium":false,"isSponsoredContent":false,"isAffiliatedContent":false,"showTimestamp":false,"useBlurb":false,"useImg":false,"videoloop":null,"url":"/bayarea/article/family-mourns-student-died-uc-berkeley-18672739.php","displayedDate":"2024-02-17 00:31:36"},"slideshowImages":null}]},{"id":"belowMasthead","type":"Ad","options":{"adUnitPath":"hnp-sfgate.com/article_dtc","small":"Flex1","large":"Flex1","topPadding":true},"items":[]}]}]},{"id":"heroZoneSet","layout":"1Column","options":{"excludeBottomMargin":false,"excludeMargins":true,"excludeMaxWidth":true},"zones":[{"id":"heroZone","options":{},"widgets":[{"items":[{"title":"A famous view in San Francisco is going to change","subtitle":"Workers are replacing the charming rusty chain that lines the road to Fort Point with a dull metal barrier","breadcrumbs":[{"title":"News","url":"/news/"},{"title":"Bay Area \u0026 State","url":"/bayarea/"}],"authorTitle":"","authors":[{"name":"Kent German","firstName":"Kent","title":"News Editor","biography":"\u003cp\u003eKent German is a News Editor at SFGATE. A California native, he's a USF graduate and a veteran of CNET where he wrote the review of the first iPhone. He's also a dog person and a proud aviation geek with a healthy knowledge of airport codes. Email him at kent.german@sfgate.com.\u003c/p\u003e","url":"/author/kent-german/","slug":"kent-german","email":"kent.german@sfgate.com","facebook":null,"linkedIn":null,"twitter":null,"hasContact":null,"primarySiteId":0,"sponsorLogoUrl":null,"image":null}],"hero":null,"publishedOnline":"2023-12-22 10:50:53","lastModifiedDate":"2023-12-22 14:26:18","lastPublishedDisplayed":"2023-12-22 10:50:53","shareTools":{"facebook":"https://www.facebook.com/dialog/feed?app_id=1609422252616351\u0026link=https%3A%2F%2Fsfgate.com%2Fbayarea%2Farticle%2Ffort-point-chain-removal-san-francisco-18569276.php%3Futm_campaign%3DCMS%2520Sharing%2520Tools%2520(Premium)%26utm_source%3Dfacebook.com%26utm_medium%3Dreferral\u0026name=A%20famous%20view%20in%20San%20Francisco%20is%20going%20to%20change\u0026description=Photographers%20won't%20love%20the%20removal%20of%20a%20barrier%20chain%20on%20the%20road%20to%20Fort%20Point.\u0026picture=https%3A%2F%2Fs.hdnux.com%2Fphotos%2F01%2F35%2F55%2F34%2F24565517%2F3%2FrawImage.jpg\u0026redirect_uri=https%3A%2F%2Fsfgate.com%2Fbayarea%2Farticle%2Ffort-point-chain-removal-san-francisco-18569276.php%3Futm_campaign%3DCMS%2520Sharing%2520Tools%2520(Premium)%26utm_source%3DUTMSOURCE%26utm_medium%3DUTMMEDIUM","twitter":"https://twitter.com/intent/tweet?url=https%3A%2F%2Fsfgate.com%2Fbayarea%2Farticle%2Ffort-point-chain-removal-san-francisco-18569276.php%3Futm_campaign%3DCMS%2520Sharing%2520Tools%2520(Premium)%26utm_source%3Dt.co%26utm_medium%3Dreferral\u0026text=A%20famous%20view%20in%20San%20Francisco%20is%20going%20to%20change\u0026via=SFGate","email":"mailto:?subject=Your%20friend%20has%20shared%20a%20SFGATE%20link%20with%20you%3A\u0026body=A%20famous%20view%20in%20San%20Francisco%20is%20going%20to%20change%0A%0Ahttps%3A%2F%2Fsfgate.com%2Fbayarea%2Farticle%2Ffort-point-chain-removal-san-francisco-18569276.php%3Futm_campaign%3DCMS%2520Sharing%2520Tools%2520(Premium)%26utm_source%3Dshare-by-email%26utm_medium%3Demail%0A%0APhotographers%20won't%20love%20the%20removal%20of%20a%20barrier%20chain%20on%20the%20road%20to%20Fort%20Point.%0A%0AThis%20message%20was%20sent%20via%20SFGATE"},"__typename":"Article","type":"articleHeader"}],"id":"articleHeader","type":"ArticleHeader","options":{"placement":"main","layout":"1Column","setContentDiv":true}}]}]},{"id":"zoneSet5","layout":"2ColumnRightPadded","options":{},"zones":[{"id":"zoneBody","options":{"articleBody":"1"},"widgets":[{"items":[{"body":[{"__typename":"ImageBlock","type":"image","params":{"layout":"photo","chapter":null,"chapterHeader":null,"id":24565517,"title":"","orientation":"landscape","byline":"Smith Collection/Gado/Gado via Getty Images","image":{"url":"https://s.hdnux.com/photos/01/35/55/34/24565517/3/rawImage.jpg","b64":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEBLAEsAAD/2wBDAA0JCgsKCA0LCgsODg0PEyAVExISEyccHhcgLikxMC4pLSwzOko+MzZGNywtQFdBRkxOUlNSMj5aYVpQYEpRUk//2wBDAQ4ODhMREyYVFSZPNS01T09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0//wAARCAAFAAgDASIAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAX/xAAcEAACAgIDAAAAAAAAAAAAAAAAAgERAwQSMsH/xAAVAQEBAAAAAAAAAAAAAAAAAAADBP/EABkRAQEAAwEAAAAAAAAAAAAAAAIBAAMRkf/aAAwDAQACEQMRAD8AqI+d1jhOut12w37AAH1NI9tyXcCVySeZ/9k=","width":2048,"height":1365,"caption":{"plain":"Link loss: Say goodbye to San Francisco’s favorite chain.","html1":"\u003cp\u003eLink loss: Say goodbye to San Francisco’s favorite chain.\u003c/p\u003e","serializedReact":null},"loading":"lazy","external":null}}},{"__typename":"TextBlock","type":"text","params":{"layout":"","chapter":null,"chapterHeader":null,"html1":"\u003cp\u003eMarine Drive in the \u003ca href=\"https://www.sfgate.com/local/article/the-presidio-18171254.php\" target=\"_blank\" rel=\"noopener\"\u003ePresidio\u003c/a\u003e isn’t even a mile along, but as it descends a short hill from Lincoln Boulevard, you’re awarded with one of the most commanding views in San Francisco. Ahead, the \u003ca href=\"https://www.sfgate.com/local/article/golden-gate-bridge-17635462.php\" target=\"_blank\" rel=\"noopener\"\u003eGolden Gate Bridge\u003c/a\u003e towers above the hulk of \u003ca href=\"https://www.sfgate.com/local/article/SF-Fort-Point-Candlelight-Tour-is-better-at-night-16819913.php\" target=\"_blank\" rel=\"noopener\"\u003eFort Point\u003c/a\u003e, while on the right, the constantly churning bay splashes on the rocky shore.\u003c/p\u003e","isDropcap":false,"serializedReact":{"type":"p","key":null,"ref":null,"props":{"children":["Marine Drive in the ",{"type":"a","key":"1","ref":null,"props":{"href":"https://www.sfgate.com/local/article/the-presidio-18171254.php","target":"_blank","rel":"noopener","children":"Presidio"},"_owner":null}," isn’t even a mile along, but as it descends a short hill from Lincoln Boulevard, you’re awarded with one of the most commanding views in San Francisco. Ahead, the ",{"type":"a","key":"3","ref":null,"props":{"href":"https://www.sfgate.com/local/article/golden-gate-bridge-17635462.php","target":"_blank","rel":"noopener","children":"Golden Gate Bridge"},"_owner":null}," towers above the hulk of ",{"type":"a","key":"5","ref":null,"props":{"href":"https://www.sfgate.com/local/article/SF-Fort-Point-Candlelight-Tour-is-better-at-night-16819913.php","target":"_blank","rel":"noopener","children":"Fort Point"},"_owner":null},", while on the right, the constantly churning bay splashes on the rocky shore."]},"_owner":null}}},{"__typename":"ZoneBlock","type":"zone","params":{"layout":null,"chapter":null,"chapterHeader":null,"eid":"item-100634","embed":{"__type":"thirdPartyFreeformEmbed","__id":"exco","__element":{"tag":"div","attributes":{"id":"30b0aaf4-cc13-4972-9cf9-ad9a05e5e62d"}},"__src":"https://player.ex.co/player/","__ping":"https://cdn-channels-pixel.ex.co/events/0012000001fxZm9AAE?integrationType=DEFAULT\u0026template=","__data":{"articleId":"30b0aaf4-cc13-4972-9cf9-ad9a05e5e62d","channelId":"32f4762f-4754-45f5-b25d-0d762c9e2d43"},"__tpId":"exco"}}},{"__typename":"TextBlock","type":"text","params":{"layout":"","chapter":null,"chapterHeader":null,"html1":"\u003cp\u003eOver the next few weeks, though, that view is going to change. The bridge and fort will still be there, but a large barrier chain that keeps awe-struck drivers from plunging into the icy water is being replaced by a more pedestrian aluminum barrier.\u003c/p\u003e","isDropcap":false,"serializedReact":{"type":"p","key":null,"ref":null,"props":{"children":"Over the next few weeks, though, that view is going to change. The bridge and fort will still be there, but a large barrier chain that keeps awe-struck drivers from plunging into the icy water is being replaced by a more pedestrian aluminum barrier."},"_owner":null}}},{"__typename":"TextBlock","type":"text","params":{"layout":"","chapter":null,"chapterHeader":null,"html1":"\u003cp\u003eIf you haven’t visited the site, you’d be forgiven for wondering what’s so special about a chain. But THIS chain, dangling between crumbling posts and rusty from years of fog and salty spray, has been featured in countless photos on \u003ca href=\"https://www.instagram.com/explore/locations/380821229/fort-point-national-historic-site/\" target=\"_blank\" rel=\"noopener\"\u003eInstagram\u003c/a\u003e and \u003ca href=\"https://www.flickr.com/search/?text=fort%20point%20san%20francisco\u0026amp;view_all=1\" target=\"_blank\" rel=\"noopener\"\u003eFlickr\u003c/a\u003e.\u003c/p\u003e","isDropcap":false,"serializedReact":{"type":"p","key":null,"ref":null,"props":{"children":["If you haven’t visited the site, you’d be forgiven for wondering what’s so special about a chain. But THIS chain, dangling between crumbling posts and rusty from years of fog and salty spray, has been featured in countless photos on ",{"type":"a","key":"1","ref":null,"props":{"href":"https://www.instagram.com/explore/locations/380821229/fort-point-national-historic-site/","target":"_blank","rel":"noopener","children":"Instagram"},"_owner":null}," and ",{"type":"a","key":"3","ref":null,"props":{"href":"https://www.flickr.com/search/?text=fort%20point%20san%20francisco\u0026view_all=1","target":"_blank","rel":"noopener","children":"Flickr"},"_owner":null},"."]},"_owner":null}}},{"__typename":"AdBlock","type":"ad","params":{"layout":null,"chapter":null,"chapterHeader":null,"code":null,"small":"A300","large":"Inline-1","showInlineAdLabel":true,"adUnitPath":"hnp-sfgate.com/article_dtc"}},{"__typename":"TextBlock","type":"text","params":{"layout":"","chapter":null,"chapterHeader":null,"html1":"\u003cp\u003eAt least \u003ca href=\"https://www.instagram.com/reel/C1Fbaf7PxRy/?igsh=MjJkMmIyYzQxYw%3D%3D\" target=\"_blank\" rel=\"noopener\"\u003eone Instagram user\u003c/a\u003e is already mourning the chain’s loss. But a spokesman from the \u003ca href=\"https://www.sfgate.com/california-parks/article/GGNRA-is-California-s-most-popular-national-park-17179619.php\" target=\"_blank\" rel=\"noopener\"\u003eGolden Gate National Recreation Area\u003c/a\u003e, which manages the area, said there’s a good reason for its removal. \u003c/p\u003e","isDropcap":false,"serializedReact":{"type":"p","key":null,"ref":null,"props":{"children":["At least ",{"type":"a","key":"1","ref":null,"props":{"href":"https://www.instagram.com/reel/C1Fbaf7PxRy/?igsh=MjJkMmIyYzQxYw%3D%3D","target":"_blank","rel":"noopener","children":"one Instagram user"},"_owner":null}," is already mourning the chain’s loss. But a spokesman from the ",{"type":"a","key":"3","ref":null,"props":{"href":"https://www.sfgate.com/california-parks/article/GGNRA-is-California-s-most-popular-national-park-17179619.php","target":"_blank","rel":"noopener","children":"Golden Gate National Recreation Area"},"_owner":null},", which manages the area, said there’s a good reason for its removal. "]},"_owner":null}}},{"__typename":"ImageBlock","type":"image","params":{"layout":"photo","chapter":null,"chapterHeader":null,"id":24567151,"title":"","orientation":"landscape","byline":"Golden Gate National Recreation Area","image":{"url":"https://s.hdnux.com/photos/01/35/55/65/24567151/3/rawImage.jpg","b64":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAA0JCgsKCA0LCgsODg0PEyAVExISEyccHhcgLikxMC4pLSwzOko+MzZGNywtQFdBRkxOUlNSMj5aYVpQYEpRUk//2wBDAQ4ODhMREyYVFSZPNS01T09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0//wAARCAAFAAgDAREAAhEBAxEB/8QAFAABAAAAAAAAAAAAAAAAAAAAA//EABwQAQACAgMBAAAAAAAAAAAAAAEDEQQhAAJBUf/EABUBAQEAAAAAAAAAAAAAAAAAAAAB/8QAFxEBAAMAAAAAAAAAAAAAAAAAAAEREv/aAAwDAQACEQMRAD8AOOTISasmTQStq32sPujfnJqSn//Z","width":2048,"height":1365,"caption":{"plain":"The new barrier lining Marine Drive is smaller, but less romantic, than the former rusty chain.","html1":"\u003cp\u003eThe new barrier lining Marine Drive is smaller, but less romantic, than the former rusty chain.\u003c/p\u003e","serializedReact":null},"loading":"lazy","external":null}}},{"__typename":"TextBlock","type":"text","params":{"layout":"","chapter":null,"chapterHeader":null,"html1":"\u003cp\u003eThe new two-rail, 3-foot tall barrier will be more tolerant of the harsh marine environment, said spokesperson Julian Espinoza, and its smaller footprint will make the narrow roadway safer for everyone. And while they’ll still be awarded unobstructed views, he acknowledged the pain of photographers the world over.\u003c/p\u003e","isDropcap":false,"serializedReact":{"type":"p","key":null,"ref":null,"props":{"children":"The new two-rail, 3-foot tall barrier will be more tolerant of the harsh marine environment, said spokesperson Julian Espinoza, and its smaller footprint will make the narrow roadway safer for everyone. And while they’ll still be awarded unobstructed views, he acknowledged the pain of photographers the world over."},"_owner":null}}},{"__typename":"TextBlock","type":"text","params":{"layout":"","chapter":null,"chapterHeader":null,"html1":"\u003cp\u003e“While we appreciate that some visitors really like the old design, the new barrier will improve the safety of the pedestrians, cyclists and drivers using Marine Drive and that’s been our priority for this project,” Espinoza said.\u003c/p\u003e","isDropcap":false,"serializedReact":{"type":"p","key":null,"ref":null,"props":{"children":"“While we appreciate that some visitors really like the old design, the new barrier will improve the safety of the pedestrians, cyclists and drivers using Marine Drive and that’s been our priority for this project,” Espinoza said."},"_owner":null}}},{"__typename":"AdBlock","type":"ad","params":{"layout":null,"chapter":null,"chapterHeader":null,"code":null,"small":"NTV7ARD","large":"Inline-2","showInlineAdLabel":true,"adUnitPath":"hnp-sfgate.com/article_dtc"}},{"__typename":"TextBlock","type":"text","params":{"layout":"","chapter":null,"chapterHeader":null,"html1":"\u003cp\u003eThough the chain in its current design almost looked as if it was as old as the Civil War-era fort, Espinoza said it was installed only in the 1990s. Its replacement, on the other hand, will look closer to the barrier that lined Marine Drive during the 1950s (a fact confirmed by \u003ca href=\"https://www.youtube.com/watch?v=B8cWjLMuJgo\" target=\"_blank\" rel=\"noopener\"\u003ewatching\u003c/a\u003e the \u003ca href=\"https://reelsf.com/reelsf/vertigo-fort-point\" target=\"_blank\" rel=\"noopener\"\u003erelevant scene\u003c/a\u003e from 1958’s “\u003ca href=\"https://www.imdb.com/title/tt0052357/\" target=\"_blank\" rel=\"noopener\"\u003eVertigo\u003c/a\u003e”). \u003c/p\u003e","isDropcap":false,"serializedReact":{"type":"p","key":null,"ref":null,"props":{"children":["Though the chain in its current design almost looked as if it was as old as the Civil War-era fort, Espinoza said it was installed only in the 1990s. Its replacement, on the other hand, will look closer to the barrier that lined Marine Drive during the 1950s (a fact confirmed by ",{"type":"a","key":"1","ref":null,"props":{"href":"https://www.youtube.com/watch?v=B8cWjLMuJgo","target":"_blank","rel":"noopener","children":"watching"},"_owner":null}," the ",{"type":"a","key":"3","ref":null,"props":{"href":"https://reelsf.com/reelsf/vertigo-fort-point","target":"_blank","rel":"noopener","children":"relevant scene"},"_owner":null}," from 1958’s “",{"type":"a","key":"5","ref":null,"props":{"href":"https://www.imdb.com/title/tt0052357/","target":"_blank","rel":"noopener","children":"Vertigo"},"_owner":null},"”). "]},"_owner":null}}},{"__typename":"TextBlock","type":"text","params":{"layout":"","chapter":null,"chapterHeader":null,"html1":"\u003cp\u003eIf you’re eager to get one last shot, get there fast, as the project is moving ahead quickly. One lane of the roadway \u003ca href=\"https://www.nps.gov/fopo/index.htm\" target=\"_blank\" rel=\"noopener\"\u003ewill be closed\u003c/a\u003e during the construction period (now scheduled to end Jan. 24), but Espinoza said visitors will still have full access to Fort Point during that time.\u003c/p\u003e","isDropcap":false,"serializedReact":{"type":"p","key":null,"ref":null,"props":{"children":["If you’re eager to get one last shot, get there fast, as the project is moving ahead quickly. One lane of the roadway ",{"type":"a","key":"1","ref":null,"props":{"href":"https://www.nps.gov/fopo/index.htm","target":"_blank","rel":"noopener","children":"will be closed"},"_owner":null}," during the construction period (now scheduled to end Jan. 24), but Espinoza said visitors will still have full access to Fort Point during that time."]},"_owner":null}}},{"__typename":"CardBlock","type":"card","params":{"layout":null,"chapter":null,"chapterHeader":null,"guid":"card_20210","eid":"card-20210","rank":0,"title":"BEST OF SFGATE","headline":"BEST OF SFGATE","kicker":"","subtitle":"","link":"","linkText":"","linkTarget":"","body":[{"__typename":"TextBlock","type":"text","params":{"layout":"","chapter":null,"chapterHeader":null,"html1":"\u003cp\u003e\u003cstrong\u003eFood \u003c/strong\u003e| \u003ca href=\"https://www.sfgate.com/food/article/casa-sanchez-tattoos-free-meal-promo-san-francisco-16465800.php\"\u003e22 years ago, they got a tattoo and free Mexican food for life\u003c/a\u003e\u003cbr\u003e\u003cstrong\u003eLocal \u003c/strong\u003e| \u003ca href=\"https://www.sfgate.com/local/editorspicks/article/The-story-behind-picture-rails-and-why-so-many-SF-16038879.php\" target=\"_blank\" rel=\"noopener\"\u003eNearly every SF home has this feature, but few people use it\u003c/a\u003e\u003cbr\u003e\u003cstrong\u003eTravel\u003c/strong\u003e | \u003ca href=\"https://www.sfgate.com/travel/article/Bay-Area-Port-Costa-day-trip-16607354.php\" target=\"_blank\" rel=\"noopener\"\u003eThe tiny port town unlike anywhere else in the Bay Area\u003c/a\u003e\u003cbr\u003e\u003cstrong\u003eHistory \u003c/strong\u003e| \u003ca href=\"https://www.sfgate.com/essays/article/Remembering-the-Disney-World-of-electronic-stores-15837042.php\"\u003eThe kitschy history of the Bay Area's themed Fry's Electronics\u003c/a\u003e\u003c/p\u003e","isDropcap":false,"serializedReact":{"type":"p","key":null,"ref":null,"props":{"children":[{"type":"strong","key":"0","ref":null,"props":{"children":"Food "},"_owner":null},"| ",{"type":"a","key":"2","ref":null,"props":{"href":"https://www.sfgate.com/food/article/casa-sanchez-tattoos-free-meal-promo-san-francisco-16465800.php","children":"22 years ago, they got a tattoo and free Mexican food for life"},"_owner":null},{"type":"br","key":"3","ref":null,"props":{"children":null},"_owner":null},{"type":"strong","key":"4","ref":null,"props":{"children":"Local "},"_owner":null},"| ",{"type":"a","key":"6","ref":null,"props":{"href":"https://www.sfgate.com/local/editorspicks/article/The-story-behind-picture-rails-and-why-so-many-SF-16038879.php","target":"_blank","rel":"noopener","children":"Nearly every SF home has this feature, but few people use it"},"_owner":null},{"type":"br","key":"7","ref":null,"props":{"children":null},"_owner":null},{"type":"strong","key":"8","ref":null,"props":{"children":"Travel"},"_owner":null}," | ",{"type":"a","key":"10","ref":null,"props":{"href":"https://www.sfgate.com/travel/article/Bay-Area-Port-Costa-day-trip-16607354.php","target":"_blank","rel":"noopener","children":"The tiny port town unlike anywhere else in the Bay Area"},"_owner":null},{"type":"br","key":"11","ref":null,"props":{"children":null},"_owner":null},{"type":"strong","key":"12","ref":null,"props":{"children":"History "},"_owner":null},"| ",{"type":"a","key":"14","ref":null,"props":{"href":"https://www.sfgate.com/essays/article/Remembering-the-Disney-World-of-electronic-stores-15837042.php","children":"The kitschy history of the Bay Area's themed Fry's Electronics"},"_owner":null}]},"_owner":null}}}],"slideCount":0,"slides":[],"isStacked":null}}],"__typename":"Article","type":"articleBody"}],"id":"articleBody","type":"ArticleBody","options":{"hasChapters":false}},{"items":[{"authors":[{"name":"Kent German","firstName":"Kent","title":"News Editor","biography":"\u003cp\u003eKent German is a News Editor at SFGATE. A California native, he's a USF graduate and a veteran of CNET where he wrote the review of the first iPhone. He's also a dog person and a proud aviation geek with a healthy knowledge of airport codes. Email him at kent.german@sfgate.com.\u003c/p\u003e","url":"/author/kent-german/","slug":"kent-german","email":"kent.german@sfgate.com","facebook":null,"linkedIn":null,"twitter":null,"hasContact":null,"primarySiteId":0,"sponsorLogoUrl":null,"image":null}],"publishedOnline":"2023-12-22 10:50:53","lastPublishedDisplayed":"2023-12-22 10:50:53","__typename":"Article","type":"articleFooter"}],"id":"articleFooter","type":"ArticleFooter","options":{"placement":"main"}}]},{"id":"pzoneC","options":{},"widgets":[{"id":"0","type":"Ad","options":{"hideOnMobile":true,"sticky":true,"large":"A300","adUnitPath":"hnp-sfgate.com/article_dtc","hasChapters":false},"items":[]},{"eid":"collection-118393-mostPopular","collections":[],"id":"zoneC1689025811127","type":"MostPopularList","options":{"content":null,"pageType":"article","subClass":null,"title":{"text":"Most Popular"},"commerceType":"","placement":"sidebar","isListing":false},"items":[{"__typename":"ArticleStub","type":"article","url":"/bayarea/article/family-mourns-student-died-uc-berkeley-18672739.php","title":"Former YouTube CEO's son identified as student who died at UC Berkeley","excerpt":"Berkeley freshman Marco Troper was the son of tech exec Susan Wojcicki and Dennis Troper.","abstract":"\u003cp\u003eBerkeley freshman Marco Troper was the son of tech exec Susan Wojcicki and Dennis Troper.\u003c/p\u003e","abstractPlainText":"Berkeley freshman Marco Troper was the son of tech exec Susan Wojcicki and Dennis Troper.","displayedDate":"2024-02-16 16:31:36","lastModifiedDate":"2024-02-16 21:30:28","elapsedTime":null,"authorName":"Amy Graff","authorHref":"","authors":[{"id":739,"name":"Amy Graff","title":"News Editor","url":"/author/amy-graff/","credit":null,"image":{"id":null,"url":"https://s.hdnux.com/photos/01/32/64/61/23809124/4/rawImage.jpg","base64":null,"width":918,"height":918,"guid":null,"dirPath":null,"alt":null,"title":null}}],"eyebrow":{"linkText":"Bay Area \u0026 State","url":"/bayarea/"},"badge":null,"image":{"url":"https://s.hdnux.com/photos/01/36/25/24/24728859/6/rawImage.jpg","b64":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAA0JCgsKCA0LCgsODg0PEyAVExISEyccHhcgLikxMC4pLSwzOko+MzZGNywtQFdBRkxOUlNSMj5aYVpQYEpRUk//2wBDAQ4ODhMREyYVFSZPNS01T09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0//wAARCAAFAAgDAREAAhEBAxEB/8QAFAABAAAAAAAAAAAAAAAAAAAAA//EABsQAQEAAgMBAAAAAAAAAAAAAAECBREAAwRR/8QAFQEBAQAAAAAAAAAAAAAAAAAAAwT/xAAcEQACAAcAAAAAAAAAAAAAAAAAAQIDBBETIWH/2gAMAwEAAhEDEQA/AFv2uNyKdc1aRNTutA7fhyGkhyK/RJmkf//Z","width":1264,"height":843,"caption":{"plain":"Marco Troper, 19, was a freshman at UC Berkeley.","html1":null,"serializedReact":null},"loading":"lazy","external":null},"collectionConfig":{"showTimestamp":false,"persistentTimestamp":false,"showLabels":false,"showEyebrows":true,"showByline":false,"useImg":false,"blurb":null,"useBlurb":false,"hideBlurbOnMobile":false,"forceHideEyebrows":false},"displayedDateFormat":"h:mm aaa","sponsored":null,"rmd":{"shortTitle":"Former YouTube CEO's son identified as student who died at UC Berkeley","title":"Former YouTube CEO's son identified as student who died at UC Berkeley","abstract":"\u003cp\u003eBerkeley freshman Marco Troper was the son of tech exec Susan Wojcicki and Dennis Troper.\u003c/p\u003e","authorBizobjects":[{"id":739,"name":"Amy Graff","title":"News Editor","url":"/author/amy-graff/","credit":"SFGATE","image":{"id":23809124,"url":null,"base64":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAA0JCgsKCA0LCgsODg0PEyAVExISEyccHhcgLikxMC4pLSwzOko+MzZGNywtQFdBRkxOUlNSMj5aYVpQYEpRUk//2wBDAQ4ODhMREyYVFSZPNS01T09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0//wAARCAAIAAgDAREAAhEBAxEB/8QAFAABAAAAAAAAAAAAAAAAAAAABv/EAB4QAAIBAwUAAAAAAAAAAAAAAAERAwACIQUSE1GR/8QAFQEBAQAAAAAAAAAAAAAAAAAABAX/xAAaEQACAgMAAAAAAAAAAAAAAAAAAQIRAwSB/9oADAMBAAIRAxEAPwAzJNBbp7G3kF+e0cL0OjpOym9hRyVw/9k=","width":918,"height":918,"guid":"photo_23809124","dirPath":"01/32/64/61/23809124/4","alt":null,"title":"Amy-Graff"}}],"bylineObjects":[{"id":739,"name":"Amy Graff","title":"News Editor","url":"/author/amy-graff/","credit":"SFGATE"}],"authors":["Amy Graff"],"isPaidadContent":false,"isPremium":false,"isSponsoredContent":false,"isAffiliatedContent":false,"showTimestamp":false,"useBlurb":false,"useImg":false,"videoloop":null,"url":"/bayarea/article/family-mourns-student-died-uc-berkeley-18672739.php","displayedDate":"2024-02-17 00:31:36"},"slideshowImages":null},{"__typename":"ArticleStub","type":"article","url":"/horoscope/article/horoscope-saturday-02-17-24-christopher-renstrom-18659319.php","title":"Horoscope for Saturday, 02/17/24 by Christopher Renstrom","excerpt":"ARIES (March 19 - April 18): A moment's discomfort will be all it takes, so grit your...","abstract":"\u003cp\u003eARIES (March 19 - April 18): A moment's discomfort will be all it takes, so grit your teeth and headbutt like a Ram. Better this than backing down from a fight you know you can win.\u003c/p\u003e","abstractPlainText":"ARIES (March 19 - April 18): A moment's discomfort will be all it takes, so grit your teeth and headbutt like a Ram. Better this than backing down from a fight you know you can win.","displayedDate":"2024-02-16 22:00:14","lastModifiedDate":"2024-02-16 22:00:14","elapsedTime":null,"authorName":"Christopher Renstrom","authorHref":"","authors":[],"eyebrow":{"linkText":"Horoscopes","url":"/horoscope/"},"badge":null,"image":{"url":"https://s.hdnux.com/photos/47/72/13/10461906/6/rawImage.jpg","b64":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA0JCgsKCA0LCgsODg0PEyAVExISEyccHhcgLikxMC4pLSwzOko+MzZGNywtQFdBRkxOUlNSMj5aYVpQYEpRUk//2wBDAQ4ODhMREyYVFSZPNS01T09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0//wAARCAAGAAgDASIAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAb/xAAaEAACAgMAAAAAAAAAAAAAAAAAEQESIzEy/8QAFQEBAQAAAAAAAAAAAAAAAAAAAwX/xAAWEQADAAAAAAAAAAAAAAAAAAAAAkH/2gAMAwEAAhEDEQA/AKZYbqOVoAArSklP/9k=","width":2048,"height":1580,"caption":{"plain":"Gemini","html1":null,"serializedReact":null},"loading":"lazy","external":null},"collectionConfig":{"showTimestamp":false,"persistentTimestamp":false,"showLabels":false,"showEyebrows":true,"showByline":false,"useImg":false,"blurb":null,"useBlurb":false,"hideBlurbOnMobile":false,"forceHideEyebrows":false},"displayedDateFormat":"h:mm aaa","sponsored":null,"rmd":{"shortTitle":"Horoscope for Saturday, 02/17/24 by Christopher Renstrom","title":"Horoscope for Saturday, 02/17/24 by Christopher Renstrom","abstract":"\u003cp\u003eARIES (March 19 - April 18): A moment's discomfort will be all it takes, so grit your teeth and headbutt like a Ram. Better this than backing down from a fight you know you can win.\u003c/p\u003e","authorBizobjects":[],"bylineObjects":[],"authors":["Christopher Renstrom"],"isPaidadContent":false,"isPremium":false,"isSponsoredContent":false,"isAffiliatedContent":false,"showTimestamp":false,"useBlurb":false,"useImg":false,"videoloop":null,"url":"/horoscope/article/horoscope-saturday-02-17-24-christopher-renstrom-18659319.php","displayedDate":"2024-02-17 06:00:14"},"slideshowImages":null},{"__typename":"ArticleStub","type":"article","url":"/travel/article/del-mar-california-rail-project-18672664.php","title":"Residents of wealthy California town outraged, concerned over rail plans","excerpt":"Del Mar residents are worried their quality of life will be ruined. ","abstract":"\u003cp\u003eDel Mar residents are worried their quality of life will be ruined. \u003c/p\u003e","abstractPlainText":"Del Mar residents are worried their quality of life will be ruined. ","displayedDate":"2024-02-16 15:15:03","lastModifiedDate":"2024-02-16 15:51:47","elapsedTime":null,"authorName":"Ariana Bindman","authorHref":"","authors":[{"id":1698,"name":"Ariana Bindman","title":"News Features Reporter","url":"/author/ariana-bindman/","credit":null,"image":{"id":null,"url":"https://s.hdnux.com/photos/01/32/64/65/23809385/6/rawImage.jpg","base64":null,"width":918,"height":918,"guid":null,"dirPath":null,"alt":null,"title":null}}],"eyebrow":{"linkText":"Travel","url":"/travel/"},"badge":null,"image":{"url":"https://s.hdnux.com/photos/01/36/25/26/24728995/3/rawImage.jpg","b64":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEBLAEsAAD/2wBDAA0JCgsKCA0LCgsODg0PEyAVExISEyccHhcgLikxMC4pLSwzOko+MzZGNywtQFdBRkxOUlNSMj5aYVpQYEpRUk//2wBDAQ4ODhMREyYVFSZPNS01T09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0//wAARCAAFAAgDAREAAhEBAxEB/8QAFAABAAAAAAAAAAAAAAAAAAAAA//EABsQAAICAwEAAAAAAAAAAAAAAAECAwQAETKR/8QAFQEBAQAAAAAAAAAAAAAAAAAAAgT/xAAYEQADAQEAAAAAAAAAAAAAAAAAAQJBA//aAAwDAQACEQMRAD8AI2mjWRWltkKBzYK78GOoesmnviR//9k=","width":2048,"height":1367,"caption":{"plain":"FILE: Del Mar, Calif. ","html1":null,"serializedReact":null},"loading":"lazy","external":null},"collectionConfig":{"showTimestamp":false,"persistentTimestamp":false,"showLabels":false,"showEyebrows":true,"showByline":false,"useImg":false,"blurb":null,"useBlurb":false,"hideBlurbOnMobile":false,"forceHideEyebrows":false},"displayedDateFormat":"h:mm aaa","sponsored":null,"rmd":{"shortTitle":"Residents of wealthy California town outraged, concerned over rail plans","title":"Residents of wealthy California town outraged, concerned over rail plans","abstract":"\u003cp\u003eDel Mar residents are worried their quality of life will be ruined. \u003c/p\u003e","authorBizobjects":[{"id":1698,"name":"Ariana Bindman","title":"News Features Reporter","url":"/author/ariana-bindman/","credit":"SFGATE","image":{"id":23809385,"url":null,"base64":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAA0JCgsKCA0LCgsODg0PEyAVExISEyccHhcgLikxMC4pLSwzOko+MzZGNywtQFdBRkxOUlNSMj5aYVpQYEpRUk//2wBDAQ4ODhMREyYVFSZPNS01T09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0//wAARCAAIAAgDAREAAhEBAxEB/8QAFAABAAAAAAAAAAAAAAAAAAAABv/EAB0QAAICAQUAAAAAAAAAAAAAAAECAxExAAQSISL/xAAVAQEBAAAAAAAAAAAAAAAAAAADBf/EABoRAAICAwAAAAAAAAAAAAAAAAABAgMREkH/2gAMAwEAAhEDEQA/ABs26iVQgi9Bu35HFVVYzR0KRRldrbjh/9k=","width":918,"height":918,"guid":"photo_23809385","dirPath":"01/32/64/65/23809385/6","alt":null,"title":"Ariana-Bindman"}}],"bylineObjects":[{"id":1698,"name":"Ariana Bindman","title":"News Features Reporter","url":"/author/ariana-bindman/","credit":"SFGATE"}],"authors":["Ariana Bindman"],"isPaidadContent":false,"isPremium":false,"isSponsoredContent":false,"isAffiliatedContent":false,"showTimestamp":false,"useBlurb":false,"useImg":false,"videoloop":null,"url":"/travel/article/del-mar-california-rail-project-18672664.php","displayedDate":"2024-02-16 23:15:03"},"slideshowImages":null},{"__typename":"ArticleStub","type":"article","url":"/weather/article/rain-forecast-for-bay-area-presidents-day-weekend-18671922.php","title":"Weather service issues timeline for 2 storms set to soak Bay Area this weekend","excerpt":"Two storms are forecast to soak the SF Bay Area over the Presidents Day weekend.","abstract":"\u003cp\u003eTwo storms are forecast to soak the SF Bay Area over the Presidents Day weekend.\u003c/p\u003e","abstractPlainText":"Two storms are forecast to soak the SF Bay Area over the Presidents Day weekend.","displayedDate":"2024-02-16 10:53:32","lastModifiedDate":"2024-02-16 10:53:32","elapsedTime":null,"authorName":"Amy Graff","authorHref":"","authors":[{"id":739,"name":"Amy Graff","title":"News Editor","url":"/author/amy-graff/","credit":null,"image":{"id":null,"url":"https://s.hdnux.com/photos/01/32/64/61/23809124/4/rawImage.jpg","base64":null,"width":918,"height":918,"guid":null,"dirPath":null,"alt":null,"title":null}}],"eyebrow":{"linkText":"Weather","url":"/weather/"},"badge":null,"image":{"url":"https://s.hdnux.com/photos/01/35/57/54/24574739/3/rawImage.jpg","b64":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAA0JCgsKCA0LCgsODg0PEyAVExISEyccHhcgLikxMC4pLSwzOko+MzZGNywtQFdBRkxOUlNSMj5aYVpQYEpRUk//2wBDAQ4ODhMREyYVFSZPNS01T09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0//wAARCAAGAAgDAREAAhEBAxEB/8QAFAABAAAAAAAAAAAAAAAAAAAABP/EAB0QAAIBBAMAAAAAAAAAAAAAAAECAwAEESEFBhL/xAAVAQEBAAAAAAAAAAAAAAAAAAABAv/EABkRAAIDAQAAAAAAAAAAAAAAAAABAhETIf/aAAwDAQACEQMRAD8ARx/fpXeY3NqAsYUv4OTvQwDQp8tlZs//2Q==","width":2048,"height":1409,"caption":{"plain":"People visit the Golden Gate Bridge as a rain storm moves through the area on January 4, 2023 in San Francisco.","html1":null,"serializedReact":null},"loading":"lazy","external":null},"collectionConfig":{"showTimestamp":false,"persistentTimestamp":false,"showLabels":false,"showEyebrows":true,"showByline":false,"useImg":false,"blurb":null,"useBlurb":false,"hideBlurbOnMobile":false,"forceHideEyebrows":false},"displayedDateFormat":"h:mm aaa","sponsored":null,"rmd":{"shortTitle":"Weather service issues timeline for 2 storms set to soak Bay Area this weekend","title":"Weather service issues timeline for 2 storms set to soak Bay Area this weekend","abstract":"\u003cp\u003eTwo storms are forecast to soak the SF Bay Area over the Presidents Day weekend.\u003c/p\u003e","authorBizobjects":[{"id":739,"name":"Amy Graff","title":"News Editor","url":"/author/amy-graff/","credit":"SFGATE","image":{"id":23809124,"url":null,"base64":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAA0JCgsKCA0LCgsODg0PEyAVExISEyccHhcgLikxMC4pLSwzOko+MzZGNywtQFdBRkxOUlNSMj5aYVpQYEpRUk//2wBDAQ4ODhMREyYVFSZPNS01T09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0//wAARCAAIAAgDAREAAhEBAxEB/8QAFAABAAAAAAAAAAAAAAAAAAAABv/EAB4QAAIBAwUAAAAAAAAAAAAAAAERAwACIQUSE1GR/8QAFQEBAQAAAAAAAAAAAAAAAAAABAX/xAAaEQACAgMAAAAAAAAAAAAAAAAAAQIRAwSB/9oADAMBAAIRAxEAPwAzJNBbp7G3kF+e0cL0OjpOym9hRyVw/9k=","width":918,"height":918,"guid":"photo_23809124","dirPath":"01/32/64/61/23809124/4","alt":null,"title":"Amy-Graff"}}],"bylineObjects":[{"id":739,"name":"Amy Graff","title":"News Editor","url":"/author/amy-graff/","credit":"SFGATE"}],"authors":["Amy Graff"],"isPaidadContent":false,"isPremium":false,"isSponsoredContent":false,"isAffiliatedContent":false,"showTimestamp":false,"useBlurb":false,"useImg":false,"videoloop":null,"url":"/weather/article/rain-forecast-for-bay-area-presidents-day-weekend-18671922.php","displayedDate":"2024-02-16 18:53:32"},"slideshowImages":null},{"__typename":"ArticleStub","type":"article","url":"/travel/article/nps-threatens-termination-west-coast-national-park-18670333.php","title":"NPS threatens 'extremely rare' termination at West Coast national park","excerpt":"The Park Service criticized Crater Lake's operator over various violations.","abstract":"\u003cp\u003eThe Park Service criticized Crater Lake's operator over various violations.\u003c/p\u003e","abstractPlainText":"The Park Service criticized Crater Lake's operator over various violations.","displayedDate":"2024-02-15 16:24:48","lastModifiedDate":"2024-02-15 16:25:16","elapsedTime":null,"authorName":"Olivia Harden","authorHref":"","authors":[{"id":1977,"name":"Olivia Harden","title":"Travel Reporter","url":"/author/olivia-harden/","credit":null,"image":{"id":null,"url":"https://s.hdnux.com/photos/01/32/65/60/23813127/6/rawImage.jpg","base64":null,"width":918,"height":918,"guid":null,"dirPath":null,"alt":null,"title":null}}],"eyebrow":{"linkText":"Travel","url":"/travel/"},"badge":null,"image":{"url":"https://s.hdnux.com/photos/01/34/64/42/24332440/5/rawImage.jpg","b64":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAA0JCgsKCA0LCgsODg0PEyAVExISEyccHhcgLikxMC4pLSwzOko+MzZGNywtQFdBRkxOUlNSMj5aYVpQYEpRUk//2wBDAQ4ODhMREyYVFSZPNS01T09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0//wAARCAAFAAgDAREAAhEBAxEB/8QAFAABAAAAAAAAAAAAAAAAAAAABf/EABwQAAICAgMAAAAAAAAAAAAAAAECAxEABAUSkf/EABQBAQAAAAAAAAAAAAAAAAAAAAH/xAAaEQACAwEBAAAAAAAAAAAAAAABAgADERJB/9oADAMBAAIRAxEAPwArW5LagnSJHU0KHZbHmCXng75BqAXyf//Z","width":2048,"height":1365,"caption":{"plain":"View of lake and mountains at Crater Lake National Park, Oregon","html1":null,"serializedReact":null},"loading":"lazy","external":null},"collectionConfig":{"showTimestamp":false,"persistentTimestamp":false,"showLabels":false,"showEyebrows":true,"showByline":false,"useImg":false,"blurb":null,"useBlurb":false,"hideBlurbOnMobile":false,"forceHideEyebrows":false},"displayedDateFormat":"LLL d","sponsored":null,"rmd":{"shortTitle":"NPS threatens 'extremely rare' termination at West Coast national park","title":"National Park Service claims ‘consistent failures,’ violations at Crater Lake","abstract":"\u003cp\u003eThe Park Service criticized Crater Lake's operator over various violations.\u003c/p\u003e","authorBizobjects":[{"id":1977,"name":"Olivia Harden","title":"Travel Reporter","url":"/author/olivia-harden/","credit":"SFGATE","image":{"id":23813127,"url":null,"base64":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAA0JCgsKCA0LCgsODg0PEyAVExISEyccHhcgLikxMC4pLSwzOko+MzZGNywtQFdBRkxOUlNSMj5aYVpQYEpRUk//2wBDAQ4ODhMREyYVFSZPNS01T09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0//wAARCAAIAAgDAREAAhEBAxEB/8QAFAABAAAAAAAAAAAAAAAAAAAABf/EAB4QAAIBAwUAAAAAAAAAAAAAAAECBAADEQUGIjGB/8QAFQEBAQAAAAAAAAAAAAAAAAAAAwX/xAAZEQACAwEAAAAAAAAAAAAAAAAAAgMSMUH/2gAMAwEAAhEDEQA/ACYO3rcvSbUhJ0ZLrBmCE8s9BfSM0HSg0tGzD//Z","width":918,"height":918,"guid":"photo_23813127","dirPath":"01/32/65/60/23813127/6","alt":null,"title":"Olivia-Harden"}}],"bylineObjects":[{"id":1977,"name":"Olivia Harden","title":"Travel Reporter","url":"/author/olivia-harden/","credit":"SFGATE"}],"authors":["Olivia Harden"],"isPaidadContent":false,"isPremium":false,"isSponsoredContent":false,"isAffiliatedContent":false,"showTimestamp":false,"useBlurb":false,"useImg":false,"videoloop":null,"url":"/travel/article/nps-threatens-termination-west-coast-national-park-18670333.php","displayedDate":"2024-02-16 00:24:48"},"slideshowImages":null},{"__typename":"ArticleStub","type":"article","url":"/california-parks/article/california-waterfall-burney-falls-closing-18669910.php","title":"Huge crowds at Calif. waterfall caused so much damage it has to close","excerpt":"The closure begins in April.","abstract":"\u003cp\u003eThe closure begins in April.\u003c/p\u003e","abstractPlainText":"The closure begins in April.","displayedDate":"2024-02-15 13:30:20","lastModifiedDate":"2024-02-15 13:58:11","elapsedTime":null,"authorName":"Sam Mauhay-Moore","authorHref":"","authors":[{"id":1803,"name":"Sam Mauhay-Moore","title":"Trending News Reporter","url":"/author/sam-mauhay-moore/","credit":null,"image":{"id":null,"url":"https://s.hdnux.com/photos/01/32/65/60/23813147/6/rawImage.jpg","base64":null,"width":918,"height":918,"guid":null,"dirPath":null,"alt":null,"title":null}}],"eyebrow":{"linkText":"California Parks","url":"/california-parks/"},"badge":null,"image":{"url":"https://s.hdnux.com/photos/01/36/24/14/24724256/3/rawImage.jpg","b64":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEBLAEsAAD/2wBDAA0JCgsKCA0LCgsODg0PEyAVExISEyccHhcgLikxMC4pLSwzOko+MzZGNywtQFdBRkxOUlNSMj5aYVpQYEpRUk//2wBDAQ4ODhMREyYVFSZPNS01T09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0//wAARCAAFAAgDAREAAhEBAxEB/8QAFAABAAAAAAAAAAAAAAAAAAAABf/EAB0QAAIBBAMAAAAAAAAAAAAAAAECAwAFERITITH/xAAVAQEBAAAAAAAAAAAAAAAAAAABA//EABgRAQEAAwAAAAAAAAAAAAAAAAEAAhEx/9oADAMBAAIRAxEAPwAZZUa38IiA8JbY94qRkc1KN//Z","width":2048,"height":1368,"caption":{"plain":"McArthur-Burney Falls Memorial State Park will be closed to the public starting in April of this year. ","html1":null,"serializedReact":null},"loading":"lazy","external":null},"collectionConfig":{"showTimestamp":false,"persistentTimestamp":false,"showLabels":false,"showEyebrows":true,"showByline":false,"useImg":false,"blurb":null,"useBlurb":false,"hideBlurbOnMobile":false,"forceHideEyebrows":false},"displayedDateFormat":"LLL d","sponsored":null,"rmd":{"shortTitle":"Huge crowds at Calif. waterfall caused so much damage it has to close","title":"Huge crowds at California waterfall caused so much damage it has to close","abstract":"\u003cp\u003eThe closure begins in April.\u003c/p\u003e","authorBizobjects":[{"id":1803,"name":"Sam Mauhay-Moore","title":"Trending News Reporter","url":"/author/sam-mauhay-moore/","credit":"SFGATE","image":{"id":23813147,"url":null,"base64":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAA0JCgsKCA0LCgsODg0PEyAVExISEyccHhcgLikxMC4pLSwzOko+MzZGNywtQFdBRkxOUlNSMj5aYVpQYEpRUk//2wBDAQ4ODhMREyYVFSZPNS01T09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0//wAARCAAIAAgDAREAAhEBAxEB/8QAFAABAAAAAAAAAAAAAAAAAAAABv/EABwQAAICAgMAAAAAAAAAAAAAAAECAwQAExFS0f/EABUBAQEAAAAAAAAAAAAAAAAAAAMF/8QAGhEAAgIDAAAAAAAAAAAAAAAAAQIAEQMEgf/aAAwDAQACEQMRAD8AJy2qqRAajtVuC46ke4IRiLlJ9lEy1yf/2Q==","width":918,"height":918,"guid":"photo_23813147","dirPath":"01/32/65/60/23813147/6","alt":null,"title":"Sam-Mauhay-Moore"}}],"bylineObjects":[{"id":1803,"name":"Sam Mauhay-Moore","title":"Trending News Reporter","url":"/author/sam-mauhay-moore/","credit":"SFGATE"}],"authors":["Sam Mauhay-Moore"],"isPaidadContent":false,"isPremium":false,"isSponsoredContent":false,"isAffiliatedContent":false,"showTimestamp":false,"useBlurb":false,"useImg":false,"videoloop":null,"url":"/california-parks/article/california-waterfall-burney-falls-closing-18669910.php","displayedDate":"2024-02-15 21:30:20"},"slideshowImages":null},{"__typename":"ArticleStub","type":"article","url":"/local/article/napping-raccoon-san-francisco-yard-couch-coyote-18672573.php","title":"'A comfy snooze': Another wild animal caught napping in an SF yard","excerpt":"Scoot over, couch coyote, there’s another sleepy animal drawing attention this week.","abstract":"\u003cp\u003eScoot over, couch coyote, there’s another sleepy animal drawing attention this week.\u003c/p\u003e","abstractPlainText":"Scoot over, couch coyote, there’s another sleepy animal drawing attention this week.","displayedDate":"2024-02-16 15:26:55","lastModifiedDate":"2024-02-16 18:37:45","elapsedTime":null,"authorName":"Jillian D'Onfro","authorHref":"","authors":[{"id":6489,"name":"Jillian D'Onfro","title":"Local editor","url":"/author/jillian-donfro/","credit":null,"image":null}],"eyebrow":{"linkText":"Local","url":"/local/"},"badge":null,"image":{"url":"https://s.hdnux.com/photos/01/36/25/26/24729005/3/rawImage.jpg","b64":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAA0JCgsKCA0LCgsODg0PEyAVExISEyccHhcgLikxMC4pLSwzOko+MzZGNywtQFdBRkxOUlNSMj5aYVpQYEpRUk//2wBDAQ4ODhMREyYVFSZPNS01T09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0//wAARCAAFAAgDAREAAhEBAxEB/8QAFAABAAAAAAAAAAAAAAAAAAAAAv/EAB4QAAEEAQUAAAAAAAAAAAAAAAIBAwQhAAUREoHw/8QAFQEBAQAAAAAAAAAAAAAAAAAAAgP/xAAYEQEBAAMAAAAAAAAAAAAAAAABABEhMf/aAAwDAQACEQMRAD8AOpjFZamg1GtW9hIz5KK3ae7yehxPot//2Q==","width":2048,"height":1365,"caption":{"plain":"San Francisco Animal Care and Control caught a raccoon \"just having a comfy snooze\" in Potrero Hill. ","html1":null,"serializedReact":null},"loading":"lazy","external":null},"collectionConfig":{"showTimestamp":false,"persistentTimestamp":false,"showLabels":false,"showEyebrows":true,"showByline":false,"useImg":false,"blurb":null,"useBlurb":false,"hideBlurbOnMobile":false,"forceHideEyebrows":false},"displayedDateFormat":"h:mm aaa","sponsored":null,"rmd":{"shortTitle":"'A comfy snooze': Another wild animal caught napping in an SF yard","title":"'A comfy snooze': Another wild animal caught napping in an SF yard","abstract":"\u003cp\u003eScoot over, couch coyote, there’s another sleepy animal drawing attention this week.\u003c/p\u003e","authorBizobjects":[{"id":6489,"name":"Jillian D'Onfro","title":"Local editor","url":"/author/jillian-donfro/","credit":"SFGATE","image":null}],"bylineObjects":[{"id":6489,"name":"Jillian D'Onfro","title":"Local editor","url":"/author/jillian-donfro/","credit":"SFGATE"}],"authors":["Jillian D’Onfro"],"isPaidadContent":false,"isPremium":false,"isSponsoredContent":false,"isAffiliatedContent":false,"showTimestamp":false,"useBlurb":false,"useImg":false,"videoloop":null,"url":"/local/article/napping-raccoon-san-francisco-yard-couch-coyote-18672573.php","displayedDate":"2024-02-16 23:26:55"},"slideshowImages":null},{"__typename":"ArticleStub","type":"article","url":"/horoscope/article/horoscope-friday-02-16-24-christopher-renstrom-18659316.php","title":"Horoscope for Friday, 02/16/24 by Christopher Renstrom","excerpt":"ARIES (March 19 - April 18): Something that should have been approved is sent back for a...","abstract":"\u003cp\u003eARIES (March 19 - April 18): Something that should have been approved is sent back for a new draft. Take this opportunity to pick over details. At least three can be reworked to your advantage.\u003c/p\u003e","abstractPlainText":"ARIES (March 19 - April 18): Something that should have been approved is sent back for a new draft. Take this opportunity to pick over details. At least three can be reworked to your advantage.","displayedDate":"2024-02-15 22:00:14","lastModifiedDate":"2024-02-15 22:00:14","elapsedTime":null,"authorName":"Christopher Renstrom","authorHref":"","authors":[],"eyebrow":{"linkText":"Horoscopes","url":"/horoscope/"},"badge":null,"image":{"url":"https://s.hdnux.com/photos/47/72/13/10461906/6/rawImage.jpg","b64":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA0JCgsKCA0LCgsODg0PEyAVExISEyccHhcgLikxMC4pLSwzOko+MzZGNywtQFdBRkxOUlNSMj5aYVpQYEpRUk//2wBDAQ4ODhMREyYVFSZPNS01T09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0//wAARCAAGAAgDASIAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAb/xAAaEAACAgMAAAAAAAAAAAAAAAAAEQESIzEy/8QAFQEBAQAAAAAAAAAAAAAAAAAAAwX/xAAWEQADAAAAAAAAAAAAAAAAAAAAAkH/2gAMAwEAAhEDEQA/AKZYbqOVoAArSklP/9k=","width":2048,"height":1580,"caption":{"plain":"Gemini","html1":null,"serializedReact":null},"loading":"lazy","external":null},"collectionConfig":{"showTimestamp":false,"persistentTimestamp":false,"showLabels":false,"showEyebrows":true,"showByline":false,"useImg":false,"blurb":null,"useBlurb":false,"hideBlurbOnMobile":false,"forceHideEyebrows":false},"displayedDateFormat":"LLL d","sponsored":null,"rmd":{"shortTitle":"Horoscope for Friday, 02/16/24 by Christopher Renstrom","title":"Horoscope for Friday, 02/16/24 by Christopher Renstrom","abstract":"\u003cp\u003eARIES (March 19 - April 18): Something that should have been approved is sent back for a new draft. Take this opportunity to pick over details. At least three can be reworked to your advantage.\u003c/p\u003e","authorBizobjects":[],"bylineObjects":[],"authors":["Christopher Renstrom"],"isPaidadContent":false,"isPremium":false,"isSponsoredContent":false,"isAffiliatedContent":false,"showTimestamp":false,"useBlurb":false,"useImg":false,"videoloop":null,"url":"/horoscope/article/horoscope-friday-02-16-24-christopher-renstrom-18659316.php","displayedDate":"2024-02-16 06:00:14"},"slideshowImages":null}]},{"eid":"collection-108907-dynamic_thumbnail_list","collections":[],"id":"zoneA1602203437224","type":"ThumbnailList","options":{"content":null,"subClass":null,"title":{"text":"Shopping","href":""},"commerceType":"isAffiliatedContent","placement":"sidebar","isListing":false},"items":[{"__typename":"ArticleStub","type":"article","url":"/shopping/article/dryer-vent-cleaning-kit-amazon-18670453.php","title":"This $10 dryer vent cleaning kit can save you hundreds","excerpt":"Prevent dryer fires, lower your power bill, extend the life of your appliance and more. ","abstract":"Prevent dryer fires, lower your power bill, extend the life of your appliance and more. ","abstractPlainText":"Prevent dryer fires, lower your power bill, extend the life of your appliance and more. ","displayedDate":"2024-02-15 19:06:43","lastModifiedDate":"2024-02-15 19:06:44","elapsedTime":null,"authorName":"Mariana Best","authorHref":"","authors":[{"id":1687,"name":"Mariana Best","title":"Senior commerce editor","url":"/author/mariana-best/","credit":null,"image":null}],"eyebrow":{"linkText":"Shopping","url":"/shopping/"},"badge":null,"image":{"url":"https://s.hdnux.com/photos/01/36/24/41/24725581/3/rawImage.jpg","b64":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAMAAABPT11nAAAAaVBMVEX/ygDqvCPevUDbpQr80QD9yQD/ywD+ywD+uxD/yADOyUS5oUC+lA7/zwL9xQP/xwP+wgn/xAHcyS3Htk25pi3AlQv+xwL/wwTdvy6SxZHDwEO4qC7VqAb/0AD+zAD/zADjxiC9vEXrxhRYRZ3GAAAANUlEQVQI12NgYGRiZmFlY2fg4OTi5uHl42cQEBQSFhHlFWNgF5eQlJKWkWVgkJNXkFdUYgMAKUwCjahSOKoAAAAASUVORK5CYII=","width":1680,"height":1120,"caption":{"plain":"Sealegend Dryer Vent Cleaner Kit [https://www.amazon.com/Cleaner-Vacuum-Attachment-Remover-Washer/dp/B08LGB4Z5C?th=1] - $9.95 at Amazon","html1":null,"serializedReact":null},"loading":"lazy","external":null},"collectionConfig":{"showTimestamp":false,"persistentTimestamp":false,"showLabels":false,"showEyebrows":false,"showByline":false,"useImg":true,"blurb":null,"useBlurb":false,"hideBlurbOnMobile":false,"forceHideEyebrows":false},"displayedDateFormat":"LLL d","sponsored":null,"rmd":{"shortTitle":"This $10 dryer vent cleaning kit can save you hundreds","title":"This $10 dryer vent cleaning kit can prevent fires, high power bills and more","abstract":"\u003cp\u003ePrevent dryer fires, lower your power bill, extend the life of your appliance and more. \u003c/p\u003e","authorBizobjects":[{"id":1687,"name":"Mariana Best","title":"Senior commerce editor","url":"/author/mariana-best/","credit":null,"image":null}],"bylineObjects":[{"id":1687,"name":"Mariana Best","title":"Senior commerce editor","url":"/author/mariana-best/","credit":null}],"authors":["Mariana Best"],"isPaidadContent":false,"isPremium":false,"isSponsoredContent":false,"isAffiliatedContent":true,"showTimestamp":true,"useBlurb":false,"useImg":true,"videoloop":null,"url":"/shopping/article/dryer-vent-cleaning-kit-amazon-18670453.php","displayedDate":"2024-02-16 03:06:43"},"slideshowImages":null},{"__typename":"ArticleStub","type":"article","url":"/shopping/article/best-upholstery-cleaner-18621619.php","title":"9 best upholstery cleaners for couches, cars and more","excerpt":"From DIY cleaners to premade solutions, these are the top expert-recommended picks. ","abstract":"From DIY cleaners to premade solutions, these are the top expert-recommended picks. ","abstractPlainText":"From DIY cleaners to premade solutions, these are the top expert-recommended picks. ","displayedDate":"2024-02-13 17:49:56","lastModifiedDate":"2024-02-13 17:49:57","elapsedTime":null,"authorName":"Vanessa Nirode","authorHref":"","authors":[{"id":1994,"name":"Vanessa Nirode","title":"Freelance writer","url":"/author/vanessa-nirode/","credit":null,"image":null}],"eyebrow":{"linkText":"Shopping","url":"/shopping/"},"badge":null,"image":{"url":"https://s.hdnux.com/photos/01/36/22/57/24718290/3/rawImage.jpg","b64":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAMAAABPT11nAAAAdVBMVEW3aP+aWdylYOHKh7jHg7vEh7LJkK24bO27Z/9zV2uDW4bTiMLFe8bCj6LBqJ+8bO1ZSVNnRnq1hd+ogbyycddrb5mtYP++bP9OPE9pY2WktIKhrH2Di6VYcWStZO68a/98YESBamSqkayjiqahgcKliLO4a/YglPH5AAAANUlEQVQI12NgYGRiZmFlY2fg4OTi5uHl42fgEBAUEhYRFWMQl5CUkpaRlWOQV1BUUlZRVQMAK28C7q6QIREAAAAASUVORK5CYII=","width":1680,"height":1120,"caption":{"plain":"Give your upholstery a little TLC with these expert-recommended cleaners. ","html1":null,"serializedReact":null},"loading":"lazy","external":null},"collectionConfig":{"showTimestamp":false,"persistentTimestamp":false,"showLabels":false,"showEyebrows":false,"showByline":false,"useImg":true,"blurb":null,"useBlurb":false,"hideBlurbOnMobile":false,"forceHideEyebrows":false},"displayedDateFormat":"LLL d","sponsored":null,"rmd":{"shortTitle":"9 best upholstery cleaners for couches, cars and more","title":"9 best upholstery cleaners for couches, cars and more","abstract":"\u003cp\u003eFrom DIY cleaners to premade solutions, these are the top expert-recommended picks. \u003c/p\u003e","authorBizobjects":[{"id":1994,"name":"Vanessa Nirode","title":"Freelance writer","url":"/author/vanessa-nirode/","credit":null,"image":null}],"bylineObjects":[{"id":1994,"name":"Vanessa Nirode","title":"Freelance writer","url":"/author/vanessa-nirode/","credit":null}],"authors":["Vanessa Nirode"],"isPaidadContent":false,"isPremium":false,"isSponsoredContent":false,"isAffiliatedContent":true,"showTimestamp":true,"useBlurb":false,"useImg":true,"videoloop":null,"url":"/shopping/article/best-upholstery-cleaner-18621619.php","displayedDate":"2024-02-14 01:49:56"},"slideshowImages":null},{"__typename":"ArticleStub","type":"article","url":"/shopping/article/incubus-tour-tickets-san-francisco-18651681.php","title":"Tickets to see Incubus at Chase Center just went on sale","excerpt":"Snatch up tickets to the Sept. 12 concert at Chase Center before they're gone. ","abstract":"Snatch up tickets to the Sept. 12 concert at Chase Center before they're gone. ","abstractPlainText":"Snatch up tickets to the Sept. 12 concert at Chase Center before they're gone. ","displayedDate":"2024-02-09 10:10:34","lastModifiedDate":"2024-02-09 10:13:19","elapsedTime":null,"authorName":"Miles Walls","authorHref":"","authors":[{"id":1769,"name":"Miles Walls","title":"Freelance writer","url":"/author/miles-walls/","credit":null,"image":{"id":null,"url":"https://s.hdnux.com/photos/01/25/40/07/22413773/5/rawImage.jpg","base64":null,"width":446,"height":421,"guid":null,"dirPath":null,"alt":null,"title":null}}],"eyebrow":{"linkText":"Shopping","url":"/shopping/"},"badge":null,"image":{"url":"https://s.hdnux.com/photos/01/36/16/76/24702872/3/rawImage.jpg","b64":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAMAAABPT11nAAAAdVBMVEUhIy4ZHCdVSUkwLTQgISsdHyk4Nz8dHSUiIywWGSO5iGnUpH5GPDwXGiQjJCwtKjAsKzIjIypHLSKqhWhsXlg1MzgaGCAUExkkJTE3Nz2OiouhlY5bW15qZmcODRRVQERHLiU5KyhfWVuamJw+O0AbGR8eGiGDgf6rAAAANUlEQVQI12NgYGRiZmFlY2fg4OTi5uHl42cQEBQSFhEVE2eQkJSSlpGVE2eQV1BUUlZRVQMALPUC/WVYxJ8AAAAASUVORK5CYII=","width":1680,"height":1120,"caption":{"plain":"Grab tickets to see Incubus live in San Francisco before they sell out. ","html1":null,"serializedReact":null},"loading":"lazy","external":null},"collectionConfig":{"showTimestamp":false,"persistentTimestamp":false,"showLabels":false,"showEyebrows":false,"showByline":false,"useImg":true,"blurb":null,"useBlurb":false,"hideBlurbOnMobile":false,"forceHideEyebrows":false},"displayedDateFormat":"LLL d","sponsored":null,"rmd":{"shortTitle":"Tickets to see Incubus at Chase Center just went on sale","title":"Incubus tour: How to get tickets to the 2024 Chase Center show","abstract":"\u003cp\u003eSnatch up tickets to the Sept. 12 concert at Chase Center before they're gone. \u003c/p\u003e","authorBizobjects":[{"id":1769,"name":"Miles Walls","title":"Freelance writer","url":"/author/miles-walls/","credit":null,"image":{"id":22413773,"url":null,"base64":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAqACoAAD/2wBDAA0JCgsKCA0LCgsODg0PEyAVExISEyccHhcgLikxMC4pLSwzOko+MzZGNywtQFdBRkxOUlNSMj5aYVpQYEpRUk//2wBDAQ4ODhMREyYVFSZPNS01T09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0//wAARCAAIAAgDASIAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAX/xAAcEAEAAwACAwAAAAAAAAAAAAABAAIDBSERQWH/xAAUAQEAAAAAAAAAAAAAAAAAAAAB/8QAFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8AvWw3txdc3fKiWHwvR8X09kREQ//Z","width":446,"height":421,"guid":"photo_22413773","dirPath":"01/25/40/07/22413773/5","alt":null,"title":"Miles Walls"}}],"bylineObjects":[{"id":1769,"name":"Miles Walls","title":"Freelance writer","url":"/author/miles-walls/","credit":null}],"authors":["Miles Walls"],"isPaidadContent":false,"isPremium":false,"isSponsoredContent":false,"isAffiliatedContent":true,"showTimestamp":true,"useBlurb":false,"useImg":true,"videoloop":null,"url":"/shopping/article/incubus-tour-tickets-san-francisco-18651681.php","displayedDate":"2024-02-09 18:10:34"},"slideshowImages":null},{"__typename":"ArticleStub","type":"article","url":"/shopping/article/hasan-minhaj-tour-san-francisco-18638127.php","title":"Hasan Minhaj tour tickets are under $100 right now","excerpt":"The comedian and Nor Cal native has four shows at the Masonic this week.","abstract":"The comedian and Nor Cal native has four shows at the Masonic this week.","abstractPlainText":"The comedian and Nor Cal native has four shows at the Masonic this week.","displayedDate":"2024-02-08 09:57:48","lastModifiedDate":"2024-02-08 09:57:48","elapsedTime":null,"authorName":"Miles Walls","authorHref":"","authors":[{"id":1769,"name":"Miles Walls","title":"Freelance writer","url":"/author/miles-walls/","credit":null,"image":{"id":null,"url":"https://s.hdnux.com/photos/01/25/40/07/22413773/5/rawImage.jpg","base64":null,"width":446,"height":421,"guid":null,"dirPath":null,"alt":null,"title":null}}],"eyebrow":{"linkText":"Shopping","url":"/shopping/"},"badge":null,"image":{"url":"https://s.hdnux.com/photos/01/36/15/67/24698360/3/rawImage.jpg","b64":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAMAAABPT11nAAAAXVBMVEUBAQMHBgkvKCkAAAICAgQBAQICAQIAAAEUDg2PaVwAAQMFBAUBAQECAgIAAAAhIiRuZGYDAgMDAgIAAQEEBAQyMDFhVlUdHCBbSEcPCwoKCQogHyA9PUA7Oz0TEBAjRJfzAAAANUlEQVQI12NgYGBkYmZhYGVgY+fg5OJm5WHg5eMXEOQREmbgEREVE5eQ5GPgk5KWkZXj4wEAITkCJXPquqYAAAAASUVORK5CYII=","width":1680,"height":1120,"caption":{"plain":"Bay Area fans have four chances to catch comedian Hasan Minhaj live this weekend.","html1":null,"serializedReact":null},"loading":"lazy","external":null},"collectionConfig":{"showTimestamp":false,"persistentTimestamp":false,"showLabels":false,"showEyebrows":false,"showByline":false,"useImg":true,"blurb":null,"useBlurb":false,"hideBlurbOnMobile":false,"forceHideEyebrows":false},"displayedDateFormat":"LLL d","sponsored":null,"rmd":{"shortTitle":"Hasan Minhaj tour tickets are under $100 right now","title":"Last-minute Hasan Minhaj tour tickets are under $100 right now","abstract":"\u003cp\u003eThe comedian and Nor Cal native has four shows at the Masonic this week.\u003c/p\u003e","authorBizobjects":[{"id":1769,"name":"Miles Walls","title":"Freelance writer","url":"/author/miles-walls/","credit":null,"image":{"id":22413773,"url":null,"base64":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAqACoAAD/2wBDAA0JCgsKCA0LCgsODg0PEyAVExISEyccHhcgLikxMC4pLSwzOko+MzZGNywtQFdBRkxOUlNSMj5aYVpQYEpRUk//2wBDAQ4ODhMREyYVFSZPNS01T09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0//wAARCAAIAAgDASIAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAX/xAAcEAEAAwACAwAAAAAAAAAAAAABAAIDBSERQWH/xAAUAQEAAAAAAAAAAAAAAAAAAAAB/8QAFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8AvWw3txdc3fKiWHwvR8X09kREQ//Z","width":446,"height":421,"guid":"photo_22413773","dirPath":"01/25/40/07/22413773/5","alt":null,"title":"Miles Walls"}}],"bylineObjects":[{"id":1769,"name":"Miles Walls","title":"Freelance writer","url":"/author/miles-walls/","credit":null}],"authors":["Miles Walls"],"isPaidadContent":false,"isPremium":false,"isSponsoredContent":false,"isAffiliatedContent":true,"showTimestamp":true,"useBlurb":false,"useImg":true,"videoloop":null,"url":"/shopping/article/hasan-minhaj-tour-san-francisco-18638127.php","displayedDate":"2024-02-08 01:17:31"},"slideshowImages":null},{"__typename":"ArticleStub","type":"article","url":"/shopping/article/best-underseat-luggage-18627967.php","title":"The best underseat luggage according to travel experts","excerpt":"Travel experts swear by these compact and convenient bags. ","abstract":"Travel experts swear by these compact and convenient bags. ","abstractPlainText":"Travel experts swear by these compact and convenient bags. ","displayedDate":"2024-02-06 15:09:35","lastModifiedDate":"2024-02-06 15:10:38","elapsedTime":null,"authorName":"Krystin Arneson","authorHref":"","authors":[{"id":2020,"name":"Krystin Arneson","title":"Freelance Writer","url":"/author/krystin-arneson/","credit":null,"image":null}],"eyebrow":{"linkText":"Shopping","url":"/shopping/"},"badge":null,"image":{"url":"https://s.hdnux.com/photos/01/36/14/63/24694015/3/rawImage.jpg","b64":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAMAAABPT11nAAAAeFBMVEVly/9xsN2GlbFsvOyd1/hbY2SDqsFuz/+S0/7MmKSpcoS8l6i5vLsfFwqPgXal4f99zP23pcDBmq2zqcCpscVlY2p2nLh30P9lx/5fxvy55//Vt6iYaFTw+f5ly/1nxv1px/1jw/qL1f+vqrKjgnmpz+5mw/xpyP5eWWOnAAAANUlEQVQI12NgYGRiZmFlY2fg4OTi5uHl42cQEBQSFhEVE2eQkJSSlpGVk2dQUFRSVlFVUwcALWkDDZQ9l9UAAAAASUVORK5CYII=","width":1680,"height":1120,"caption":{"plain":"No overhead bin space? No problem. ","html1":null,"serializedReact":null},"loading":"lazy","external":null},"collectionConfig":{"showTimestamp":false,"persistentTimestamp":false,"showLabels":false,"showEyebrows":false,"showByline":false,"useImg":true,"blurb":null,"useBlurb":false,"hideBlurbOnMobile":false,"forceHideEyebrows":false},"displayedDateFormat":"LLL d","sponsored":null,"rmd":{"shortTitle":"The best underseat luggage according to travel experts","title":"The best underseat luggage according to travel experts","abstract":"\u003cp\u003eTravel experts swear by these compact and convenient bags. \u003c/p\u003e","authorBizobjects":[{"id":2020,"name":"Krystin Arneson","title":"Freelance Writer","url":"/author/krystin-arneson/","credit":null,"image":null}],"bylineObjects":[{"id":2020,"name":"Krystin Arneson","title":"Freelance Writer","url":"/author/krystin-arneson/","credit":null}],"authors":["Krystin Arneson"],"isPaidadContent":false,"isPremium":false,"isSponsoredContent":false,"isAffiliatedContent":true,"showTimestamp":true,"useBlurb":false,"useImg":true,"videoloop":null,"url":"/shopping/article/best-underseat-luggage-18627967.php","displayedDate":"2024-02-06 23:09:35"},"slideshowImages":null},{"__typename":"ArticleStub","type":"article","url":"/shopping/article/best-grout-cleaner-18535663.php","title":"The 10 best ways to clean your grout — and keep it sparkling","excerpt":"Including DIY solutions, store-bought cleaners, tools and more.","abstract":"Including DIY solutions, store-bought cleaners, tools and more.","abstractPlainText":"Including DIY solutions, store-bought cleaners, tools and more.","displayedDate":"2024-02-05 17:45:07","lastModifiedDate":"2024-02-05 17:45:08","elapsedTime":null,"authorName":"Vanessa Nirode","authorHref":"","authors":[{"id":1994,"name":"Vanessa Nirode","title":"Freelance writer","url":"/author/vanessa-nirode/","credit":null,"image":null}],"eyebrow":{"linkText":"Shopping","url":"/shopping/"},"badge":null,"image":{"url":"https://s.hdnux.com/photos/01/36/14/07/24691148/3/rawImage.jpg","b64":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAMAAABPT11nAAAAdVBMVEX/0wDxtBbppybtsxX5zhy5kNLTpeHTpOP/1QDNqD7HlIjgvkHsvW+jln3Ro9/TpeL/0ADi04G4xPndzXnfqsLMy27QqcnTpOf/zgD63Ffd2qjbvIO/n79rfT+6orzXpen+zgP/0QDksZ/Gqsa0zkO+sKnWo+xNullAAAAANUlEQVQI12NgYGRiZmFlY2fg4OTi5uHl42cQEBQSFhEVE2eQkJSSlpGVk2cQUFBUUlZRVQMALM0C9noPrXEAAAAASUVORK5CYII=","width":1680,"height":1120,"caption":{"plain":"You can create a DIY grout cleaning solution with basic household products like baking soda, or opt for a pre-made formulation. ","html1":null,"serializedReact":null},"loading":"lazy","external":null},"collectionConfig":{"showTimestamp":false,"persistentTimestamp":false,"showLabels":false,"showEyebrows":false,"showByline":false,"useImg":true,"blurb":null,"useBlurb":false,"hideBlurbOnMobile":false,"forceHideEyebrows":false},"displayedDateFormat":"LLL d","sponsored":null,"rmd":{"shortTitle":"The 10 best ways to clean your grout — and keep it sparkling","title":"These are the best grout cleaners according to professional cleaners and home renovators","abstract":"\u003cp\u003eIncluding DIY solutions, store-bought cleaners, tools and more.\u003c/p\u003e","authorBizobjects":[{"id":1994,"name":"Vanessa Nirode","title":"Freelance writer","url":"/author/vanessa-nirode/","credit":null,"image":null}],"bylineObjects":[{"id":1994,"name":"Vanessa Nirode","title":"Freelance writer","url":"/author/vanessa-nirode/","credit":null}],"authors":["Vanessa Nirode"],"isPaidadContent":false,"isPremium":false,"isSponsoredContent":false,"isAffiliatedContent":true,"showTimestamp":true,"useBlurb":false,"useImg":true,"videoloop":null,"url":"/shopping/article/best-grout-cleaner-18535663.php","displayedDate":"2024-02-06 01:45:07"},"slideshowImages":null}]},{"id":"2","type":"Ad","options":{"hideOnMobile":true,"sticky":true,"large":"NTV7ARD","adUnitPath":"hnp-sfgate.com/article_dtc","hasChapters":false},"items":[]},{"id":"zoneC1704409517886","type":"HTMLContent","options":{"placement":"sidebar","content":"\u003cscript src=\"https://www.sfgate.com/best/wp-json/deals/v1/wcm-freeform/freeform.js?id=328\" data-shopping-freeform-template=\"platypus-collection-column\"\u003e\u003c/script\u003e","eid":"item-102119"},"items":[]},{"eid":"item-100258","id":"zoneA1591289000144","type":"ThirdPartyFreeformEmbed","options":{"embed":{"__type":"thirdPartyFreeformEmbed","__id":"taboola","__element":{"tag":"div","attributes":{"id":"taboola-right-rail-thumbnails"}},"__src":"https://cdn.taboola.com/libtrc/hearstlocalnews-network/loader.js","__data":{"widget":{"mode":"thumbnails-f","container":"taboola-right-rail-thumbnails","placement":"Right Rail Thumbnails - Platypus","target_type":"mix"},"variant":"rightrail"},"dataType":"taboolaData","widget":{"mode":"thumbnails-f","container":"taboola-right-rail-thumbnails","placement":"Right Rail Thumbnails - Platypus","target_type":"mix"},"variant":"rightrail","__tpId":"taboola-right-rail-thumbnails"},"eid":"item-100258"},"items":[]},{"id":"6","type":"Ad","options":{"hideOnMobile":true,"sticky":true,"large":"RB-1","adUnitPath":"hnp-sfgate.com/article_dtc","hasChapters":false},"items":[]}]}]},{"id":"zoneSet7","layout":"1Column","options":{},"zones":[{"id":"pzoneB","options":{},"widgets":[{"eid":"item-100257","id":"zoneA1591288916147","type":"ThirdPartyFreeformEmbed","options":{"embed":{"__type":"thirdPartyFreeformEmbed","__id":"taboola","__element":{"tag":"div","attributes":{"id":"taboola-below-article-feed"}},"__src":"https://cdn.taboola.com/libtrc/hearstlocalnews-network/loader.js","__data":{"widget":{"mode":"thumbnails-a","container":"taboola-below-article-feed","placement":"Below Article Feed - Platypus","target_type":"mix"},"variant":"feed"},"dataType":"taboolaData","widget":{"mode":"thumbnails-a","container":"taboola-below-article-feed","placement":"Below Article Feed - Platypus","target_type":"mix"},"variant":"feed","__tpId":"taboola-below-article-feed"},"eid":"item-100257"},"items":[]}]}]},{"id":"adhesionAdZone","layout":"Sticky1Column","options":{},"zones":[{"id":"adhesionAd","options":{},"widgets":[{"id":"adhesion","type":"Ad","options":{"adUnitPath":"hnp-sfgate.com/article_dtc","small":"MAD","topPadding":false,"hideOnDesktop":true,"showBackground":true},"items":[]}]}]}],"globalContext":{"enabledThirdParties":{"taboola":{"active":true,"config":{"useInCarouselGallery":true,"useInListGallery":true}},"exco":{"active":true,"config":{"autoPlaceExco":true}},"evvnt":{"active":true},"perimeterx":{"active":true},"puzzlepalace":{"active":true},"juice":{"active":true},"nativo":{"active":true},"sailthru":{"active":true},"comscore":{"active":true},"blueconic":{"active":true,"config":{"blueconicUrl":"https://u927.sfgate.com/script.js"},"siteAwareJson":{"WelcomeUnit":{"Overlay":{"primeDayPromoSFGate":{"modalBackgroundColor":"#","modalDesktopBackgroundImageUrl":"https://hearst.blueconic.net/rest/v2/dialogues/files/42a79047-df1a-4a5a-b8ad-0898cb123418/AMAZON_750x650_V2.png","modalMobileBackgroundImageUrl":"https://hearst.blueconic.net/rest/v2/dialogues/files/904a1d49-e561-490e-ad28-2421afb05eb0/AMAZON_300x500.png","brandLogoUrl":"https://www.sfgate.com/img/logos/black/logo.svg","optionalText":"Don’t Miss Out!","optionalTextColor":"#FFFFFF","headlineText":"AMAZON PRIME\nBIG DEAL DAYS","headlineTextColor":"#FFFFFF","descriptionText":"Save tons on the hottest\nproducts of the season.","descriptionTextColor":"#FFFFFF","theme":"dark","callToActionButtonBackgroundColor":"#000000","callToActionButtonTextColor":"#FFFFFF","callToActionButtonTitle":"SHOP NOW","callToActionButtonUrl":"https://www.amazon.com/primebigdealdays?\u0026linkCode=ll2\u0026tag=hearstnp-pd-20\u0026linkId=ebc4697daa9cffa59733bef97baccef3\u0026language=en_US\u0026ref_=as_li_ss_tl","termsDisclaimerText":"","termsDisclaimerTextColor":""},"blackFridayPromoSFGate":{"modalBackgroundColor":"","modalDesktopBackgroundImageUrl":"https://hearst.blueconic.net/rest/v2/dialogues/files/75613d7a-b4a7-4ca5-92a0-16793d8e315f/FREE_SITE_DESKTOP_750_650.jpg","modalMobileBackgroundImageUrl":"https://hearst.blueconic.net/rest/v2/dialogues/files/f496686e-c302-409c-b35f-a4766c82ad39/FREE_SITE_MOBILE_300_500.jpg","brandLogoUrl":"","optionalText":"Beat the rush!","optionalTextColor":"#FFFFFF","headlineText":"GET THE BEST\nBLACK FRIDAY DEALS","headlineTextColor":"#FFFFFF","descriptionText":"Shop early and save more this year.","descriptionTextColor":"#FFFFFF","theme":"","callToActionButtonBackgroundColor":"#000000","callToActionButtonTextColor":"#FFFFFF","callToActionButtonTitle":"Shop Now","callToActionButtonUrl":"https://www.amazon.com/blackfriday?\u0026linkCode=ll2\u0026tag=hearstnp-bf-20\u0026linkId=2794ad70d3ee0fde3d289ecd5704ee9f\u0026language=en_US\u0026ref_=as_li_ss_tl","termsDisclaimerText":"","termsDisclaimerTextColor":""},"cyberMondayPromoSFGate":{"modalBackgroundColor":"","modalDesktopBackgroundImageUrl":"https://hearst.blueconic.net/rest/v2/dialogues/files/75613d7a-b4a7-4ca5-92a0-16793d8e315f/FREE_SITE_DESKTOP_750_650.jpg","modalMobileBackgroundImageUrl":"https://hearst.blueconic.net/rest/v2/dialogues/files/f496686e-c302-409c-b35f-a4766c82ad39/FREE_SITE_MOBILE_300_500.jpg","brandLogoUrl":"","optionalText":"Beat the rush!","optionalTextColor":"#FFFFFF","headlineText":"GET THE BEST\nCYBER MONDAY DEALS","headlineTextColor":"#FFFFFF","descriptionText":"Shop early and save more this year.","descriptionTextColor":"#FFFFFF","theme":"","callToActionButtonBackgroundColor":"#000000","callToActionButtonTextColor":"#FFFFFF","callToActionButtonTitle":"Shop Now","callToActionButtonUrl":"https://www.amazon.com/cybermonday?\u0026linkCode=ll2\u0026tag=hearstnp-bf-20\u0026linkId=78149a4fc42f9ca871aacf84fffcacb0\u0026language=en_US\u0026ref_=as_li_ss_tl","termsDisclaimerText":"","termsDisclaimerTextColor":""}}},"PromoBenefit":{"FooterToaster":{"sfgatePromoPuzzmo":{"headlineText":"PLAY PUZZMO","descriptionText":"Enjoy a new twist on your favorite games.","imageUrl":"https://hearst.blueconic.net/rest/v2/dialogues/files/19b6424d-2016-45ec-b2ad-e4c77f7a5827/PUZZMO_PLAT.png","callToActionButtonTitle":"PLAY NOW","callToActionUrl":"https://www.puzzmo.com/+/sfgate"}}},"NewsletterSignup":{"Overlay":{"AfternoonHeadlines_dynamic":{"topText":"THE DAILY","headline":"Get the Bay Area's best free local newsletter.","sailthruSignupLists":{"newsletter sfg news":1,"Email_Master":1},"sailthruSource":"BC_WelcomeUnit_SFGate_dynamic","sailthruSignupListForBC":["newsletter sfg news"],"termOfUseUrl":"/termsandconditions/","privacyPolicyUrl":"/privacy-policy/","successMessage":"Thank you for signing up!"},"DrewMagary_dynamic":{"topText":"DREW MAGARY NEWSLETTER","headline":"Never miss a Drew Magary column.","sailthruSignupLists":{"newsletter_sfg_drew":1,"Email_Master":1},"sailthruSource":"BC_WelcomeUnit_SFGate_dynamic","sailthruSignupListForBC":["newsletter_sfg_drew"],"termOfUseUrl":"/termsandconditions/","privacyPolicyUrl":"/privacy-policy/","successMessage":"Thank you for signing up!"},"TravelSkills_dynamic":{"topText":"Travel Skills","headline":"Sign up for SFGate's weekly newsletter for all things travel.","sailthruSignupLists":{"newsletter_travelskills":1,"Email_Master":1},"sailthruSource":"BC_WelcomeUnit_SFGate_dynamic","sailthruSignupListForBC":["newsletter_travelskills"],"termOfUseUrl":"/termsandconditions/","privacyPolicyUrl":"/privacy-policy/","successMessage":"Thank you for signing up!"},"CAParklands_dynamic":{"topText":"CA Parklands newsletter","headline":"Your essential guide to California’s parks, straight to your inbox.","sailthruSignupLists":{"newsletter_sfg_caparks":1,"Email_Master":1},"sailthruSource":"BC_WelcomeUnit_SFGate_dynamic","sailthruSignupListForBC":["newsletter_sfg_caparks"],"termOfUseUrl":"/termsandconditions/","privacyPolicyUrl":"/privacy-policy/","successMessage":"Thank you for signing up!"},"DispatchesFromDisneyland_dynamic":{"topText":"Dispatches from Disneyland newsletter","headline":"Get insider access to all things Happiest Place on Earth.","sailthruSignupLists":{"newsletter_sfg_disneyland":1,"Email_Master":1},"sailthruSource":"BC_WelcomeUnit_SFGate_dynamic","sailthruSignupListForBC":["newsletter_sfg_disneyland"],"termOfUseUrl":"/termsandconditions/","privacyPolicyUrl":"/privacy-policy/","successMessage":"Thank you for signing up!"},"OnHawaii_dynamic":{"topText":"On Hawaii","headline":"News, tips and in-depth features from the Aloha State, straight to your inbox.","sailthruSignupLists":{"newsletter_sfg_hawaii":1,"Email_Master":1},"sailthruSource":"BC_WelcomeUnit_SFGate_dynamic","sailthruSignupListForBC":["newsletter_sfg_hawaii"],"termOfUseUrl":"/termsandconditions/","privacyPolicyUrl":"/privacy-policy/","successMessage":"Thank you for signing up!"},"TwoMinuteDrill_dynamic":{"topText":"Two Minute Drill","headline":"A two-minute newsletter read to catch you up on all things Bay Area sports.","sailthruSignupLists":{"newsletter_sfg_twominutedrill":1,"Email_Master":1},"sailthruSource":"BC_WelcomeUnit_SFGate_dynamic","sailthruSignupListForBC":["newsletter_sfg_twominutedrill"],"termOfUseUrl":"/termsandconditions/","privacyPolicyUrl":"/privacy-policy/","successMessage":"Thank you for signing up!"},"TahoeReport_dynamic":{"topText":"Tahoe Report newsletter","headline":"Weekly updates, interviews and profiles from a Tahoe insider.","sailthruSignupLists":{"newsletter_sfg_tahoe":1,"Email_Master":1},"sailthruSource":"BC_WelcomeUnit_SFGate_dynamic","sailthruSignupListForBC":["newsletter_sfg_tahoe"],"termOfUseUrl":"/termsandconditions/","privacyPolicyUrl":"/privacy-policy/","successMessage":"Thank you for signing up!"}},"Inline":{"theDailyHPRR":{"topText":"THE DAILY","descriptionText":"Get the Bay Area's best free local newsletter.","sailthruSignupLists":{"newsletter sfg news":1,"Email_Master":1},"sailthruSource":"BC_SSM_Homepage_SFG","sailthruSignupListForBC":["newsletter sfg news"],"termOfUseUrl":"/termsandconditions/","privacyPolicyUrl":"/privacy-policy/","successMessage":"Thank you for signing up!","emailInputFieldPlaceholderText":"Enter your email","callToActionButton":"Sign Up"},"AfternoonHeadlines_dynamic-rightRail":{"topText":"Recommended for you: The Daily","descriptionText":"Stay informed, and entertained, with the Bay Area's best free local newsletter.","sailthruSignupLists":{"newsletter sfg news":1,"Email_Master":1},"sailthruSource":"BC_SSM_Homepage_SFG_dynamic","sailthruSignupListForBC":["newsletter sfg news"],"termOfUseUrl":"/termsandconditions/","privacyPolicyUrl":"/privacy-policy/","successMessage":"Thank you for signing up!","emailInputFieldPlaceholderText":"Enter your email","callToActionButton":"Sign Up"},"DrewMagary_dynamic-rightRail":{"topText":"Recommended for you: The Drew Magary Newsletter","descriptionText":"Never miss a column. Get the latest from Drew Magary's in your inbox.","sailthruSignupLists":{"newsletter_sfg_drew":1,"Email_Master":1},"sailthruSource":"BC_SSM_Homepage_SFG_dynamic","sailthruSignupListForBC":["newsletter_sfg_drew"],"termOfUseUrl":"/termsandconditions/","privacyPolicyUrl":"/privacy-policy/","successMessage":"Thank you for signing up!","emailInputFieldPlaceholderText":"Enter your email","callToActionButton":"Sign Up"},"TwoMinuteDrill_dynamic-rightRail":{"topText":"Recommended for you: The Two-Minute Drill","descriptionText":"The essential two-minute read to catch you up on all things Bay Area sports.","sailthruSignupLists":{"newsletter_sfg_twominutedrill":1,"Email_Master":1},"sailthruSource":"BC_SSM_Homepage_SFG_dynamic","sailthruSignupListForBC":["newsletter_sfg_twominutedrill"],"termOfUseUrl":"/termsandconditions/","privacyPolicyUrl":"/privacy-policy/","successMessage":"Thank you for signing up!","emailInputFieldPlaceholderText":"Enter your email","callToActionButton":"Sign Up"},"TravelSkills_dynamic-rightRail":{"topText":"Recommended for you: TravelSkills","descriptionText":"Get SFGATE's free newsletter for all things travel.","sailthruSignupLists":{"newsletter_travelskills":1,"Email_Master":1},"sailthruSource":"BC_SSM_Homepage_SFG_dynamic","sailthruSignupListForBC":["newsletter_travelskills"],"termOfUseUrl":"/termsandconditions/","privacyPolicyUrl":"/privacy-policy/","successMessage":"Thank you for signing up!","emailInputFieldPlaceholderText":"Enter your email","callToActionButton":"Sign Up"},"TahoeReport_dynamic-rightRail":{"topText":"Recommended for you: Tahoe Report","descriptionText":"Get free weekly updates, interviews and profiles from a Tahoe insider.","sailthruSignupLists":{"newsletter_sfg_tahoe":1,"Email_Master":1},"sailthruSource":"BC_SSM_Homepage_SFG_dynamic","sailthruSignupListForBC":["newsletter_sfg_tahoe"],"termOfUseUrl":"/termsandconditions/","privacyPolicyUrl":"/privacy-policy/","successMessage":"Thank you for signing up!","emailInputFieldPlaceholderText":"Enter your email","callToActionButton":"Sign Up"},"CAParklands_dynamic-rightRail":{"topText":"Recommended for you: California Parklands","descriptionText":"Get this free, essential guide to California’s parks, straight to your inbox.","sailthruSignupLists":{"newsletter_sfg_caparks":1,"Email_Master":1},"sailthruSource":"BC_SSM_Homepage_SFG_dynamic","sailthruSignupListForBC":["newsletter_sfg_caparks"],"termOfUseUrl":"/termsandconditions/","privacyPolicyUrl":"/privacy-policy/","successMessage":"Thank you for signing up!","emailInputFieldPlaceholderText":"Enter your email","callToActionButton":"Sign Up"},"DispatchesFromDisneyland_dynamic-rightRail":{"topText":"Recommended for you: Dispatches from Disneyland","descriptionText":"Free, insider access to all things Happiest Place on Earth, from historical deep dives to trending park news and beyond.","sailthruSignupLists":{"newsletter_sfg_disneyland":1,"Email_Master":1},"sailthruSource":"BC_SSM_Homepage_SFG_dynamic","sailthruSignupListForBC":["newsletter_sfg_disneyland"],"termOfUseUrl":"/termsandconditions/","privacyPolicyUrl":"/privacy-policy/","successMessage":"Thank you for signing up!","emailInputFieldPlaceholderText":"Enter your email","callToActionButton":"Sign Up"},"SundayRead_dynamic-rightRail":{"topText":"Recommended for you: Sunday Read","descriptionText":"Start your Sunday right, with a leisurely offbeat read from SFGATE editors.","sailthruSignupLists":{"newsletter_sfg_sundayread":1,"Email_Master":1},"sailthruSource":"BC_SSM_Homepage_SFG_dynamic","sailthruSignupListForBC":["newsletter_sfg_sundayread"],"termOfUseUrl":"/termsandconditions/","privacyPolicyUrl":"/privacy-policy/","successMessage":"Thank you for signing up!","emailInputFieldPlaceholderText":"Enter your email","callToActionButton":"Sign Up"},"OnHawaii_dynamic-rightRail":{"topText":"Recommended for you: On Hawaii","descriptionText":"Get news, tips and in-depth features from the Aloha State.","sailthruSignupLists":{"newsletter_sfg_hawaii":1,"Email_Master":1},"sailthruSource":"BC_SSM_Homepage_SFG_dynamic","sailthruSignupListForBC":["newsletter_sfg_hawaii"],"termOfUseUrl":"/termsandconditions/","privacyPolicyUrl":"/privacy-policy/","successMessage":"Thank you for signing up!","emailInputFieldPlaceholderText":"Enter your email","callToActionButton":"Sign Up"},"UnRealEstate_dynamic-rightRail":{"topText":"Recommended for you: UnReal Estate","descriptionText":"Get a heads-up about affordable homes, incredible mansions and amazing renovations in the wild Bay Area housing market.","sailthruSignupLists":{"newsletter_realestate":1,"Email_Master":1},"sailthruSource":"BC_SSM_Homepage_SFG_dynamic","sailthruSignupListForBC":["newsletter_realestate"],"termOfUseUrl":"/termsandconditions/","privacyPolicyUrl":"/privacy-policy/","successMessage":"Thank you for signing up!","emailInputFieldPlaceholderText":"Enter your email","callToActionButton":"Sign Up"},"RemoteControl_dynamic-rightRail":{"topText":"Recommended for you: Remote Control","descriptionText":"Don’t miss the Bay Area’s most interesting events and the best new shows and movies.","sailthruSignupLists":{"newsletter_sfg_remotecontrol":1,"Email_Master":1},"sailthruSource":"BC_SSM_Homepage_SFG_dynamic","sailthruSignupListForBC":["newsletter_sfg_remotecontrol"],"termOfUseUrl":"/termsandconditions/","privacyPolicyUrl":"/privacy-policy/","successMessage":"Thank you for signing up!","emailInputFieldPlaceholderText":"Enter your email","callToActionButton":"Sign Up"},"travelSkills:articleParagraph":{"topText":"Travel Skills","descriptionText":"Sign up for SFGate's weekly newsletter for all things travel.","sailthruSignupLists":{"newsletter_travelskills":1,"Email_Master":1},"sailthruSource":"BC_ARTINLINE_SFG","sailthruSignupListForBC":["newsletter_travelskills"],"termOfUseUrl":"/termsandconditions/","privacyPolicyUrl":"/privacy-policy/","successMessage":"Thank you for signing up!","emailInputFieldPlaceholderText":"Enter your email","callToActionButton":"Sign Up"},"tahoeReport:articleParagraph":{"topText":"Tahoe Report newsletter","descriptionText":"Weekly updates, interviews and profiles from a Tahoe insider.","sailthruSignupLists":{"newsletter_sfg_tahoe":1,"Email_Master":1},"sailthruSource":"BC_ARTINLINE_SFG","sailthruSignupListForBC":["newsletter_sfg_tahoe"],"termOfUseUrl":"/termsandconditions/","privacyPolicyUrl":"/privacy-policy/","successMessage":"Thank you for signing up!","emailInputFieldPlaceholderText":"Enter your email","callToActionButton":"Sign Up"},"onHawaii:articleParagraph":{"topText":"On Hawaii","descriptionText":"News, tips and in-depth features from the Aloha State, straight to your inbox.","sailthruSignupLists":{"newsletter_sfg_hawaii":1,"Email_Master":1},"sailthruSource":"BC_ARTINLINE_SFG","sailthruSignupListForBC":["newsletter_sfg_hawaii"],"termOfUseUrl":"/termsandconditions/","privacyPolicyUrl":"/privacy-policy/","successMessage":"Thank you for signing up!","emailInputFieldPlaceholderText":"Enter your email","callToActionButton":"Sign Up"},"dispatchesFromDisneyland:articleParagraph":{"topText":"Dispatches from Disneyland newsletter","descriptionText":"Get insider access to all things Happiest Place on Earth.","sailthruSignupLists":{"newsletter_sfg_disneyland":1,"Email_Master":1},"sailthruSource":"BC_ARTINLINE_SFG","sailthruSignupListForBC":["newsletter_sfg_disneyland"],"termOfUseUrl":"/termsandconditions/","privacyPolicyUrl":"/privacy-policy/","successMessage":"Thank you for signing up!","emailInputFieldPlaceholderText":"Enter your email","callToActionButton":"Sign Up"},"caParklands:articleParagraph":{"topText":"CA Parklands newsletter","descriptionText":"Your essential guide to California’s parks, straight to your inbox.","sailthruSignupLists":{"newsletter_sfg_caparks":1,"Email_Master":1},"sailthruSource":"BC_ARTINLINE_SFG","sailthruSignupListForBC":["newsletter_sfg_caparks"],"termOfUseUrl":"/termsandconditions/","privacyPolicyUrl":"/privacy-policy/","successMessage":"Thank you for signing up!","emailInputFieldPlaceholderText":"Enter your email","callToActionButton":"Sign Up"},"twoMinuteDrill:articleParagraph":{"topText":"Two Minute Drill","descriptionText":"A two-minute newsletter read to catch you up on all things Bay Area sports.","sailthruSignupLists":{"newsletter_sfg_twominutedrill":1,"Email_Master":1},"sailthruSource":"BC_ARTINLINE_SFG","sailthruSignupListForBC":["newsletter_sfg_twominutedrill"],"termOfUseUrl":"/termsandconditions/","privacyPolicyUrl":"/privacy-policy/","successMessage":"Thank you for signing up!","emailInputFieldPlaceholderText":"Enter your email","callToActionButton":"Sign Up"},"DrewMagary:articleParagraph":{"topText":"DREW MAGARY NEWSLETTER","descriptionText":"Never miss a Drew Magary column.","sailthruSignupLists":{"newsletter_sfg_drew":1,"Email_Master":1},"sailthruSource":"BC_ARTINLINE_SFG","sailthruSignupListForBC":["newsletter_sfg_drew"],"termOfUseUrl":"/termsandconditions/","privacyPolicyUrl":"/privacy-policy/","successMessage":"Thank you for signing up!","emailInputFieldPlaceholderText":"Enter your email","callToActionButton":"Sign Up"}}}},"regionalMap":{}},"thirdpartyfreeformembed":{"active":true},"chartbeat":{"active":true},"chartbeatHT":{"active":false}}},"cmsObjectRefs":{"collections":[],"guiChromes":["guiChrome-19-6645-wcm"]},"redirect":{"destination":null}},"previewId":null,"isPreview":false,"pageType":"article","identifier":"18569276","additionalContext":{"is_eu":"1"},"reqHost":"www.sfgate.com","environment":"prod","siteConfig":{"siteId":19,"siteCode":"sfgate","brandTheme":"sfgate","siteTheme":"lifestyle","domain":"sfgate.com","gauTrackerId":"UA-1616916-22","ga4TrackerId":"G-K75EXT0S8W","timezone":"America/Los_Angeles","state":"CA"},"siteStyle":"lifestyle","featureFlags":[{"key":"isPhase2","uuid":"b4b9d9fd-6685-4a2c-8c50-6bc6c0abb652","projectId":"castle-prod","enabled":false,"metadata":{"createdAt":1665098614,"lastUpdatedAt":1666982082730},"revalidationTime":1708187637540},{"key":"useNewRelicRum","uuid":"ee8c029a-ed45-412f-973d-3242bb5ab0be","projectId":"castle-prod","enabled":true,"metadata":{"createdAt":1666980889734,"lastUpdatedAt":1666980889734},"revalidationTime":1708187637540},{"key":"useImageInlineRatiosList","uuid":"637c391e-b762-4faf-b8b4-0349d03d2ede","projectId":"castle-prod","enabled":false,"metadata":{"createdAt":1670960469859,"lastUpdatedAt":1670960698479},"revalidationTime":1708187637540},{"key":"useBlueconic","uuid":"eca2ea86-ba33-411d-94f9-fce06b8ccc23","projectId":"castle-prod","enabled":false,"metadata":{"createdAt":1670960905433,"lastUpdatedAt":1670960905433},"revalidationTime":1708187637540},{"key":"useMostPopularPing","uuid":"3b65cfb7-7a47-4d26-9891-fc107a7ddaac","projectId":"castle-prod","enabled":false,"metadata":{"createdAt":1670960922733,"lastUpdatedAt":1670960922733},"revalidationTime":1708187637540},{"key":"hideSignInAccount","uuid":"bbb2de0b-a7ba-457e-b93d-70cc74259b5a","projectId":"castle-prod","enabled":false,"metadata":{"createdAt":1684524978313,"lastUpdatedAt":1695760889091},"revalidationTime":1708187637540},{"key":"useEventWidgets","uuid":"e88f78db-a2d0-48b9-8242-2566171a3d9f","projectId":"castle-prod","enabled":true,"metadata":{"createdAt":1689696198204,"lastUpdatedAt":1689696198204},"revalidationTime":1708187637540},{"key":"useListingPages","uuid":"36af3ab8-99b9-47c8-a959-67b5e4b207da","projectId":"castle-prod","enabled":true,"metadata":{"createdAt":1692291181870,"lastUpdatedAt":1692291181870},"revalidationTime":1708187637540},{"key":"allowSPANavigation","uuid":"a94df52d-6f6e-49cf-9afb-634421210f56","projectId":"castle-prod","enabled":false,"metadata":{"createdAt":1692384865570,"lastUpdatedAt":1692384865570},"revalidationTime":1708187637540},{"key":"giftArticleButton","uuid":"13648277-362b-46f3-8101-c01df3be4bda","projectId":"castle-prod","enabled":true,"metadata":{"createdAt":1695924675099,"lastUpdatedAt":1695924675099},"revalidationTime":1708187637540},{"key":"useVenuePages","uuid":"d963f951-e3c6-4102-a990-ad62b9fe21f6","projectId":"castle-prod","enabled":true,"metadata":{"createdAt":1696958632883,"lastUpdatedAt":1697573637308},"revalidationTime":1708187637540},{"key":"useEcmSearchPage","uuid":"669d37b0-43a5-4a3f-87db-c8f3dccf45ae","projectId":"castle-prod","enabled":true,"metadata":{"createdAt":1697217240713,"lastUpdatedAt":1698695848707},"revalidationTime":1708187637540},{"key":"useTalentPages","uuid":"4d9a2a0d-c6f1-4daa-a1ef-7328efc19560","projectId":"castle-prod","enabled":true,"metadata":{"createdAt":1698081489734,"lastUpdatedAt":1698353306398},"revalidationTime":1708187637540},{"key":"rerouteWeekandSearch","uuid":"2131a0e3-9a55-4d4b-b5b9-a15d617f0645","projectId":"castle-prod","enabled":true,"metadata":{"createdAt":1699451760392,"lastUpdatedAt":1699984769932},"revalidationTime":1708187637540},{"key":"useECMAssetDescriptions","uuid":"0cd79193-6c20-4e37-a181-b4fb7b459e4d","projectId":"castle-prod","enabled":true,"metadata":{"createdAt":1704212881228,"lastUpdatedAt":1704212881228},"revalidationTime":1708187637540},{"key":"allowChannelSPANavigation","uuid":"allowChannelSPANavigation","enabled":false,"projectId":"castle-prod","metadata":{"createdAt":0,"lastUpdatedAt":0}}],"header":{"nav":[{"id":"979","eid":"navigationItem-979","label":"Home","url":"/","subitems":[{"id":"1094","eid":"navigationItem-1094","label":"About SFGATE","targetNewWindow":false,"url":"/home/article/About-SFGATE-15613713.php"},{"id":"1100","eid":"navigationItem-1100","label":"Contact SFGATE","targetNewWindow":false,"url":"/home/article/SFGATE-Staff-15734829.php"},{"id":"3140","eid":"navigationItem-3140","label":"Newsletters","targetNewWindow":false,"url":"https://link.sfgate.com/join/signup-sfgate"},{"id":"3383","eid":"navigationItem-3383","label":"Classifieds","targetNewWindow":false,"url":"http://sfc.ipublishmarketplace.com/sf-marketplace/"},{"id":"5749","eid":"navigationItem-5749","label":"Standards \u0026 Practices","targetNewWindow":false,"url":"/standards/"},{"id":"1096","eid":"navigationItem-1096","label":"Advertise With Us","targetNewWindow":false,"url":"https://marketing.sfgate.com/advertise-with-us-today?utm_source=sfgate"},{"id":"1097","eid":"navigationItem-1097","label":"Privacy Notice","targetNewWindow":false,"url":"/privacy-policy/"},{"id":"3085","eid":"navigationItem-3085","label":"Terms of Use","targetNewWindow":false,"url":"/termsandconditions/"},{"id":"3087","eid":"navigationItem-3087","label":"Ad Choices","targetNewWindow":false,"url":"http://www.aboutads.info/choices/"},{"id":"5429","eid":"navigationItem-5429","label":"Your Privacy Choices","targetNewWindow":false,"url":"/mydata/"}],"includeDivider":false},{"id":"978","eid":"navigationItem-978","label":"News","url":"/news/","subitems":[{"id":"4203","eid":"navigationItem-4203","label":"Bay Area","targetNewWindow":false,"url":"/bayarea/"},{"id":"4425","eid":"navigationItem-4425","label":"California Wildfires","targetNewWindow":false,"url":"/california-wildfires/"},{"id":"3950","eid":"navigationItem-3950","label":"Education","targetNewWindow":false,"url":"/education/"},{"id":"4204","eid":"navigationItem-4204","label":"Weather","targetNewWindow":false,"url":"/weather/"},{"id":"1001","eid":"navigationItem-1001","label":"Health","targetNewWindow":false,"url":"/health/"},{"id":"1320","eid":"navigationItem-1320","label":"Sponsored Content","targetNewWindow":false,"url":"/sponsoredarticles/business/"},{"id":"994","eid":"navigationItem-994","label":"Politics","targetNewWindow":false,"url":"/politics/"}],"includeDivider":false},{"id":"5392","eid":"navigationItem-5392","label":"Local","url":"/local/","subitems":[{"id":"5393","eid":"navigationItem-5393","label":"SF History","targetNewWindow":false,"url":"/sfhistory/"},{"id":"4342","eid":"navigationItem-4342","label":"Sponsored Content","targetNewWindow":false,"url":"/sponsoredarticles/lifestyle/"}],"includeDivider":false},{"id":"6389","eid":"navigationItem-6389","label":"Los Angeles","url":"/la/","subitems":[],"includeDivider":false},{"id":"6381","eid":"navigationItem-6381","label":"Best Of","url":"/best/","subitems":[],"includeDivider":false},{"id":"980","eid":"navigationItem-980","label":"Sports","url":"/sports/","subitems":[{"id":"1010","eid":"navigationItem-1010","label":"49ers","targetNewWindow":false,"url":"/49ers/"},{"id":"1012","eid":"navigationItem-1012","label":"Giants","targetNewWindow":false,"url":"/giants/"},{"id":"1013","eid":"navigationItem-1013","label":"A's","targetNewWindow":false,"url":"/athletics/"},{"id":"1014","eid":"navigationItem-1014","label":"Warriors","targetNewWindow":false,"url":"/warriors/"}],"includeDivider":false},{"id":"5388","eid":"navigationItem-5388","label":"Culture","url":"/sf-culture/","subitems":[{"id":"1028","eid":"navigationItem-1028","label":"Movies","targetNewWindow":false,"url":"/movies/"},{"id":"5390","eid":"navigationItem-5390","label":"Streaming","targetNewWindow":false,"url":"/streaming/"},{"id":"5391","eid":"navigationItem-5391","label":"Tech \u0026 Social Media","targetNewWindow":false,"url":"/tech/"},{"id":"6101","eid":"navigationItem-6101","label":"Marketplace","targetNewWindow":false,"url":"/market/"},{"id":"3223","eid":"navigationItem-3223","label":"Cannabis","targetNewWindow":false,"url":"/cannabis"},{"id":"5039","eid":"navigationItem-5039","label":"Senior Living","targetNewWindow":false,"url":"/senior-living/"}],"includeDivider":false},{"id":"983","eid":"navigationItem-983","label":"Food + Drink","url":"/food/","subitems":[],"includeDivider":false},{"id":"985","eid":"navigationItem-985","label":"Travel","url":"/travel/","subitems":[{"id":"1062","eid":"navigationItem-1062","label":"Tahoe","targetNewWindow":false,"url":"/renotahoe/"},{"id":"5693","eid":"navigationItem-5693","label":"California Parks","targetNewWindow":false,"url":"/california-parks/"},{"id":"5694","eid":"navigationItem-5694","label":"Disneyland","targetNewWindow":false,"url":"/disneyland/"},{"id":"1063","eid":"navigationItem-1063","label":"Hawaii","targetNewWindow":false,"url":"/hawaii/"},{"id":"1060","eid":"navigationItem-1060","label":"Wine Country","targetNewWindow":false,"url":"/winecountry/"},{"id":"1061","eid":"navigationItem-1061","label":"Monterey-Carmel","targetNewWindow":false,"url":"/monterey-carmel/"}],"includeDivider":false},{"id":"989","eid":"navigationItem-989","label":"Real Estate","url":"/realestate/","subitems":[{"id":"1134","eid":"navigationItem-1134","label":"New Homes","targetNewWindow":false,"url":"/newhomes/"},{"id":"1135","eid":"navigationItem-1135","label":"(Virtual) Open Homes","targetNewWindow":false,"url":"/openhomes/"},{"id":"1137","eid":"navigationItem-1137","label":"Luxury","targetNewWindow":false,"url":"/luxuryhomes/"},{"id":"1138","eid":"navigationItem-1138","label":"Rentals","targetNewWindow":false,"url":"/rentals/"},{"id":"1139","eid":"navigationItem-1139","label":"Mortgage Rates","targetNewWindow":false,"url":"/mortgagerates/"},{"id":"1142","eid":"navigationItem-1142","label":"Place a Real Estate Ad","targetNewWindow":false,"url":"https://ezads.sfchron.com/sf-adportal/realestate/index.html?utm_campaign=subnav"},{"id":"1143","eid":"navigationItem-1143","label":"Neighborhood Guides","targetNewWindow":false,"url":"/neighborhoods/"},{"id":"1047","eid":"navigationItem-1047","label":"Home \u0026 Garden","targetNewWindow":false,"url":"/homeandgarden/"}],"includeDivider":false},{"id":"4351","eid":"navigationItem-4351","label":"Obits","url":"https://www.legacy.com/obituaries/sfgate?ipid=desktopnav9-12","subitems":[{"id":"4353","eid":"navigationItem-4353","label":"Obituaries","targetNewWindow":false,"url":"https://www.legacy.com/obituaries/sfgate?ipid=desktopnav9-12"},{"id":"4352","eid":"navigationItem-4352","label":"Place an Obituary","targetNewWindow":false,"url":"http://ezads.sfchron.com/sf-adportal/obits/index.html?ipid=desktopnav9-12"}],"includeDivider":false},{"id":"5565","eid":"navigationItem-5565","label":"Coupons","url":"https://www.sfgate.com/coupons","subitems":[],"includeDivider":true},{"id":"5610","eid":"navigationItem-5610","label":"Shopping","url":"/shopping/","subitems":[],"includeDivider":false},{"id":"6374","eid":"navigationItem-6374","label":"Puzzmo","url":"https://www.sfgate.com/puzzles/","subitems":[],"includeDivider":false}],"subnav":[],"subscriptionTitle":"Newsletters","subscriptionUrl":"https://link.sfgate.com/join/signup-sfgate","isSubscriptionSite":false,"mastheadVariant":"standard","heroLayout":null,"searchIndexName":"solr","siteSearchEnabled":true},"footer":{"footer":[{"id":"121794","label":"About","colType":"standard","subItems":[{"id":"15613713","label":"Our Company","targetNewWindow":false,"url":"/home/article/about-sfgate-15613713.php"},{"id":"248780","label":"Careers","targetNewWindow":false,"url":"https://eevd.fa.us6.oraclecloud.com/hcmUI/CandidateExperience/en/sites/CX_11007"},{"id":"23959","label":"Our Use of AI","targetNewWindow":false,"url":"/ai_use/"},{"id":"24010","label":"Ethics Policy","targetNewWindow":false,"url":"/standards/"}]},{"id":"121795","label":"Contact","colType":"standard","subItems":[{"id":"6856","label":"Feedback","targetNewWindow":false,"url":"/feedback/"},{"id":"15734829","label":"Newsroom Contacts","targetNewWindow":false,"url":"/home/article/sfgate-staff-15734829.php"}]},{"id":"122351","label":"Services","colType":"standard","subItems":[{"id":"248776","label":"Advertise with us","targetNewWindow":false,"url":"https://marketing.sfgate.com/advertise-with-us-today"},{"id":"248786","label":"Classifieds","targetNewWindow":false,"url":"https://sfc.ipublishmarketplace.com/sf-marketplace/?_ga=2.232885150.144726059.1689005135-2074906391.1687899301"},{"id":"22346","label":"Sponsor Content","targetNewWindow":false,"url":"/market/"},{"id":"248782","label":"Recruitment","targetNewWindow":false,"url":"https://marketing.sfgate.com/industries/recruitment"}]},{"id":"121796","label":"Quick Links","colType":"standard","subItems":[{"id":"17582","label":"Cars","targetNewWindow":false,"url":"/auto/"},{"id":"21373","label":"Jobs","targetNewWindow":false,"url":"/jobs/"},{"id":"6820","label":"Weather","targetNewWindow":false,"url":"/weather/"},{"id":"248785","label":"Obituaries","targetNewWindow":false,"url":"https://www.legacy.com/us/obituaries/sfgate/today?_ga=2.235506305.144726059.1689005135-2074906391.1687899301"}]}],"facebookPage":"https://www.facebook.com/SFGate/","instagramPage":"https://instagram.com/sfgate/","twitterPage":"https://twitter.com/sfgate/","showInstagram":1,"showFacebook":1,"showTwitter":1,"copyrightString":"Hearst Communications, Inc.","legalLinks":[{"id":"7384","label":"Terms of Use","options":{"useBox":false},"targetNewWindow":false,"url":"/termsandconditions/"},{"id":"7380","label":"Privacy Notice","options":{"useBox":false},"targetNewWindow":false,"url":"/privacy-policy/"},{"id":"248777","label":"CA Notice at Collection","options":{"useBox":false},"targetNewWindow":false,"url":"https://www.sfgate.com/privacy-policy/#caprivacyrights"},{"id":"248778","label":"Your CA Privacy Rights (Shine the Light)","options":{"useBox":false},"targetNewWindow":false,"url":"https://www.sfgate.com/privacy-policy/#shinethelight"},{"id":"248779","label":"DAA Industry Opt Out","options":{"useBox":false},"targetNewWindow":false,"url":"https://www.sfgate.com/privacy-policy/#daaoptout"},{"id":"248791","label":"Your Privacy Choices (Opt Out of Sale/Targeted Ads)","options":{"useBox":true},"targetNewWindow":false,"url":"https://www.sfgate.com/mydata/"}]},"devInfo":{"gitCommit":"a921ee17","deployTime":"2024-02-15T17:06:29.611Z","deploymentId":"20240215170629-a921ee17","nodeEnv":"compiled","apiEnv":"prod","runtimeEnv":"prod"},"metaOverrides":{},"devhubData":null,"browserTimingHeader":"\u003cscript type='text/javascript'\u003ewindow.NREUM||(NREUM={});NREUM.info = {\"agent\":\"\",\"beacon\":\"bam.nr-data.net\",\"errorBeacon\":\"bam.nr-data.net\",\"licenseKey\":\"NRJS-bef5859a29fb3c538c2\",\"applicationID\":\"584873719\",\"agentToken\":null,\"applicationTime\":211.70774,\"transactionName\":\"M11VbURXX0NXAUdbWgoXYFxUcENRWwdEXUcPbUVQGXhUSEIIQB1yIWwYFm0YHx5XDl9v\",\"queueTime\":0,\"ttGuid\":\"6427c4d40b14af85\"}; (window.NREUM||(NREUM={})).init={privacy:{cookies_enabled:true},ajax:{deny_list:[\"bam.nr-data.net\"]},distributed_tracing:{enabled:true}};(window.NREUM||(NREUM={})).loader_config={agentID:\"594374097\",accountID:\"3540744\",trustKey:\"41019\",xpid:\"VwMDUVFXDBAFXFVaAAIAV10=\",licenseKey:\"NRJS-bef5859a29fb3c538c2\",applicationID:\"584873719\"};;/*! For license information please see nr-loader-spa-1.252.0.min.js.LICENSE.txt */\n(()=\u003e{var e,t,r={234:(e,t,r)=\u003e{\"use strict\";r.d(t,{P_:()=\u003em,Mt:()=\u003eb,C5:()=\u003es,DL:()=\u003ew,OP:()=\u003eD,lF:()=\u003eO,Yu:()=\u003eE,Dg:()=\u003ev,CX:()=\u003ec,GE:()=\u003ex,sU:()=\u003eN});var n=r(8632),i=r(9567);const o={beacon:n.ce.beacon,errorBeacon:n.ce.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0},a={};function s(e){if(!e)throw new Error(\"All info objects require an agent identifier!\");if(!a[e])throw new Error(\"Info for \".concat(e,\" was never set\"));return a[e]}function c(e,t){if(!e)throw new Error(\"All info objects require an agent identifier!\");a[e]=(0,i.D)(t,o);const r=(0,n.ek)(e);r\u0026\u0026(r.info=a[e])}const u=e=\u003e{if(!e||\"string\"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var d=r(7056),l=r(50);const f=\"[data-nr-mask]\",h=()=\u003e{const e={mask_selector:\"*\",block_selector:\"[data-nr-block]\",mask_input_options:{color:!1,date:!1,\"datetime-local\":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{feature_flags:[],proxy:{assets:void 0,beacon:void 0},privacy:{cookies_enabled:!0},ajax:{deny_list:void 0,block_internal:!0,enabled:!0,harvestTimeSeconds:10,autoStart:!0},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},session:{domain:void 0,expiresMs:d.oD,inactiveMs:d.Hb},ssl:void 0,obfuscate:void 0,jserrors:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},metrics:{enabled:!0,autoStart:!0},page_action:{enabled:!0,harvestTimeSeconds:30,autoStart:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,harvestTimeSeconds:30,long_task:!1,autoStart:!0},session_trace:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},harvest:{tooManyRequestsDelay:60},session_replay:{autoStart:!0,enabled:!1,harvestTimeSeconds:60,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inline_images:!1,inline_stylesheet:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){u(t)?e.mask_selector=\"\".concat(t,\",\").concat(f):\"\"===t||null===t?e.mask_selector=f:(0,l.Z)(\"An invalid session_replay.mask_selector was provided. '*' will be used.\",t)},get block_class(){return\"nr-block\"},get ignore_class(){return\"nr-ignore\"},get mask_text_class(){return\"nr-mask\"},get block_selector(){return e.block_selector},set block_selector(t){u(t)?e.block_selector+=\",\".concat(t):\"\"!==t\u0026\u0026(0,l.Z)(\"An invalid session_replay.block_selector was provided and will not be used\",t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t\u0026\u0026\"object\"==typeof t?e.mask_input_options={...t,password:!0}:(0,l.Z)(\"An invalid session_replay.mask_input_option was provided and will not be used\",t)}},spa:{enabled:!0,harvestTimeSeconds:10,autoStart:!0}}},p={},g=\"All configuration objects require an agent identifier!\";function m(e){if(!e)throw new Error(g);if(!p[e])throw new Error(\"Configuration for \".concat(e,\" was never set\"));return p[e]}function v(e,t){if(!e)throw new Error(g);p[e]=(0,i.D)(t,h());const r=(0,n.ek)(e);r\u0026\u0026(r.init=p[e])}function b(e,t){if(!e)throw new Error(g);var r=m(e);if(r){for(var n=t.split(\".\"),i=0;i\u003cn.length-1;i++)if(\"object\"!=typeof(r=r[n[i]]))return;r=r[n[n.length-1]]}return r}const y={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},A={};function w(e){if(!e)throw new Error(\"All loader-config objects require an agent identifier!\");if(!A[e])throw new Error(\"LoaderConfig for \".concat(e,\" was never set\"));return A[e]}function x(e,t){if(!e)throw new Error(\"All loader-config objects require an agent identifier!\");A[e]=(0,i.D)(t,y);const r=(0,n.ek)(e);r\u0026\u0026(r.loader_config=A[e])}const E=(0,n.mF)().o;var _=r(385),T=r(6818);const S={buildEnv:T.Re,customTransaction:void 0,disabled:!1,distMethod:T.gF,isolatedBacklog:!1,loaderType:void 0,maxBytes:3e4,offset:Math.floor(_._A?.performance?.timeOrigin||_._A?.performance?.timing?.navigationStart||Date.now()),onerror:void 0,origin:\"\"+_._A.location,ptid:void 0,releaseIds:{},session:void 0,xhrWrappable:\"function\"==typeof _._A.XMLHttpRequest?.prototype?.addEventListener,version:T.q4,denyList:void 0},R={};function D(e){if(!e)throw new Error(\"All runtime objects require an agent identifier!\");if(!R[e])throw new Error(\"Runtime for \".concat(e,\" was never set\"));return R[e]}function N(e,t){if(!e)throw new Error(\"All runtime objects require an agent identifier!\");R[e]=(0,i.D)(t,S);const r=(0,n.ek)(e);r\u0026\u0026(r.runtime=R[e])}function O(e){return function(e){try{const t=s(e);return!!t.licenseKey\u0026\u0026!!t.errorBeacon\u0026\u0026!!t.applicationID}catch(e){return!1}}(e)}},9567:(e,t,r)=\u003e{\"use strict\";r.d(t,{D:()=\u003ei});var n=r(50);function i(e,t){try{if(!e||\"object\"!=typeof e)return(0,n.Z)(\"Setting a Configurable requires an object as input\");if(!t||\"object\"!=typeof t)return(0,n.Z)(\"Setting a Configurable requires a model to set its initial properties\");const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),o=0===Object.keys(r).length?e:r;for(let a in o)if(void 0!==e[a])try{Array.isArray(e[a])\u0026\u0026Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):\"object\"==typeof e[a]\u0026\u0026\"object\"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){(0,n.Z)(\"An error occurred while setting a property of a Configurable\",e)}return r}catch(e){(0,n.Z)(\"An error occured while setting a Configurable\",e)}}},6818:(e,t,r)=\u003e{\"use strict\";r.d(t,{Re:()=\u003ei,gF:()=\u003eo,lF:()=\u003ea,q4:()=\u003en});const n=\"1.252.0\",i=\"PROD\",o=\"CDN\",a=\"2.0.0-alpha.11\"},385:(e,t,r)=\u003e{\"use strict\";r.d(t,{FN:()=\u003ec,IF:()=\u003el,LW:()=\u003ea,Nk:()=\u003eh,Tt:()=\u003eu,_A:()=\u003eo,cv:()=\u003ep,iS:()=\u003es,il:()=\u003en,ux:()=\u003ed,v6:()=\u003ei,w1:()=\u003ef});const n=\"undefined\"!=typeof window\u0026\u0026!!window.document,i=\"undefined\"!=typeof WorkerGlobalScope\u0026\u0026(\"undefined\"!=typeof self\u0026\u0026self instanceof WorkerGlobalScope\u0026\u0026self.navigator instanceof WorkerNavigator||\"undefined\"!=typeof globalThis\u0026\u0026globalThis instanceof WorkerGlobalScope\u0026\u0026globalThis.navigator instanceof WorkerNavigator),o=n?window:\"undefined\"!=typeof WorkerGlobalScope\u0026\u0026(\"undefined\"!=typeof self\u0026\u0026self instanceof WorkerGlobalScope\u0026\u0026self||\"undefined\"!=typeof globalThis\u0026\u0026globalThis instanceof WorkerGlobalScope\u0026\u0026globalThis),a=\"complete\"===o?.document?.readyState,s=Boolean(\"hidden\"===o?.document?.visibilityState),c=\"\"+o?.location,u=/iPad|iPhone|iPod/.test(o.navigator?.userAgent),d=u\u0026\u0026\"undefined\"==typeof SharedWorker,l=(()=\u003e{const e=o.navigator?.userAgent?.match(/Firefox[/\\s](\\d+\\.\\d+)/);return Array.isArray(e)\u0026\u0026e.length\u003e=2?+e[1]:0})(),f=Boolean(n\u0026\u0026window.document.documentMode),h=!!o.navigator?.sendBeacon,p=Math.floor(o?.performance?.timeOrigin||o?.performance?.timing?.navigationStart||Date.now())},1117:(e,t,r)=\u003e{\"use strict\";r.d(t,{w:()=\u003eo});var n=r(50);const i={agentIdentifier:\"\",ee:void 0};class o{constructor(e){try{if(\"object\"!=typeof e)return(0,n.Z)(\"shared context requires an object as input\");this.sharedContext={},Object.assign(this.sharedContext,i),Object.entries(e).forEach((e=\u003e{let[t,r]=e;Object.keys(i).includes(t)\u0026\u0026(this.sharedContext[t]=r)}))}catch(e){(0,n.Z)(\"An error occured while setting SharedContext\",e)}}}},8e3:(e,t,r)=\u003e{\"use strict\";r.d(t,{L:()=\u003ed,R:()=\u003ec});var n=r(8325),i=r(1284),o=r(4322),a=r(3325);const s={};function c(e,t){const r={staged:!1,priority:a.p[t]||0};u(e),s[e].get(t)||s[e].set(t,r)}function u(e){e\u0026\u0026(s[e]||(s[e]=new Map))}function d(){let e=arguments.length\u003e0\u0026\u0026void 0!==arguments[0]?arguments[0]:\"\",t=arguments.length\u003e1\u0026\u0026void 0!==arguments[1]?arguments[1]:\"feature\",r=arguments.length\u003e2\u0026\u0026void 0!==arguments[2]\u0026\u0026arguments[2];if(u(e),!e||!s[e].get(t)||r)return c(t);s[e].get(t).staged=!0;const a=[...s[e]];function c(t){const r=e?n.ee.get(e):n.ee,a=o.X.handlers;if(r.backlog\u0026\u0026a){var s=r.backlog[t],c=a[t];if(c){for(var u=0;s\u0026\u0026u\u003cs.length;++u)l(s[u],c);(0,i.D)(c,(function(e,t){(0,i.D)(t,(function(t,r){r[0].on(e,r[1])}))}))}delete a[t],r.backlog[t]=null,r.emit(\"drain-\"+t,[])}}a.every((e=\u003e{let[t,r]=e;return r.staged}))\u0026\u0026(a.sort(((e,t)=\u003ee[1].priority-t[1].priority)),a.forEach((t=\u003e{let[r]=t;s[e].delete(r),c(r)})))}function l(e,t){var r=e[1];(0,i.D)(t[r],(function(t,r){var n=e[0];if(r[0]===n){var i=r[1],o=e[3],a=e[2];i.apply(o,a)}}))}},8325:(e,t,r)=\u003e{\"use strict\";r.d(t,{A:()=\u003ec,ee:()=\u003eu});var n=r(8632),i=r(2210),o=r(234);class a{constructor(e){this.contextId=e}}var s=r(3117);const c=\"nr@context:\".concat(s.a),u=function e(t,r){var n={},s={},d={},f=!1;try{f=16===r.length\u0026\u0026(0,o.OP)(r).isolatedBacklog}catch(e){}var h={on:g,addEventListener:g,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i\u003cr.length;i++)r[i]===t\u0026\u0026r.splice(i,1)},emit:function(e,r,n,i,o){!1!==o\u0026\u0026(o=!0);if(u.aborted\u0026\u0026!i)return;t\u0026\u0026o\u0026\u0026t.emit(e,r,n);for(var a=p(n),c=m(e),d=c.length,l=0;l\u003cd;l++)c[l].apply(a,r);var f=b()[s[e]];f\u0026\u0026f.push([h,e,r,a]);return a},get:v,listeners:m,context:p,buffer:function(e,t){const r=b();if(t=t||\"feature\",h.aborted)return;Object.entries(e||{}).forEach((e=\u003e{let[n,i]=e;s[i]=t,t in r||(r[t]=[])}))},abort:l,aborted:!1,isBuffering:function(e){return!!b()[s[e]]},debugId:r,backlog:f?{}:t\u0026\u0026\"object\"==typeof t.backlog?t.backlog:{}};return h;function p(e){return e\u0026\u0026e instanceof a?e:e?(0,i.X)(e,c,(()=\u003enew a(c))):new a(c)}function g(e,t){n[e]=m(e).concat(t)}function m(e){return n[e]||[]}function v(t){return d[t]=d[t]||e(h,t)}function b(){return h.backlog}}(void 0,\"globalEE\"),d=(0,n.fP)();function l(){u.aborted=!0,Object.keys(u.backlog).forEach((e=\u003e{delete u.backlog[e]}))}d.ee||(d.ee=u)},5546:(e,t,r)=\u003e{\"use strict\";r.d(t,{E:()=\u003en,p:()=\u003ei});var n=r(8325).ee.get(\"handle\");function i(e,t,r,i,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},4322:(e,t,r)=\u003e{\"use strict\";r.d(t,{X:()=\u003eo});var n=r(5546);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.E,i,e,t,r)}function a(e,t,r,i,o){o||(o=\"feature\"),e||(e=n.E);var a=t[o]=t[o]||{};(a[r]=a[r]||[]).push([e,i])}},3239:(e,t,r)=\u003e{\"use strict\";r.d(t,{bP:()=\u003es,iz:()=\u003ec,m$:()=\u003ea});var n=r(385);let i=!1,o=!1;try{const e={get passive(){return i=!0,!1},get signal(){return o=!0,!1}};n._A.addEventListener(\"test\",null,e),n._A.removeEventListener(\"test\",null,e)}catch(e){}function a(e,t){return i||o?{capture:!!e,passive:i,signal:t}:!!e}function s(e,t){let r=arguments.length\u003e2\u0026\u0026void 0!==arguments[2]\u0026\u0026arguments[2],n=arguments.length\u003e3?arguments[3]:void 0;window.addEventListener(e,t,a(r,n))}function c(e,t){let r=arguments.length\u003e2\u0026\u0026void 0!==arguments[2]\u0026\u0026arguments[2],n=arguments.length\u003e3?arguments[3]:void 0;document.addEventListener(e,t,a(r,n))}},3117:(e,t,r)=\u003e{\"use strict\";r.d(t,{a:()=\u003en});const n=(0,r(4402).Rl)()},4402:(e,t,r)=\u003e{\"use strict\";r.d(t,{Ht:()=\u003eu,M:()=\u003ec,Rl:()=\u003ea,ky:()=\u003es});var n=r(385);const i=\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\";function o(e,t){return e?15\u0026e[t]:16*Math.random()|0}function a(){const e=n._A?.crypto||n._A?.msCrypto;let t,r=0;return e\u0026\u0026e.getRandomValues\u0026\u0026(t=e.getRandomValues(new Uint8Array(30))),i.split(\"\").map((e=\u003e\"x\"===e?o(t,r++).toString(16):\"y\"===e?(3\u0026o()|8).toString(16):e)).join(\"\")}function s(e){const t=n._A?.crypto||n._A?.msCrypto;let r,i=0;t\u0026\u0026t.getRandomValues\u0026\u0026(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var s=0;s\u003ce;s++)a.push(o(r,i++).toString(16));return a.join(\"\")}function c(){return s(16)}function u(){return s(32)}},7056:(e,t,r)=\u003e{\"use strict\";r.d(t,{Bq:()=\u003en,Hb:()=\u003eo,IK:()=\u003ec,oD:()=\u003ei,uT:()=\u003es,wO:()=\u003ea});const n=\"NRBA\",i=144e5,o=18e5,a={PAUSE:\"session-pause\",RESET:\"session-reset\",RESUME:\"session-resume\",UPDATE:\"session-update\"},s={SAME_TAB:\"same-tab\",CROSS_TAB:\"cross-tab\"},c={OFF:0,FULL:1,ERROR:2}},7894:(e,t,r)=\u003e{\"use strict\";function n(){return Math.round(performance.now())}r.d(t,{z:()=\u003en})},7243:(e,t,r)=\u003e{\"use strict\";r.d(t,{e:()=\u003ei});var n=r(385);function i(e){if(0===(e||\"\").indexOf(\"data:\"))return{protocol:\"data\"};try{const t=new URL(e,location.href),r={port:t.port,hostname:t.hostname,pathname:t.pathname,search:t.search,protocol:t.protocol.slice(0,t.protocol.indexOf(\":\")),sameOrigin:t.protocol===n._A?.location?.protocol\u0026\u0026t.host===n._A?.location?.host};return r.port\u0026\u0026\"\"!==r.port||(\"http:\"===t.protocol\u0026\u0026(r.port=\"80\"),\"https:\"===t.protocol\u0026\u0026(r.port=\"443\")),r.pathname\u0026\u0026\"\"!==r.pathname?r.pathname.startsWith(\"/\")||(r.pathname=\"/\".concat(r.pathname)):r.pathname=\"/\",r}catch(e){return{}}}},50:(e,t,r)=\u003e{\"use strict\";function n(e,t){\"function\"==typeof console.warn\u0026\u0026(console.warn(\"New Relic: \".concat(e)),t\u0026\u0026console.warn(t))}r.d(t,{Z:()=\u003en})},2825:(e,t,r)=\u003e{\"use strict\";r.d(t,{N:()=\u003ed,T:()=\u003el});var n=r(8325),i=r(5546),o=r(3325),a=r(385);const s=\"newrelic\";const c={stn:[o.D.sessionTrace],err:[o.D.jserrors,o.D.metrics],ins:[o.D.pageAction],spa:[o.D.spa],sr:[o.D.sessionReplay,o.D.sessionTrace]},u=new Set;function d(e,t){const r=n.ee.get(t);e\u0026\u0026\"object\"==typeof e\u0026\u0026(u.has(t)||(Object.entries(e).forEach((e=\u003e{let[t,n]=e;c[t]?c[t].forEach((e=\u003e{n?(0,i.p)(\"feat-\"+t,[],void 0,e,r):(0,i.p)(\"block-\"+t,[],void 0,e,r),(0,i.p)(\"rumresp-\"+t,[Boolean(n)],void 0,e,r)})):n\u0026\u0026(0,i.p)(\"feat-\"+t,[],void 0,void 0,r),l[t]=Boolean(n)})),Object.keys(c).forEach((e=\u003e{void 0===l[e]\u0026\u0026(c[e]?.forEach((t=\u003e(0,i.p)(\"rumresp-\"+e,[!1],void 0,t,r))),l[e]=!1)})),u.add(t),function(){let e=arguments.length\u003e0\u0026\u0026void 0!==arguments[0]?arguments[0]:{};try{a._A.dispatchEvent(new CustomEvent(s,{detail:e}))}catch(e){}}({loaded:!0})))}const l={}},2210:(e,t,r)=\u003e{\"use strict\";r.d(t,{X:()=\u003ei});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty\u0026\u0026Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},1284:(e,t,r)=\u003e{\"use strict\";r.d(t,{D:()=\u003en});const n=(e,t)=\u003eObject.entries(e||{}).map((e=\u003e{let[r,n]=e;return t(r,n)}))},4351:(e,t,r)=\u003e{\"use strict\";r.d(t,{P:()=\u003eo});var n=r(8325);const i=()=\u003e{const e=new WeakSet;return(t,r)=\u003e{if(\"object\"==typeof r\u0026\u0026null!==r){if(e.has(r))return;e.add(r)}return r}};function o(e){try{return JSON.stringify(e,i())}catch(e){try{n.ee.emit(\"internal-error\",[e])}catch(e){}}}},3960:(e,t,r)=\u003e{\"use strict\";r.d(t,{KB:()=\u003ea,b2:()=\u003eo});var n=r(3239);function i(){return\"undefined\"==typeof document||\"complete\"===document.readyState}function o(e,t){if(i())return e();(0,n.bP)(\"load\",e,t)}function a(e){if(i())return e();(0,n.iz)(\"DOMContentLoaded\",e)}},8632:(e,t,r)=\u003e{\"use strict\";r.d(t,{EZ:()=\u003ed,ce:()=\u003eo,ek:()=\u003eu,fP:()=\u003ea,gG:()=\u003el,h5:()=\u003ec,mF:()=\u003es});var n=r(7894),i=r(385);const o={beacon:\"bam.nr-data.net\",errorBeacon:\"bam.nr-data.net\"};function a(){return i._A.NREUM||(i._A.NREUM={}),void 0===i._A.newrelic\u0026\u0026(i._A.newrelic=i._A.NREUM),i._A.NREUM}function s(){let e=a();return e.o||(e.o={ST:i._A.setTimeout,SI:i._A.setImmediate,CT:i._A.clearTimeout,XHR:i._A.XMLHttpRequest,REQ:i._A.Request,EV:i._A.Event,PR:i._A.Promise,MO:i._A.MutationObserver,FETCH:i._A.fetch}),e}function c(e,t){let r=a();r.initializedAgents??={},t.initializedAt={ms:(0,n.z)(),date:new Date},r.initializedAgents[e]=t}function u(e){let t=a();return t.initializedAgents?.[e]}function d(e,t){a()[e]=t}function l(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},7956:(e,t,r)=\u003e{\"use strict\";r.d(t,{N:()=\u003ei});var n=r(3239);function i(e){let t=arguments.length\u003e1\u0026\u0026void 0!==arguments[1]\u0026\u0026arguments[1],r=arguments.length\u003e2?arguments[2]:void 0,i=arguments.length\u003e3?arguments[3]:void 0;(0,n.iz)(\"visibilitychange\",(function(){if(t)return void(\"hidden\"===document.visibilityState\u0026\u0026e());e(document.visibilityState)}),r,i)}},1214:(e,t,r)=\u003e{\"use strict\";r.d(t,{em:()=\u003eb,u5:()=\u003eR,QU:()=\u003eO,_L:()=\u003eP,Gm:()=\u003eM,Lg:()=\u003eL,BV:()=\u003eZ,Kf:()=\u003eY});var n=r(8325),i=r(3117);const o=\"nr@original:\".concat(i.a);var a=Object.prototype.hasOwnProperty,s=!1;function c(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,o){n||(n=\"\");const a=\"-\"===n.charAt(0);for(let s=0;s\u003ct.length;s++){const c=t[s],u=e[c];d(u)||(e[c]=r(u,a?c+n:n,i,c,o))}},r.flag=o,r;function r(t,r,n,s,c){return d(t)?t:(r||(r=\"\"),nrWrapper[o]=t,function(e,t,r){if(Object.defineProperty\u0026\u0026Object.keys)try{return Object.keys(e).forEach((function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})})),t}catch(e){u([e],r)}for(var n in e)a.call(e,n)\u0026\u0026(t[n]=e[n])}(t,nrWrapper,e),nrWrapper);function nrWrapper(){var o,a,d,l;try{a=this,o=[...arguments],d=\"function\"==typeof n?n(o,a):n||{}}catch(t){u([t,\"\",[o,a,s],d],e)}i(r+\"start\",[o,a,s],d,c);try{return l=t.apply(a,o)}catch(e){throw i(r+\"err\",[o,a,e],d,c),e}finally{i(r+\"end\",[o,a,l],d,c)}}}function i(r,n,i,o){if(!s||t){var a=s;s=!0;try{e.emit(r,n,i,t,o)}catch(t){u([t,r,n,i],e)}s=a}}}function u(e,t){t||(t=n.ee);try{t.emit(\"internal-error\",e)}catch(e){}}function d(e){return!(e\u0026\u0026\"function\"==typeof e\u0026\u0026e.apply\u0026\u0026!e[o])}var l=r(2210),f=r(385);const h={},p=f._A.XMLHttpRequest,g=\"addEventListener\",m=\"removeEventListener\",v=\"nr@wrapped:\".concat(n.A);function b(e){var t=function(e){return(e||n.ee).get(\"events\")}(e);if(h[t.debugId]++)return t;h[t.debugId]=1;var r=c(t,!0);function i(e){r.inPlace(e,[g,m],\"-\",o)}function o(e,t){return e[1]}return\"getPrototypeOf\"in Object\u0026\u0026(f.il\u0026\u0026y(document,i),y(f._A,i),y(p.prototype,i)),t.on(g+\"-start\",(function(e,t){var n=e[1];if(null!==n\u0026\u0026(\"function\"==typeof n||\"object\"==typeof n)){var i=(0,l.X)(n,v,(function(){var e={object:function(){if(\"function\"!=typeof n.handleEvent)return;return n.handleEvent.apply(n,arguments)},function:n}[typeof n];return e?r(e,\"fn-\",null,e.name||\"anonymous\"):n}));this.wrapped=e[1]=i}})),t.on(m+\"-start\",(function(e){e[1]=this.wrapped||e[1]})),t}function y(e,t){let r=e;for(;\"object\"==typeof r\u0026\u0026!Object.prototype.hasOwnProperty.call(r,g);)r=Object.getPrototypeOf(r);for(var n=arguments.length,i=new Array(n\u003e2?n-2:0),o=2;o\u003cn;o++)i[o-2]=arguments[o];r\u0026\u0026t(r,...i)}var A=\"fetch-\",w=A+\"body-\",x=[\"arrayBuffer\",\"blob\",\"json\",\"text\",\"formData\"],E=f._A.Request,_=f._A.Response,T=\"prototype\";const S={};function R(e){const t=function(e){return(e||n.ee).get(\"fetch\")}(e);if(!(E\u0026\u0026_\u0026\u0026f._A.fetch))return t;if(S[t.debugId]++)return t;function r(e,r,i){var o=e[r];\"function\"==typeof o\u0026\u0026(e[r]=function(){var e,r=[...arguments],a={};t.emit(i+\"before-start\",[r],a),a[n.A]\u0026\u0026a[n.A].dt\u0026\u0026(e=a[n.A].dt);var s=o.apply(this,r);return t.emit(i+\"start\",[r,e],s),s.then((function(e){return t.emit(i+\"end\",[null,e],s),e}),(function(e){throw t.emit(i+\"end\",[e],s),e}))})}return S[t.debugId]=1,x.forEach((e=\u003e{r(E[T],e,w),r(_[T],e,w)})),r(f._A,\"fetch\",A),t.on(A+\"end\",(function(e,r){var n=this;if(r){var i=r.headers.get(\"content-length\");null!==i\u0026\u0026(n.rxSize=i),t.emit(A+\"done\",[null,r],n)}else t.emit(A+\"done\",[e],n)})),t}const D={},N=[\"pushState\",\"replaceState\"];function O(e){const t=function(e){return(e||n.ee).get(\"history\")}(e);return!f.il||D[t.debugId]++||(D[t.debugId]=1,c(t).inPlace(window.history,N,\"-\")),t}var I=r(3239);const j={},C=[\"appendChild\",\"insertBefore\",\"replaceChild\"];function P(e){const t=function(e){return(e||n.ee).get(\"jsonp\")}(e);if(!f.il||j[t.debugId])return t;j[t.debugId]=!0;var r=c(t),i=/[?\u0026](?:callback|cb)=([^\u0026#]+)/,o=/(.*)\\.([^.]+)/,a=/^(\\w+)(\\.|$)(.*)$/;function s(e,t){if(!e)return t;const r=e.match(a),n=r[1];return s(r[3],t[n])}return r.inPlace(Node.prototype,C,\"dom-\"),t.on(\"dom-start\",(function(e){!function(e){if(!e||\"string\"!=typeof e.nodeName||\"script\"!==e.nodeName.toLowerCase())return;if(\"function\"!=typeof e.addEventListener)return;var n=(a=e.src,c=a.match(i),c?c[1]:null);var a,c;if(!n)return;var u=function(e){var t=e.match(o);if(t\u0026\u0026t.length\u003e=3)return{key:t[2],parent:s(t[1],window)};return{key:e,parent:window}}(n);if(\"function\"!=typeof u.parent[u.key])return;var d={};function l(){t.emit(\"jsonp-end\",[],d),e.removeEventListener(\"load\",l,(0,I.m$)(!1)),e.removeEventListener(\"error\",f,(0,I.m$)(!1))}function f(){t.emit(\"jsonp-error\",[],d),t.emit(\"jsonp-end\",[],d),e.removeEventListener(\"load\",l,(0,I.m$)(!1)),e.removeEventListener(\"error\",f,(0,I.m$)(!1))}r.inPlace(u.parent,[u.key],\"cb-\",d),e.addEventListener(\"load\",l,(0,I.m$)(!1)),e.addEventListener(\"error\",f,(0,I.m$)(!1)),t.emit(\"new-jsonp\",[e.src],d)}(e[0])})),t}const k={};function M(e){const t=function(e){return(e||n.ee).get(\"mutation\")}(e);if(!f.il||k[t.debugId])return t;k[t.debugId]=!0;var r=c(t),i=f._A.MutationObserver;return i\u0026\u0026(window.MutationObserver=function(e){return this instanceof i?new i(r(e,\"fn-\")):i.apply(this,arguments)},MutationObserver.prototype=i.prototype),t}const H={};function L(e){const t=function(e){return(e||n.ee).get(\"promise\")}(e);if(H[t.debugId])return t;H[t.debugId]=!0;var r=t.context,i=c(t),a=f._A.Promise;return a\u0026\u0026function(){function e(r){var n=t.context(),o=i(r,\"executor-\",n,null,!1);const s=Reflect.construct(a,[o],e);return t.context(s).getCtx=function(){return n},s}f._A.Promise=e,Object.defineProperty(e,\"name\",{value:\"Promise\"}),e.toString=function(){return a.toString()},Object.setPrototypeOf(e,a),[\"all\",\"race\"].forEach((function(r){const n=a[r];e[r]=function(e){let i=!1;[...e||[]].forEach((e=\u003e{this.resolve(e).then(a(\"all\"===r),a(!1))}));const o=n.apply(this,arguments);return o;function a(e){return function(){t.emit(\"propagate\",[null,!i],o,!1,!1),i=i||!e}}}})),[\"resolve\",\"reject\"].forEach((function(r){const n=a[r];e[r]=function(e){const r=n.apply(this,arguments);return e!==r\u0026\u0026t.emit(\"propagate\",[e,!0],r,!1,!1),r}})),e.prototype=a.prototype;const n=a.prototype.then;a.prototype.then=function(){var e=this,o=r(e);o.promise=e;for(var a=arguments.length,s=new Array(a),c=0;c\u003ca;c++)s[c]=arguments[c];s[0]=i(s[0],\"cb-\",o,null,!1),s[1]=i(s[1],\"cb-\",o,null,!1);const u=n.apply(this,s);return o.nextPromise=u,t.emit(\"propagate\",[e,!0],u,!1,!1),u},a.prototype.then[o]=n,t.on(\"executor-start\",(function(e){e[0]=i(e[0],\"resolve-\",this,null,!1),e[1]=i(e[1],\"resolve-\",this,null,!1)})),t.on(\"executor-err\",(function(e,t,r){e[1](r)})),t.on(\"cb-end\",(function(e,r,n){t.emit(\"propagate\",[n,!0],this.nextPromise,!1,!1)})),t.on(\"propagate\",(function(e,r,n){this.getCtx\u0026\u0026!r||(this.getCtx=function(){if(e instanceof Promise)var r=t.context(e);return r\u0026\u0026r.getCtx?r.getCtx():this})}))}(),t}const z={},F=\"setTimeout\",B=\"setInterval\",U=\"clearTimeout\",V=\"-start\",q=\"-\",G=[F,\"setImmediate\",B,U,\"clearImmediate\"];function Z(e){const t=function(e){return(e||n.ee).get(\"timer\")}(e);if(z[t.debugId]++)return t;z[t.debugId]=1;var r=c(t);return r.inPlace(f._A,G.slice(0,2),F+q),r.inPlace(f._A,G.slice(2,3),B+q),r.inPlace(f._A,G.slice(3),U+q),t.on(B+V,(function(e,t,n){e[0]=r(e[0],\"fn-\",null,n)})),t.on(F+V,(function(e,t,n){this.method=n,this.timerDuration=isNaN(e[1])?0:+e[1],e[0]=r(e[0],\"fn-\",this,n)})),t}var W=r(50);const X={},K=[\"open\",\"send\"];function Y(e){var t=e||n.ee;const r=function(e){return(e||n.ee).get(\"xhr\")}(t);if(X[r.debugId]++)return r;X[r.debugId]=1,b(t);var i=c(r),o=f._A.XMLHttpRequest,a=f._A.MutationObserver,s=f._A.Promise,u=f._A.setInterval,d=\"readystatechange\",l=[\"onload\",\"onerror\",\"onabort\",\"onloadstart\",\"onloadend\",\"onprogress\",\"ontimeout\"],h=[],p=f._A.XMLHttpRequest=function(e){const t=new o(e),n=r.context(t);try{r.emit(\"new-xhr\",[t],n),t.addEventListener(d,(a=n,function(){var e=this;e.readyState\u003e3\u0026\u0026!a.resolved\u0026\u0026(a.resolved=!0,r.emit(\"xhr-resolved\",[],e)),i.inPlace(e,l,\"fn-\",w)}),(0,I.m$)(!1))}catch(e){(0,W.Z)(\"An error occurred while intercepting XHR\",e);try{r.emit(\"internal-error\",[e])}catch(e){}}var a;return t};function g(e,t){i.inPlace(t,[\"onreadystatechange\"],\"fn-\",w)}if(function(e,t){for(var r in e)t[r]=e[r]}(o,p),p.prototype=o.prototype,i.inPlace(p.prototype,K,\"-xhr-\",w),r.on(\"send-xhr-start\",(function(e,t){g(e,t),function(e){h.push(e),a\u0026\u0026(m?m.then(A):u?u(A):(v=-v,y.data=v))}(t)})),r.on(\"open-xhr-start\",g),a){var m=s\u0026\u0026s.resolve();if(!u\u0026\u0026!s){var v=1,y=document.createTextNode(v);new a(A).observe(y,{characterData:!0})}}else t.on(\"fn-end\",(function(e){e[0]\u0026\u0026e[0].type===d||A()}));function A(){for(var e=0;e\u003ch.length;e++)g(0,h[e]);h.length\u0026\u0026(h=[])}function w(e,t){return t}return r}},7825:(e,t,r)=\u003e{\"use strict\";r.d(t,{t:()=\u003en});const n=r(3325).D.ajax},6660:(e,t,r)=\u003e{\"use strict\";r.d(t,{t:()=\u003en});const n=r(3325).D.jserrors},3081:(e,t,r)=\u003e{\"use strict\";r.d(t,{gF:()=\u003eo,mY:()=\u003ei,t9:()=\u003en,vz:()=\u003es,xS:()=\u003ea});const n=r(3325).D.metrics,i=\"sm\",o=\"cm\",a=\"storeSupportabilityMetrics\",s=\"storeEventMetrics\"},4649:(e,t,r)=\u003e{\"use strict\";r.d(t,{t:()=\u003en});const n=r(3325).D.pageAction},7633:(e,t,r)=\u003e{\"use strict\";r.d(t,{t:()=\u003en});const n=r(3325).D.pageViewEvent},9251:(e,t,r)=\u003e{\"use strict\";r.d(t,{t:()=\u003en});const n=r(3325).D.pageViewTiming},7144:(e,t,r)=\u003e{\"use strict\";r.d(t,{J0:()=\u003el,Mi:()=\u003ed,Vb:()=\u003eo,Ye:()=\u003es,fm:()=\u003ec,i9:()=\u003ea,t9:()=\u003ei,u0:()=\u003eu});var n=r(7056);const i=r(3325).D.sessionReplay,o=.12,a={DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},s=1e6,c=64e3,u={[n.IK.ERROR]:15e3,[n.IK.FULL]:3e5,[n.IK.OFF]:0},d={RESET:{message:\"Session was reset\",sm:\"Reset\"},IMPORT:{message:\"Recorder failed to import\",sm:\"Import\"},TOO_MANY:{message:\"429: Too Many Requests\",sm:\"Too-Many\"},TOO_BIG:{message:\"Payload was too large\",sm:\"Too-Big\"},CROSS_TAB:{message:\"Session Entity was set to OFF on another tab\",sm:\"Cross-Tab\"},ENTITLEMENTS:{message:\"Session Replay is not allowed and will not be started\",sm:\"Entitlement\"}},l=5e3},3614:(e,t,r)=\u003e{\"use strict\";r.d(t,{BST_RESOURCE:()=\u003ei,END:()=\u003es,FEATURE_NAME:()=\u003en,FN_END:()=\u003eu,FN_START:()=\u003ec,PUSH_STATE:()=\u003ed,RESOURCE:()=\u003eo,START:()=\u003ea});const n=r(3325).D.sessionTrace,i=\"bstResource\",o=\"resource\",a=\"-start\",s=\"-end\",c=\"fn\"+a,u=\"fn\"+s,d=\"pushState\"},7836:(e,t,r)=\u003e{\"use strict\";r.d(t,{BODY:()=\u003ex,CB_END:()=\u003eE,CB_START:()=\u003eu,END:()=\u003ew,FEATURE_NAME:()=\u003ei,FETCH:()=\u003eT,FETCH_BODY:()=\u003ev,FETCH_DONE:()=\u003em,FETCH_START:()=\u003eg,FN_END:()=\u003ec,FN_START:()=\u003es,INTERACTION:()=\u003ef,INTERACTION_API:()=\u003ed,INTERACTION_EVENTS:()=\u003eo,JSONP_END:()=\u003eb,JSONP_NODE:()=\u003ep,JS_TIME:()=\u003e_,MAX_TIMER_BUDGET:()=\u003ea,REMAINING:()=\u003el,SPA_NODE:()=\u003eh,START:()=\u003eA,originalSetTimeout:()=\u003ey});var n=r(234);const i=r(3325).D.spa,o=[\"click\",\"submit\",\"keypress\",\"keydown\",\"keyup\",\"change\"],a=999,s=\"fn-start\",c=\"fn-end\",u=\"cb-start\",d=\"api-ixn-\",l=\"remaining\",f=\"interaction\",h=\"spaNode\",p=\"jsonpNode\",g=\"fetch-start\",m=\"fetch-done\",v=\"fetch-body-\",b=\"jsonp-end\",y=n.Yu.ST,A=\"-start\",w=\"-end\",x=\"-body\",E=\"cb\"+w,_=\"jsTime\",T=\"fetch\"},5938:(e,t,r)=\u003e{\"use strict\";r.d(t,{W:()=\u003ei});var n=r(8325);class i{constructor(e,t,r){this.agentIdentifier=e,this.aggregator=t,this.ee=n.ee.get(e),this.featureName=r,this.blocked=!1}}},7530:(e,t,r)=\u003e{\"use strict\";r.d(t,{j:()=\u003eb});var n=r(3325),i=r(234),o=r(5546),a=r(8325),s=r(7894),c=r(8e3),u=r(3960),d=r(385),l=r(50),f=r(3081),h=r(8632);function p(){const e=(0,h.gG)();[\"setErrorHandler\",\"finished\",\"addToTrace\",\"addRelease\",\"addPageAction\",\"setCurrentRouteName\",\"setPageViewName\",\"setCustomAttribute\",\"interaction\",\"noticeError\",\"setUserId\",\"setApplicationVersion\",\"start\",\"recordReplay\",\"pauseReplay\"].forEach((t=\u003e{e[t]=function(){for(var r=arguments.length,n=new Array(r),i=0;i\u003cr;i++)n[i]=arguments[i];return function(t){for(var r=arguments.length,n=new Array(r\u003e1?r-1:0),i=1;i\u003cr;i++)n[i-1]=arguments[i];let o=[];return Object.values(e.initializedAgents).forEach((e=\u003e{e.exposed\u0026\u0026e.api[t]\u0026\u0026o.push(e.api[t](...n))})),o.length\u003e1?o:o[0]}(t,...n)}}))}var g=r(2825);const m=e=\u003e{const t=e.startsWith(\"http\");e+=\"/\",r.p=t?e:\"https://\"+e};let v=!1;function b(e){let t=arguments.length\u003e1\u0026\u0026void 0!==arguments[1]?arguments[1]:{},b=arguments.length\u003e2?arguments[2]:void 0,y=arguments.length\u003e3?arguments[3]:void 0,{init:A,info:w,loader_config:x,runtime:E={loaderType:b},exposed:_=!0}=t;const T=(0,h.gG)();w||(A=T.init,w=T.info,x=T.loader_config),(0,i.Dg)(e.agentIdentifier,A||{}),(0,i.GE)(e.agentIdentifier,x||{}),w.jsAttributes??={},d.v6\u0026\u0026(w.jsAttributes.isWorker=!0),(0,i.CX)(e.agentIdentifier,w);const S=(0,i.P_)(e.agentIdentifier),R=[w.beacon,w.errorBeacon];v||(S.proxy.assets\u0026\u0026(m(S.proxy.assets),R.push(S.proxy.assets)),S.proxy.beacon\u0026\u0026R.push(S.proxy.beacon),p(),(0,h.EZ)(\"activatedFeatures\",g.T)),E.denyList=[...S.ajax.deny_list||[],...S.ajax.block_internal?R:[]],(0,i.sU)(e.agentIdentifier,E),void 0===e.api\u0026\u0026(e.api=function(e,t){t||(0,c.R)(e,\"api\");const h={};var p=a.ee.get(e),g=p.get(\"tracer\"),m=\"api-\",v=m+\"ixn-\";function b(t,r,n,o){const a=(0,i.C5)(e);return null===r?delete a.jsAttributes[t]:(0,i.CX)(e,{...a,jsAttributes:{...a.jsAttributes,[t]:r}}),w(m,n,!0,o||null===r?\"session\":void 0)(t,r)}function y(){}[\"setErrorHandler\",\"finished\",\"addToTrace\",\"addRelease\"].forEach((e=\u003e{h[e]=w(m,e,!0,\"api\")})),h.addPageAction=w(m,\"addPageAction\",!0,n.D.pageAction),h.setCurrentRouteName=w(m,\"routeName\",!0,n.D.spa),h.setPageViewName=function(t,r){if(\"string\"==typeof t)return\"/\"!==t.charAt(0)\u0026\u0026(t=\"/\"+t),(0,i.OP)(e).customTransaction=(r||\"http://custom.transaction\")+t,w(m,\"setPageViewName\",!0)()},h.setCustomAttribute=function(e,t){let r=arguments.length\u003e2\u0026\u0026void 0!==arguments[2]\u0026\u0026arguments[2];if(\"string\"==typeof e){if([\"string\",\"number\",\"boolean\"].includes(typeof t)||null===t)return b(e,t,\"setCustomAttribute\",r);(0,l.Z)(\"Failed to execute setCustomAttribute.\\nNon-null value must be a string, number or boolean type, but a type of \u003c\".concat(typeof t,\"\u003e was provided.\"))}else(0,l.Z)(\"Failed to execute setCustomAttribute.\\nName must be a string type, but a type of \u003c\".concat(typeof e,\"\u003e was provided.\"))},h.setUserId=function(e){if(\"string\"==typeof e||null===e)return b(\"enduser.id\",e,\"setUserId\",!0);(0,l.Z)(\"Failed to execute setUserId.\\nNon-null value must be a string type, but a type of \u003c\".concat(typeof e,\"\u003e was provided.\"))},h.setApplicationVersion=function(e){if(\"string\"==typeof e||null===e)return b(\"application.version\",e,\"setApplicationVersion\",!1);(0,l.Z)(\"Failed to execute setApplicationVersion. Expected \u003cString | null\u003e, but got \u003c\".concat(typeof e,\"\u003e.\"))},h.start=e=\u003e{try{const t=e?\"defined\":\"undefined\";(0,o.p)(f.xS,[\"API/start/\".concat(t,\"/called\")],void 0,n.D.metrics,p);const r=Object.values(n.D);if(void 0===e)e=r;else{if((e=Array.isArray(e)\u0026\u0026e.length?e:[e]).some((e=\u003e!r.includes(e))))return(0,l.Z)(\"Invalid feature name supplied. Acceptable feature names are: \".concat(r));e.includes(n.D.pageViewEvent)||e.push(n.D.pageViewEvent)}e.forEach((e=\u003e{p.emit(\"\".concat(e,\"-opt-in\"))}))}catch(e){(0,l.Z)(\"An unexpected issue occurred\",e)}},h.recordReplay=function(){(0,o.p)(f.xS,[\"API/recordReplay/called\"],void 0,n.D.metrics,p),(0,o.p)(\"recordReplay\",[],void 0,n.D.sessionReplay,p)},h.pauseReplay=function(){(0,o.p)(f.xS,[\"API/pauseReplay/called\"],void 0,n.D.metrics,p),(0,o.p)(\"pauseReplay\",[],void 0,n.D.sessionReplay,p)},h.interaction=function(){return(new y).get()};var A=y.prototype={createTracer:function(e,t){var r={},i=this,a=\"function\"==typeof t;return(0,o.p)(f.xS,[\"API/createTracer/called\"],void 0,n.D.metrics,p),(0,o.p)(v+\"tracer\",[(0,s.z)(),e,r],i,n.D.spa,p),function(){if(g.emit((a?\"\":\"no-\")+\"fn-start\",[(0,s.z)(),i,a],r),a)try{return t.apply(this,arguments)}catch(e){throw g.emit(\"fn-err\",[arguments,this,e],r),e}finally{g.emit(\"fn-end\",[(0,s.z)()],r)}}}};function w(e,t,r,i){return function(){return(0,o.p)(f.xS,[\"API/\"+t+\"/called\"],void 0,n.D.metrics,p),i\u0026\u0026(0,o.p)(e+t,[(0,s.z)(),...arguments],r?null:this,i,p),r?void 0:this}}function x(){r.e(111).then(r.bind(r,7438)).then((t=\u003e{let{setAPI:r}=t;r(e),(0,c.L)(e,\"api\")})).catch((()=\u003e{(0,l.Z)(\"Downloading runtime APIs failed...\"),(0,c.L)(e,\"api\",!0)}))}return[\"actionText\",\"setName\",\"setAttribute\",\"save\",\"ignore\",\"onEnd\",\"getContext\",\"end\",\"get\"].forEach((e=\u003e{A[e]=w(v,e,void 0,n.D.spa)})),h.noticeError=function(e,t){\"string\"==typeof e\u0026\u0026(e=new Error(e)),(0,o.p)(f.xS,[\"API/noticeError/called\"],void 0,n.D.metrics,p),(0,o.p)(\"err\",[e,(0,s.z)(),!1,t],void 0,n.D.jserrors,p)},d.il?(0,u.b2)((()=\u003ex()),!0):x(),h}(e.agentIdentifier,y)),void 0===e.exposed\u0026\u0026(e.exposed=_),v=!0}},1926:(e,t,r)=\u003e{r.nc=(()=\u003e{try{return document?.currentScript?.nonce}catch(e){}return\"\"})()},3325:(e,t,r)=\u003e{\"use strict\";r.d(t,{D:()=\u003en,p:()=\u003ei});const n={ajax:\"ajax\",jserrors:\"jserrors\",metrics:\"metrics\",pageAction:\"page_action\",pageViewEvent:\"page_view_event\",pageViewTiming:\"page_view_timing\",sessionReplay:\"session_replay\",sessionTrace:\"session_trace\",spa:\"spa\"},i={[n.pageViewEvent]:1,[n.pageViewTiming]:2,[n.metrics]:3,[n.jserrors]:4,[n.ajax]:5,[n.sessionTrace]:6,[n.pageAction]:7,[n.spa]:8,[n.sessionReplay]:9}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=\u003e{for(var r in t)i.o(t,r)\u0026\u0026!i.o(e,r)\u0026\u0026Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=\u003ePromise.all(Object.keys(i.f).reduce(((t,r)=\u003e(i.f[r](e,t),t)),[])),i.u=e=\u003e({111:\"nr-spa\",164:\"nr-spa-compressor\",433:\"nr-spa-recorder\"}[e]+\"-1.252.0.min.js\"),i.o=(e,t)=\u003eObject.prototype.hasOwnProperty.call(e,t),e={},t=\"NRBA-1.252.0.PROD:\",i.l=(r,n,o,a)=\u003e{if(e[r])e[r].push(n);else{var s,c;if(void 0!==o)for(var u=document.getElementsByTagName(\"script\"),d=0;d\u003cu.length;d++){var l=u[d];if(l.getAttribute(\"src\")==r||l.getAttribute(\"data-webpack\")==t+o){s=l;break}}if(!s){c=!0;var f={111:\"sha512-EIHTFh/PyMHLspjr+lbpdxFHzJXOF7HH8nedLZZTJSO0SyJ4rECM57ibYM67sib1O2FH0nhyrm4QKgl30mtD8w==\",433:\"sha512-wCJ0jwoj4FyJOrl6z7VLilNolSSxqqm/5L08FBzY2sXjVPFpnyu6p3obblBOv9lj2u9awQrvcEGqvjyYflheow==\",164:\"sha512-we5lwLCaVV8XgmWsFLhIuQ0Ja0mW9HH9YHLBzjhalvM84n3Rpvmg1iFz7BOZeYnHrjU5dcWOHrtqxvdjDNy2ag==\"};(s=document.createElement(\"script\")).charset=\"utf-8\",s.timeout=120,i.nc\u0026\u0026s.setAttribute(\"nonce\",i.nc),s.setAttribute(\"data-webpack\",t+o),s.src=r,0!==s.src.indexOf(window.location.origin+\"/\")\u0026\u0026(s.crossOrigin=\"anonymous\"),f[a]\u0026\u0026(s.integrity=f[a])}e[r]=[n];var h=(t,n)=\u003e{s.onerror=s.onload=null,clearTimeout(p);var i=e[r];if(delete e[r],s.parentNode\u0026\u0026s.parentNode.removeChild(s),i\u0026\u0026i.forEach((e=\u003ee(n))),t)return t(n)},p=setTimeout(h.bind(null,void 0,{type:\"timeout\",target:s}),12e4);s.onerror=h.bind(null,s.onerror),s.onload=h.bind(null,s.onload),c\u0026\u0026document.head.appendChild(s)}},i.r=e=\u003e{\"undefined\"!=typeof Symbol\u0026\u0026Symbol.toStringTag\u0026\u0026Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},i.p=\"https://js-agent.newrelic.com/\",(()=\u003e{var e={801:0,92:0};i.f.j=(t,r)=\u003e{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,i)=\u003en=e[t]=[r,i]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=\u003e{if(i.o(e,t)\u0026\u0026(0!==(n=e[t])\u0026\u0026(e[t]=void 0),n)){var o=r\u0026\u0026(\"load\"===r.type?\"missing\":r.type),a=r\u0026\u0026r.target\u0026\u0026r.target.src;s.message=\"Loading chunk \"+t+\" failed.\\n(\"+o+\": \"+a+\")\",s.name=\"ChunkLoadError\",s.type=o,s.request=a,n[1](s)}}),\"chunk-\"+t,t)}};var t=(t,r)=\u003e{var n,o,[a,s,c]=r,u=0;if(a.some((t=\u003e0!==e[t]))){for(n in s)i.o(s,n)\u0026\u0026(i.m[n]=s[n]);if(c)c(i)}for(t\u0026\u0026t(r);u\u003ca.length;u++)o=a[u],i.o(e,o)\u0026\u0026e[o]\u0026\u0026e[o][0](),e[o]=0},r=self[\"webpackChunk:NRBA-1.252.0.PROD\"]=self[\"webpackChunk:NRBA-1.252.0.PROD\"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=\u003e{\"use strict\";i(1926);var e=i(50);class t{#e(t){for(var r=arguments.length,n=new Array(r\u003e1?r-1:0),i=1;i\u003cr;i++)n[i-1]=arguments[i];if(\"function\"==typeof this.api?.[t])return this.api[t](...n);(0,e.Z)(\"Call to agent api \".concat(t,\" failed. The API is not currently initialized.\"))}addPageAction(e,t){return this.#e(\"addPageAction\",e,t)}setPageViewName(e,t){return this.#e(\"setPageViewName\",e,t)}setCustomAttribute(e,t,r){return this.#e(\"setCustomAttribute\",e,t,r)}noticeError(e,t){return this.#e(\"noticeError\",e,t)}setUserId(e){return this.#e(\"setUserId\",e)}setApplicationVersion(e){return this.#e(\"setApplicationVersion\",e)}setErrorHandler(e){return this.#e(\"setErrorHandler\",e)}finished(e){return this.#e(\"finished\",e)}addRelease(e,t){return this.#e(\"addRelease\",e,t)}start(e){return this.#e(\"start\",e)}recordReplay(){return this.#e(\"recordReplay\")}pauseReplay(){return this.#e(\"pauseReplay\")}addToTrace(e){return this.#e(\"addToTrace\",e)}setCurrentRouteName(e){return this.#e(\"setCurrentRouteName\",e)}interaction(){return this.#e(\"interaction\")}}var r=i(3325),n=i(234);const o=Object.values(r.D);function a(e){const t={};return o.forEach((r=\u003e{t[r]=function(e,t){return!1!==(0,n.Mt)(t,\"\".concat(e,\".enabled\"))}(r,e)})),t}var s=i(7530);var c=i(8e3),u=i(5938),d=i(3960),l=i(385);class f extends u.W{constructor(e,t,r){let i=!(arguments.length\u003e3\u0026\u0026void 0!==arguments[3])||arguments[3];super(e,t,r),this.auto=i,this.abortHandler=void 0,this.featAggregate=void 0,this.onAggregateImported=void 0,!1===(0,n.Mt)(this.agentIdentifier,\"\".concat(this.featureName,\".autoStart\"))\u0026\u0026(this.auto=!1),this.auto\u0026\u0026(0,c.R)(e,r)}importAggregator(){let t=arguments.length\u003e0\u0026\u0026void 0!==arguments[0]?arguments[0]:{};if(this.featAggregate)return;if(!this.auto)return void this.ee.on(\"\".concat(this.featureName,\"-opt-in\"),(()=\u003e{(0,c.R)(this.agentIdentifier,this.featureName),this.auto=!0,this.importAggregator()}));const r=l.il\u0026\u0026!0===(0,n.Mt)(this.agentIdentifier,\"privacy.cookies_enabled\");let o;this.onAggregateImported=new Promise((e=\u003e{o=e}));const a=async()=\u003e{let n;try{if(r){const{setupAgentSession:e}=await i.e(111).then(i.bind(i,1656));n=e(this.agentIdentifier)}}catch(t){(0,e.Z)(\"A problem occurred when starting up session manager. This page will not start or extend any session.\",t)}try{if(!this.shouldImportAgg(this.featureName,n))return(0,c.L)(this.agentIdentifier,this.featureName),void o(!1);const{lazyFeatureLoader:e}=await i.e(111).then(i.bind(i,8582)),{Aggregate:r}=await e(this.featureName,\"aggregate\");this.featAggregate=new r(this.agentIdentifier,this.aggregator,t),o(!0)}catch(t){(0,e.Z)(\"Downloading and initializing \".concat(this.featureName,\" failed...\"),t),this.abortHandler?.(),(0,c.L)(this.agentIdentifier,this.featureName,!0),o(!1)}};l.il?(0,d.b2)((()=\u003ea()),!0):a()}shouldImportAgg(e,t){return e!==r.D.sessionReplay||!!n.Yu.MO\u0026\u0026(!1!==(0,n.Mt)(this.agentIdentifier,\"session_trace.enabled\")\u0026\u0026(!!t?.isNew||!!t?.state.sessionReplayMode))}}var h=i(7633);class p extends f{static featureName=h.t;constructor(e,t){let r=!(arguments.length\u003e2\u0026\u0026void 0!==arguments[2])||arguments[2];super(e,t,h.t,r),this.importAggregator()}}var g=i(1117),m=i(1284);class v extends g.w{constructor(e){super(e),this.aggregatedData={}}store(e,t,r,n,i){var o=this.getBucket(e,t,r,i);return o.metrics=function(e,t){t||(t={count:0});return t.count+=1,(0,m.D)(e,(function(e,r){t[e]=b(r,t[e])})),t}(n,o.metrics),o}merge(e,t,r,n,i){var o=this.getBucket(e,t,n,i);if(o.metrics){var a=o.metrics;a.count+=r.count,(0,m.D)(r,(function(e,t){if(\"count\"!==e){var n=a[e],i=r[e];i\u0026\u0026!i.c?a[e]=b(i.t,n):a[e]=function(e,t){if(!t)return e;t.c||(t=y(t.t));return t.min=Math.min(e.min,t.min),t.max=Math.max(e.max,t.max),t.t+=e.t,t.sos+=e.sos,t.c+=e.c,t}(i,a[e])}}))}else o.metrics=r}storeMetric(e,t,r,n){var i=this.getBucket(e,t,r);return i.stats=b(n,i.stats),i}getBucket(e,t,r,n){this.aggregatedData[e]||(this.aggregatedData[e]={});var i=this.aggregatedData[e][t];return i||(i=this.aggregatedData[e][t]={params:r||{}},n\u0026\u0026(i.custom=n)),i}get(e,t){return t?this.aggregatedData[e]\u0026\u0026this.aggregatedData[e][t]:this.aggregatedData[e]}take(e){for(var t={},r=\"\",n=!1,i=0;i\u003ce.length;i++)t[r=e[i]]=A(this.aggregatedData[r]),t[r].length\u0026\u0026(n=!0),delete this.aggregatedData[r];return n?t:null}}function b(e,t){return null==e?function(e){e?e.c++:e={c:1};return e}(t):t?(t.c||(t=y(t.t)),t.c+=1,t.t+=e,t.sos+=e*e,e\u003et.max\u0026\u0026(t.max=e),e\u003ct.min\u0026\u0026(t.min=e),t):{t:e}}function y(e){return{t:e,min:e,max:e,sos:e*e,c:1}}function A(e){return\"object\"!=typeof e?[]:(0,m.D)(e,w)}function w(e,t){return t}var x=i(8632),E=i(4402),_=i(4351);var T=i(5546),S=i(7956),R=i(3239),D=i(7894),N=i(9251);class O extends f{static featureName=N.t;constructor(e,t){let r=!(arguments.length\u003e2\u0026\u0026void 0!==arguments[2])||arguments[2];super(e,t,N.t,r),l.il\u0026\u0026((0,S.N)((()=\u003e(0,T.p)(\"docHidden\",[(0,D.z)()],void 0,N.t,this.ee)),!0),(0,R.bP)(\"pagehide\",(()=\u003e(0,T.p)(\"winPagehide\",[(0,D.z)()],void 0,N.t,this.ee))),this.importAggregator())}}var I=i(3081);class j extends f{static featureName=I.t9;constructor(e,t){let r=!(arguments.length\u003e2\u0026\u0026void 0!==arguments[2])||arguments[2];super(e,t,I.t9,r),this.importAggregator()}}var C=i(6660);class P{constructor(e,t,r,n){this.name=\"UncaughtError\",this.message=e,this.sourceURL=t,this.line=r,this.column=n}}class k extends f{static featureName=C.t;#t=new Set;constructor(e,t){let n=!(arguments.length\u003e2\u0026\u0026void 0!==arguments[2])||arguments[2];super(e,t,C.t,n);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on(\"fn-err\",((e,t,n)=\u003e{this.abortHandler\u0026\u0026!this.#t.has(n)\u0026\u0026(this.#t.add(n),(0,T.p)(\"err\",[this.#r(n),(0,D.z)()],void 0,r.D.jserrors,this.ee))})),this.ee.on(\"internal-error\",(e=\u003e{this.abortHandler\u0026\u0026(0,T.p)(\"ierr\",[this.#r(e),(0,D.z)(),!0],void 0,r.D.jserrors,this.ee)})),l._A.addEventListener(\"unhandledrejection\",(e=\u003e{this.abortHandler\u0026\u0026(0,T.p)(\"err\",[this.#n(e),(0,D.z)(),!1,{unhandledPromiseRejection:1}],void 0,r.D.jserrors,this.ee)}),(0,R.m$)(!1,this.removeOnAbort?.signal)),l._A.addEventListener(\"error\",(e=\u003e{this.abortHandler\u0026\u0026(this.#t.has(e.error)?this.#t.delete(e.error):(0,T.p)(\"err\",[this.#i(e),(0,D.z)()],void 0,r.D.jserrors,this.ee))}),(0,R.m$)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#o,this.importAggregator()}#o(){this.removeOnAbort?.abort(),this.#t.clear(),this.abortHandler=void 0}#r(e){return e instanceof Error?e:void 0!==e?.message?new P(e.message,e.filename||e.sourceURL,e.lineno||e.line,e.colno||e.col):new P(\"string\"==typeof e?e:(0,_.P)(e))}#n(e){let t=\"Unhandled Promise Rejection: \";if(e?.reason instanceof Error)try{return e.reason.message=t+e.reason.message,e.reason}catch(t){return e.reason}if(void 0===e.reason)return new P(t);const r=this.#r(e.reason);return r.message=t+r.message,r}#i(e){if(e.error instanceof SyntaxError\u0026\u0026!/:\\d+$/.test(e.error.stack?.trim())){const t=new P(e.message,e.filename,e.lineno,e.colno);return t.name=SyntaxError.name,t}return e.error instanceof Error?e.error:new P(e.message,e.filename,e.lineno,e.colno)}}var M=i(2210);let H=1;const L=\"nr@id\";function z(e){const t=typeof e;return!e||\"object\"!==t\u0026\u0026\"function\"!==t?-1:e===l._A?0:(0,M.X)(e,L,(function(){return H++}))}function F(e){if(\"string\"==typeof e\u0026\u0026e.length)return e.length;if(\"object\"==typeof e){if(\"undefined\"!=typeof ArrayBuffer\u0026\u0026e instanceof ArrayBuffer\u0026\u0026e.byteLength)return e.byteLength;if(\"undefined\"!=typeof Blob\u0026\u0026e instanceof Blob\u0026\u0026e.size)return e.size;if(!(\"undefined\"!=typeof FormData\u0026\u0026e instanceof FormData))try{return(0,_.P)(e).length}catch(e){return}}}var B=i(1214),U=i(7243);class V{constructor(e){this.agentIdentifier=e}generateTracePayload(e){if(!this.shouldGenerateTrace(e))return null;var t=(0,n.DL)(this.agentIdentifier);if(!t)return null;var r=(t.accountID||\"\").toString()||null,i=(t.agentID||\"\").toString()||null,o=(t.trustKey||\"\").toString()||null;if(!r||!i)return null;var a=(0,E.M)(),s=(0,E.Ht)(),c=Date.now(),u={spanId:a,traceId:s,timestamp:c};return(e.sameOrigin||this.isAllowedOrigin(e)\u0026\u0026this.useTraceContextHeadersForCors())\u0026\u0026(u.traceContextParentHeader=this.generateTraceContextParentHeader(a,s),u.traceContextStateHeader=this.generateTraceContextStateHeader(a,c,r,i,o)),(e.sameOrigin\u0026\u0026!this.excludeNewrelicHeader()||!e.sameOrigin\u0026\u0026this.isAllowedOrigin(e)\u0026\u0026this.useNewrelicHeaderForCors())\u0026\u0026(u.newrelicHeader=this.generateTraceHeader(a,s,c,r,i,o)),u}generateTraceContextParentHeader(e,t){return\"00-\"+t+\"-\"+e+\"-01\"}generateTraceContextStateHeader(e,t,r,n,i){return i+\"@nr=0-1-\"+r+\"-\"+n+\"-\"+e+\"----\"+t}generateTraceHeader(e,t,r,n,i,o){if(!(\"function\"==typeof l._A?.btoa))return null;var a={v:[0,1],d:{ty:\"Browser\",ac:n,ap:i,id:e,tr:t,ti:r}};return o\u0026\u0026n!==o\u0026\u0026(a.d.tk=o),btoa((0,_.P)(a))}shouldGenerateTrace(e){return this.isDtEnabled()\u0026\u0026this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1,r={};if((0,n.Mt)(this.agentIdentifier,\"distributed_tracing\")\u0026\u0026(r=(0,n.P_)(this.agentIdentifier).distributed_tracing),e.sameOrigin)t=!0;else if(r.allowed_origins instanceof Array)for(var i=0;i\u003cr.allowed_origins.length;i++){var o=(0,U.e)(r.allowed_origins[i]);if(e.hostname===o.hostname\u0026\u0026e.protocol===o.protocol\u0026\u0026e.port===o.port){t=!0;break}}return t}isDtEnabled(){var e=(0,n.Mt)(this.agentIdentifier,\"distributed_tracing\");return!!e\u0026\u0026!!e.enabled}excludeNewrelicHeader(){var e=(0,n.Mt)(this.agentIdentifier,\"distributed_tracing\");return!!e\u0026\u0026!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=(0,n.Mt)(this.agentIdentifier,\"distributed_tracing\");return!!e\u0026\u0026!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=(0,n.Mt)(this.agentIdentifier,\"distributed_tracing\");return!!e\u0026\u0026!!e.cors_use_tracecontext_headers}}var q=i(7825),G=[\"load\",\"error\",\"abort\",\"timeout\"],Z=G.length,W=n.Yu.REQ,X=n.Yu.XHR;class K extends f{static featureName=q.t;constructor(e,t){let i=!(arguments.length\u003e2\u0026\u0026void 0!==arguments[2])||arguments[2];if(super(e,t,q.t,i),(0,n.OP)(e).xhrWrappable){this.dt=new V(e),this.handler=(e,t,r,n)=\u003e(0,T.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:\"xhr\",fetch:\"fetch\",beacon:\"beacon\"};l._A?.performance?.getEntriesByType(\"resource\").forEach((t=\u003e{if(t.initiatorType in e\u0026\u00260!==t.responseStatus){const n={status:t.responseStatus},i={rxSize:t.transferSize,duration:Math.floor(t.duration),cbTime:0};Y(n,t.name),this.handler(\"xhr\",[n,i,t.startTime,t.responseEnd,e[t.initiatorType]],void 0,r.D.ajax)}}))}catch(e){}(0,B.u5)(this.ee),(0,B.Kf)(this.ee),function(e,t,i,o){function a(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=x,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},e.addEventListener(\"load\",(function(r){E(t,e)}),(0,R.m$)(!1)),l.IF||e.addEventListener(\"progress\",(function(e){t.lastSize=e.loaded}),(0,R.m$)(!1))}function s(e){this.params={method:e[0]},Y(this,e[1]),this.metrics={}}function c(t,r){var i=(0,n.DL)(e);i.xpid\u0026\u0026this.sameOrigin\u0026\u0026r.setRequestHeader(\"X-NewRelic-ID\",i.xpid);var a=o.generateTracePayload(this.parsedOrigin);if(a){var s=!1;a.newrelicHeader\u0026\u0026(r.setRequestHeader(\"newrelic\",a.newrelicHeader),s=!0),a.traceContextParentHeader\u0026\u0026(r.setRequestHeader(\"traceparent\",a.traceContextParentHeader),a.traceContextStateHeader\u0026\u0026r.setRequestHeader(\"tracestate\",a.traceContextStateHeader),s=!0),s\u0026\u0026(this.dt=a)}}function u(e,r){var n=this.metrics,i=e[0],o=this;if(n\u0026\u0026i){var a=F(i);a\u0026\u0026(n.txSize=a)}this.startTime=(0,D.z)(),this.body=i,this.listener=function(e){try{\"abort\"!==e.type||o.loadCaptureCalled||(o.params.aborted=!0),(\"load\"!==e.type||o.called===o.totalCbs\u0026\u0026(o.onloadCalled||\"function\"!=typeof r.onload)\u0026\u0026\"function\"==typeof o.end)\u0026\u0026o.end(r)}catch(e){try{t.emit(\"internal-error\",[e])}catch(e){}}};for(var s=0;s\u003cZ;s++)r.addEventListener(G[s],this.listener,(0,R.m$)(!1))}function d(e,t,r){this.cbTime+=e,t?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled\u0026\u0026\"function\"==typeof r.onload||\"function\"!=typeof this.end||this.end(r)}function f(e,t){var r=\"\"+z(e)+!!t;this.xhrGuids\u0026\u0026!this.xhrGuids[r]\u0026\u0026(this.xhrGuids[r]=!0,this.totalCbs+=1)}function h(e,t){var r=\"\"+z(e)+!!t;this.xhrGuids\u0026\u0026this.xhrGuids[r]\u0026\u0026(delete this.xhrGuids[r],this.totalCbs-=1)}function p(){this.endTime=(0,D.z)()}function g(e,r){r instanceof X\u0026\u0026\"load\"===e[0]\u0026\u0026t.emit(\"xhr-load-added\",[e[1],e[2]],r)}function m(e,r){r instanceof X\u0026\u0026\"load\"===e[0]\u0026\u0026t.emit(\"xhr-load-removed\",[e[1],e[2]],r)}function v(e,t,r){t instanceof X\u0026\u0026(\"onload\"===r\u0026\u0026(this.onload=!0),(\"load\"===(e[0]\u0026\u0026e[0].type)||this.onload)\u0026\u0026(this.xhrCbStart=(0,D.z)()))}function b(e,r){this.xhrCbStart\u0026\u0026t.emit(\"xhr-cb-time\",[(0,D.z)()-this.xhrCbStart,this.onload,r],r)}function y(e){var t,r=e[1]||{};if(\"string\"==typeof e[0]?0===(t=e[0]).length\u0026\u0026l.il\u0026\u0026(t=\"\"+l._A.location.href):e[0]\u0026\u0026e[0].url?t=e[0].url:l._A?.URL\u0026\u0026e[0]\u0026\u0026e[0]instanceof URL?t=e[0].href:\"function\"==typeof e[0].toString\u0026\u0026(t=e[0].toString()),\"string\"==typeof t\u0026\u00260!==t.length){t\u0026\u0026(this.parsedOrigin=(0,U.e)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var n=o.generateTracePayload(this.parsedOrigin);if(n\u0026\u0026(n.newrelicHeader||n.traceContextParentHeader))if(e[0]\u0026\u0026e[0].headers)s(e[0].headers,n)\u0026\u0026(this.dt=n);else{var i={};for(var a in r)i[a]=r[a];i.headers=new Headers(r.headers||{}),s(i.headers,n)\u0026\u0026(this.dt=n),e.length\u003e1?e[1]=i:e.push(i)}}function s(e,t){var r=!1;return t.newrelicHeader\u0026\u0026(e.set(\"newrelic\",t.newrelicHeader),r=!0),t.traceContextParentHeader\u0026\u0026(e.set(\"traceparent\",t.traceContextParentHeader),t.traceContextStateHeader\u0026\u0026e.set(\"tracestate\",t.traceContextStateHeader),r=!0),r}}function A(e,t){this.params={},this.metrics={},this.startTime=(0,D.z)(),this.dt=t,e.length\u003e=1\u0026\u0026(this.target=e[0]),e.length\u003e=2\u0026\u0026(this.opts=e[1]);var r,n=this.opts||{},i=this.target;\"string\"==typeof i?r=i:\"object\"==typeof i\u0026\u0026i instanceof W?r=i.url:l._A?.URL\u0026\u0026\"object\"==typeof i\u0026\u0026i instanceof URL\u0026\u0026(r=i.href),Y(this,r);var o=(\"\"+(i\u0026\u0026i instanceof W\u0026\u0026i.method||n.method||\"GET\")).toUpperCase();this.params.method=o,this.body=n.body,this.txSize=F(n.body)||0}function w(e,t){var n;this.endTime=(0,D.z)(),this.params||(this.params={}),this.params.status=t?t.status:0,\"string\"==typeof this.rxSize\u0026\u0026this.rxSize.length\u003e0\u0026\u0026(n=+this.rxSize);var o={txSize:this.txSize,rxSize:n,duration:(0,D.z)()-this.startTime};i(\"xhr\",[this.params,o,this.startTime,this.endTime,\"fetch\"],this,r.D.ajax)}function x(e){var t=this.params,n=this.metrics;if(!this.ended){this.ended=!0;for(var o=0;o\u003cZ;o++)e.removeEventListener(G[o],this.listener,!1);t.aborted||(n.duration=(0,D.z)()-this.startTime,this.loadCaptureCalled||4!==e.readyState?null==t.status\u0026\u0026(t.status=0):E(this,e),n.cbTime=this.cbTime,i(\"xhr\",[t,n,this.startTime,this.endTime,\"xhr\"],this,r.D.ajax))}}function E(e,n){e.params.status=n.status;var i=function(e,t){var r=e.responseType;return\"json\"===r\u0026\u0026null!==t?t:\"arraybuffer\"===r||\"blob\"===r||\"json\"===r?F(e.response):\"text\"===r||\"\"===r||void 0===r?F(e.responseText):void 0}(n,e.lastSize);if(i\u0026\u0026(e.metrics.rxSize=i),e.sameOrigin){var o=n.getResponseHeader(\"X-NewRelic-App-Data\");o\u0026\u0026((0,T.p)(I.mY,[\"Ajax/CrossApplicationTracing/Header/Seen\"],void 0,r.D.metrics,t),e.params.cat=o.split(\", \").pop())}e.loadCaptureCalled=!0}t.on(\"new-xhr\",a),t.on(\"open-xhr-start\",s),t.on(\"open-xhr-end\",c),t.on(\"send-xhr-start\",u),t.on(\"xhr-cb-time\",d),t.on(\"xhr-load-added\",f),t.on(\"xhr-load-removed\",h),t.on(\"xhr-resolved\",p),t.on(\"addEventListener-end\",g),t.on(\"removeEventListener-end\",m),t.on(\"fn-end\",b),t.on(\"fetch-before-start\",y),t.on(\"fetch-start\",A),t.on(\"fn-start\",v),t.on(\"fetch-done\",w)}(e,this.ee,this.handler,this.dt),this.importAggregator()}}}function Y(e,t){var r=(0,U.e)(t),n=e.params||e;n.hostname=r.hostname,n.port=r.port,n.protocol=r.protocol,n.host=r.hostname+\":\"+r.port,n.pathname=r.pathname,e.parsedOrigin=r,e.sameOrigin=r.sameOrigin}var J=i(3614);const{BST_RESOURCE:Q,RESOURCE:ee,START:te,END:re,FEATURE_NAME:ne,FN_END:ie,FN_START:oe,PUSH_STATE:ae}=J;var se=i(7056),ce=i(7144);class ue extends f{static featureName=ce.t9;constructor(e,t){let r=!(arguments.length\u003e2\u0026\u0026void 0!==arguments[2])||arguments[2];super(e,t,ce.t9,r);try{const e=JSON.parse(localStorage.getItem(\"NRBA_SESSION\"));e.sessionReplayMode!==se.IK.OFF?this.#a(e.sessionReplayMode):this.importAggregator({})}catch(e){this.importAggregator({})}}async#a(e){const{Recorder:t}=await Promise.all([i.e(111),i.e(433)]).then(i.bind(i,4136));this.recorder=new t({mode:e,agentIdentifier:this.agentIdentifier}),this.recorder.startRecording(),this.importAggregator({recorder:this.recorder})}}var de=i(7836);const{FEATURE_NAME:le,START:fe,END:he,BODY:pe,CB_END:ge,JS_TIME:me,FETCH:ve,FN_START:be,CB_START:ye,FN_END:Ae}=de;var we=i(4649);class xe extends f{static featureName=we.t;constructor(e,t){let r=!(arguments.length\u003e2\u0026\u0026void 0!==arguments[2])||arguments[2];super(e,t,we.t,r),this.importAggregator()}}new class extends t{constructor(t){let r=arguments.length\u003e1\u0026\u0026void 0!==arguments[1]?arguments[1]:(0,E.ky)(16);super(),l._A?(this.agentIdentifier=r,this.sharedAggregator=new v({agentIdentifier:this.agentIdentifier}),this.features={},(0,x.h5)(r,this),this.desiredFeatures=new Set(t.features||[]),this.desiredFeatures.add(p),(0,s.j)(this,t,t.loaderType||\"agent\"),this.run()):(0,e.Z)(\"Failed to initial the agent. Could not determine the runtime environment.\")}get config(){return{info:(0,n.C5)(this.agentIdentifier),init:(0,n.P_)(this.agentIdentifier),loader_config:(0,n.DL)(this.agentIdentifier),runtime:(0,n.OP)(this.agentIdentifier)}}run(){try{const t=a(this.agentIdentifier),n=[...this.desiredFeatures];n.sort(((e,t)=\u003er.p[e.featureName]-r.p[t.featureName])),n.forEach((n=\u003e{if(t[n.featureName]||n.featureName===r.D.pageViewEvent){const i=function(e){switch(e){case r.D.ajax:return[r.D.jserrors];case r.D.sessionTrace:return[r.D.ajax,r.D.pageViewEvent];case r.D.sessionReplay:return[r.D.sessionTrace];case r.D.pageViewTiming:return[r.D.pageViewEvent];default:return[]}}(n.featureName);i.every((e=\u003et[e]))||(0,e.Z)(\"\".concat(n.featureName,\" is enabled but one or more dependent features has been disabled (\").concat((0,_.P)(i),\"). This may cause unintended consequences or missing data...\")),this.features[n.featureName]=new n(this.agentIdentifier,this.sharedAggregator)}}))}catch(t){(0,e.Z)(\"Failed to initialize all enabled instrument classes (agent aborted) -\",t);for(const e in this.features)this.features[e].abortHandler?.();const r=(0,x.fP)();return delete r.initializedAgents[this.agentIdentifier]?.api,delete r.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator,r.ee?.abort(),delete r.ee?.get(this.agentIdentifier),!1}}}({features:[K,p,O,class extends f{static featureName=ne;constructor(e,t){if(super(e,t,ne,!(arguments.length\u003e2\u0026\u0026void 0!==arguments[2])||arguments[2]),!l.il)return;const n=this.ee;let i;(0,B.QU)(n),this.eventsEE=(0,B.em)(n),this.eventsEE.on(oe,(function(e,t){this.bstStart=(0,D.z)()})),this.eventsEE.on(ie,(function(e,t){(0,T.p)(\"bst\",[e[0],t,this.bstStart,(0,D.z)()],void 0,r.D.sessionTrace,n)})),n.on(ae+te,(function(e){this.time=(0,D.z)(),this.startPath=location.pathname+location.hash})),n.on(ae+re,(function(e){(0,T.p)(\"bstHist\",[location.pathname+location.hash,this.startPath,this.time],void 0,r.D.sessionTrace,n)}));try{i=new PerformanceObserver((e=\u003e{const t=e.getEntries();(0,T.p)(Q,[t],void 0,r.D.sessionTrace,n)})),i.observe({type:ee,buffered:!0})}catch(e){}this.importAggregator({resourceObserver:i})}},ue,j,xe,k,class extends f{static featureName=le;constructor(e,t){if(super(e,t,le,!(arguments.length\u003e2\u0026\u0026void 0!==arguments[2])||arguments[2]),!l.il)return;if(!(0,n.OP)(e).xhrWrappable)return;try{this.removeOnAbort=new AbortController}catch(e){}let r,i=0;const o=this.ee.get(\"tracer\"),a=(0,B._L)(this.ee),s=(0,B.Lg)(this.ee),c=(0,B.BV)(this.ee),u=(0,B.Kf)(this.ee),d=this.ee.get(\"events\"),f=(0,B.u5)(this.ee),h=(0,B.QU)(this.ee),p=(0,B.Gm)(this.ee);function g(e,t){h.emit(\"newURL\",[\"\"+window.location,t])}function m(){i++,r=window.location.hash,this[be]=(0,D.z)()}function v(){i--,window.location.hash!==r\u0026\u0026g(0,!0);var e=(0,D.z)();this[me]=~~this[me]+e-this[be],this[Ae]=e}function b(e,t){e.on(t,(function(){this[t]=(0,D.z)()}))}this.ee.on(be,m),s.on(ye,m),a.on(ye,m),this.ee.on(Ae,v),s.on(ge,v),a.on(ge,v),this.ee.buffer([be,Ae,\"xhr-resolved\"],this.featureName),d.buffer([be],this.featureName),c.buffer([\"setTimeout\"+he,\"clearTimeout\"+fe,be],this.featureName),u.buffer([be,\"new-xhr\",\"send-xhr\"+fe],this.featureName),f.buffer([ve+fe,ve+\"-done\",ve+pe+fe,ve+pe+he],this.featureName),h.buffer([\"newURL\"],this.featureName),p.buffer([be],this.featureName),s.buffer([\"propagate\",ye,ge,\"executor-err\",\"resolve\"+fe],this.featureName),o.buffer([be,\"no-\"+be],this.featureName),a.buffer([\"new-jsonp\",\"cb-start\",\"jsonp-error\",\"jsonp-end\"],this.featureName),b(f,ve+fe),b(f,ve+\"-done\"),b(a,\"new-jsonp\"),b(a,\"jsonp-end\"),b(a,\"cb-start\"),h.on(\"pushState-end\",g),h.on(\"replaceState-end\",g),window.addEventListener(\"hashchange\",g,(0,R.m$)(!0,this.removeOnAbort?.signal)),window.addEventListener(\"load\",g,(0,R.m$)(!0,this.removeOnAbort?.signal)),window.addEventListener(\"popstate\",(function(){g(0,i\u003e1)}),(0,R.m$)(!0,this.removeOnAbort?.signal)),this.abortHandler=this.#o,this.importAggregator()}#o(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}],loaderType:\"spa\"})})()})();\u003c/script\u003e"},"__N_SSP":true},"page":"/[...all]","query":{"is_eu":"1","all":["bayarea","article","fort-point-chain-removal-san-francisco-18569276.php"]},"buildId":"vx6pMFQfRwni0c3YG05Em","isFallback":false,"isExperimentalCompile":false,"dynamicIds":[34274,66258,780,65807,50307,37742,64975,64413,29889,54250,31980,21428,40064,94147,39121,76073,6514,46660,43454,74918],"gssp":true,"scriptLoader":[]}</script><div id="modals"></div><div id="bc-target-body"></div></body></html>