mealie/tests/data/html/nutty-umami-noodles-with-scallion-brown-butter-and-snow-peas-recipe.html
Hayden c696dee320
Feature/import keywords as tags (#1170)
* feat: import original keywords as tags

* remove cached env

* Update frontend api types

* fix: Issues with previous tag scraping implementation

* Update category handling in backend

* Update backend tests to include group_id

* Correct type check

* Update create-url interface

* Improve tag cleaner list support

* remove builtin name shadowing

* update type annotations

* test include tags scraper

* implement scaper context for optional data

* readd cache venv

* use continue instead of break

* remove test callback

Co-authored-by: Miroito <alban.vachette@gmail.com>
2022-04-23 12:23:12 -08:00

2 lines
472 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html><html lang="en-US"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <title>Nutty Umami Noodles With Scallion Brown Butter and Snow Peas Recipe | Bon Appétit </title> <meta content="IE=edge" http-equiv="X-UA-Compatible"/> <meta name="msapplication-tap-highlight" content="no"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <meta name="referrer" content="no-referrer-when-downgrade"/> <meta name="author" content="Condé Nast"/> <meta name="copyright" content="Copyright (c) Condé Nast 2022"/> <meta name="description" content="Brown butter and savory oyster sauce make a flavor duo so beautiful we&#39;re wondering what took us so long to combine them."/> <meta name="id" content="625eb968d2dd9946d391d0e8"/> <meta name="keywords" content="dinner,main,vegetarian,easy,quick,weeknight meals,sauté,pea,noodle,udon noodle,ramen noodle"/> <meta name="news_keywords" content="dinner,main,vegetarian,easy,quick,weeknight meals,sauté,pea,noodle,udon noodle,ramen noodle"/> <meta name="robots" content="index, follow, max-image-preview:large"/> <meta name="content-type" content="recipe"/> <meta name="parsely-post-id" content="625eb968d2dd9946d391d0e8"/> <meta name="parsely-metadata" content='{"description":"Brown butter and savory oyster sauce make a flavor duo so beautiful we&#39;re wondering what took us so long to combine them.","image-16-9":"https://assets.bonappetit.com/photos/625def3e989fa4e14e8195db/16:9/w_1000,c_limit/0418-snow-pea-noodles-lede.jpg","image-1-1":"https://assets.bonappetit.com/photos/625def3e989fa4e14e8195db/1:1/w_1000,c_limit/0418-snow-pea-noodles-lede.jpg"}'/> <meta property="og:description" content="Brown butter and savory oyster sauce make a flavor duo so beautiful we&#39;re wondering what took us so long to combine them."/> <meta property="og:image" content="https://assets.bonappetit.com/photos/625def3e989fa4e14e8195db/16:9/w_1280,c_limit/0418-snow-pea-noodles-lede.jpg"/> <meta property="og:site_name" content="Bon Appétit"/> <meta property="og:title" content="Nutty Umami Noodles With Scallion Brown Butter and Snow Peas"/> <meta property="og:type" content="article"/> <meta property="og:url" content="https://www.bonappetit.com/recipe/nutty-umami-noodles-with-scallion-brown-butter-and-snow-peas"/> <meta property="article:content_tier" content="free"/> <meta property="article:opinion" content="false"/> <meta http-equiv="content-language" content="en-US"/> <meta property="article:section" content="ingredient"/> <meta property="article:published_time" content="2022-04-21T15:29:05.087Z"/> <meta property="twitter:card" content="summary_large_image"/> <meta property="twitter:creator" content="@bonappetit"/> <meta property="twitter:description" content="Brown butter and savory oyster sauce make a flavor duo so beautiful we&#39;re wondering what took us so long to combine them."/> <meta property="twitter:domain" content="https://www.bonappetit.com"/> <meta property="twitter:image" content="https://assets.bonappetit.com/photos/625def3e989fa4e14e8195db/16:9/w_1280,c_limit/0418-snow-pea-noodles-lede.jpg?mbid=social_retweet"/> <meta property="twitter:site" content="@bonappetit"/> <meta property="twitter:title" content="Nutty Umami Noodles With Scallion Brown Butter and Snow Peas"/> <meta property="fb:app_id" content="2309869772"/> <meta property="fb:pages" content="37940325366"/> <link rel="canonical" href="https://www.bonappetit.com/recipe/nutty-umami-noodles-with-scallion-brown-butter-and-snow-peas"/> <style data-styled="active" data-styled-version="5.3.1"></style> <link rel="shortcut icon" href="https://www.bonappetit.com/verso/static/bon-appetit/assets/favicon.ico" type="image/x-icon"/> <link rel="preconnect" href="https://polyfill.io/"/> <style></style> <style class="darkreader darkreader--sync" media="screen"></style> <link rel="preload" as="image" href="https://assets.bonappetit.com/photos/625def3e989fa4e14e8195db/1:1/w_2560,c_limit/0418-snow-pea-noodles-lede.jpg" imagesrcset="https://assets.bonappetit.com/photos/625def3e989fa4e14e8195db/1:1/w_120,c_limit/0418-snow-pea-noodles-lede.jpg 120w, https://assets.bonappetit.com/photos/625def3e989fa4e14e8195db/1:1/w_240,c_limit/0418-snow-pea-noodles-lede.jpg 240w, https://assets.bonappetit.com/photos/625def3e989fa4e14e8195db/1:1/w_320,c_limit/0418-snow-pea-noodles-lede.jpg 320w, https://assets.bonappetit.com/photos/625def3e989fa4e14e8195db/1:1/w_640,c_limit/0418-snow-pea-noodles-lede.jpg 640w, https://assets.bonappetit.com/photos/625def3e989fa4e14e8195db/1:1/w_960,c_limit/0418-snow-pea-noodles-lede.jpg 960w, https://assets.bonappetit.com/photos/625def3e989fa4e14e8195db/1:1/w_1280,c_limit/0418-snow-pea-noodles-lede.jpg 1280w, https://assets.bonappetit.com/photos/625def3e989fa4e14e8195db/1:1/w_1600,c_limit/0418-snow-pea-noodles-lede.jpg 1600w, https://assets.bonappetit.com/photos/625def3e989fa4e14e8195db/1:1/w_1920,c_limit/0418-snow-pea-noodles-lede.jpg 1920w, https://assets.bonappetit.com/photos/625def3e989fa4e14e8195db/1:1/w_2240,c_limit/0418-snow-pea-noodles-lede.jpg 2240w" imagesizes="100vw"/> <style></style> <style class="darkreader darkreader--sync" media="screen"></style> <link rel="amphtml" href="https://www.bonappetit.com/recipe/nutty-umami-noodles-with-scallion-brown-butter-and-snow-peas/amp"/> <script src="./Nutty Umami Noodles With Scallion Brown Butter and Snow Peas Recipe _ Bon Appétit_files/dnsfeed" async="" type="text/javascript" ></script> <script type="text/javascript">window.cns=window.cns ||{}; window.cns.pageContext={channel: "recipes", contentType: "recipe", keywords:{copilotid: ["625eb968d2dd9946d391d0e8"], platform: ["verso"], tags: [ "meal-time", "dinner", "meal", "main", "simple-cooking", "quick", "weeknight-meals", "diet", "vegetarian", "easy", "cooking-method", "saute", "ingredient", "pasta-noodles", "noodle", "ramen-noodle", "vegetable", "pea", "udon-noodle", "recipes",],}, server: "production", slug: "nutty-umami-noodles-with-scallion-brown-butter-and-snow-peas", subChannel: "", subSubChannel: "", templateType: "mt_recipe",}; </script> <script></script> <link rel="preload" href="./Nutty Umami Noodles With Scallion Brown Butter and Snow Peas Recipe _ Bon Appétit_files/otSDKStub.js" as="script"/> <link rel="preload" href="./Nutty Umami Noodles With Scallion Brown Butter and Snow Peas Recipe _ Bon Appétit_files/otCCPAiab.js" as="script"/> <script async="" src="./Nutty Umami Noodles With Scallion Brown Butter and Snow Peas Recipe _ Bon Appétit_files/otSDKStub.js" data-domain-script="2b1678e7-4fdb-4d18-9052-f5d7a27064b5" ></script> <script>window.OptanonWrapper=function (){var CCPAButton=document.getElementById("ot-sdk-btn"); CCPAButton && CCPAButton.classList.add("ot-sdk-btn--visible"); window.dataLayer && window.dataLayer.push({event: "OneTrustGroupsUpdated"}); window.cnBus && window.cnBus.emit("onetrust.OneTrustGroupsUpdated");}; function getCookie(name){var parts=("; " + document.cookie).split("; " + name + "="); if (2==parts.length) return parts.pop().split(";").shift();}function setCookie(cname, cvalue, exdays){var d=new Date(); d.setTime(d.getTime() + 24 * exdays * 60 * 60 * 1e3); var expires="expires=" + d.toUTCString(); document.cookie=cname + "=" + cvalue + ";" + expires + ";path=/";}function setGPC(){var gpcValue=navigator.globalPrivacyControl; if (null==getCookie("OptanonAlertBoxClosed") && gpcValue){console.log( "First visit & GPC enabled; setting targeting group to 0" ); setCookie( "OptanonConsent", encodeURIComponent("groups=C0003:0,C0004:0,C0005:0"), 365 );}}setGPC(); </script> <script async="" src="./Nutty Umami Noodles With Scallion Brown Butter and Snow Peas Recipe _ Bon Appétit_files/otCCPAiab.js" ccpa-opt-out-ids="C0002, C0003, C0004, C0005" ccpa-opt-out-lspa="false" ccpa-opt-out-geo="ca" ></script> <link rel="preconnect" href="https://securepubads.g.doubleclick.net/"/> <script src="./Nutty Umami Noodles With Scallion Brown Butter and Snow Peas Recipe _ Bon Appétit_files/gpt.js" id="gpt-script" async="" ></script> <script src="./Nutty Umami Noodles With Scallion Brown Butter and Snow Peas Recipe _ Bon Appétit_files/moatheader.js" async="" ></script> <script>window.googletag=window.googletag ||{}; window.googletag.cmd=window.googletag.cmd || []; window.cns=window.cns ||{}; window.cns.queue=window.cns.queue || []; window.cns.async=function (s, c){cns.queue.push({service: s, callback: c});}; window.sparrowQueue=window.sparrowQueue || []; </script> <script src="./Nutty Umami Noodles With Scallion Brown Butter and Snow Peas Recipe _ Bon Appétit_files/apstag.js" async="" ></script> <script src="./Nutty Umami Noodles With Scallion Brown Butter and Snow Peas Recipe _ Bon Appétit_files/prebid.min.js" async="" ></script> <script src="./Nutty Umami Noodles With Scallion Brown Butter and Snow Peas Recipe _ Bon Appétit_files/183973-93942139695505.js" async="" ></script> <script></script> <script type="application/ld+json">{"@context": "http://schema.org", "@type": "Recipe", "articleBody": "Ideal for busy days, these quick, simple noodles taste like they took hours to make. Pantry superstar oyster sauce is beloved for its salty, funky flavors—its great for adding a quick hit of umami—but can be a bit intense solo. Thats where the scallion brown butter comes in—scallions sizzle away while the butter browns, yielding toasty scallions and an aromatic, nutty fat that cuts through the intensity of the oyster sauce. Throw in some crisp snow peas and toss everything together with some cooked noodles for a low-lift, high-reward meal that comes together in a flash. If snow peas arent available, feel free to swap in any other quick-cooking crisp vegetable you like; sliced bell pepper or chopped broccolini would work just as well. —Zaynab Issa", "alternativeHeadline": "Brown butter and savory oyster sauce make a flavor duo so beautiful we're wondering what took us so long to combine them.", "keywords": [ "dinner", "main", "vegetarian", "easy", "quick", "weeknight meals", "sauté", "pea", "noodle", "udon noodle", "ramen noodle", "web"], "thumbnailUrl": "https://assets.bonappetit.com/photos/625def3e989fa4e14e8195db/3:2/w_4200,h_2800,c_limit/0418-snow-pea-noodles-lede.jpg", "publisher":{"@context": "https://schema.org", "@type": "Organization", "name": "Bon Appétit", "logo":{"@type": "ImageObject", "url": "https://www.bonappetit.com/verso/static/bon-appetit/assets/logo-seo.328de564b950e3d5d1fbe3e42f065290ca1d3844.png", "width": "479px", "height": "100px"}, "url": "https://www.bonappetit.com"}, "isPartOf":{"@type": "CreativeWork", "name": "Bon Appétit"}, "isAccessibleForFree": true, "author": [{"@type": "Person", "name": "Zaynab Issa", "sameAs": "https://www.bonappetit.com/contributor/zaynab-issa"}], "aggregateRating":{"@type": "AggregateRating", "ratingValue": 5, "ratingCount": 1}, "description": "Brown butter and savory oyster sauce make a flavor duo so beautiful we're wondering what took us so long to combine them.", "image": [ "https://assets.bonappetit.com/photos/625def3e989fa4e14e8195db/3:4/w_2100,h_2800,c_limit/0418-snow-pea-noodles-lede.jpg", "https://assets.bonappetit.com/photos/625def3e989fa4e14e8195db/4:5/w_2240,h_2800,c_limit/0418-snow-pea-noodles-lede.jpg", "https://assets.bonappetit.com/photos/625def3e989fa4e14e8195db/5:7/w_2000,h_2800,c_limit/0418-snow-pea-noodles-lede.jpg", "https://assets.bonappetit.com/photos/625def3e989fa4e14e8195db/6:9/w_1866,h_2799,c_limit/0418-snow-pea-noodles-lede.jpg", "https://assets.bonappetit.com/photos/625def3e989fa4e14e8195db/5:4/w_3500,h_2800,c_limit/0418-snow-pea-noodles-lede.jpg", "https://assets.bonappetit.com/photos/625def3e989fa4e14e8195db/8:5/w_4200,h_2625,c_limit/0418-snow-pea-noodles-lede.jpg", "https://assets.bonappetit.com/photos/625def3e989fa4e14e8195db/2:1/w_4200,h_2100,c_limit/0418-snow-pea-noodles-lede.jpg", "https://assets.bonappetit.com/photos/625def3e989fa4e14e8195db/16:9/w_4191,h_2357,c_limit/0418-snow-pea-noodles-lede.jpg", "https://assets.bonappetit.com/photos/625def3e989fa4e14e8195db/4:3/w_3732,h_2799,c_limit/0418-snow-pea-noodles-lede.jpg", "https://assets.bonappetit.com/photos/625def3e989fa4e14e8195db/1:1/w_2800,h_2800,c_limit/0418-snow-pea-noodles-lede.jpg", "https://assets.bonappetit.com/photos/625def3e989fa4e14e8195db/2:3/w_1866,h_2799,c_limit/0418-snow-pea-noodles-lede.jpg", "https://assets.bonappetit.com/photos/625def3e989fa4e14e8195db/3:2/w_4200,h_2800,c_limit/0418-snow-pea-noodles-lede.jpg"], "headline": "Nutty Umami Noodles With Scallion Brown Butter and Snow Peas", "name": "Nutty Umami Noodles With Scallion Brown Butter and Snow Peas", "recipeIngredient": [ "16 oz. fresh or dried wheat noodles (such as lo mein, udon, or ramen)", "⅓ cup oyster sauce", "⅓ cup (or more) soy sauce", "1 Tbsp. plus 1½ tsp. unseasoned rice vinegar", "1 Tbsp. sugar", "6 scallions", "½ cup (1 stick) unsalted butter", "4 garlic cloves, finely chopped", "8 oz. snow peas", "¾ tsp. mild chile flakes, plus more for serving"], "recipeInstructions": [{"@type": "HowToStep", "text": "Cook 16 oz. fresh or dried wheat noodles in a large pot of boiling water according to package directions. Drain, reserving 1 cup noodle cooking liquid; set noodles aside."},{"@type": "HowToStep", "text": "Whisk ⅓ cup oyster sauce, ⅓ cup soy sauce, 1 Tbsp. plus 1½ tsp. unseasoned rice vinegar, and 1 Tbsp. sugar in a small bowl until combined; set sauce aside."},{"@type": "HowToStep", "text": "Separate dark green tops from white and pale green parts of 6 scallions; thinly slice tops and set aside. Thinly slice white and pale green parts."},{"@type": "HowToStep", "text": "Cook ½ cup (1 stick) unsalted butter and white and pale green parts of scallions in a large skillet over medium-high, stirring often, until milk solids are golden brown and scallions are softened and starting to brown, about 4 minutes. Add 4 garlic cloves, finely chopped, 8 oz. snow peas, ¾ tsp. mild chile flakes, and most of reserved scallion tops. Cook, stirring constantly, until milk solids are deep amber in color and snow peas are bright green and just crisp-tender, about 1 minute."},{"@type": "HowToStep", "text": "Stir in reserved sauce and bring to a simmer. Add reserved noodles and pour in ¼ cup reserved noodle cooking liquid. Cook, tossing often and adding more noodle cooking liquid as needed, until sauce is glossy and clings to noodles, about 1 minute. Taste and add more soy sauce if needed."},{"@type": "HowToStep", "text": "Divide noodles among bowls and top with more mild chile flakes and remaining scallion tops."}], "recipeYield": "46 servings", "url": "https://www.bonappetit.com/recipe/nutty-umami-noodles-with-scallion-brown-butter-and-snow-peas", "dateModified": "2022-04-21T11:29:05.087-04:00", "datePublished": "2022-04-21T11:29:05.087-04:00"}</script> <meta id="google-signin-meta" name="google-signin-client_id" content="487753253869-45a2hlctt5rjl4i54eqdpih0s1353u4s.apps.googleusercontent.com"/> <script id="google-api-script" src="./Nutty Umami Noodles With Scallion Brown Butter and Snow Peas Recipe _ Bon Appétit_files/platform.js" async="" defer="" gapi_processed="true" ></script> <script id="martech-lib-pre-script"> window.Martech=window.Martech || new Promise((resolve)=>{window._mt_init={resolve};}); window.Martech.then((martech)=>{martech.setConfig({// custom behavior for header based authentication authHeaders: ()=> ({Authorization: "Bearer " + (martech.util.getCookie("CN_token_id") || martech.util.getCookie("CN_userAuth")),}),});}); </script> <script id="martech-lib-script" src="./Nutty Umami Noodles With Scallion Brown Butter and Snow Peas Recipe _ Bon Appétit_files/martech.js" async="" defer="" ></script> <meta name="darkreader" content="bf77296e8a6946f3929f28707c93d9c5"/> <script src="./Nutty Umami Noodles With Scallion Brown Butter and Snow Peas Recipe _ Bon Appétit_files/bonappetit.js" async="" class="processed" ></script> <script src="./Nutty Umami Noodles With Scallion Brown Butter and Snow Peas Recipe _ Bon Appétit_files/gtm.js"></script> <style class="darkreader darkreader--sync" media="screen"></style> <script src="./Nutty Umami Noodles With Scallion Brown Butter and Snow Peas Recipe _ Bon Appétit_files/otBannerSdk.js" async="" type="text/javascript" ></script> </head> <body class="stackednavigation-site-navigation fixed-header-logo-with-search-bar-nav-variation" > <noscript ><iframe title="Google Tag Manager" src="https://www.googletagmanager.com/ns.html?id=GTM-TLPN5X9" height="0" width="0" style="display: none; visibility: hidden" ></iframe ></noscript> <div id="app-root"> <div class="BasePageWrapper-bQpzig fzAKwd page page-theme-standard RecipePageWrapper-byDkQd dJDWmA" data-event-boundary="click" data-event-click='{"pattern":"RecipePage"}' data-in-view='{"pattern":"RecipePage"}' data-include-experiments="true" > <div id="parsely-root" style="display: none"> <div id="parsely-cfg" data-parsely-site="bonappetit.com"></div></div><script>window.PARSELY={autotrack: false, onReady: ()=>{window.PARSELY.resolver();},}; window.PARSELY.ready=new Promise((resolver)=>{window.PARSELY.resolver=resolver;}); </script> <div class="BasePageNavigationBackgroundFiller-ixAqRD jPwTuH"></div><div class="AdWrapper-fFweuL dIvDeZ BasePageAd-hvlMyG doquIe ad ad--out-of-page" > <div class="ad__slot ad__slot--out-of-page" data-node-id="1hwsjj" ></div></div><a href="https://www.bonappetit.com/recipe/nutty-umami-noodles-with-scallion-brown-butter-and-snow-peas#main-content" data-testid="BasePageSkipLink" class="BaseWrap-sc-TURhJ BaseText-fFzBQt BaseLink-gZQqBA BasePageSkipLink-dPchKK eTiIvU iwPQea bzVvKL FNQtY" >Skip to main content</a > <div class="InterstitialWrapper-hmcllE dcBkBZ"> <aside class="PaywallModalWrapper-isZYYD kIfECW paywall-modal paywall-modal--paywall" > <div class="ConsumerMarketingUnitThemedWrapper-kkMeXf hBFNZw ConsumerMarketingUnitWrapper-imvevO KrnQg paywall-modal__consumer-marketing-unit consumer-marketing-unit consumer-marketing-unit--paywall-modal-full-barrier" role="presentation" aria-hidden="true" aria-live="assertive" > <div class="consumer-marketing-unit__slot consumer-marketing-unit__slot--paywall-modal-full-barrier" ></div><div class="journey-unit"></div></div></aside> </div><div class="PersistentTopWrapper-jtkmXQ goBUAB persistent-top" data-testid="PersistentTop" data-journey-hook="persistent-top" data-event-boundary="click" data-event-click='{"pattern":"ConnectedNavigation"}' data-in-view='{"pattern":"ConnectedNavigation"}' data-include-experiments="true" > <header data-testid="StackedNavigationHeader" class="StackedNavigationHeader-geASwb euRbaS stacked-navigation--fixed-header-layout stacked-navigation--theme-standard stacked-navigation--is-scrolled site-navigation" data-event-boundary="click" data-event-click='{"pattern":"StackedNavigation"}' data-in-view='{"pattern":"StackedNavigation"}' data-include-experiments="true" > <div class="ConsumerMarketingUnitThemedWrapper-kkMeXf hBFNZw consumer-marketing-unit consumer-marketing-unit--cm-banner" role="presentation" aria-hidden="true" > <div class="consumer-marketing-unit__slot consumer-marketing-unit__slot--cm-banner" ></div><div class="journey-unit"></div></div><div class="StackedNavigationGrid-dzKoiE khsdjD"> <div class="StackedNavigationTop-ieOldb bqAxtM"> <div class="StackedNavigationSectionCmUnitNavLeft-ckdHJz euSZX"> <div class="ConsumerMarketingUnitThemedWrapper-kkMeXf hBFNZw consumer-marketing-unit consumer-marketing-unit--nav-left" role="presentation" aria-hidden="true" > <div class="consumer-marketing-unit__slot consumer-marketing-unit__slot--nav-left" ></div><div class="journey-unit"></div></div></div><div class="StackedNavigationSectionLogoSize-bjEZDn dZjNVZ stacked-navigation__section--large-logo" > <a href="https://www.bonappetit.com/" data-testid="Logo" class="StackedNavigationLogoLink-laqEYL eiwgkU" ><picture class="ResponsiveImagePicture-jIKgcS fArnhQ responsive-image" ><img alt="Bon Appétit" class="ResponsiveImageContainer-dlOMGF byslZC responsive-image__image" src="./Nutty Umami Noodles With Scallion Brown Butter and Snow Peas Recipe _ Bon Appétit_files/logo.dd1c7cd44efec1aab27082736a05fa3bc8865dad.svg" srcset="" sizes="100vw"/></picture ></a> </div><div class="StackedNavigationSectionUtilityLinks-kmCFvi enivox"> <nav aria-label="Utility" class="NavigationWrapper-cfzTvg fpuNqo" data-testid="navigation" > <ul class="NavigationListWrapper-iOfHJS koYZbz navigation__list" data-testid="navigation__list" > <li class="NavigationListItemWrapper-bfHMIL hvZbcK navigation__list-item" data-testid="navigation__list-item" > <a class="NavigationInternalLink-eJHyE hgjcc navigation__link" href="https://www.bonappetit.com/newsletter/subscribe" data-testid="navigation__internal-link" >Newsletter</a > </li></ul> </nav> <span class="NavigationDivider-SvudS ePNlNg navigation__divider" ></span> <div class="standard-navigation-account StackedNavigationSectionUtilityLinksLogin-eJiosx iqiYbM" > <div class="AlertWrapper-dYgLvk hsgkjY AccountDropdownBookmarkAlert-hcgbNV ilxnYb" data-testid="BookmarkAlertDesktop" role="tooltip" data-event-boundary="click" data-event-click='{"pattern":"ConnectedBookmarkAlert"}' data-in-view='{"pattern":"ConnectedBookmarkAlert"}' data-include-experiments="true" > <div aria-hidden="true" role="presentation" class="AlertArrow-dBbxeu djEzAY alert-arrow" ></div><div aria-hidden="true" role="presentation" class="AlertIconWrapper-iyPBUn iINTqw" > <svg class="icon icon-bookmark icon-bookmark--activated" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" > <title>Story Saved</title> <path class="icon-bookmark-fill icon-bookmark--activated-outline" d="M20 24L12.5 19.7804L5 24V3H20V24ZM12.5 18.6028L19 22.2336V3.98131H6V22.2336L12.5 18.6028Z" fill="black" data-darkreader-inline-fill="" style="--darkreader-inline-fill: #e8e6e3" ></path> <path class="icon-bookmark-fill icon-bookmark--activated-checkmark" d="M11.5541 13.7033L9 11.2033L9.66216 10.5552L11.5541 12.407L15.3378 8.70331L16 9.35146L11.5541 13.7033Z" fill="black" data-darkreader-inline-fill="" style="--darkreader-inline-fill: #e8e6e3" ></path> </svg> </div><div class="BaseWrap-sc-TURhJ BaseText-fFzBQt AlertMessage-kUrqmw dvHCmL fDKqzG livnHH alert-message" > <p> To revisit this article, select My Account, then&nbsp;<a href="https://www.bonappetit.com/account/saved" >View saved stories</a > </p></div><button class="BaseButton-aWfgy ButtonWrapper-dOcxiw bxdYtG fZbFZo button button--utility close-alert-button" data-event-click='{"element":"Button"}' data-testid="Button" role="button" type="button" > <span class="ButtonLabel-eBwykR eTnxrM button__label" >Close Alert</span > <div class="ButtonIconWrapper-ivrAUv kugeta button__icon-container" > <svg class="icon icon-close" focusable="false" viewBox="0 0 32 32" width="32" height="32" xmlns="http://www.w3.org/2000/svg" > <title>Close</title> <path d="M16 14.586l6.364-6.364 1.414 1.414L17.414 16l6.364 6.364-1.414 1.414L16 17.414l-6.364 6.364-1.414-1.414L14.586 16 8.222 9.636l1.414-1.414z" fill-rule="nonzero" ></path> </svg> </div></button> </div><a href="https://www.bonappetit.com/auth/initiate?redirectURL=%2Frecipe%2Fnutty-umami-noodles-with-scallion-brown-butter-and-snow-peas&amp;source=VERSO_NAVIGATION" rel="nofollow" data-testid="signIn" class="StandardNavigationAccountLabel-iCYVjr hrDvmn" >Sign In</a > </div><div class="StackedNavigationConsumerMarketingUnitWrapper-jteDdD iaTqng" > <div class="ConsumerMarketingUnitThemedWrapper-kkMeXf hBFNZw consumer-marketing-unit consumer-marketing-unit--nav-dialog" role="presentation" aria-hidden="true" > <div class="consumer-marketing-unit__slot consumer-marketing-unit__slot--nav-dialog" ></div><div class="journey-unit"></div></div><div class="ConsumerMarketingUnitThemedWrapper-kkMeXf hBFNZw consumer-marketing-unit consumer-marketing-unit--nav-cta" role="presentation" aria-hidden="false" > <div class="consumer-marketing-unit__slot consumer-marketing-unit__slot--nav-cta" ></div><div class="journey-unit"> <div class="journey-template--nav-cta"> <style>.cm-nav-cta__anchor{color: #fff; display: block; font-family: FuturaPT, helvetica, sans-serif; font-size: 12px; font-weight: 600; letter-spacing: 0.167em; line-height: 1.5em; margin-right: 16px; text-decoration: none; text-transform: uppercase;}.cm-nav-cta__anchor:focus, .cm-nav-cta__anchor:hover{text-decoration: underline;}</style ><style class="darkreader darkreader--sync" media="screen" ></style> <a class="cm-nav-cta__anchor" target="_blank" rel="noopener noreferrer" href="https://www.bonappetit.com/v2/offers/ba004?source=JNY_BNA_DESKTOP_NAV_CTA_UNIT_0_BA_SPRING_SALE_APRIL_2022_PANELA_ZZ&amp;Itm_medium=site&amp;Itm_source=JNY_BNA_DESKTOP_NAV_CTA_UNIT&amp;Itm_campaign=ba004" > Subscribe </a> </div></div></div><div class="ConsumerMarketingUnitThemedWrapper-kkMeXf hBFNZw consumer-marketing-unit--nav-rollover ghbiabljfo" role="presentation" aria-hidden="false" style="" > <div class="consumer-marketing-unit__slot consumer-marketing-unit__slot--nav-rollover" ></div><div class="kihbe" style=""> <div class="cm-nav-rollover journey-template--cm_nav_rollover" > <style>@font-face{font-family: Gilroy; font-style: normal; src: url(/verso/static/assets/fonts/Gilroy-Regular.ttf) format("truetype");}@font-face{font-family: Gilroy; font-weight: 800; src: url(/verso/static/assets/fonts/Gilroy-Bold.ttf) format("truetype");}@font-face{font-family: "Graphik Regular"; font-style: normal; font-weight: 400; src: url(/fonts/Graphik-Regular-Web.woff2) format("opentype");}.cm-nav-rollover{background-color: rgba(255, 251, 235, 1); background-image: url("https://assets.bonappetit.com/photos/61f7fd378b85aed2e4c64b3c/master/pass/Jalebi%201.png"); background-position: bottom right; background-repeat: no-repeat; background-size: 170px; height: 200px; padding-left: 14px; padding-top: 13px; width: 300px;}.cm-nav-rollover__container{color: rgba(0, 0, 0, 1); font-family: FuturaPT, helvetica, sans-serif; text-decoration: none;}.cm-nav-rollover-container__hed{width: 244px;}.cm-nav-rollover-container__button span{background: rgba(255, 168, 0, 1); height: 19.48px; padding: 3px 5px; width: 90px;}.cm-nav-rollover-container__dek{font-family: Gilroy, Arial, Helvetica, sans-serif; font-size: 16.06px; font-weight: 800; line-height: 18.4px; margin-top: 9px; white-space: normal; width: 238.5px;}.cm-nav-rollover-container__dek__current-price{color: rgba(255, 168, 0, 1);}.cm-nav-rollover-container__dek__prev-price{color: rgba(0, 0, 0, 1);}.cm-nav-rollover-container__dek__prev-price::after{border-bottom: 2px solid rgba(255, 168, 0, 1); content: ""; left: 46px; position: absolute; right: 0; top: 106px; width: 30px;}.cm-nav-rollover-container__button{font-family: "Graphik Regular", helvetica, sans-serif; font-size: 11.54px; font-weight: 700; margin-top: 23px;}.cm-nav-rollover del{text-decoration-color: rgba(255, 168, 0, 1); text-decoration-thickness: 2px;}.cm-nav-rollover strong{color: rgba(255, 168, 0, 1);}</style ><style class="darkreader darkreader--sync" media="screen" ></style> <a class="cm-nav-rollover__container" href="https://www.bonappetit.com/v2/offers/ba004?source=JNY_BNA_DESKTOP_NAVBAR_ROLLOVER_0_BA_SPRING_SALE_APRIL_2022_PANELA_ZZ&amp;Itm_medium=site&amp;Itm_source=JNY_BNA_DESKTOP_NAVBAR_ROLLOVER&amp;Itm_campaign=ba004" target="_blank" rel="noopener noreferrer" ><div class="cm-nav-rollover__content"> <div class="cm-nav-rollover-container__hed"> <svg viewBox="0 0 244 30" xmlns="http://www.w3.org/2000/svg" > <path d="m19.208 10.818c-3.2829 0-5.6553 2.5252-5.6553 5.8174 0 3.2921 2.3724 5.8173 5.6553 5.8173s5.6553-2.5252 5.6553-5.8173c0-3.2922-2.3724-5.8174-5.6553-5.8174zm0 10.226c-2.2085 0-3.3375-1.92-3.3375-4.4348s1.129-4.4348 3.3375-4.4348c2.2086 0 3.3376 1.92 3.3376 4.4348s-1.1316 4.4348-3.3376 4.4348zm32.834-0.4566c-0.2396 0.1552-0.5123 0.2517-0.796 0.2818-0.3095 0-0.4552-0.1644-0.4552-0.6235v-5.3113c0-2.5252-1.5608-4.1165-4.3598-4.1165-2.5546 0-4.2142 1.2261-4.2142 2.6087-0.0075 0.1431 0.0144 0.2862 0.0645 0.4205 0.05 0.1342 0.1271 0.2567 0.2265 0.3597 0.0993 0.103 0.2187 0.1845 0.3508 0.2392s0.274 0.0815 0.4169 0.0788c0.5827 0 0.9495-0.2765 1.2591-1.1165 0.3277-0.8974 0.7804-1.2626 2.0056-1.2626 1.4047 0 2.0811 0.7513 2.0811 2.2878v0.9678c-5.0336 0.2009-6.9846 1.6826-6.9846 3.8609 0 1.9383 1.4593 3.1461 3.5742 3.1461 0.6663-0.0087 1.3235-0.1563 1.9299-0.4334s1.1486-0.6776 1.5923-1.1762c0.2003 1.0044 0.9287 1.4635 1.9693 1.4635 0.6941-0.0258 1.3552-0.304 1.8599-0.7826l-0.5203-0.8948v0.0026zm-6.3108 0.2818c-1.0223 0-1.7169-0.66-1.7169-1.6826 0-1.3905 1.3501-2.3479 4.5992-2.5618v2.6087c-0.7674 1.0591-1.9354 1.6357-2.8823 1.6357zm36.518-10.764l-0.4916-0.58697 1.5321-1.8652c0.3172-0.39246 0.6577-0.76532 1.0198-1.1165 0.5671-0.47478 1.168-0.43826 1.5608 0.01826 0.3928 0.45653 0.3303 1.0617-0.2602 1.5652-0.4068 0.30326-0.8335 0.57867-1.2772 0.82435l-2.0837 1.1609zm1.0223 10.764c-2.1903 0-3.4311-1.5-3.4311-4.2444-0.0031-0.1281 3e-3 -0.2562 0.0182-0.3835h7.6245v-0.7773c0-2.5227-1.8417-4.6644-4.724-4.6644-2.9734 0-5.2391 2.6348-5.2391 5.8174 0 3.5296 2.1331 5.8174 5.4628 5.8174 1.8625 0 3.5586-0.8974 4.8723-2.507l-0.8272-0.8843c-1.1836 1.1948-2.4063 1.8261-3.7564 1.8261zm-0.5202-8.6713c1.4411 0 2.4088 1.0434 2.4634 2.7626h-5.1714c0.3824-1.727 1.4385-2.7705 2.7158-2.7705l-0.0078 0.0079zm11.839 7.7374l0.822 0.9156c-0.9677 1.0617-2.0629 1.6096-3.2283 1.6096-1.6778 0-2.6455-0.8426-2.6455-2.58v-7.4896h-1.8054v-1.1348c1.8964-0.2374 2.5337-0.8948 2.8459-4.333h1.1108v4.2235h3.1216v1.2443h-3.1216v7.4348c0 0.7826 0.2913 1.0617 0.9495 1.0617 0.7336-0.1175 1.4156-0.4518 1.9588-0.96l-0.0078 0.0079zm2.7548-12.146c0-0.28584 0.0845-0.56526 0.2429-0.80292 0.1583-0.23767 0.3834-0.4229 0.6467-0.53229 0.2634-0.10938 0.5531-0.138 0.8327-0.08224 0.2795 0.05576 0.5363 0.19341 0.7379 0.39553 0.2011 0.20211 0.3391 0.45963 0.3941 0.73997 0.056 0.28034 0.027 0.57093-0.082 0.83501s-0.2935 0.48979-0.5305 0.64859c-0.237 0.15881-0.5156 0.24357-0.8007 0.24357-0.1895 1e-5 -0.3772-0.03768-0.5521-0.1109-0.1749-0.07321-0.3336-0.18049-0.4669-0.31563-0.1334-0.13513-0.2386-0.29544-0.3097-0.47164-0.0711-0.17621-0.1067-0.3648-0.1046-0.55488l-0.0078 0.00783zm-59.311 13.304v1.0435h-5.8556v-1.0435c1.6961-0.1278 1.8418-0.2922 1.8418-1.92v-4.3043c0-1.7009-0.6764-2.4705-2.0265-2.4705-0.9833 0-2.1877 0.7331-3.1736 1.9592v4.8026c0 1.6278 0.1457 1.7921 1.8443 1.92v1.0435h-5.8738v-1.0435c1.6961-0.1279 1.86-0.2922 1.86-1.92v-4.9774c0-1.6278-0.1639-1.7922-1.86-1.92v-1.0461l3.9202-0.2922v1.9018c1.0041-1.26 2.3412-2.0113 3.7954-2.0113 2.2788 0 3.7017 1.4452 3.7017 3.9521v4.4087c-0.0364 1.6096 0.1275 1.7739 1.8417 1.9018l-0.0156 0.0156zm20.811-10.281c-0.6436 6e-4 -1.279 0.1454-1.8596 0.4239s-1.0918 0.6836-1.4962 1.1857v-1.5313l-3.9046 0.2922v1.0435c1.6987 0.1278 1.8626 0.2921 1.8626 1.92v10.435c0 1.6279-0.1639 1.7948-1.8626 1.9227v1.0434h6.2588v-1.0043c-1.99-0.1461-2.2267-0.2948-2.2267-1.9226v-3.3913c0.9253 0.8005 2.1159 1.2249 3.3375 1.1895 3.0826 0 5.2183-2.6895 5.2183-5.8174 0-3.2739-2.245-5.7991-5.3093-5.7991l-0.0182 0.0104zm-0.3642 10.057c-0.5389-0.0065-1.0704-0.1259-1.5605-0.3505-0.49-0.2247-0.9279-0.5496-1.2854-0.9539v-5.6374c0.731-0.9678 1.8209-1.5652 2.8094-1.5652 2.0421 0 3.4104 1.5365 3.4104 4.2444 0 2.773-1.4229 4.2626-3.3739 4.2626zm43.25 0.2191v1.0435h-5.8743v-1.0435c1.6961-0.1278 1.86-0.2922 1.86-1.92v-4.9852c0-1.6278-0.1639-1.7922-1.86-1.92v-1.0461l4.0347-0.2896v8.2331c0 1.6278 0.1426 1.7921 1.8396 1.92v0.0078zm-30.499-10.289c-0.6439 5e-4 -1.2797 0.1453-1.8607 0.4238s-1.0927 0.6836-1.4976 1.1858v-1.5183l-3.9202 0.2922v1.0435c1.6961 0.1278 1.8599 0.2921 1.8599 1.92v10.435c0 1.6279-0.1638 1.7948-1.8599 1.9227v1.0434h6.2432v-1.0043c-1.9874-0.1461-2.2267-0.2948-2.2267-1.9226v-3.3913c0.926 0.8012 2.1176 1.2256 3.3401 1.1895 3.0826 0 5.2157-2.6895 5.2157-5.8174 0-3.2739-2.2424-5.7991-5.3068-5.7991l0.013-0.0026zm-0.385 10.07c-0.5388-0.0067-1.0702-0.1261-1.5603-0.3508-0.49-0.2246-0.9279-0.5494-1.2855-0.9536v-5.6374c0.731-0.9678 1.8209-1.5652 2.8094-1.5652 2.0447 0 3.413 1.5365 3.413 4.2444-0.0182 2.7808-1.423 4.2626-3.3818 4.2626h0.0052zm-63.587-10.07c-0.61139-0.0048-1.2166 0.1233-1.7738 0.3755s-1.0535 0.6225-1.4544 1.0854v-7.5339l-4.0321 0.25565v1.0435c1.6961 0.12783 1.86 0.29217 1.86 1.92v14.27h0.74138l0.98331-1.3044c0.94948 1.0252 2.2632 1.5183 3.7407 1.5183 3.1216 0 5.2521-2.6896 5.2521-5.8174-0.0104-3.287-2.2527-5.8122-5.3171-5.8122zm-0.3824 10.07c-0.53873-7e-3 -1.0701-0.1266-1.5601-0.3512-0.49003-0.2246-0.92794-0.5492-1.2858-0.9532v-5.6374c0.74658-1.0043 1.8417-1.5652 2.7912-1.5652 2.0421 0 3.4104 1.5365 3.4104 4.2444 0.0182 2.7913-1.4411 4.2626-3.3557 4.2626zm102.57-0.0366c-0.97 1.054-2.06 1.6018-3.228 1.6018-1.678 0-2.646-0.8426-2.646-2.58v-7.4818h-1.805v-1.1347c1.896-0.2374 2.536-0.8948 2.846-4.3331h1.113v4.2235h3.382v1.2443h-3.382v7.427c0 0.7826 0.292 1.0617 0.947 1.0617 0.494 0 1.259-0.3287 1.935-0.9156 0.019-0.0183 0.838 0.8791 0.838 0.8791v0.0078z" ></path> <path d="m122.87 0h-1.576v30h1.576v-30z" ></path> <path d="m152.16 20.489c-0.193 0.014-0.387-0.0245-0.56-0.1112-0.173-0.0868-0.319-0.2187-0.424-0.3818v-8.1209c0.321-0.2581 0.72-0.3981 1.132-0.3965 1.561 0 1.987 2.0139 1.987 4.3174-0.018 3.4147-0.967 4.693-2.135 4.693zm1.88-10.883c-0.552-0.00129-1.097 0.12126-1.596 0.35869-0.499 0.23738-0.938 0.58368-1.286 1.0135l-0.091-1.1348h-4.162l-0.018 17.562h4.287v-5.8722c0.658 0.5216 1.476 0.7981 2.315 0.7826 2.861 0 5.018-2.6896 5.018-6.3678 2e-3 -3.3966-1.439-6.3418-4.467-6.3418zm47.605 0.26087h4.266v12.177h-4.266v-12.177zm-1.132 2.2513c0 1.4087-0.804 2.3765-2.117 2.3765-1.314 0-1.969-0.9313-1.969-1.8261 0.014-0.4809 0.159-0.9489 0.418-1.3539-0.52-0.2921-2.042 0.3287-2.57 2.087v8.6087h-4.263v-12.149h4.196l0.054 2.0322c0.765-1.4453 1.933-2.2879 3.382-2.2879 1.881 0 2.874 1.1896 2.874 2.5252l-5e-3 -0.013zm-16.49-2.2513h4.269v12.177h-4.263v-2.687c-0.44 1.187-1.46 2.9818-3.668 2.9818-2.279 0-3.382-1.8131-3.382-3.7513v-6.9522c0-0.913-0.26-1.3696-0.583-1.5183v-0.23736h4.841v7.4635c0 1.8496 0.82 1.9774 1.301 1.9774 0.674 0 1.186-0.5869 1.478-1.4269v-8.014l7e-3 -0.01304zm59.6 8.2278c0 2.4496-2.191 4.1896-5.31 4.1896-1.641 0-3.21-0.8244-4.105-0.8244-0.637 0-0.801 0.1827-0.801 0.1827l-0.146-3.3653h0.383c1.714 2.2853 2.9 3.2739 4.682 3.2739 1.15 0 2.115-0.566 2.115-1.5652 0-1.0617-0.947-1.3174-2.315-1.6461-3.704-0.9521-4.742-2.5617-4.742-4.7373 0-2.3974 2.096-4.0435 4.706-4.0435 0.806 0.00469 1.606 0.14036 2.369 0.40174 0.404 0.12779 1.535 0.62349 2.3 0.56869v3.2661h-0.364c-1.441-2.1209-2.7-3.5113-4.287-3.5113-1.004 0-1.561 0.6209-1.561 1.4269 0 0.9861 0.929 1.26 2.601 1.7374 2.961 0.9496 4.475 2.1026 4.475 4.6461zm-15.962-8.2148h4.269v12.164h-4.269v-2.687c-0.437 1.187-1.46 2.9818-3.665 2.9818-2.282 0-3.395-1.8131-3.395-3.7513v-6.9522c0-0.913-0.26-1.3696-0.583-1.5183v-0.23736h4.87v7.4635c0 1.8496 0.822 1.9774 1.3 1.9774 0.674 0 1.187-0.5869 1.478-1.4269v-8.014h-5e-3zm-14.448 11.653c-1.241 0-1.678-1.6826-1.678-5.5983 0-3.9156 0.455-5.5956 1.678-5.5956s1.678 1.6826 1.678 5.5956c0 3.9131-0.455 5.5983-1.678 5.5983zm0-11.927c-3.866 0-6.092 2.8357-6.092 6.3287 0 3.4931 2.245 6.3313 6.092 6.3313s6.082-2.8356 6.082-6.3313c0-3.4956-2.232-6.3287-6.082-6.3287zm-53.489 0.27391h4.266v12.164h-4.266v-12.164zm15.931 8.1209l0.26 0.0913c-0.31 1.6096-1.787 4.2078-5.125 4.2078-3.777 0-5.582-2.9452-5.582-6.3495 0-3.6522 2.39-6.3652 5.965-6.3652 2.645 0 4.269 1.4087 4.269 2.9452 3e-3 0.2267-0.039 0.4517-0.126 0.6613-0.086 0.2095-0.215 0.399-0.377 0.5567s-0.355 0.2804-0.567 0.3603c-0.211 0.0799-0.437 0.1154-0.663 0.1043-0.403-0.0192-0.784-0.1916-1.066-0.4824-0.281-0.2907-0.441-0.6779-0.448-1.0828 0-0.8766 0.52-1.3722 1.168-1.4635-0.12-0.23-0.305-0.4188-0.533-0.5424-0.228-0.1237-0.487-0.1764-0.744-0.1515-1.168 0-2.482 1.4452-2.482 4.9565 0 2.2878 1.113 4.3174 3.382 4.3174 1.821-0.0183 2.664-1.7739 2.664-1.7739l5e-3 0.0104zm26.031-11.431c0-1.08 0.929-1.9383 2.097-1.9383s2.097 0.85826 2.097 1.9383-0.929 1.9383-2.097 1.9383-2.097-0.85826-2.097-1.9383zm-41.918 0c0-1.08 0.929-1.9383 2.097-1.9383s2.097 0.85826 2.097 1.9383-0.929 1.9383-2.097 1.9383-2.097-0.85826-2.097-1.9383zm-20.795 9.6052c-0.385-2.6348 0.383-5.5252 1.441-5.5252 1.059 0 1.533 2.1757 1.561 4.6957l-3.002 0.8295zm1.387-6.5504c-3.887 0-6.186 2.9635-6.186 6.3469 0 2.0322 0.804 3.8974 2.263 5.0687 1.041 0.8885 2.371 1.3636 3.738 1.3357 1.259 0.0345 2.491-0.3642 3.492-1.1298s1.71-1.8519 2.01-3.078h-0.018c-1e-3 -0.0099 0-0.02 3e-3 -0.0295 3e-3 -0.0094 8e-3 -0.0181 0.015-0.0253l-0.273-0.0913s-1.332 1.7556-3.319 1.7556c-0.616-0.0084-1.215-0.2059-1.715-0.5661-0.595-0.5023-1-1.1936-1.15-1.9591l6.694-1.9382v-0.0548c-0.175-3.2922-2.49-5.6348-5.554-5.6348z" ></path> </svg> </div><div class="cm-nav-rollover-container__dek"> SPRING SALE: Get unlimited recipes for just <del>$40</del> <strong>$30/year</strong> </div><div class="cm-nav-rollover-container__button"> <span>SUBSCRIBE </span> </div></div></a > </div></div></div></div></div></div><div data-testid="StackedNavigationSectionPrimaryLinks" class="StackedNavigationSectionPrimaryLinksWithSearch-fVKTcK cNZOkG" > <div class="ScrollingNavigationNavWrapper-bcnWkg tHYtk"> <div data-testid="ScrollingNavigation" class="NavWrapper-ftyObv esHCvT" > <nav aria-label="Primary" class="NavListWrapper-fjxzh geIVTG" > <div class="NavListDefault-dYWimd kyMMeH"> <ul class="NavList-jSqrkG hvQsa-D"> <li class="NavListItem-ibwNBb dUaEvJ isDummyLinkClickable" > <a tabindex="0" role="link" href="https://www.bonappetit.com/recipes" aria-expanded="false" data-testid="ScrollingNavigationLink" class="BaseWrap-sc-TURhJ BaseText-fFzBQt BaseLink-gZQqBA NavLink-hUdarM eTiIvU iwPQea hVUVwR lmdnTt" ><span>Recipes</span></a ><svg class="ScrollingNavigationChevron-hhMoBZ ktItFB" focusable="false" viewBox="0 0 32 32" width="32" height="32" xmlns="http://www.w3.org/2000/svg" isactive="false" > <title>Chevron</title> <path d="M19.071 16L12 8.929l1.414-1.414L21.9 16l-8.485 8.485L12 23.071z" fill-rule="nonzero" ></path> </svg> </li><li class="NavListItem-ibwNBb dUaEvJ"> <a tabindex="0" role="link" aria-expanded="false" data-testid="ScrollingNavigationLink" class="BaseWrap-sc-TURhJ BaseText-fFzBQt BaseLink-gZQqBA NavLink-hUdarM eTiIvU iwPQea hVUVwR lmdnTt" ><span>Ingredients</span></a ><svg class="ScrollingNavigationChevron-hhMoBZ ktItFB" focusable="false" viewBox="0 0 32 32" width="32" height="32" xmlns="http://www.w3.org/2000/svg" isactive="false" > <title>Chevron</title> <path d="M19.071 16L12 8.929l1.414-1.414L21.9 16l-8.485 8.485L12 23.071z" fill-rule="nonzero" ></path> </svg> </li><li class="NavListItem-ibwNBb dUaEvJ"> <a tabindex="0" role="link" href="https://www.bonappetit.com/cooking" aria-expanded="false" data-testid="ScrollingNavigationLink" class="BaseWrap-sc-TURhJ BaseText-fFzBQt BaseLink-gZQqBA NavLink-hUdarM eTiIvU iwPQea hVUVwR hDQwfA" ><span>Cooking</span></a > </li><li class="NavListItem-ibwNBb dUaEvJ"> <a tabindex="0" role="link" href="https://www.bonappetit.com/culture" aria-expanded="false" data-testid="ScrollingNavigationLink" class="BaseWrap-sc-TURhJ BaseText-fFzBQt BaseLink-gZQqBA NavLink-hUdarM eTiIvU iwPQea hVUVwR hDQwfA" ><span>Culture</span></a > </li><li class="NavListItem-ibwNBb dUaEvJ"> <a tabindex="0" role="link" href="https://www.bonappetit.com/shopping" aria-expanded="false" data-testid="ScrollingNavigationLink" class="BaseWrap-sc-TURhJ BaseText-fFzBQt BaseLink-gZQqBA NavLink-hUdarM eTiIvU iwPQea hVUVwR hDQwfA" ><span>Shopping</span></a > </li><li class="NavListItem-ibwNBb dUaEvJ"> <a tabindex="0" role="link" href="https://www.bonappetit.com/restaurants" aria-expanded="false" data-testid="ScrollingNavigationLink" class="BaseWrap-sc-TURhJ BaseText-fFzBQt BaseLink-gZQqBA NavLink-hUdarM eTiIvU iwPQea hVUVwR hDQwfA" ><span>Restaurants</span></a > </li><li class="NavListItem-ibwNBb dUaEvJ"> <a tabindex="0" role="link" href="https://market.bonappetit.com/" aria-expanded="false" data-testid="ScrollingNavigationLink" class="BaseWrap-sc-TURhJ BaseText-fFzBQt BaseLink-gZQqBA NavLink-hUdarM eTiIvU iwPQea hVUVwR hDQwfA" ><span>BA Market</span></a > </li><li class="NavListItem-ibwNBb dUaEvJ"> <a tabindex="0" role="link" href="https://www.bonappetit.com/video/" aria-expanded="false" data-testid="ScrollingNavigationLink" class="BaseWrap-sc-TURhJ BaseText-fFzBQt BaseLink-gZQqBA NavLink-hUdarM eTiIvU iwPQea hVUVwR hDQwfA" ><span>Videos</span></a > </li><li class="NavListItem-ibwNBb dUaEvJ"> <a tabindex="0" role="link" href="https://www.bonappetit.com/story/bon-appetit-foodcast" aria-expanded="false" data-testid="ScrollingNavigationLink" class="BaseWrap-sc-TURhJ BaseText-fFzBQt BaseLink-gZQqBA NavLink-hUdarM eTiIvU iwPQea hVUVwR hDQwfA" ><span>Podcast</span></a > </li><li class="NavListItem-ibwNBb dUaEvJ"> <a tabindex="0" role="link" href="https://shop.bonappetit.com/" aria-expanded="false" data-testid="ScrollingNavigationLink" class="BaseWrap-sc-TURhJ BaseText-fFzBQt BaseLink-gZQqBA NavLink-hUdarM eTiIvU iwPQea hVUVwR hDQwfA" ><span>Merch</span></a > </li></ul> </div><div class="ScrollingNavigationMoreLinkWrapper-bGZjeI kQhSEm" > <ul class="NavList-jSqrkG hvQsa-D"> <li class="NavListItem-ibwNBb dUaEvJ isDummyLinkClickable" > <a tabindex="0" role="link" href="https://www.bonappetit.com/recipes" aria-expanded="false" data-testid="ScrollingNavigationLink" class="BaseWrap-sc-TURhJ BaseText-fFzBQt BaseLink-gZQqBA NavLink-hUdarM eTiIvU iwPQea hVUVwR lmdnTt" ><span>Recipes</span></a ><svg class="ScrollingNavigationChevron-hhMoBZ ktItFB" focusable="false" viewBox="0 0 32 32" width="32" height="32" xmlns="http://www.w3.org/2000/svg" isactive="false" > <title>Chevron</title> <path d="M19.071 16L12 8.929l1.414-1.414L21.9 16l-8.485 8.485L12 23.071z" fill-rule="nonzero" ></path> </svg> </li><li class="NavListItem-ibwNBb dUaEvJ"> <a tabindex="0" role="link" aria-expanded="false" data-testid="ScrollingNavigationLink" class="BaseWrap-sc-TURhJ BaseText-fFzBQt BaseLink-gZQqBA NavLink-hUdarM eTiIvU iwPQea hVUVwR lmdnTt" ><span>Ingredients</span></a ><svg class="ScrollingNavigationChevron-hhMoBZ ktItFB" focusable="false" viewBox="0 0 32 32" width="32" height="32" xmlns="http://www.w3.org/2000/svg" isactive="false" > <title>Chevron</title> <path d="M19.071 16L12 8.929l1.414-1.414L21.9 16l-8.485 8.485L12 23.071z" fill-rule="nonzero" ></path> </svg> </li><li class="NavListItem-ibwNBb dUaEvJ"> <a tabindex="0" role="link" href="https://www.bonappetit.com/cooking" aria-expanded="false" data-testid="ScrollingNavigationLink" class="BaseWrap-sc-TURhJ BaseText-fFzBQt BaseLink-gZQqBA NavLink-hUdarM eTiIvU iwPQea hVUVwR hDQwfA" ><span>Cooking</span></a > </li><li class="NavListItem-ibwNBb dUaEvJ"> <a tabindex="0" role="link" href="https://www.bonappetit.com/culture" aria-expanded="false" data-testid="ScrollingNavigationLink" class="BaseWrap-sc-TURhJ BaseText-fFzBQt BaseLink-gZQqBA NavLink-hUdarM eTiIvU iwPQea hVUVwR hDQwfA" ><span>Culture</span></a > </li><li class="NavListItem-ibwNBb dUaEvJ"> <a tabindex="0" role="link" href="https://www.bonappetit.com/shopping" aria-expanded="false" data-testid="ScrollingNavigationLink" class="BaseWrap-sc-TURhJ BaseText-fFzBQt BaseLink-gZQqBA NavLink-hUdarM eTiIvU iwPQea hVUVwR hDQwfA" ><span>Shopping</span></a > </li><li class="NavListItem-ibwNBb dUaEvJ"> <a tabindex="0" data-testid="ScrollingNavigationMoreLink" class="BaseWrap-sc-TURhJ BaseText-fFzBQt BaseLink-gZQqBA NavLink-hUdarM eTiIvU iwPQea hVUVwR lmdnTt" ><span>More</span></a ><svg class="ScrollingNavigationChevron-hhMoBZ ktItFB" focusable="false" viewBox="0 0 32 32" width="32" height="32" xmlns="http://www.w3.org/2000/svg" isactive="false" > <title>Chevron</title> <path d="M19.071 16L12 8.929l1.414-1.414L21.9 16l-8.485 8.485L12 23.071z" fill-rule="nonzero" ></path> </svg> </li></ul> </div></nav> </div></div><div class="StackedNavigationSearchBarWrapper-gjdhjg hdgKSZ"> <section class="StandardNavigationSearchBarWrapper-iSTthH iplDut" > <form name="search-form" action="https://www.bonappetit.com/search" method="GET" class="SearchForm-iiMfsJ cFQsUm" > <label class="SearchLabel-gkGZnx ebGiIt" ><span class="TextFieldWrapper-fzQmAh hGyqtp text-field SearchInput-jjLVGR iddgSj" data-testid="TextFieldWrapper__q" ><label class="BaseWrap-sc-TURhJ BaseText-fFzBQt TextFieldLabel-gPTGiA eTiIvU iNpanY jSnkP text-field__label text-field__label--single-line" for="search-form-text-field-q" data-testid="TextFieldLabel__q" ><div class="TextFieldInputContainer-fva-dAv dqaKkd" > <input type="search" aria-describedby="" aria-invalid="false" id="search-form-text-field-q" name="q" placeholder='Search for "stir-fry"' aria-label="search" class="BaseInput-jNjmrm TextFieldControlInput-dlkCbz cfTVp bvkGm text-field__control text-field__control--input" data-testid="TextFieldInput__q" value=""/></div></label></span ><svg class="icon icon-search" focusable="false" viewBox="0 0 32 32" width="32" height="32" xmlns="http://www.w3.org/2000/svg" data-testid="iconSearch" > <title>Search</title> <path d="M14.5 10a4.5 4.5 0 1 0 0 9 4.5 4.5 0 0 0 0-9zm5.249 8.335l4.458 4.458-1.414 1.414-4.458-4.458a6.5 6.5 0 1 1 1.414-1.414z" fill-rule="nonzero" ></path></svg ></label> </form> </section> </div></div><div class="StackedNavigationBottom-eUekdn leXAAE"> <div class="StackedNavigationDrawer-gPCSJv hLjqtZ"> <button class="BaseButton-aWfgy ButtonWrapper-dOcxiw bxdYtG fZbFZo button button--utility StackedNavigationDrawerToggle-cQLrph eWtUGi" data-event-click='{"element":"Button"}' data-testid="Button" role="button" type="button" > <span class="ButtonLabel-eBwykR eTnxrM button__label" >Open Navigation Menu</span > <div class="ButtonIconWrapper-ivrAUv kugeta button__icon-container" > <svg class="icon icon-menu" focusable="false" viewBox="0 0 32 32" width="32" height="32" xmlns="http://www.w3.org/2000/svg" > <title>Menu</title> <path d="M8 10h16v2H8v-2zm0 5h16v2H8v-2zm0 5h16v2H8v-2z" fill-rule="evenodd" ></path> </svg> </div></button> <div class="AlertWrapper-dYgLvk hsgkjY" data-testid="BookmarkAlertMobile" role="tooltip" data-event-boundary="click" data-event-click='{"pattern":"ConnectedBookmarkAlert"}' data-in-view='{"pattern":"ConnectedBookmarkAlert"}' data-include-experiments="true" > <div aria-hidden="true" role="presentation" class="AlertArrow-dBbxeu djEzAY alert-arrow" ></div><div aria-hidden="true" role="presentation" class="AlertIconWrapper-iyPBUn iINTqw" > <svg class="icon icon-bookmark icon-bookmark--activated" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" > <title>Story Saved</title> <path class="icon-bookmark-fill icon-bookmark--activated-outline" d="M20 24L12.5 19.7804L5 24V3H20V24ZM12.5 18.6028L19 22.2336V3.98131H6V22.2336L12.5 18.6028Z" fill="black" data-darkreader-inline-fill="" style="--darkreader-inline-fill: #e8e6e3" ></path> <path class="icon-bookmark-fill icon-bookmark--activated-checkmark" d="M11.5541 13.7033L9 11.2033L9.66216 10.5552L11.5541 12.407L15.3378 8.70331L16 9.35146L11.5541 13.7033Z" fill="black" data-darkreader-inline-fill="" style="--darkreader-inline-fill: #e8e6e3" ></path> </svg> </div><div class="BaseWrap-sc-TURhJ BaseText-fFzBQt AlertMessage-kUrqmw dvHCmL fDKqzG livnHH alert-message" > <p> To revisit this article, visit My Profile, then <a href="https://www.bonappetit.com/account/saved" >View saved stories</a > </p></div><button class="BaseButton-aWfgy ButtonWrapper-dOcxiw bxdYtG fZbFZo button button--utility close-alert-button" data-event-click='{"element":"Button"}' data-testid="Button" role="button" type="button" > <span class="ButtonLabel-eBwykR eTnxrM button__label" >Close Alert</span > <div class="ButtonIconWrapper-ivrAUv kugeta button__icon-container" > <svg class="icon icon-close" focusable="false" viewBox="0 0 32 32" width="32" height="32" xmlns="http://www.w3.org/2000/svg" > <title>Close</title> <path d="M16 14.586l6.364-6.364 1.414 1.414L17.414 16l6.364 6.364-1.414 1.414L16 17.414l-6.364 6.364-1.414-1.414L14.586 16 8.222 9.636l1.414-1.414z" fill-rule="nonzero" ></path> </svg> </div></button> </div></div><div class="StackedNavigationSectionLogo-gKryTa cjjzQR"> <a href="https://www.bonappetit.com/" class="StackedNavigationLogoLink-laqEYL eiwgkU" ><picture class="ResponsiveImagePicture-jIKgcS fArnhQ responsive-image" ><img alt="Bon Appétit" class="ResponsiveImageContainer-dlOMGF byslZC responsive-image__image" src="./Nutty Umami Noodles With Scallion Brown Butter and Snow Peas Recipe _ Bon Appétit_files/logo-header.29b3f7bcdadf3b208a05a3ab761757ab663c1e12.svg" srcset="" sizes="100vw"/></picture ></a> </div><div class="StackedNavigationSectionMobileOption-kAIEJq fiFJuu"> <div class="ConsumerMarketingUnitThemedWrapper-kkMeXf hBFNZw consumer-marketing-unit consumer-marketing-unit--mob-nav-cta" role="presentation" aria-hidden="true" > <div class="consumer-marketing-unit__slot consumer-marketing-unit__slot--mob-nav-cta" ></div><div class="journey-unit"></div></div></div><div class="StackedNavigationSearchBarWrapper-gjdhjg hdgKSZ"> <section class="StandardNavigationSearchBarWrapper-iSTthH iplDut" > <form name="search-form" action="https://www.bonappetit.com/search" method="GET" class="SearchForm-iiMfsJ cFQsUm" > <label class="SearchLabel-gkGZnx ebGiIt" ><span class="TextFieldWrapper-fzQmAh hGyqtp text-field SearchInput-jjLVGR iddgSj" data-testid="TextFieldWrapper__q" ><label class="BaseWrap-sc-TURhJ BaseText-fFzBQt TextFieldLabel-gPTGiA eTiIvU iNpanY jSnkP text-field__label text-field__label--single-line" for="search-form-text-field-q" data-testid="TextFieldLabel__q" ><div class="TextFieldInputContainer-fva-dAv dqaKkd" > <input type="search" aria-describedby="" aria-invalid="false" id="search-form-text-field-q" name="q" placeholder='Search for "stir-fry"' aria-label="search" class="BaseInput-jNjmrm TextFieldControlInput-dlkCbz cfTVp bvkGm text-field__control text-field__control--input" data-testid="TextFieldInput__q" value=""/></div></label></span ><svg class="icon icon-search" focusable="false" viewBox="0 0 32 32" width="32" height="32" xmlns="http://www.w3.org/2000/svg" data-testid="iconSearch" > <title>Search</title> <path d="M14.5 10a4.5 4.5 0 1 0 0 9 4.5 4.5 0 0 0 0-9zm5.249 8.335l4.458 4.458-1.414 1.414-4.458-4.458a6.5 6.5 0 1 1 1.414-1.414z" fill-rule="nonzero" ></path></svg ></label> </form> </section> </div></div></div></header> </div><div class="PersistentBottomWrapper-bziBCA hdtrtw persistent-bottom" data-journey-hook="persistent-bottom" > <aside class="PaywallBarWrapper-fKeowe ekkQvg paywall-bar"> <div class="ConsumerMarketingUnitThemedWrapper-kkMeXf hBFNZw paywall-bar__consumer-marketing-unit consumer-marketing-unit consumer-marketing-unit--paywall-bar-call-to-action" role="presentation" aria-hidden="true" aria-live="polite" > <div class="consumer-marketing-unit__slot consumer-marketing-unit__slot--paywall-bar-call-to-action" ></div><div class="journey-unit"></div></div></aside> <div class="ConsumerMarketingUnitThemedWrapper-kkMeXf hBFNZw consumer-marketing-unit consumer-marketing-unit--cm-riser" role="presentation" aria-hidden="true" > <div class="consumer-marketing-unit__slot consumer-marketing-unit__slot--cm-riser" ></div><div class="journey-unit"></div></div><div class="consumer-marketing-unit--registration-gate"> <div class="journey-unit"> <div class="registration-gate journey-template--registration-gate" > <style>@font-face{font-family: BreveText; font-style: normal; src: url(/verso/static/assets/fonts/BreveText-Book.woff) format("woff"), url(/verso/static/assets/fonts/BreveText-Book.woff2) format("woff2");}.registration-gate__divisor{-webkit-box-sizing: border-box; border-top: 1px solid rgba(197, 197, 197, 0.5); box-sizing: border-box; height: 0; margin: 0 15px 0 15px; max-width: 315px; width: 100%;}.registration-gate__dek{color: #000; font-family: Radley, helvetica, sans-serif; height: 42px; margin: 0; text-align: center; width: 100%; max-width: 315px;}.registration-gate__screen--entry .registration-gate__dek{color: #000; font-size: 16px; line-height: 22px; height: 44px; margin-bottom: 24px; max-width: 325px; font-family: BreveText, Arial, Helvetica, sans-serif; text-align: center;}.registration-gate.journey-template--registration-gate::before{background: linear-gradient( rgba(0, 0, 0, 0) 0, rgba(0, 0, 0, 0.1) 100% ); content: ""; height: 100px; pointer-events: none; position: absolute; top: -100px; width: 100%;}.registration-gate__wrapper{background-color: #fff; bottom: 0; -webkit-box-sizing: border-box; box-sizing: border-box; margin-top: auto; padding: 0 24px 0; position: relative; overflow: hidden; width: 100vw; z-index: 2;}.registration-gate__create-account-email button{background-color: transparent; border: none; color: #333; cursor: pointer; font-size: 12px; font-weight: 600; right: 15px; padding: 0; position: absolute;}.registration-gate__wrapper button:disabled{opacity: 0.75; pointer-events: none;}.registration-gate__screen--create, .registration-gate__screen--entry, .registration-gate__screen--forced-sign-in, .registration-gate__screen--sign-in{display: none;}.registration-gate__wrapper.registration-gate--entry{height: 341.47px;}.registration-gate__wrapper.registration-gate--create{height: 429.47px;}.registration-gate__wrapper.registration-gate--sign-in{height: 330.47px;}.registration-gate__wrapper.registration-gate--forced-sign-in{height: 264.47px;}.registration-gate__wrapper.registration-gate--entry.registration-gate--bad-request, .registration-gate__wrapper.registration-gate--entry.registration-gate--invalid-email{height: 363.47px;}.registration-gate__wrapper.registration-gate--create.registration-gate--bad-request, .registration-gate__wrapper.registration-gate--create.registration-gate--invalid-email{height: 429.47px;}.registration-gate--create .registration-gate__screen--create, .registration-gate--entry .registration-gate__screen--entry, .registration-gate--forced-sign-in .registration-gate__screen--forced-sign-in, .registration-gate--sign-in .registration-gate__screen--sign-in{display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; -webkit-box-align: center; -ms-flex-align: center; align-items: center;}.registration-gate__terms a{color: #000; font-family: Radley, helvetica, sans-serif; font-size: 12px; line-height: 130%; width: 315px;}.registration-gate__subscribe-cta a, a.registration-gate__subscribe-cta{color: #000;}.registration-gate__wrapper button:hover{text-decoration: none;}.registration-gate__hed{font-family: FuturaPT, helvetica, sans-serif; font-size: 31px; font-weight: 600; letter-spacing: -0.5px; line-height: 31px; margin: 33px 15px 0 15px; text-align: center; width: 315px;}.registration-gate--entry .registration-gate__hed{margin: 32px 0 8px; width: 315px; height: 36px; color: #333;}.registration-gate--create .registration-gate__hed{margin: 32px 0 24px; width: 314px; height: 72px;}.registration-gate--sign-in .registration-gate__hed{width: 315px; height: 36px; margin: 32px 0 16px;}.registration-gate--forced-sign-in .registration-gate__hed{width: 315px; height: 36px; margin: 32px 0 16px;}.registration-gate--sign-in .registration-gate__dek{font-size: 15px; margin: 0; line-height: 21px;}.registration-gate--forced-sign-in .registration-gate__dek{font-size: 15px; line-height: 21px;}.registration-gate--sign-in .registration-gate__dek--sent-email{margin-bottom: 16px;}.registration-gate--sign-in .registration-gate__dek--check-email{color: #333;}.registration-gate__label{color: #000; font-family: FuturaPT, helvetica, sans-serif; font-size: 16px; line-height: 20px; max-width: 315px; width: 100%;}.registration-gate__label-email{font-weight: 600; margin-bottom: 5px; height: 16px;}#registration-gate__input{border-color: #666; border-width: 1px; border-style: solid; -webkit-box-sizing: border-box; box-sizing: border-box; font-family: FuturaPT, helvetica, sans-serif; font-size: 15px; height: 44px; padding: 12 12.5 11; width: 100%; max-width: 315px;}#registration-gate__input:focus{outline-color: #449dcd;}.registration-gate--entry.registration-gate--invalid-email #registration-gate__input{border-color: #c50219;}.registration-gate__button{cursor: pointer; display: block; border: none; border-radius: 4px; font-family: FuturaPT, helvetica, sans-serif; font-size: 12px; font-weight: 500; letter-spacing: 1px; height: 48px; width: 100%; max-width: 315px;}.registration-gate__button.registration-gate__button--with-background{color: #fff; background-color: #000; line-height: 42px; text-transform: uppercase; margin-top: 12px;}.registration-gate--create .registration-gate__button--with-background{margin: 16px 0 0;}.registration-gate--sign-in .registration-gate__button--with-background{margin-top: 24px; height: 52px;}.registration-gate__button--with-background:hover{opacity: 0.75;}.registration-gate__button--with-background:focus{text-decoration: none;}.registration-gate__error{color: #db0707; display: none; font-family: FuturaPT, helvetica, sans-serif; font-size: 14px; line-height: 18px; margin-top: 4px; width: 100%; max-width: 315px;}.registration-gate--invalid-email .registration-gate__error.registration-gate__error--invalid-email{display: block;}.registration-gate--bad-request .registration-gate__error.registration-gate__error--bad-request{display: block;}.registration-gate__checkbox-container{height: 16px; -ms-flex-pack: distribute; justify-content: space-around; margin: 16px 0; max-width: 315px; width: 315px;}.registration-gate__checkbox-container .registration-gate__label{padding-left: 28px;}.registration-gate__checkbox-container .registration-gate__label::before{background-color: transparent; border-radius: 4px; border: 1px solid #000; bottom: 0; content: ""; cursor: pointer; height: 16px; left: 0; margin: auto 0; position: absolute; top: 0; width: 16px;}#registration-gate__checkbox{width: 0; height: 0;}.registration-gate__checkbox-container .registration-gate__label::after{content: ""; position: absolute; display: none; top: 0; left: 6px; bottom: 3px; width: 5px; height: 10px; border: solid #fff; border-width: 0 2px 2px 0; margin: auto; -webkit-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg);}.registration-gate__label-newsletter{font-family: Radley, helvetica, sans-serif; font-size: 12px;}#registration-gate__checkbox:checked ~ .registration-gate__label::before{background-color: #000;}#registration-gate__checkbox:checked ~ .registration-gate__label::after{display: block;}.registration-gate__terms{color: #000; font-family: Radley, helvetica, sans-serif; font-size: 12px; line-height: 130%; margin: 0; max-width: 315px; width: 100%; height: 48px;}.registration-gate__subscribe-cta{font-family: Radley, helvetica, sans-serif; font-weight: 400; line-height: 14px; text-align: center;}.registration-gate__screen--forced-sign-in .registration-gate__subscribe-cta{margin-bottom: 0; margin-top: 12px;}.registration-gate--forced-sign-in .registration-gate__subscribe-cta{margin-top: 24px; font-size: 14px; height: 18px; line-height: 18.2px;}.registration-gate--sign-in .registration-gate__subscribe-cta{margin: 16px 0;}.registration-gate__create-account-email{align-items: center; background-color: #fff; color: #666; display: flex; flex-direction: row; font-family: FuturaPT, helvetica, sans-serif; line-height: 44px; outline: solid 1px #666; max-width: 315px; width: 100%; position: relative;}.registration-gate__subscription-options{font-family: Radley, helvetica, sans-serif; font-size: 14px; font-weight: 400; line-height: 16.8px; margin: 24px auto 32px; max-width: 315px; text-align: center; width: 100%;}.registration-gate__screen--forced-sign-in .registration-gate__divisor{margin-top: 24px;}@media screen and (max-width: 767px){.registration-gate__subscribe-cta__tablet{display: none;}.registration-gate__subscribe-cta__desktop{display: none;}}@media screen and (min-width: 768px) and (max-width: 1023px){.registration-gate__subscribe-cta__mobile{display: none;}.registration-gate__subscribe-cta__desktop{display: none;}}@media screen and (min-width: 1024px){.registration-gate__subscribe-cta__mobile{display: none;}.registration-gate__subscribe-cta__tablet{display: none;}}.registration-gate__create-account-email input{background-color: #fff; border: none; height: 44px; font-size: 14px; padding: 6.7px 12px; width: 255px;}.registration-gate__create-account-email input:focus{outline: 0;}.registration-gate__create-account-email button:focus{outline: 0;}.registration-gate__sign-in-cta{font-size: 12px; font-family: ProximaNova, Arial, Helvetica, sans-serif; font-weight: 500; margin: 0;}@media (max-width: 374px), (max-height: 480px){.registration-gate.journey-template--registration-gate{display: flex;}.registration-gate__container{margin-top: auto; overflow: auto;}.registration-gate--bad-request .registration-gate__error.registration-gate__error--bad-request{font-size: 10.5px;}.registration-gate--sign-in .registration-gate__dek:not(.registration-gate__dek--sent-email){height: 50px;}}</style ><style class="darkreader darkreader--sync" media="screen" ></style> <div class="modal-overlay"></div><div class="registration-gate__container" role="dialog" aria-labelledby="registration-gate__hed" aria-describedby="registration-gate__dek" > <div class="registration-gate__wrapper registration-gate--entry" > <div class="registration-gate__screen--entry"> <div role="region" aria-live="polite"> <p class="registration-gate__hed" id="registration-gate__hed" role="heading" aria-level="2" > View this recipe. </p><p class="registration-gate__dek" id="registration-gate__dek" > To continue reading, please sign in or <br/> create a Bon Appétit account. </p></div><label class="registration-gate__label registration-gate__label-email" for="registration-gate__input" >Email</label > <input id="registration-gate__input" type="text"/> <span class="registration-gate__error registration-gate__error--invalid-email" >Please enter a valid email address.</span > <button class="registration-gate__button registration-gate__button--with-background" > Continue </button> <span class="registration-gate__error registration-gate__error--bad-request" >Sorry, there was a problem. Please try again later.</span > </div><div class="registration-gate__screen--create"> <div role="region" aria-live="polite"> <p class="registration-gate__hed" role="heading" aria-level="2" > Finish creating your <br/> free account. </p></div><label class="registration-gate__label registration-gate__label-email" for="registration-gate__disabled-input" >Email</label > <div class="registration-gate__create-account-email" id="registration-gate__disabled-input" > <input type="text" aria-disabled="" disabled=""/> <button>Edit</button> </div><span class="registration-gate__error registration-gate__error--invalid-email" >Please enter a valid email address.</span > <div class="registration-gate__checkbox-container"> <input type="checkbox" id="registration-gate__checkbox" checked=""/> <label class="registration-gate__label registration-gate__label-newsletter" for="registration-gate__checkbox" > Yes, I'd like to receive the Bon Appétit daily newsletter. </label> </div><p class="registration-gate__terms"> By continuing, you agree to our <a href="https://www.condenast.com/user-agreement/" target="_blank" rel="noopener noreferrer" >User Agreement </a >and <br/> <a href="https://www.condenast.com/privacy-policy" target="_blank" rel="noopener noreferrer" >Privacy Policy </a >and to receive marketing and <br/> account-related communications. </p><button class="registration-gate__button registration-gate__button--with-background" > Create Account </button> <span class="registration-gate__error registration-gate__error--bad-request" >Sorry, there was a problem. Please try again later.</span > </div><div class="registration-gate__screen--sign-in"> <div role="region" aria-live="polite"> <p class="registration-gate__hed" role="heading" aria-level="2" > Check your inbox. </p><p class="registration-gate__dek registration-gate__dek--sent-email" > We sent an email to </p><p class="registration-gate__dek registration-gate__dek--check-email" > Click the sign-in link in your email to activate <br/> your account, no password needed. </p></div><button class="registration-gate__button registration-gate__button--with-background" > Continue reading </button> </div><div class="registration-gate__screen--forced-sign-in"> <div role="region" aria-live="polite"> <p class="registration-gate__hed" role="heading" aria-level="2" > Check your inbox. </p><p class="registration-gate__dek registration-gate__dek--sent-email" > We sent a sign-in link to </p></div><p class="registration-gate__subscribe-cta"> <a class="registration-gate__subscription-options__link" href="https://www.bonappetit.com/auth/initiate?redirectURL=https://www.bonappetit.com/recipe/nutty-umami-noodles-with-scallion-brown-butter-and-snow-peas&amp;source=gate" >Or sign in with a password</a > </p><div class="registration-gate__divisor"></div></div><p class="registration-gate__subscription-options"> See our <a class="registration-gate__subscribe-cta registration-gate__subscription-options__link registration-gate__subscribe-cta__mobile" href="https://www.bonappetit.com/recipe/nutty-umami-noodles-with-scallion-brown-butter-and-snow-peas" target="_blank" rel="noopener noreferrer" > subscription options </a> <a class="registration-gate__subscribe-cta registration-gate__subscription-options__link registration-gate__subscribe-cta__tablet" href="https://www.bonappetit.com/recipe/nutty-umami-noodles-with-scallion-brown-butter-and-snow-peas" target="_blank" rel="noopener noreferrer" > subscription options </a> <a class="registration-gate__subscribe-cta registration-gate__subscription-options__link registration-gate__subscribe-cta__desktop" href="https://www.bonappetit.com/recipe/nutty-umami-noodles-with-scallion-brown-butter-and-snow-peas" target="_blank" rel="noopener noreferrer" > subscription options </a> </p></div></div><script>(()=>{const e=document.querySelector( ".registration-gate__wrapper" ), t=e.querySelector("#registration-gate__input"), r=e.querySelector( ".registration-gate__create-account-email input" ), i=e.querySelector( ".registration-gate__create-account-email button" ), s=e.querySelector( ".registration-gate__screen--entry .registration-gate__button--with-background" ), a=e.querySelector( ".registration-gate__screen--sign-in .registration-gate__button--with-background" ), o=e.querySelector( ".registration-gate__screen--create .registration-gate__button--with-background" ), n=e.querySelector("#registration-gate__checkbox"), c=Array.from( e.querySelectorAll( ".registration-gate__dek--sent-email" ) ), u="Verso-BonApp", d={url: "https://user-platform.condenastdigital.com/v2/magic-link/send", substitutions:{base_url: "https://id.condenast.com", oidc_client_id: "condenast.identity.608744bd5ce61191247151e9c4b3fc76", redirect_uri: "https://www.bonappetit.com/auth/complete", source: "BNA_REGGATE",}, siteCode: "BNA", registrationSourceCode: "BONAPPETIT_PAYWALL_REGGATE", utmSource: "BNA_REG_GATE",}, l={url: "https://user-platform.condenastdigital.com/v2/users/lookup",}, g={url: "https://bonappetit.com/api/up/v2/newsletter-subscriptions", siteCode: "BNA", sourceCode: "register-page", newsletterId: "5159",}, m=(t)=> e.classList.replace( e.classList[1], `registration-gate--${t}` ), _=(t)=>{const r=e.classList[2], i=`registration-gate--${t}`; t ? r ? e.classList.replace(r, i) : e.classList.add(i) : e.classList.remove(r);}, b=(e)=>{e.hasAttribute("disabled") ? (e.removeAttribute("disabled"), e.removeAttribute("aria-disabled")) : (e.setAttribute("disabled", !0), e.setAttribute("aria-disabled", !0));}, w=(e, t=()=>{}, r=()=>{})=>{const{url: i, substitutions: s, siteCode: a, registrationSourceCode: o, utmSource: n,}=d, c=new URL( window.top.location.origin + window.top.location.pathname ); c.searchParams.set("utm_source", n), fetch(i,{method: "POST", headers:{"Content-Type": "application/json", "x-client": u,}, mode: "cors", body: JSON.stringify({data:{email: e, attributes:{substitutions:{oidc_state: encodeURIComponent( JSON.stringify({redirectURL: c.href}) ), ...s,}, siteCode: a, registrationSourceCode: o,},},}),}).then((e)=>{if (!e.ok) throw ( (r(e.status), "Error on sending Magic Link, status code: " + e.status) ); t();});}, k=(e, t={})=> window.top.dataLayer.push( Object.assign({event: e}, t) ), h=()=>{n.checked ? k("reg-gate-newsletter-auto-opt-in-click") : k("reg-gate-newsletter-auto-opt-out-click");}, p=(e)=>{c.forEach( (t)=> (t.innerHTML=`We sent an email to</br><span>${e}</span>.`) );}; t.addEventListener( "keydown", ((e)=> (t)=>{13===t.keyCode && e(t);})(()=>{s.click();}) ), (r.disabled=!0), s.addEventListener("click", async ()=>{b(s), p(t.value); const e=await ((e)=> fetch(`${l.url}?email=${encodeURIComponent(e)}`,{headers:{"x-client": u},}))(t.value); if (400===e.status) return _("invalid-email"), void b(s); e.ok ? w( t.value, ()=> m("forced-sign-in"), ()=> _("bad-request") ) : ((r.value=t.value), _(), h(), m("create")), b(s);}), i.addEventListener("click", ()=>{m("entry");}), Boolean("checked") && n.setAttribute("checked", ""), n.addEventListener("click", h), o.addEventListener("click", async ()=>{if (!r.value) return void _("invalid-email"); let e=!0; p(r.value), b(o), n.checked && (await (function (e, t=()=>{}, r=()=>{}){if (!e) return; const{url: i, siteCode: s, sourceCode: a, newsletterId: o,}=g; fetch(i,{method: "post", headers:{"Content-Type": "application/json", "x-client": u,}, body: JSON.stringify({email: e, siteCode: s, sourceCode: a, subscriptions: [{status: "SUBSCRIBED", newsletterId: o},], url: window.top.location.href,}),}).then((e)=>{if (!e.ok) throw ( (r(e.status), "Error on requesting newsletter, status code: " + e.status) ); t();});})( r.value, ()=>{}, ()=>{_("bad-request"), (e=!1);})), e ? (await w( r.value, ()=>{const{bus: e}=window["bzwgsagnzc"]; e.emitEvent({id: "journey.regGate.account.created",}), m("sign-in");}, (e)=>{_( 400===e ? "invalid-email" : "bad-request" );}), b(o)) : b(o);}), (()=> a.addEventListener("click", ()=>{window.top.location.reload();}))(), (e.querySelector( ".registration-gate__screen--forced-sign-in .registration-gate__subscription-options__link" ).href=`/auth/initiate?redirectURL=${window.top.location.href}&source=gate`), setTimeout(()=>{t.focus();}, 100);})(); </script> </div></div></div></div><div class="StickyHeroAdWrapper-kvKqCQ bBWMVU should-hold-space npghmn pogm" data-event-boundary="click" data-event-click='{"pattern":"StickyHeroAd"}' data-in-view='{"pattern":"StickyHeroAd"}' data-include-experiments="true" style="" > <div class="AdWrapper-fFweuL dIvDeZ ad ad--hero"> <div class="ad__slot ad__slot--hero" data-node-id="99xn0x"></div></div><div class="ConsumerMarketingUnitThemedWrapper-kkMeXf hBFNZw consumer-marketing-unit consumer-marketing-unit--display-hero" role="presentation" aria-hidden="true" > <div class="consumer-marketing-unit__slot consumer-marketing-unit__slot--display-hero" ></div><div class="journey-unit"></div></div></div><main id="main-content" tabindex="-1" class="BasePageMainContent-cLheJR ePLMwy page__main-content" > <article data-testid="RecipePageArticle"> <div data-testid="RecipePageLedBackground"> <header class="SplitScreenContentHeaderWrapper-kZKchS eZGuCa" data-testid="SplitScreenContentHeaderWrapper" data-event-boundary="click" data-event-click='{"pattern":"ContentHeader"}' data-in-view='{"pattern":"ContentHeader"}' data-include-experiments="true" > <div class="GridWrapper-vNBSO hPHDmC grid grid-items-2 grid-full-bleed grid-no-gap SplitScreenContentHeaderMain-jhHdu dLGcvU" > <div class="GridItem-buSdEM hHVmYW grid--item"> <div class="SplitScreenContentHeaderTitleBlock-hjSTvo iKYucP" > <div data-testid="ContentHeaderRubric"> <div class="RubricWrapper-cSFBEL bVNHrg rubric rubric--with-bg SplitScreenContentHeaderRubric-lbEHfI yKKUO" > <a class="RubricLink-CPHAg BtCCp rubric__link" href="https://www.bonappetit.com/recipes" ><span class="RubricName-eZaHyj FsKDn" >recipes</span ></a > </div></div><h1 data-testid="ContentHeaderHed" class="BaseWrap-sc-TURhJ BaseText-fFzBQt SplitScreenContentHeaderHed-fxVOKs eTiIvU exAltS fOuMTo" > Nutty Umami Noodles With Scallion Brown Butter and Snow Peas </h1> <div data-testid="BylinesWrapper" class="BylinesWrapper-hkFqmg gLCIoC bylines SplitScreenContentHeaderByline-iBREpY kRlkCt" > <p class="BylineWrapper-iiTsTb ewvVNz byline bylines__byline" data-testid="BylineWrapper" itemprop="author" itemtype="http://schema.org/Person" > <span itemprop="name" class="BylineNamesWrapper-dbkCxf erRIa-D" ><span data-testid="BylineName" class="BylineName-cKXFOb irUMly byline__name" ><span class="BaseWrap-sc-TURhJ BaseText-fFzBQt BylinePreamble-igNUzc eTiIvU hhSyxw kntvqh byline__preamble" >By </span ><a class="BaseWrap-sc-TURhJ BaseText-fFzBQt BaseLink-gZQqBA BylineLink-eZnyPI eTiIvU iwPQea chvlqq nZHeQ byline__name-link button" href="https://www.bonappetit.com/contributor/zaynab-issa" >Zaynab Issa</a ></span ></span > </p></div><time data-testid="ContentHeaderPublishDate" class="SplitScreenContentHeaderPublishDate-fBepiw djLWvq" >April 21, 2022</time > <div class="RatingWrapper-fBZCax kqgLFU SplitScreenContentHeaderRating-GyisK gBUSZp" data-testid="RatingWrapper" > <div class="RatingFormWrapper-kZAlTn jVaOTH"> <p class="BaseWrap-sc-TURhJ BaseText-fFzBQt RatingRating-cxlmbV eTiIvU vZkLI faVFoP" > 5.0 </p><form action="https://www.bonappetit.com/recipe/nutty-umami-noodles-with-scallion-brown-butter-and-snow-peas" class="RatingForm-izEdqc hdfmdY" > <div role="group" aria-label="Rating" class="RatingStars-hxPLbF dQvuET" > <input type="radio" aria-label="0 Rating" disabled="" id="Rating0-69hg5s" name="Rating" value="0" class="RatingInput-eiXnJg elruQI"/><label for="Rating0-69hg5s" class="RatingLabel-bfTVLo isepYR" ></label ><input type="radio" aria-label="1 Rating" disabled="" id="Rating1-ueby04" name="Rating" value="1" class="RatingInput-eiXnJg elruQI"/><label for="Rating1-ueby04" class="RatingLabel-bfTVLo isepYR" ><div class="RatingStar-jYOYNK cVCJfL"> <svg class="icon icon-rating-half RatingStarHalf-qYNHV kAhuyO" focusable="false" viewBox="0 0 32 32" width="32" height="32" xmlns="http://www.w3.org/2000/svg" > <path fill="#000" d="M12.33,17.59a.63.63,0,0,1,.21.69l-1.61,5.24a.37.37,0,0,0,.22.46.33.33,0,0,0,.32-.05l4.18-3.21A.59.59,0,0,1,16,20.6V8h0a.36.36,0,0,0-.31.25l-1.61,5.06a.59.59,0,0,1-.55.42H8.35a.35.35,0,0,0-.35.36.34.34,0,0,0,.14.29Z" data-darkreader-inline-fill="" style="--darkreader-inline-fill: #e8e6e3" ></path> <path fill="#fff" d="M16.35,20.72l4.18,3.21a.34.34,0,0,0,.49-.08.41.41,0,0,0,.05-.33l-1.61-5.24a.63.63,0,0,1,.21-.69l4.19-3.21a.37.37,0,0,0,.07-.51.32.32,0,0,0-.27-.14H18.5a.59.59,0,0,1-.56-.42L16.33,8.25A.33.33,0,0,0,16,8V20.6A.59.59,0,0,1,16.35,20.72Z" data-darkreader-inline-fill="" style="--darkreader-inline-fill: #e8e6e3" ></path> </svg></div></label ><input type="radio" aria-label="2 Rating" disabled="" id="Rating2-yijr7g" name="Rating" value="2" class="RatingInput-eiXnJg elruQI"/><label for="Rating2-yijr7g" class="RatingLabel-bfTVLo isepYR" ><div class="RatingStar-jYOYNK cVCJfL"> <svg class="icon icon-rating-half RatingStarHalf-qYNHV kAhuyO" focusable="false" viewBox="0 0 32 32" width="32" height="32" xmlns="http://www.w3.org/2000/svg" > <path fill="#000" d="M12.33,17.59a.63.63,0,0,1,.21.69l-1.61,5.24a.37.37,0,0,0,.22.46.33.33,0,0,0,.32-.05l4.18-3.21A.59.59,0,0,1,16,20.6V8h0a.36.36,0,0,0-.31.25l-1.61,5.06a.59.59,0,0,1-.55.42H8.35a.35.35,0,0,0-.35.36.34.34,0,0,0,.14.29Z" data-darkreader-inline-fill="" style="--darkreader-inline-fill: #e8e6e3" ></path> <path fill="#fff" d="M16.35,20.72l4.18,3.21a.34.34,0,0,0,.49-.08.41.41,0,0,0,.05-.33l-1.61-5.24a.63.63,0,0,1,.21-.69l4.19-3.21a.37.37,0,0,0,.07-.51.32.32,0,0,0-.27-.14H18.5a.59.59,0,0,1-.56-.42L16.33,8.25A.33.33,0,0,0,16,8V20.6A.59.59,0,0,1,16.35,20.72Z" data-darkreader-inline-fill="" style="--darkreader-inline-fill: #e8e6e3" ></path> </svg></div></label ><input type="radio" aria-label="3 Rating" disabled="" id="Rating3-jc8to" name="Rating" value="3" class="RatingInput-eiXnJg elruQI"/><label for="Rating3-jc8to" class="RatingLabel-bfTVLo isepYR" ><div class="RatingStar-jYOYNK cVCJfL"> <svg class="icon icon-rating-half RatingStarHalf-qYNHV kAhuyO" focusable="false" viewBox="0 0 32 32" width="32" height="32" xmlns="http://www.w3.org/2000/svg" > <path fill="#000" d="M12.33,17.59a.63.63,0,0,1,.21.69l-1.61,5.24a.37.37,0,0,0,.22.46.33.33,0,0,0,.32-.05l4.18-3.21A.59.59,0,0,1,16,20.6V8h0a.36.36,0,0,0-.31.25l-1.61,5.06a.59.59,0,0,1-.55.42H8.35a.35.35,0,0,0-.35.36.34.34,0,0,0,.14.29Z" data-darkreader-inline-fill="" style="--darkreader-inline-fill: #e8e6e3" ></path> <path fill="#fff" d="M16.35,20.72l4.18,3.21a.34.34,0,0,0,.49-.08.41.41,0,0,0,.05-.33l-1.61-5.24a.63.63,0,0,1,.21-.69l4.19-3.21a.37.37,0,0,0,.07-.51.32.32,0,0,0-.27-.14H18.5a.59.59,0,0,1-.56-.42L16.33,8.25A.33.33,0,0,0,16,8V20.6A.59.59,0,0,1,16.35,20.72Z" data-darkreader-inline-fill="" style="--darkreader-inline-fill: #e8e6e3" ></path> </svg></div></label ><input type="radio" aria-label="4 Rating" disabled="" id="Rating4-o8ari6" name="Rating" value="4" class="RatingInput-eiXnJg elruQI"/><label for="Rating4-o8ari6" class="RatingLabel-bfTVLo isepYR" ><div class="RatingStar-jYOYNK cVCJfL"> <svg class="icon icon-rating-half RatingStarHalf-qYNHV kAhuyO" focusable="false" viewBox="0 0 32 32" width="32" height="32" xmlns="http://www.w3.org/2000/svg" > <path fill="#000" d="M12.33,17.59a.63.63,0,0,1,.21.69l-1.61,5.24a.37.37,0,0,0,.22.46.33.33,0,0,0,.32-.05l4.18-3.21A.59.59,0,0,1,16,20.6V8h0a.36.36,0,0,0-.31.25l-1.61,5.06a.59.59,0,0,1-.55.42H8.35a.35.35,0,0,0-.35.36.34.34,0,0,0,.14.29Z" data-darkreader-inline-fill="" style="--darkreader-inline-fill: #e8e6e3" ></path> <path fill="#fff" d="M16.35,20.72l4.18,3.21a.34.34,0,0,0,.49-.08.41.41,0,0,0,.05-.33l-1.61-5.24a.63.63,0,0,1,.21-.69l4.19-3.21a.37.37,0,0,0,.07-.51.32.32,0,0,0-.27-.14H18.5a.59.59,0,0,1-.56-.42L16.33,8.25A.33.33,0,0,0,16,8V20.6A.59.59,0,0,1,16.35,20.72Z" data-darkreader-inline-fill="" style="--darkreader-inline-fill: #e8e6e3" ></path> </svg></div></label ><input type="radio" aria-label="5 Rating" disabled="" id="Rating5-2pp9ef" name="Rating" value="5" class="RatingInput-eiXnJg ksWaZb" checked=""/><label for="Rating5-2pp9ef" class="RatingLabel-bfTVLo isepYR" ><div class="RatingStar-jYOYNK cVCJfL"> <svg class="icon icon-rating-half RatingStarHalf-qYNHV kAhuyO" focusable="false" viewBox="0 0 32 32" width="32" height="32" xmlns="http://www.w3.org/2000/svg" > <path fill="#000" d="M12.33,17.59a.63.63,0,0,1,.21.69l-1.61,5.24a.37.37,0,0,0,.22.46.33.33,0,0,0,.32-.05l4.18-3.21A.59.59,0,0,1,16,20.6V8h0a.36.36,0,0,0-.31.25l-1.61,5.06a.59.59,0,0,1-.55.42H8.35a.35.35,0,0,0-.35.36.34.34,0,0,0,.14.29Z" data-darkreader-inline-fill="" style="--darkreader-inline-fill: #e8e6e3" ></path> <path fill="#fff" d="M16.35,20.72l4.18,3.21a.34.34,0,0,0,.49-.08.41.41,0,0,0,.05-.33l-1.61-5.24a.63.63,0,0,1,.21-.69l4.19-3.21a.37.37,0,0,0,.07-.51.32.32,0,0,0-.27-.14H18.5a.59.59,0,0,1-.56-.42L16.33,8.25A.33.33,0,0,0,16,8V20.6A.59.59,0,0,1,16.35,20.72Z" data-darkreader-inline-fill="" style="--darkreader-inline-fill: #e8e6e3" ></path> </svg></div ></label> </div></form> <p class="BaseWrap-sc-TURhJ BaseText-fFzBQt RatingRatings-hdcWOq eTiIvU ctsKIO YKzAs" > (1) </p></div><div class="RatingLinkWrapper-dbNekV dClBlN"> <a href="https://www.bonappetit.com/recipe/nutty-umami-noodles-with-scallion-brown-butter-and-snow-peas#reviews" class="BaseWrap-sc-TURhJ BaseText-fFzBQt BaseLink-gZQqBA RatingLink-dUWFxi eTiIvU boUeKI FQMrp hzMdNT" >Read Reviews<svg class="icon icon-triangle RatingTriangle-ceiZLw dhGLdu" focusable="false" viewBox="0 0 10 5" width="10" height="5" xmlns="http://www.w3.org/2000/svg" > <title>Triangle</title> <path fill="#000" d="M10 0H0l5 5 5-5z" data-darkreader-inline-fill="" style="--darkreader-inline-fill: #e8e6e3" ></path></svg ></a> </div></div><div class="SocialIconsWrapper-ixWYBx eavmKn social-icons social-icons--standard SplitScreenContentHeaderSocialShare-liqnyT ioOpKH" data-event-boundary="click" data-event-click='{"pattern":"SocialIcons"}' data-in-view='{"pattern":"SocialIcons"}' data-include-experiments="true" > <ul class="SocialIconsList-NTOMk kKiupF social-icons__list" > <li class="SocialIconsListItem-hYmGVl ijYSfG social-icons__list-item social-icons__list-item--email social-icons__list-item--standard" > <a aria-label="Share via Email" class="external-link SocialIconExternalLink-gugldc fasHSv social-icons__link social-icons__link--email" data-event-click='{"element":"ExternalLink","outgoingURL":"mailto:?subject=Nutty%20Umami%20Noodles%20With%20Scallion%20Brown%20Butter%20and%20Snow%20Peas&amp;body=https%3A%2F%2Fwww.bonappetit.com%2Frecipe%2Fnutty-umami-noodles-with-scallion-brown-butter-and-snow-peas%3Futm_source%3Donsite-share%26utm_medium%3Demail%26utm_campaign%3Donsite-share%26utm_brand%3Dbon-appetit"}' href="mailto:?subject=Nutty%20Umami%20Noodles%20With%20Scallion%20Brown%20Butter%20and%20Snow%20Peas&amp;body=https%3A%2F%2Fwww.bonappetit.com%2Frecipe%2Fnutty-umami-noodles-with-scallion-brown-butter-and-snow-peas%3Futm_source%3Donsite-share%26utm_medium%3Demail%26utm_campaign%3Donsite-share%26utm_brand%3Dbon-appetit" rel="nofollow noopener" target="_blank" ><div class="SocialIconContainer-fbhAuK bTiaWs social-icons__icon-container" > <svg class="icon icon-email" focusable="false" viewBox="0 0 32 32" width="32" height="32" xmlns="http://www.w3.org/2000/svg" > <title>Email</title> <path d="M6 23h20V9H6v14zm3.631-12H22.37l-6.368 5.661L9.631 11zM24 12.227V21H8v-8.773l8.002 7.109L24 12.227z" fill-rule="evenodd" ></path> </svg></div ></a> </li><li class="SocialIconsListItem-hYmGVl ijYSfG social-icons__list-item social-icons__list-item--pinterest social-icons__list-item--standard" > <a aria-label="Share on Pinterest" data-pin-do="nothing" class="external-link SocialIconExternalLink-gugldc fasHSv social-icons__link social-icons__link--pinterest" data-event-click='{"element":"ExternalLink","outgoingURL":"https://www.pinterest.com/pin/create/button/?url=https%3A%2F%2Fwww.bonappetit.com%2Frecipe%2Fnutty-umami-noodles-with-scallion-brown-butter-and-snow-peas%3Futm_source%3Dpinterest%26utm_medium%3Dsocial%26utm_campaign%3Donsite-share%26utm_brand%3Dbon-appetit%26utm_social-type%3Dearned&amp;media=https://assets.bonappetit.com/photos/625def3e989fa4e14e8195db/1:1/w_360,c_limit/0418-snow-pea-noodles-lede.jpg"}' href="https://www.pinterest.com/pin/create/button/?url=https%3A%2F%2Fwww.bonappetit.com%2Frecipe%2Fnutty-umami-noodles-with-scallion-brown-butter-and-snow-peas%3Futm_source%3Dpinterest%26utm_medium%3Dsocial%26utm_campaign%3Donsite-share%26utm_brand%3Dbon-appetit%26utm_social-type%3Dearned&amp;media=https://assets.bonappetit.com/photos/625def3e989fa4e14e8195db/1:1/w_360,c_limit/0418-snow-pea-noodles-lede.jpg" rel="nofollow noopener" target="_blank" ><div class="SocialIconContainer-fbhAuK bTiaWs social-icons__icon-container" > <svg class="icon icon-pinterest" focusable="false" viewBox="0 0 32 32" width="32" height="32" fill="none" xmlns="http://www.w3.org/2000/svg" > <title>Pinterest</title> <path d="M15.169 18.448C14.793 20.093 14.425 21.678 13.623 22.928C13.377 23.311 13.13 23.793 12.71 24C12.09 20.807 13.387 18.12 13.899 15.436C13.246 14.103 13.652 11.846 15.051 11.59C17.077 11.22 16.543 13.664 16.2 14.8C16.01 15.424 15.671 16.021 15.722 16.705C15.835 18.146 17.648 18.24 18.577 17.497C19.909 16.436 20.295 14.385 20.164 12.7C19.967 10.135 17.062 8.85997 14.496 9.88497C13.173 10.413 11.973 11.628 11.799 13.413C11.709 14.353 11.906 15.104 12.276 15.634C12.331 15.715 12.523 15.857 12.552 16.072C12.61 16.506 12.352 16.974 12.116 17.298C10.802 16.92 10.124 15.741 10.016 14.248C9.76596 10.848 12.558 8.26397 15.841 8.02197C19.348 7.76497 22.126 9.78896 22.384 12.74C22.576 14.933 21.797 17.14 20.561 18.329C19.631 19.221 17.656 20.096 16.041 19.242C15.684 19.052 15.524 18.82 15.169 18.448Z" fill="black" data-darkreader-inline-fill="" style="--darkreader-inline-fill: #e8e6e3" ></path> </svg></div ></a> </li><li class="SocialIconsListItem-hYmGVl dMgIWA social-icons__list-item social-icons__list-item--print social-icons__list-item--standard" > <a aria-label="Print" class="external-link SocialIconExternalLink-gugldc fasHSv social-icons__link social-icons__link--print" data-event-click='{"element":"ExternalLink","outgoingURL":"#"}' href="https://www.bonappetit.com/recipe/nutty-umami-noodles-with-scallion-brown-butter-and-snow-peas#" rel="nofollow noopener" target="_blank" ><div class="SocialIconContainer-fbhAuK bTiaWs social-icons__icon-container" > <svg class="icon icon-print" focusable="false" viewBox="0 0 32 32" width="32" height="32" xmlns="http://www.w3.org/2000/svg" > <title>Print</title> <path d="M23 19v-5H9v5h2v-2h10v2h2zm2 2h-4v3H11v-3H7v-9h4V8h10v4h4v9zm-12-9h6v-2h-6v2zm0 10h6v-3h-6v3z" fill-rule="evenodd" ></path> </svg></div ></a> </li></ul> </div></div></div><div class="GridItem-buSdEM hHVmYW grid--item"> <div class="SplitScreenContentHeaderLeadWrapper-hQYGnq kYBern" > <div data-testid="ContentHeaderLeadAsset" class="SplitScreenContentHeaderLedeBlock-gAmDAY gPgpiX" > <span class="SpanWrapper-kGGzGm fCMktF responsive-asset SplitScreenContentHeaderLede-dgCDOt jxgqoA" ><picture class="ResponsiveImagePicture-jIKgcS fArnhQ SplitScreenContentHeaderLede-dgCDOt jxgqoA responsive-image" style="" ><source media="(max-width: 767px)" srcset=" https://assets.bonappetit.com/photos/625def3e989fa4e14e8195db/1:1/w_120,c_limit/0418-snow-pea-noodles-lede.jpg 120w, https://assets.bonappetit.com/photos/625def3e989fa4e14e8195db/1:1/w_240,c_limit/0418-snow-pea-noodles-lede.jpg 240w, https://assets.bonappetit.com/photos/625def3e989fa4e14e8195db/1:1/w_320,c_limit/0418-snow-pea-noodles-lede.jpg 320w, https://assets.bonappetit.com/photos/625def3e989fa4e14e8195db/1:1/w_640,c_limit/0418-snow-pea-noodles-lede.jpg 640w, https://assets.bonappetit.com/photos/625def3e989fa4e14e8195db/1:1/w_960,c_limit/0418-snow-pea-noodles-lede.jpg 960w " sizes="100vw"/> <source media="(min-width: 768px)" srcset=" https://assets.bonappetit.com/photos/625def3e989fa4e14e8195db/1:1/w_120,c_limit/0418-snow-pea-noodles-lede.jpg 120w, https://assets.bonappetit.com/photos/625def3e989fa4e14e8195db/1:1/w_240,c_limit/0418-snow-pea-noodles-lede.jpg 240w, https://assets.bonappetit.com/photos/625def3e989fa4e14e8195db/1:1/w_320,c_limit/0418-snow-pea-noodles-lede.jpg 320w, https://assets.bonappetit.com/photos/625def3e989fa4e14e8195db/1:1/w_640,c_limit/0418-snow-pea-noodles-lede.jpg 640w, https://assets.bonappetit.com/photos/625def3e989fa4e14e8195db/1:1/w_960,c_limit/0418-snow-pea-noodles-lede.jpg 960w, https://assets.bonappetit.com/photos/625def3e989fa4e14e8195db/1:1/w_1280,c_limit/0418-snow-pea-noodles-lede.jpg 1280w, https://assets.bonappetit.com/photos/625def3e989fa4e14e8195db/1:1/w_1600,c_limit/0418-snow-pea-noodles-lede.jpg 1600w, https://assets.bonappetit.com/photos/625def3e989fa4e14e8195db/1:1/w_1920,c_limit/0418-snow-pea-noodles-lede.jpg 1920w, https://assets.bonappetit.com/photos/625def3e989fa4e14e8195db/1:1/w_2240,c_limit/0418-snow-pea-noodles-lede.jpg 2240w " sizes="100vw"/> <img alt="Dish of noodles with snow peas and chopsticks on a beige background." class="ResponsiveImageContainer-dlOMGF byslZC responsive-image__image" src="./Nutty Umami Noodles With Scallion Brown Butter and Snow Peas Recipe _ Bon Appétit_files/0418-snow-pea-noodles-lede.jpg"/></picture ></span> </div></div></div></div><div class="GridWrapper-vNBSO bKMgMh grid grid-margins grid-items-0 SplitScreenContentHeaderGrid-bscspN gkPLCT" > <div class="GridItem-buSdEM kFFJpN grid--item"> <div class="CaptionWrapper-brisHk coCiRf caption SplitScreenContentHeaderCaption-gOzjgD MFnkM" data-event-boundary="click" data-event-click='{"pattern":"Caption"}' data-include-experiments="true" > <span class="BaseWrap-sc-TURhJ BaseText-fFzBQt CaptionCredit-cTdqxu eTiIvU fkQUYm iHbDSe caption__credit" >Photograph by Isa Zapata, Food Styling by Judy Kim, Prop Styling by Stephanie De Luca</span > </div></div></div><aside class="PersistentAsideWrapper-OTtoN kufQLx persistent-aside persistent-aside--align-left" style="position: absolute; top: 1200.05px; height: 1212.78px" data-testid="PersistentAsideWrapper" > <div class="StickyBoxWrapper-euhCxU jGyGtu sticky-box SplitScreenContentHeaderPersistentAside-ilqJXW eAjkjL" > <div class="StickyBoxPrimary-fEgDcn dFVkFO sticky-box__primary" > <div class="SocialIconsWrapper-ixWYBx eavmKn social-icons social-icons--has-background SplitScreenContentHeaderSocialIcons-fXZEUq ccAYwa social-icons--share" data-event-boundary="click" data-event-click='{"pattern":"SocialIcons"}' data-include-experiments="true" > <ul class="SocialIconsList-NTOMk kKiupF social-icons__list" > <li class="SocialIconsListItem-hYmGVl kGgUZg social-icons__list-item social-icons__list-item--email social-icons__list-item--has-background" > <a aria-label="Share via Email" class="external-link SocialIconExternalLink-gugldc cNnLqt social-icons__link social-icons__link--email" data-event-click='{"element":"ExternalLink","outgoingURL":"mailto:?subject=Nutty%20Umami%20Noodles%20With%20Scallion%20Brown%20Butter%20and%20Snow%20Peas&amp;body=https%3A%2F%2Fwww.bonappetit.com%2Frecipe%2Fnutty-umami-noodles-with-scallion-brown-butter-and-snow-peas%3Futm_source%3Donsite-share%26utm_medium%3Demail%26utm_campaign%3Donsite-share%26utm_brand%3Dbon-appetit"}' href="mailto:?subject=Nutty%20Umami%20Noodles%20With%20Scallion%20Brown%20Butter%20and%20Snow%20Peas&amp;body=https%3A%2F%2Fwww.bonappetit.com%2Frecipe%2Fnutty-umami-noodles-with-scallion-brown-butter-and-snow-peas%3Futm_source%3Donsite-share%26utm_medium%3Demail%26utm_campaign%3Donsite-share%26utm_brand%3Dbon-appetit" rel="nofollow noopener" target="_blank" ><div class="SocialIconContainer-fbhAuK bTiaWs social-icons__icon-container" > <svg class="icon icon-email" focusable="false" viewBox="0 0 32 32" width="32" height="32" xmlns="http://www.w3.org/2000/svg" > <title>Email</title> <path d="M6 23h20V9H6v14zm3.631-12H22.37l-6.368 5.661L9.631 11zM24 12.227V21H8v-8.773l8.002 7.109L24 12.227z" fill-rule="evenodd" ></path> </svg></div ></a> </li><li class="SocialIconsListItem-hYmGVl kGgUZg social-icons__list-item social-icons__list-item--pinterest social-icons__list-item--has-background" > <a aria-label="Share on Pinterest" data-pin-do="nothing" class="external-link SocialIconExternalLink-gugldc cNnLqt social-icons__link social-icons__link--pinterest" data-event-click='{"element":"ExternalLink","outgoingURL":"https://www.pinterest.com/pin/create/button/?url=https%3A%2F%2Fwww.bonappetit.com%2Frecipe%2Fnutty-umami-noodles-with-scallion-brown-butter-and-snow-peas%3Futm_source%3Dpinterest%26utm_medium%3Dsocial%26utm_campaign%3Donsite-share%26utm_brand%3Dbon-appetit%26utm_social-type%3Dearned&amp;media=https://assets.bonappetit.com/photos/625def3e989fa4e14e8195db/1:1/w_360,c_limit/0418-snow-pea-noodles-lede.jpg"}' href="https://www.pinterest.com/pin/create/button/?url=https%3A%2F%2Fwww.bonappetit.com%2Frecipe%2Fnutty-umami-noodles-with-scallion-brown-butter-and-snow-peas%3Futm_source%3Dpinterest%26utm_medium%3Dsocial%26utm_campaign%3Donsite-share%26utm_brand%3Dbon-appetit%26utm_social-type%3Dearned&amp;media=https://assets.bonappetit.com/photos/625def3e989fa4e14e8195db/1:1/w_360,c_limit/0418-snow-pea-noodles-lede.jpg" rel="nofollow noopener" target="_blank" ><div class="SocialIconContainer-fbhAuK bTiaWs social-icons__icon-container" > <svg class="icon icon-pinterest" focusable="false" viewBox="0 0 32 32" width="32" height="32" fill="none" xmlns="http://www.w3.org/2000/svg" > <title>Pinterest</title> <path d="M15.169 18.448C14.793 20.093 14.425 21.678 13.623 22.928C13.377 23.311 13.13 23.793 12.71 24C12.09 20.807 13.387 18.12 13.899 15.436C13.246 14.103 13.652 11.846 15.051 11.59C17.077 11.22 16.543 13.664 16.2 14.8C16.01 15.424 15.671 16.021 15.722 16.705C15.835 18.146 17.648 18.24 18.577 17.497C19.909 16.436 20.295 14.385 20.164 12.7C19.967 10.135 17.062 8.85997 14.496 9.88497C13.173 10.413 11.973 11.628 11.799 13.413C11.709 14.353 11.906 15.104 12.276 15.634C12.331 15.715 12.523 15.857 12.552 16.072C12.61 16.506 12.352 16.974 12.116 17.298C10.802 16.92 10.124 15.741 10.016 14.248C9.76596 10.848 12.558 8.26397 15.841 8.02197C19.348 7.76497 22.126 9.78896 22.384 12.74C22.576 14.933 21.797 17.14 20.561 18.329C19.631 19.221 17.656 20.096 16.041 19.242C15.684 19.052 15.524 18.82 15.169 18.448Z" fill="black" data-darkreader-inline-fill="" style="--darkreader-inline-fill: #e8e6e3" ></path> </svg></div ></a> </li><li class="SocialIconsListItem-hYmGVl cgthfO social-icons__list-item social-icons__list-item--print social-icons__list-item--has-background" > <a aria-label="Print" class="external-link SocialIconExternalLink-gugldc cNnLqt social-icons__link social-icons__link--print" data-event-click='{"element":"ExternalLink","outgoingURL":"#"}' href="https://www.bonappetit.com/recipe/nutty-umami-noodles-with-scallion-brown-butter-and-snow-peas#" rel="nofollow noopener" target="_blank" ><div class="SocialIconContainer-fbhAuK bTiaWs social-icons__icon-container" > <svg class="icon icon-print" focusable="false" viewBox="0 0 32 32" width="32" height="32" xmlns="http://www.w3.org/2000/svg" > <title>Print</title> <path d="M23 19v-5H9v5h2v-2h10v2h2zm2 2h-4v3H11v-3H7v-9h4V8h10v4h4v9zm-12-9h6v-2h-6v2zm0 10h6v-3h-6v3z" fill-rule="evenodd" ></path> </svg></div ></a> </li></ul> </div></div><div class="StickyBoxPlaceholder-jNQMsI laMCLq"></div></div></aside> </header> </div><div data-testid="RecipePagContentBackground" class="RecipePageContentBackground-mYkJd eMHPzI" > <div class="GridWrapper-vNBSO ceKrGh grid grid-margins grid-items-2 grid-layout--adrail" > <div class="GridItem-buSdEM bAVUqK grid--item grid-layout__content" > <div class="recipe__main-content" data-testid="recipe__main-content" data-journey-hook="recipe-content" > <div class="SocialIconsWrapper-ixWYBx eavmKn social-icons social-icons--circular RecipePageSocialIcons-jpTTYJ kkXdap" data-event-boundary="click" data-event-click='{"pattern":"SocialIcons"}' data-in-view='{"pattern":"SocialIcons"}' data-include-experiments="true" > <ul class="SocialIconsList-NTOMk kKiupF social-icons__list" > <li class="SocialIconsListItem-hYmGVl jmwLtf social-icons__list-item social-icons__list-item--email social-icons__list-item--circular" > <a aria-label="Share via Email" class="external-link SocialIconExternalLink-gugldc gmnqVV social-icons__link social-icons__link--email" data-event-click='{"element":"ExternalLink","outgoingURL":"mailto:?subject=Nutty%20Umami%20Noodles%20With%20Scallion%20Brown%20Butter%20and%20Snow%20Peas&amp;body=https%3A%2F%2Fwww.bonappetit.com%2Frecipe%2Fnutty-umami-noodles-with-scallion-brown-butter-and-snow-peas%3Futm_source%3Donsite-share%26utm_medium%3Demail%26utm_campaign%3Donsite-share%26utm_brand%3Dbon-appetit"}' href="mailto:?subject=Nutty%20Umami%20Noodles%20With%20Scallion%20Brown%20Butter%20and%20Snow%20Peas&amp;body=https%3A%2F%2Fwww.bonappetit.com%2Frecipe%2Fnutty-umami-noodles-with-scallion-brown-butter-and-snow-peas%3Futm_source%3Donsite-share%26utm_medium%3Demail%26utm_campaign%3Donsite-share%26utm_brand%3Dbon-appetit" rel="nofollow noopener" target="_blank" ><div class="SocialIconContainer-fbhAuK bTiaWs social-icons__icon-container" > <svg class="icon icon-email" focusable="false" viewBox="0 0 32 32" width="32" height="32" xmlns="http://www.w3.org/2000/svg" > <title>Email</title> <path d="M6 23h20V9H6v14zm3.631-12H22.37l-6.368 5.661L9.631 11zM24 12.227V21H8v-8.773l8.002 7.109L24 12.227z" fill-rule="evenodd" ></path> </svg></div ></a> </li><li class="SocialIconsListItem-hYmGVl jmwLtf social-icons__list-item social-icons__list-item--pinterest social-icons__list-item--circular" > <a aria-label="Share on Pinterest" data-pin-do="nothing" class="external-link SocialIconExternalLink-gugldc gmnqVV social-icons__link social-icons__link--pinterest" data-event-click='{"element":"ExternalLink","outgoingURL":"https://www.pinterest.com/pin/create/button/?url=https%3A%2F%2Fwww.bonappetit.com%2Frecipe%2Fnutty-umami-noodles-with-scallion-brown-butter-and-snow-peas%3Futm_source%3Dpinterest%26utm_medium%3Dsocial%26utm_campaign%3Donsite-share%26utm_brand%3Dbon-appetit%26utm_social-type%3Dearned&amp;media=https://assets.bonappetit.com/photos/625def3e989fa4e14e8195db/1:1/w_360,c_limit/0418-snow-pea-noodles-lede.jpg"}' href="https://www.pinterest.com/pin/create/button/?url=https%3A%2F%2Fwww.bonappetit.com%2Frecipe%2Fnutty-umami-noodles-with-scallion-brown-butter-and-snow-peas%3Futm_source%3Dpinterest%26utm_medium%3Dsocial%26utm_campaign%3Donsite-share%26utm_brand%3Dbon-appetit%26utm_social-type%3Dearned&amp;media=https://assets.bonappetit.com/photos/625def3e989fa4e14e8195db/1:1/w_360,c_limit/0418-snow-pea-noodles-lede.jpg" rel="nofollow noopener" target="_blank" ><div class="SocialIconContainer-fbhAuK bTiaWs social-icons__icon-container" > <svg class="icon icon-pinterest" focusable="false" viewBox="0 0 32 32" width="32" height="32" fill="none" xmlns="http://www.w3.org/2000/svg" > <title>Pinterest</title> <path d="M15.169 18.448C14.793 20.093 14.425 21.678 13.623 22.928C13.377 23.311 13.13 23.793 12.71 24C12.09 20.807 13.387 18.12 13.899 15.436C13.246 14.103 13.652 11.846 15.051 11.59C17.077 11.22 16.543 13.664 16.2 14.8C16.01 15.424 15.671 16.021 15.722 16.705C15.835 18.146 17.648 18.24 18.577 17.497C19.909 16.436 20.295 14.385 20.164 12.7C19.967 10.135 17.062 8.85997 14.496 9.88497C13.173 10.413 11.973 11.628 11.799 13.413C11.709 14.353 11.906 15.104 12.276 15.634C12.331 15.715 12.523 15.857 12.552 16.072C12.61 16.506 12.352 16.974 12.116 17.298C10.802 16.92 10.124 15.741 10.016 14.248C9.76596 10.848 12.558 8.26397 15.841 8.02197C19.348 7.76497 22.126 9.78896 22.384 12.74C22.576 14.933 21.797 17.14 20.561 18.329C19.631 19.221 17.656 20.096 16.041 19.242C15.684 19.052 15.524 18.82 15.169 18.448Z" fill="black" data-darkreader-inline-fill="" style="--darkreader-inline-fill: #e8e6e3" ></path> </svg></div ></a> </li><li class="SocialIconsListItem-hYmGVl kBrmpJ social-icons__list-item social-icons__list-item--print social-icons__list-item--circular" > <a aria-label="Print" class="external-link SocialIconExternalLink-gugldc iPiEPZ social-icons__link social-icons__link--print" data-event-click='{"element":"ExternalLink","outgoingURL":"#"}' href="https://www.bonappetit.com/recipe/nutty-umami-noodles-with-scallion-brown-butter-and-snow-peas#" rel="nofollow noopener" target="_blank" ><div class="SocialIconContainer-fbhAuK bTiaWs social-icons__icon-container" > <svg class="icon icon-print" focusable="false" viewBox="0 0 32 32" width="32" height="32" xmlns="http://www.w3.org/2000/svg" > <title>Print</title> <path d="M23 19v-5H9v5h2v-2h10v2h2zm2 2h-4v3H11v-3H7v-9h4V8h10v4h4v9zm-12-9h6v-2h-6v2zm0 10h6v-3h-6v3z" fill-rule="evenodd" ></path> </svg></div ></a> </li></ul> </div><div class="BodyWrapper-ctnerm iCoheu body" data-journey-hook="client-content" data-testid="BodyWrapper" > <div> <div class="container container--body"> <div class="container--body-inner"> <p> Ideal for busy days, these quick, simple noodles taste like they took hours to make. Pantry superstar <a href="https://www.bonappetit.com/story/oyster-sauce-explainer" >oyster sauce</a > is beloved for its salty, funky flavors—its great for adding a quick hit of umami—but can be a bit intense solo. Thats where the scallion brown butter comes in—scallions sizzle away while the butter browns, yielding toasty scallions and an aromatic, nutty fat that cuts through the intensity of the oyster sauce. Throw in some crisp snow peas and toss everything together with some cooked noodles for a low-lift, high-reward meal that comes together in a flash. If snow peas arent available, feel free to swap in any other quick-cooking crisp vegetable you like; sliced bell pepper or chopped broccolini would work just as well. —<em>Zaynab Issa</em> </p></div></div></div></div><div class="TextBlockWrapper-bNpEhy crDLbD StyledTextblock-jnyQsC kLFIQl disclaimer" data-event-boundary="click" data-event-click='{"pattern":"Disclaimer"}' data-include-experiments="true" > <p class="BaseWrap-sc-TURhJ BaseText-fFzBQt TextBlockText-cEIMvM eTiIvU lbqBYJ" > All products featured on Bon Appétit are independently selected by our editors. However, when you buy something through the retail links below, we earn an affiliate commission. </p></div><div class="journey-unit__container"> <div class="Wrapper-jPJGme hSQph journey-unit__inline-barrier" > <span ><span >This is the end of your recipes from Bon Appétit and Epicurious.</span >&nbsp;<a href="https://www.bonappetit.com/v2/offers/ba004?source=JNY_BNA_DESKTOP_TRUNCATED_MESSAGE_0_BA_SPRING_SALE_APRIL_2022_PANELA_ZZ&amp;Itm_medium=site&amp;Itm_source=JNY_BNA_DESKTOP_TRUNCATED_MESSAGE&amp;Itm_campaign=ba004" target="_blank" rel="noopener noreferrer" class="Link-jszJDm fTStwy" >Subscribe Now</a >.&nbsp;<span>If you're already a subscriber</span >&nbsp;<a href="https://www.bonappetit.com/auth/initiate?redirectURL=https%3A%2F%2Fwww.bonappetit.com%2Frecipe%2Fnutty-umami-noodles-with-scallion-brown-butter-and-snow-peas" class="Link-jszJDm fTStwy" >Sign In</a >.</span > </div></div><div class="consumer-marketing-unit--in-content"> <div class="journey-unit"> <div class="journey-template--cm_in-content"> <style>@font-face{font-family: Graphik; font-style: normal; src: url(/verso/static/assets/fonts/Graphik-Semibold.woff) format("woff");}@font-face{font-family: Gilroy; font-weight: 200; src: url(/verso/static/assets/fonts/Gilroy-Regular.ttf) format("truetype");}@font-face{font-family: Gilroy; font-weight: 500; src: url(/verso/static/assets/fonts/Gilroy-Medium.ttf) format("truetype");}@font-face{font-family: Gilroy; font-weight: 800; src: url(/verso/static/assets/fonts/Gilroy-Bold.ttf) format("truetype");}.journey-template--cm_in-content{display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center;}.cm-in-content__container{width: 450px; height: 140px; margin: 25px 0; -webkit-box-shadow: 0 0 20px 0 #d3d3d3; box-shadow: 0 0 20px 0 #d3d3d3; background-color: #fffbeb;}.cm-in-content__container:hover{opacity: 0.8; cursor: pointer;}.cm-in-content__copy{font-family: Gilroy, helvetica, sans-serif; font-size: 15.46px; line-height: 17.71px; text-align: left; font-weight: 500; max-width: 210px;}.cm-in-content__copy--old-price::after{content: ""; position: absolute; width: 28px; border: 1px solid #ffa800; -webkit-transform: translate(-28px, 5px); -ms-transform: translate(-28px, 5px); transform: translate(-28px, 5px);}.cm-in-content__copy--new-price{display: -webkit-inline-box; display: -ms-inline-flexbox; display: inline-flex; color: #ffa800; font-weight: 800;}.cm-in-content__subscribe{background: #ffa800; color: #000; display: block; font-family: Graphik, helvetica, sans-serif; font-size: 11.29px; line-height: 19px; text-align: center; height: 19px; width: 88px;}.cm-in-content__content{display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-direction: row; flex-direction: row; -webkit-box-pack: start; -ms-flex-pack: start; justify-content: flex-start; height: 100%; background-image: url("https://assets.bonappetit.com/photos/61eebe487cb361706d2d724b/master/pass/kimchi-fried-grains%201.png"); background-size: 218px 140px; background-repeat: no-repeat; background-position: right;}.cm-in-content__content--left{display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; -webkit-box-pack: space-evenly; -ms-flex-pack: space-evenly; justify-content: space-evenly; -webkit-box-align: left; -ms-flex-align: left; align-items: left; padding: 0 11px;}.cm-in-content__logos{display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; width: 203px; height: 25px;}.cm-in-content__logos--divider{width: 50px;}.cm-in-content__logos--first, .cm-in-content__logos--second{width: 100%; height: 100%;}.cm-in-content__full-link{position: absolute; width: 450px; height: 140px;}.sr-only{position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); border: 0;}@media screen and (min-width: 768px) and (max-width: 1023px){.cm-in-content__container, .cm-in-content__full-link{min-width: 724px; height: 190px;}.cm-in-content__content{background-size: 380px 190px;}.cm-in-content__content--left{padding: 0 23px;}.cm-in-content__logos{width: 292.34px; height: 36px;}.cm-in-content__logos--divider{width: 60px;}.cm-in-content__copy{max-width: 270px; font-size: 20.99px; line-height: 24.04px;}.cm-in-content__subscribe{font-size: 14.75px; line-height: 25px; height: 25px; width: 115px;}.cm-in-content__copy--old-price::after{width: 37px; -webkit-transform: translate(-38px, 8px); -ms-transform: translate(-38px, 8px); transform: translate(-38px, 8px);}}@media screen and (max-width: 767px){.cm-in-content__container, .cm-in-content__full-link{width: 276px; height: 100px;}.cm-in-content__content{background-size: 131px 100px;}.cm-in-content__content--left{padding: 0 11px;}.cm-in-content__logos{width: 140px; height: 17.24px;}.cm-in-content__logos--divider{width: 20px;}.cm-in-content__copy{max-width: 130px; font-size: 10.46px; line-height: 11.98px;}.cm-in-content__subscribe{font-size: 7.44px; line-height: 12.56px; text-align: center; height: 12.56px; width: 58px;}.cm-in-content__copy--old-price::after{width: 20px; -webkit-transform: translate(-20px, 3px); -ms-transform: translate(-20px, 3px); transform: translate(-20px, 3px);}}</style ><style class="darkreader darkreader--sync" media="screen" ></style> <div class="cm-in-content__container"> <a target="_blank" rel="noopener noreferrer" class="cm-in-content__full-link" href="https://www.bonappetit.com/v2/offers/ba004?source=JNY_BNA_DESKTOP_IN_CONTENT_0_BA_SPRING_SALE_APRIL_2022_PANELA_ZZ&amp;Itm_medium=site&amp;Itm_source=JNY_BNA_DESKTOP_IN_CONTENT&amp;Itm_campaign=ba004" ><span class="sr-only">SUBSCRIBE </span></a > <div class="cm-in-content__content"> <div class="cm-in-content__content--left"> <div class="cm-in-content__logos"> <svg class="cm-in-content__logos--first" fill="none" viewBox="0 0 149 32" xmlns="http://www.w3.org/2000/svg" > <path d="m26.922 9.078c-4.4365 0-7.6426 3.4125-7.6426 7.8616 0 4.449 3.2061 7.8615 7.6426 7.8615 4.4364 0 7.6425-3.4125 7.6425-7.8615 0-4.4491-3.2061-7.8616-7.6425-7.8616zm0 13.819c-2.9846 0-4.5103-2.5946-4.5103-5.9931 0-3.3984 1.5257-5.9931 4.5103-5.9931s4.5103 2.5947 4.5103 5.9931c0 3.3985-1.5292 5.9931-4.5103 5.9931zm44.372-0.6169c-0.3239 0.2097-0.6923 0.3401-1.0757 0.3807-0.4183 0-0.6152-0.2221-0.6152-0.8425v-7.1777c0-3.4125-2.1093-5.563-5.8919-5.563-3.4521 0-5.695 1.6569-5.695 3.5254-0.0101 0.1934 0.0195 0.3868 0.0872 0.5682 0.0676 0.1814 0.1718 0.3469 0.3061 0.4862 0.1342 0.1392 0.2956 0.2492 0.4741 0.3232 0.1785 0.0739 0.3703 0.1102 0.5634 0.1065 0.7875 0 1.2832-0.3736 1.7015-1.5088 0.4429-1.2127 1.0546-1.7063 2.7104-1.7063 1.8983 0 2.8123 1.0153 2.8123 3.0918v1.3079c-6.8023 0.2714-9.4389 2.2738-9.4389 5.2175 0 2.6194 1.9722 4.2516 4.8302 4.2516 0.9004-0.0117 1.7886-0.2112 2.608-0.5856 0.8195-0.3745 1.5523-0.9158 2.1519-1.5895 0.2707 1.3572 1.255 1.9777 2.6612 1.9777 0.9381-0.0349 1.8314-0.4108 2.5135-1.0576l-0.7031-1.2092v0.0035zm-8.5284 0.3807c-1.3816 0-2.3202-0.8919-2.3202-2.2738 0-1.879 1.8245-3.1729 6.2153-3.4619v3.5253c-1.0371 1.4313-2.6155 2.2104-3.8951 2.2104zm49.35-14.546l-0.665-0.7932 2.071-2.5206c0.428-0.53037 0.889-1.0342 1.378-1.5089 0.766-0.64162 1.578-0.59226 2.109 0.02468s0.447 1.4348-0.351 2.1152c-0.55 0.40982-1.127 0.782-1.726 1.114l-2.816 1.5688zm1.381 14.546c-2.96 0-4.637-2.027-4.637-5.7357-4e-3 -0.1731 5e-3 -0.3463 0.025-0.5183h10.304v-1.0505c0-3.4091-2.489-6.3034-6.384-6.3034-4.018 0-7.08 3.5606-7.08 7.8616 0 4.7698 2.882 7.8616 7.382 7.8616 2.517 0 4.809-1.2128 6.584-3.3879l-1.117-1.1951c-1.6 1.6146-3.252 2.4677-5.077 2.4677zm-0.703-11.718c1.948 0 3.255 1.4102 3.329 3.7334h-6.988c0.516-2.3338 1.944-3.744 3.67-3.744l-0.011 0.0106zm15.999 10.456l1.111 1.2374c-1.308 1.4348-2.788 2.1751-4.363 2.1751-2.267 0-3.575-1.1387-3.575-3.4866v-10.121h-2.44v-1.5336c2.563-0.32081 3.424-1.2092 3.846-5.8556h1.501v5.7076h4.219v1.6816h-4.219v10.047c0 1.0576 0.394 1.4348 1.283 1.4348 0.992-0.1588 1.913-0.6105 2.647-1.2973l-0.01 0.0106zm3.723-16.414c0-0.38628 0.114-0.76389 0.328-1.0851 0.214-0.32118 0.518-0.57151 0.874-0.71933s0.747-0.1865 1.125-0.11114 0.725 0.26137 0.997 0.53451c0.273 0.27314 0.458 0.62114 0.533 0.99999 0.076 0.37886 0.037 0.77155-0.11 1.1284-0.148 0.35687-0.397 0.6619-0.718 0.8765-0.32 0.21461-0.697 0.32915-1.082 0.32915-0.256 2e-5 -0.51-0.05092-0.746-0.14986s-0.451-0.24391-0.631-0.42654c-0.18-0.18262-0.322-0.39926-0.418-0.63738s-0.145-0.49299-0.142-0.74985l-0.01 0.01058zm-80.152 17.979v1.4102h-7.9132v-1.4102c2.2921-0.1727 2.4889-0.3948 2.4889-2.5947v-5.8168c0-2.2986-0.914-3.3385-2.7385-3.3385-1.3288 0-2.9565 0.9906-4.2888 2.6475v6.4902c0 2.1999 0.1968 2.4219 2.4924 2.5947v1.4101h-7.9378v-1.4101c2.292-0.1728 2.5135-0.3948 2.5135-2.5947v-6.7264c0-2.1998-0.2215-2.4219-2.5135-2.5947v-1.4136l5.2977-0.39484v2.57c1.357-1.7027 3.1639-2.718 5.129-2.718 3.0796 0 5.0025 1.953 5.0025 5.3409v5.9579c-0.0492 2.1751 0.1723 2.3972 2.4889 2.57l-0.0211 0.0211zm28.124-13.893c-0.8698 7.4e-4 -1.7284 0.19644-2.513 0.57279-0.7846 0.37637-1.4755 0.92377-2.0219 1.6024v-2.0694l-5.2767 0.39484v1.4102c2.2956 0.1727 2.5171 0.3948 2.5171 2.5947v14.101c0 2.1999-0.2215 2.4255-2.5171 2.5982v1.4102h8.4581v-1.3573c-2.6893-0.1974-3.0092-0.3984-3.0092-2.5982v-4.583c1.2505 1.0819 2.8595 1.6554 4.5103 1.6076 4.1658 0 7.052-3.6346 7.052-7.8616 0-4.4243-3.0338-7.8369-7.175-7.8369l-0.0246 0.0141zm-0.4922 13.59c-0.7281-0.0087-1.4464-0.1701-2.1087-0.4736-0.6623-0.3036-1.254-0.7427-1.7372-1.289v-7.6184c0.9879-1.3079 2.4608-2.1152 3.7967-2.1152 2.7596 0 4.6087 2.0765 4.6087 5.7358 0 3.7475-1.9229 5.7604-4.5595 5.7604zm58.448 0.2962v1.4101h-7.938v-1.4101c2.292-0.1728 2.513-0.3949 2.513-2.5947v-6.737c0-2.1998-0.221-2.4219-2.513-2.5947v-1.4136l5.452-0.39131v11.126c0 2.1999 0.194 2.4219 2.486 2.5947v0.0106zm-41.215-13.904c-0.8702 7.2e-4 -1.7293 0.19639-2.5145 0.57272-0.7852 0.37637-1.4767 0.92377-2.0239 1.6025v-2.0518l-5.2977 0.39484v1.4102c2.292 0.1727 2.5135 0.3948 2.5135 2.5947v14.101c0 2.1999-0.2215 2.4255-2.5135 2.5982v1.4102h8.437v-1.3573c-2.6858-0.1974-3.0092-0.3984-3.0092-2.5982v-4.583c1.2514 1.0828 2.8617 1.6563 4.5138 1.6076 4.1657 0 7.0487-3.6346 7.0487-7.8616 0-4.4243-3.031-7.8369-7.1717-7.8369l0.0175-0.00353zm-0.5202 13.608c-0.7282-9e-3 -1.4464-0.1704-2.1086-0.4739-0.6623-0.3036-1.2541-0.7425-1.7373-1.2887v-7.6184c0.9878-1.3079 2.4608-2.1152 3.7966-2.1152 2.7632 0 4.6127 2.0765 4.6127 5.7358-0.025 3.758-1.9234 5.7604-4.5705 5.7604h0.0071zm-85.931-13.608c-0.82622-0.00646-1.644 0.16667-2.3972 0.50747-0.75312 0.34081-1.4237 0.84122-1.9655 1.4667v-10.181l-5.4489 0.34549v1.4102c2.2921 0.17274 2.5135 0.39484 2.5135 2.5947v19.284h1.0019l1.3288-1.7627c1.2831 1.3855 3.0584 2.0518 5.0552 2.0518 4.2185 0 7.0976-3.6346 7.0976-7.8616-0.014-4.4419-3.0443-7.8545-7.1855-7.8545zm-0.5168 13.608c-0.72801-0.0094-1.4461-0.171-2.1083-0.4745-0.66221-0.3035-1.254-0.7423-1.7376-1.2881v-7.6184c1.0089-1.3572 2.4889-2.1152 3.772-2.1152 2.7596 0 4.6087 2.0765 4.6087 5.7358 0.0246 3.7721-1.9475 5.7604-4.5349 5.7604zm138.61-0.0493c-1.311 1.4242-2.784 2.1646-4.362 2.1646-2.268 0-3.575-1.1387-3.575-3.4866v-10.111h-2.44v-1.5335c2.563-0.3208 3.428-1.2092 3.846-5.8556h1.504v5.7076h4.57v1.6816h-4.57v10.037c0 1.0576 0.394 1.4349 1.28 1.4349 0.668 0 1.702-0.4442 2.616-1.2374 0.024-0.0247 1.131 1.188 1.131 1.188v0.0106z" fill="#000" data-darkreader-inline-fill="" style="--darkreader-inline-fill: #000000" ></path> </svg> <svg class="cm-in-content__logos--divider" viewBox="0 0 4 41" fill="none" xmlns="http://www.w3.org/2000/svg" > <path d="M3.00444 0.458252H0.874115V41H3.00444V0.458252Z" fill="black" data-darkreader-inline-fill="" style="--darkreader-inline-fill: #e8e6e3" ></path> </svg> <svg class="cm-in-content__logos--second" fill="none" viewBox="0 0 149 32" xmlns="http://www.w3.org/2000/svg" > <path d="m24.588 22.146c-0.2607 0.0189-0.5217-0.033-0.7556-0.1503-0.2338-0.1172-0.4318-0.2954-0.5732-0.516v-10.974c0.4336-0.3488 0.9733-0.53799 1.5292-0.53588 2.1092 0 2.6858 2.7216 2.6858 5.8345-0.0246 4.6147-1.3078 6.3421-2.8862 6.3421zm2.5417-14.708c-0.7461-0.00174-1.4831 0.16388-2.157 0.48473-0.674 0.32085-1.2679 0.78882-1.7381 1.3696l-0.1231-1.5335h-5.6247l-0.0246 23.733h5.7935v-7.9356c0.8895 0.7048 1.9952 1.0786 3.1287 1.0576 3.867 0 6.7813-3.6347 6.7813-8.6054 0.0035-4.5901-1.9441-8.5702-6.036-8.5702zm64.332 0.35254h5.7653v16.456h-5.7653v-16.456zm-1.5292 3.0424c0 1.9037-1.0863 3.2116-2.8616 3.2116s-2.6611-1.2585-2.6611-2.4677c0.0202-0.65 0.2158-1.2823 0.5659-1.8297-0.703-0.39484-2.7596 0.44418-3.4732 2.8203v11.634h-5.7618v-16.418h5.6704l0.0738 2.7462c1.0336-1.953 2.612-3.0917 4.5701-3.0917 2.5416 0 3.8845 1.6076 3.8845 3.4126l-7e-3 -0.0177zm-22.284-3.0424h5.7688v16.456h-5.7618v-3.6312c-0.5941 1.6041-1.9721 4.0295-4.9567 4.0295-3.0795 0-4.5701-2.4501-4.5701-5.0695v-9.3951c0-1.2338-0.3515-1.8508-0.7874-2.0517v-0.32081h6.5422v10.086c0 2.4995 1.1073 2.6723 1.7577 2.6723 0.9105 0 1.603-0.7932 1.9968-1.9284v-10.83l0.0105-0.01762zm80.542 11.119c0 3.3103-2.96 5.6617-7.175 5.6617-2.218 0-4.338-1.114-5.547-1.114-0.862 0-1.083 0.2468-1.083 0.2468l-0.197-4.5478h0.517c2.316 3.0883 3.919 4.4244 6.327 4.4244 1.554 0 2.858-0.765 2.858-2.1153 0-1.4348-1.279-1.7803-3.128-2.2245-5.006-1.2867-6.409-3.4619-6.409-6.402 0-3.2398 2.834-5.4644 6.36-5.4644 1.089 0.00634 2.171 0.18968 3.202 0.54291 0.545 0.17274 2.074 0.84256 3.108 0.76853v4.4137h-0.492c-1.948-2.8661-3.649-4.7451-5.794-4.7451-1.357 0-2.109 0.83903-2.109 1.9284 0 1.3326 1.255 1.7027 3.515 2.3479 4.001 1.2832 6.047 2.8414 6.047 6.2787zm-21.571-11.101h5.769v16.439h-5.769v-3.6312c-0.59 1.6041-1.972 4.0295-4.953 4.0295-3.083 0-4.588-2.4501-4.588-5.0695v-9.3951c0-1.2338-0.351-1.8508-0.787-2.0517v-0.32081h6.581v10.086c0 2.4995 1.111 2.6723 1.757 2.6723 0.911 0 1.604-0.7932 1.997-1.9284v-10.83h-7e-3zm-19.524 15.748c-1.677 0-2.268-2.2739-2.268-7.5655 0-5.2915 0.615-7.5619 2.268-7.5619 1.652 0 2.267 2.2739 2.267 7.5619 0 5.2881-0.615 7.5655-2.267 7.5655zm0-16.118c-5.224 0-8.2336 3.8321-8.2336 8.5525 0 4.7205 3.0336 8.5561 8.2336 8.5561 5.199 0 8.219-3.8321 8.219-8.5561 0-4.7239-3.017-8.5525-8.219-8.5525zm-72.285 0.37016h5.7653v16.439h-5.7653v-16.439zm21.528 10.974l0.3515 0.1234c-0.4183 2.1752-2.4151 5.6865-6.9254 5.6865-5.1044 0-7.5441-3.9802-7.5441-8.5808 0-4.9355 3.2307-8.6019 8.0609-8.6019 3.5752 0 5.7688 1.9037 5.7688 3.9801 0.0052 0.3064-0.0524 0.6106-0.1692 0.8937s-0.2903 0.5392-0.5098 0.7524c-0.2195 0.2131-0.4803 0.3788-0.7662 0.4868s-0.5909 0.156-0.8961 0.141c-0.5452-0.0259-1.0601-0.259-1.4401-0.6518-0.38-0.3929-0.5966-0.9162-0.6059-1.4634 0-1.1845 0.7031-1.8544 1.5785-1.9778-0.1621-0.31076-0.4129-0.56599-0.7204-0.73304-0.3074-0.16705-0.6576-0.23832-1.0057-0.20471-1.5784 0-3.3537 1.9531-3.3537 6.6982 0 3.0918 1.5046 5.8345 4.57 5.8345 2.4608-0.0247 3.5998-2.3973 3.5998-2.3973l0.0071 0.0141zm35.179-15.448c0-1.4595 1.255-2.6194 2.8334-2.6194s2.8334 1.1598 2.8334 2.6194-1.255 2.6194-2.8334 2.6194-2.8334-1.1598-2.8334-2.6194zm-56.648 0c0-1.4595 1.255-2.6194 2.8335-2.6194 1.5784 0 2.8334 1.1598 2.8334 2.6194s-1.255 2.6194-2.8334 2.6194c-1.5785 0-2.8335-1.1598-2.8335-2.6194zm-28.102 12.98c-0.52028-3.5606 0.51679-7.4668 1.9476-7.4668 1.4307 0 2.0705 2.9402 2.1092 6.3456l-4.0568 1.1211zm1.8737-8.8522c-5.252 0-8.3597 4.0048-8.3597 8.5772 0 2.7463 1.0863 5.2669 3.0584 6.8498 1.4073 1.2006 3.2044 1.8428 5.0517 1.805 1.7007 0.0466 3.366-0.4922 4.7187-1.5268 1.3528-1.0346 2.3115-2.5026 2.7165-4.1596h-0.0247c-0.0015-0.0134-1e-4 -0.027 0.0041-0.0398 0.0043-0.0128 0.0113-0.0245 0.0206-0.0343l-0.3692-0.1234s-1.7999 2.3726-4.4856 2.3726c-0.8321-0.0113-1.6407-0.2783-2.3167-0.765-0.80404-0.6788-1.3523-1.6131-1.5538-2.6475l9.0452-2.6194v-0.074c-0.2356-4.449-3.3643-7.6148-7.5055-7.6148z" fill="#000" data-darkreader-inline-fill="" style="--darkreader-inline-fill: #000000" ></path> </svg> </div><div class="cm-in-content__copy"> SPRING SALE: Get unlimited recipes from Bon Appétit &amp; Epicurious for just <span class="cm-in-content__copy--old-price" >$40</span >&nbsp; <span class="cm-in-content__copy--new-price" >$30/year</span > </div><span class="cm-in-content__subscribe" >SUBSCRIBE </span> </div></div></div></div></div></div></div></div><div class="GridItem-buSdEM gqSnsO grid--item grid-layout__aside" > <div class="StickyBoxWrapper-euhCxU hyXuto sticky-box"> <div class="StickyBoxPrimary-fEgDcn dFVkFO sticky-box__primary" > <aside data-testid="RecipePageAside"> <div class="Container-imGeBO ftlPuP" data-event-boundary="click" data-event-click='{"pattern":"CNEInterludeEmbed"}' data-include-experiments="true" > <figure data-testid="cne-interlude-container-right-rail" class="VideoFigure-hZUgyy hXSqpS" > <figure class="CneVideoEmbedFigure-bJIZil dApMCp cne-video-embed" > <div data-testid="script-container"> <script src="./Nutty Umami Noodles With Scallion Brown Butter and Snow Peas Recipe _ Bon Appétit_files/6196c1e045bf220327fc618b.js" async="" ></script> </div></figure> </figure> </div><div class="AdWrapper-fFweuL dIvDeZ ad dnogabee" style="" > <div class="ad__slot ad__slot--rail" data-node-id="oxk71xo" ></div></div></aside> </div><div class="StickyBoxPlaceholder-jNQMsI laMCLq"></div></div></div></div><div> <div class="AdWrapper-fFweuL dIvDeZ ad dkclpj" style=""> <div class="ad__slot ad__slot--mid-content" data-node-id="2r1oqa" ></div></div><div class="GridWrapper-vNBSO ceKrGh grid grid-margins grid-items-2 grid-layout--adrail" > <div class="GridItem-buSdEM bAVUqK grid--item grid-layout__content" > <div data-testid="RecipePageMainContent" data-journey-hook="recipe-footer" > <div data-testid="RatingForm" class="Wrapper-fDOZmy ijncMl" > <p class="BaseWrap-sc-TURhJ BaseText-fFzBQt FormText-fqnGvK eTiIvU dBeAHQ diRKFl" > How would you rate Nutty Umami Noodles With Scallion Brown Butter and Snow Peas? </p><div class="RatingWrapper-fBZCax dKnIpo RatingFormRating-fAtcQT gbAUHj" data-testid="RatingWrapper" > <div class="RatingFormWrapper-kZAlTn jVaOTH"> <form action="https://www.bonappetit.com/recipe/nutty-umami-noodles-with-scallion-brown-butter-and-snow-peas" class="RatingForm-izEdqc LMGQo" > <div role="group" aria-label="Rating" class="RatingStars-hxPLbF dQvuET" > <input type="radio" aria-label="0 Rating" id="Rating0-reox9" name="Rating" value="0" class="RatingInput-eiXnJg ksWaZb" checked=""/><label for="Rating0-reox9" class="RatingLabel-bfTVLo isepYR" ></label ><input type="radio" aria-label="1 Rating" id="Rating1-7l1h4" name="Rating" value="1" class="RatingInput-eiXnJg elruQI"/><label for="Rating1-7l1h4" class="RatingLabel-bfTVLo isepYR" ><div class="RatingStar-jYOYNK cVCJfL"> <svg class="icon icon-rating-half RatingStarHalf-qYNHV kAhuyO" focusable="false" viewBox="0 0 32 32" width="32" height="32" xmlns="http://www.w3.org/2000/svg" > <path fill="#000" d="M12.33,17.59a.63.63,0,0,1,.21.69l-1.61,5.24a.37.37,0,0,0,.22.46.33.33,0,0,0,.32-.05l4.18-3.21A.59.59,0,0,1,16,20.6V8h0a.36.36,0,0,0-.31.25l-1.61,5.06a.59.59,0,0,1-.55.42H8.35a.35.35,0,0,0-.35.36.34.34,0,0,0,.14.29Z" data-darkreader-inline-fill="" style=" --darkreader-inline-fill: #000000; " ></path> <path fill="#fff" d="M16.35,20.72l4.18,3.21a.34.34,0,0,0,.49-.08.41.41,0,0,0,.05-.33l-1.61-5.24a.63.63,0,0,1,.21-.69l4.19-3.21a.37.37,0,0,0,.07-.51.32.32,0,0,0-.27-.14H18.5a.59.59,0,0,1-.56-.42L16.33,8.25A.33.33,0,0,0,16,8V20.6A.59.59,0,0,1,16.35,20.72Z" data-darkreader-inline-fill="" style=" --darkreader-inline-fill: #181a1b; " ></path> </svg></div></label ><input type="radio" aria-label="2 Rating" id="Rating2-6pf8u9" name="Rating" value="2" class="RatingInput-eiXnJg elruQI"/><label for="Rating2-6pf8u9" class="RatingLabel-bfTVLo isepYR" ><div class="RatingStar-jYOYNK cVCJfL"> <svg class="icon icon-rating-half RatingStarHalf-qYNHV kAhuyO" focusable="false" viewBox="0 0 32 32" width="32" height="32" xmlns="http://www.w3.org/2000/svg" > <path fill="#000" d="M12.33,17.59a.63.63,0,0,1,.21.69l-1.61,5.24a.37.37,0,0,0,.22.46.33.33,0,0,0,.32-.05l4.18-3.21A.59.59,0,0,1,16,20.6V8h0a.36.36,0,0,0-.31.25l-1.61,5.06a.59.59,0,0,1-.55.42H8.35a.35.35,0,0,0-.35.36.34.34,0,0,0,.14.29Z" data-darkreader-inline-fill="" style=" --darkreader-inline-fill: #000000; " ></path> <path fill="#fff" d="M16.35,20.72l4.18,3.21a.34.34,0,0,0,.49-.08.41.41,0,0,0,.05-.33l-1.61-5.24a.63.63,0,0,1,.21-.69l4.19-3.21a.37.37,0,0,0,.07-.51.32.32,0,0,0-.27-.14H18.5a.59.59,0,0,1-.56-.42L16.33,8.25A.33.33,0,0,0,16,8V20.6A.59.59,0,0,1,16.35,20.72Z" data-darkreader-inline-fill="" style=" --darkreader-inline-fill: #181a1b; " ></path> </svg></div></label ><input type="radio" aria-label="3 Rating" id="Rating3-fczyar" name="Rating" value="3" class="RatingInput-eiXnJg elruQI"/><label for="Rating3-fczyar" class="RatingLabel-bfTVLo isepYR" ><div class="RatingStar-jYOYNK cVCJfL"> <svg class="icon icon-rating-half RatingStarHalf-qYNHV kAhuyO" focusable="false" viewBox="0 0 32 32" width="32" height="32" xmlns="http://www.w3.org/2000/svg" > <path fill="#000" d="M12.33,17.59a.63.63,0,0,1,.21.69l-1.61,5.24a.37.37,0,0,0,.22.46.33.33,0,0,0,.32-.05l4.18-3.21A.59.59,0,0,1,16,20.6V8h0a.36.36,0,0,0-.31.25l-1.61,5.06a.59.59,0,0,1-.55.42H8.35a.35.35,0,0,0-.35.36.34.34,0,0,0,.14.29Z" data-darkreader-inline-fill="" style=" --darkreader-inline-fill: #000000; " ></path> <path fill="#fff" d="M16.35,20.72l4.18,3.21a.34.34,0,0,0,.49-.08.41.41,0,0,0,.05-.33l-1.61-5.24a.63.63,0,0,1,.21-.69l4.19-3.21a.37.37,0,0,0,.07-.51.32.32,0,0,0-.27-.14H18.5a.59.59,0,0,1-.56-.42L16.33,8.25A.33.33,0,0,0,16,8V20.6A.59.59,0,0,1,16.35,20.72Z" data-darkreader-inline-fill="" style=" --darkreader-inline-fill: #181a1b; " ></path> </svg></div></label ><input type="radio" aria-label="4 Rating" id="Rating4-2w0pgd" name="Rating" value="4" class="RatingInput-eiXnJg elruQI"/><label for="Rating4-2w0pgd" class="RatingLabel-bfTVLo isepYR" ><div class="RatingStar-jYOYNK cVCJfL"> <svg class="icon icon-rating-half RatingStarHalf-qYNHV kAhuyO" focusable="false" viewBox="0 0 32 32" width="32" height="32" xmlns="http://www.w3.org/2000/svg" > <path fill="#000" d="M12.33,17.59a.63.63,0,0,1,.21.69l-1.61,5.24a.37.37,0,0,0,.22.46.33.33,0,0,0,.32-.05l4.18-3.21A.59.59,0,0,1,16,20.6V8h0a.36.36,0,0,0-.31.25l-1.61,5.06a.59.59,0,0,1-.55.42H8.35a.35.35,0,0,0-.35.36.34.34,0,0,0,.14.29Z" data-darkreader-inline-fill="" style=" --darkreader-inline-fill: #000000; " ></path> <path fill="#fff" d="M16.35,20.72l4.18,3.21a.34.34,0,0,0,.49-.08.41.41,0,0,0,.05-.33l-1.61-5.24a.63.63,0,0,1,.21-.69l4.19-3.21a.37.37,0,0,0,.07-.51.32.32,0,0,0-.27-.14H18.5a.59.59,0,0,1-.56-.42L16.33,8.25A.33.33,0,0,0,16,8V20.6A.59.59,0,0,1,16.35,20.72Z" data-darkreader-inline-fill="" style=" --darkreader-inline-fill: #181a1b; " ></path> </svg></div></label ><input type="radio" aria-label="5 Rating" id="Rating5-uunuha" name="Rating" value="5" class="RatingInput-eiXnJg elruQI"/><label for="Rating5-uunuha" class="RatingLabel-bfTVLo isepYR" ><div class="RatingStar-jYOYNK cVCJfL"> <svg class="icon icon-rating-half RatingStarHalf-qYNHV kAhuyO" focusable="false" viewBox="0 0 32 32" width="32" height="32" xmlns="http://www.w3.org/2000/svg" > <path fill="#000" d="M12.33,17.59a.63.63,0,0,1,.21.69l-1.61,5.24a.37.37,0,0,0,.22.46.33.33,0,0,0,.32-.05l4.18-3.21A.59.59,0,0,1,16,20.6V8h0a.36.36,0,0,0-.31.25l-1.61,5.06a.59.59,0,0,1-.55.42H8.35a.35.35,0,0,0-.35.36.34.34,0,0,0,.14.29Z" data-darkreader-inline-fill="" style=" --darkreader-inline-fill: #000000; " ></path> <path fill="#fff" d="M16.35,20.72l4.18,3.21a.34.34,0,0,0,.49-.08.41.41,0,0,0,.05-.33l-1.61-5.24a.63.63,0,0,1,.21-.69l4.19-3.21a.37.37,0,0,0,.07-.51.32.32,0,0,0-.27-.14H18.5a.59.59,0,0,1-.56-.42L16.33,8.25A.33.33,0,0,0,16,8V20.6A.59.59,0,0,1,16.35,20.72Z" data-darkreader-inline-fill="" style=" --darkreader-inline-fill: #181a1b; " ></path> </svg></div ></label> </div></form> </div></div></div><div class="ReviewFormWrapper-ignKem dahgTQ" data-testid="ReviewForm" > <p class="BaseWrap-sc-TURhJ BaseText-fFzBQt ReviewFormHed-jEqMgU eTiIvU bRJKvq gODmjh" > Leave a Review </p><div class="ReviewFormMinimised-gYxwSQ kCCjdS"> <a href="https://www.bonappetit.com/auth/initiate?redirectURL=%2Frecipe%2Fnutty-umami-noodles-with-scallion-brown-butter-and-snow-peas%23leave-a-review&amp;source=BA_REVIEW_MODULE" rel="nofollow" class="BaseWrap-sc-TURhJ BaseText-fFzBQt BaseLink-gZQqBA ReviewFormSignin-hJWEd eTiIvU iwPQea bzVvKL" >Tell us what you think</a > <div> <span class="TextFieldWrapper-fzQmAh hGyqtp text-field" data-testid="TextFieldWrapper__isMinimised" ><label class="BaseWrap-sc-TURhJ BaseText-fFzBQt TextFieldLabel-gPTGiA eTiIvU iNpanY jSnkP text-field__label text-field__label--single-line" for="isMinimised-text-field-isMinimised" data-testid="TextFieldLabel__isMinimised" ><div class="TextFieldInputContainer-fva-dAv dqaKkd" > <input aria-describedby="" aria-invalid="false" id="isMinimised-text-field-isMinimised" name="isMinimised" placeholder="Tell us what you think" tabindex="-1" aria-label="Your Review" class="BaseInput-jNjmrm TextFieldControlInput-dlkCbz cfTVp bvkGm text-field__control text-field__control--input" data-testid="TextFieldInput__isMinimised" value=""/></div></label ></span> </div></div></div><div data-testid="TagCloudWrapper" class="TagCloudWrapper-iObtCt jgMgOM RecipePageTagCloud-eLojkJ dDJlhd" data-event-boundary="click" data-event-click='{"pattern":"TagCloud"}' data-in-view='{"pattern":"TagCloud"}' data-include-experiments="true" > <span class="BaseWrap-sc-TURhJ BaseText-fFzBQt TagCloudSectionHeader-bxSJuw eTiIvU hMiqQB gwaqBV" >Explore Bon Appétit</span ><a href="https://www.bonappetit.com/meal-time/dinner" class="BaseWrap-sc-TURhJ BaseText-fFzBQt BaseLink-gZQqBA TagCloudLink-ijUwVu eTiIvU iwPQea bzVvKL gUaZio" ><span class="BaseWrap-sc-TURhJ BaseText-fFzBQt TagCloudName-hJkwyN eTiIvU eFDOgO hDKWeI" >Dinner</span ></a ><a href="https://www.bonappetit.com/meal/main" class="BaseWrap-sc-TURhJ BaseText-fFzBQt BaseLink-gZQqBA TagCloudLink-ijUwVu eTiIvU iwPQea bzVvKL gUaZio" ><span class="BaseWrap-sc-TURhJ BaseText-fFzBQt TagCloudName-hJkwyN eTiIvU eFDOgO hDKWeI" >Main</span ></a ><a href="https://www.bonappetit.com/diet/vegetarian" class="BaseWrap-sc-TURhJ BaseText-fFzBQt BaseLink-gZQqBA TagCloudLink-ijUwVu eTiIvU iwPQea bzVvKL gUaZio" ><span class="BaseWrap-sc-TURhJ BaseText-fFzBQt TagCloudName-hJkwyN eTiIvU eFDOgO hDKWeI" >Vegetarian</span ></a ><a href="https://www.bonappetit.com/simple-cooking/easy" class="BaseWrap-sc-TURhJ BaseText-fFzBQt BaseLink-gZQqBA TagCloudLink-ijUwVu eTiIvU iwPQea bzVvKL gUaZio" ><span class="BaseWrap-sc-TURhJ BaseText-fFzBQt TagCloudName-hJkwyN eTiIvU eFDOgO hDKWeI" >Easy</span ></a ><a href="https://www.bonappetit.com/simple-cooking/quick" class="BaseWrap-sc-TURhJ BaseText-fFzBQt BaseLink-gZQqBA TagCloudLink-ijUwVu eTiIvU iwPQea bzVvKL gUaZio" ><span class="BaseWrap-sc-TURhJ BaseText-fFzBQt TagCloudName-hJkwyN eTiIvU eFDOgO hDKWeI" >Quick</span ></a ><a href="https://www.bonappetit.com/simple-cooking/weeknight-meals" class="BaseWrap-sc-TURhJ BaseText-fFzBQt BaseLink-gZQqBA TagCloudLink-ijUwVu eTiIvU iwPQea bzVvKL gUaZio" ><span class="BaseWrap-sc-TURhJ BaseText-fFzBQt TagCloudName-hJkwyN eTiIvU eFDOgO hDKWeI" >Weeknight Meals</span ></a ><a href="https://www.bonappetit.com/cooking-method/saute" class="BaseWrap-sc-TURhJ BaseText-fFzBQt BaseLink-gZQqBA TagCloudLink-ijUwVu eTiIvU iwPQea bzVvKL gUaZio" ><span class="BaseWrap-sc-TURhJ BaseText-fFzBQt TagCloudName-hJkwyN eTiIvU eFDOgO hDKWeI" >Sauté</span ></a ><a href="https://www.bonappetit.com/ingredient/pea" class="BaseWrap-sc-TURhJ BaseText-fFzBQt BaseLink-gZQqBA TagCloudLink-ijUwVu eTiIvU iwPQea bzVvKL gUaZio" ><span class="BaseWrap-sc-TURhJ BaseText-fFzBQt TagCloudName-hJkwyN eTiIvU eFDOgO hDKWeI" >Pea</span ></a ><a href="https://www.bonappetit.com/ingredient/vegetable" class="BaseWrap-sc-TURhJ BaseText-fFzBQt BaseLink-gZQqBA TagCloudLink-ijUwVu eTiIvU iwPQea bzVvKL gUaZio" ><span class="BaseWrap-sc-TURhJ BaseText-fFzBQt TagCloudName-hJkwyN eTiIvU eFDOgO hDKWeI" >Vegetable</span ></a ><a href="https://www.bonappetit.com/ingredient/noodle" class="BaseWrap-sc-TURhJ BaseText-fFzBQt BaseLink-gZQqBA TagCloudLink-ijUwVu eTiIvU iwPQea bzVvKL gUaZio" ><span class="BaseWrap-sc-TURhJ BaseText-fFzBQt TagCloudName-hJkwyN eTiIvU eFDOgO hDKWeI" >Noodle</span ></a ><a href="https://www.bonappetit.com/ingredient/pasta-noodles" class="BaseWrap-sc-TURhJ BaseText-fFzBQt BaseLink-gZQqBA TagCloudLink-ijUwVu eTiIvU iwPQea bzVvKL gUaZio" ><span class="BaseWrap-sc-TURhJ BaseText-fFzBQt TagCloudName-hJkwyN eTiIvU eFDOgO hDKWeI" >Pasta &amp; Noodles</span ></a ><a href="https://www.bonappetit.com/ingredient/udon-noodle" class="BaseWrap-sc-TURhJ BaseText-fFzBQt BaseLink-gZQqBA TagCloudLink-ijUwVu eTiIvU iwPQea bzVvKL gUaZio" ><span class="BaseWrap-sc-TURhJ BaseText-fFzBQt TagCloudName-hJkwyN eTiIvU eFDOgO hDKWeI" >Udon Noodle</span ></a ><a href="https://www.bonappetit.com/ingredient/ramen-noodle" class="BaseWrap-sc-TURhJ BaseText-fFzBQt BaseLink-gZQqBA TagCloudLink-ijUwVu eTiIvU iwPQea bzVvKL gUaZio" ><span class="BaseWrap-sc-TURhJ BaseText-fFzBQt TagCloudName-hJkwyN eTiIvU eFDOgO hDKWeI" >Ramen Noodle</span ></a > </div></div></div><div class="GridItem-buSdEM gqSnsO grid--item grid-layout__aside" > <div class="StickyBoxWrapper-euhCxU hyXuto sticky-box"> <div class="StickyBoxPrimary-fEgDcn dFVkFO sticky-box__primary" > <aside data-testid="RecipePageAside"> <div class="AdWrapper-fFweuL dIvDeZ ad dnogabee" style="" > <div class="ad__slot ad__slot--rail" data-node-id="w8qod8" ></div></div></aside> </div><div class="StickyBoxPlaceholder-jNQMsI laMCLq"></div></div></div></div></div></div></article> <div class="AdWrapper-fFweuL dIvDeZ RecipePagePostArticleAd-dImatf fAvAGi ad dkclpj" style="" > <div class="ad__slot ad__slot--mid-content" data-node-id="0lulr" ></div></div><div class="RowWrapper-egDQBE hVsKfd"> <div class="RowWrapper-egDQBE hVsKfd"> <div data-attr-viewport-monitor="" class="recirc-list-wrapper viewport-monitor-anchor" data-event-boundary="click" data-event-click='{"pattern":"RecircList"}' data-in-view='{"pattern":"RecircList"}' data-include-experiments="true" ></div><div class="OutbrainWidgetWrapper-fFjWuu eDfNSM recipe__outbrain-widget" data-testid="OutbrainWidgetWrapper" > <div class="OutbrainWidgetContent-jsIKcw berEVH OUTBRAIN" data-ob-template="Bonappetit" data-src="https://www.bonappetit.com/recipe/nutty-umami-noodles-with-scallion-brown-butter-and-snow-peas" data-widget-id="AR_16" data-testid="OutbrainWidgetContent" ></div></div></div></div><div class="RowWrapper-egDQBE hVsKfd"> <div class="AdWrapper-fFweuL dIvDeZ ad eghfmmg" style=""> <div class="ad__slot ad__slot--footer" data-node-id="prp58hqh" ></div></div></div></main> <div class="BasePageMainFooterFiller-iguLyd dSQtIn page__main-footer-filler" ></div><div class="RowWrapper-egDQBE hVsKfd"> <div class="ConsumerMarketingUnitThemedWrapper-kkMeXf hBFNZw consumer-marketing-unit consumer-marketing-unit--cm-footer" role="presentation" aria-hidden="false" > <div class="consumer-marketing-unit__slot consumer-marketing-unit__slot--cm-footer" ></div><div class="journey-unit"> <div class="journey-template--cm_footer"> <style>@font-face{font-family: Graphik; font-style: normal; src: url(/verso/static/assets/fonts/Graphik-Semibold.woff) format("woff");}@font-face{font-family: Gilroy; font-weight: 200; src: url(/verso/static/assets/fonts/Gilroy-Regular.ttf) format("truetype");}@font-face{font-family: Gilroy; font-weight: 500; src: url(/verso/static/assets/fonts/Gilroy-Medium.ttf) format("truetype");}@font-face{font-family: Gilroy; font-weight: 800; src: url(/verso/static/assets/fonts/Gilroy-Bold.ttf) format("truetype");}.cm-footer__container{width: 940px; height: 140px; margin: 0 auto; -webkit-box-shadow: 0 0 20px 0 #d3d3d3; box-shadow: 0 0 20px 0 #d3d3d3; background-color: #fffbeb;}.cm-footer__container:hover{opacity: 0.8; cursor: pointer;}.cm-footer__copy{font-family: Gilroy, helvetica, sans-serif; font-size: 20.99px; line-height: 24.04px; text-align: left; font-weight: 500; max-width: 375px;}.cm-footer__copy--old-price::after{content: ""; position: absolute; width: 37px; border: 1px solid #ffa800; -webkit-transform: translate(-38px, 8px); -ms-transform: translate(-38px, 8px); transform: translate(-38px, 8px);}.cm-footer__copy--new-price{display: -webkit-inline-box; display: -ms-inline-flexbox; display: inline-flex; color: #ffa800; font-weight: 800;}.cm-footer__subscribe{background: #ffa800; color: #000; display: block; font-family: Graphik, helvetica, sans-serif; font-size: 12.44px; line-height: 21px; text-align: center; height: 21px; width: 97px;}.cm-footer__content{display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: start; -ms-flex-pack: start; justify-content: flex-start; -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-direction: row; flex-direction: row; height: 100%; background-image: url("https://assets.bonappetit.com/photos/61eebbd41f296a670ddd9d19/master/pass/Fresh%20Fruit%20Tart%20with%20Almond%20Press-In%20Crust%201.png"); background-size: 565px 140px; background-repeat: no-repeat; background-position: right;}.cm-footer__content--left{display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; -webkit-box-pack: space-evenly; -ms-flex-pack: space-evenly; justify-content: space-evenly; -webkit-box-align: left; -ms-flex-align: left; align-items: left; padding-left: 20px;}.cm-footer__logos{display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; width: 269px; height: 33.13px;}.cm-footer__logos--divider{width: 50px;}.cm-footer__logos--first, .cm-footer__logos--second{width: 100%; height: 100%;}.cm-footer__full-link{position: absolute; width: 940px; height: 140px;}.sr-only{position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); border: 0;}@media screen and (min-width: 768px) and (max-width: 1023px){.cm-footer__container, .cm-footer__full-link{width: 724px; height: 190px;}.cm-footer__content{background-size: 400px 190px;}.cm-footer__content--left{padding-right: 11px;}.cm-footer__logos{width: 292.34px; height: 36px;}.cm-footer__logos--divider{width: 60px;}.cm-footer__copy{max-width: 270px;}.cm-footer__subscribe{width: 120.1px; height: 26px; font-size: 15.4px; line-height: 26px;}}@media screen and (max-width: 767px){.cm-footer__container, .cm-footer__full-link{width: 276px; height: 100px;}.cm-footer__content{background-size: 135px 100px;}.cm-footer__content--left{padding: 0 11px;}.cm-footer__logos{width: 140px; height: 17.24px;}.cm-footer__logos--divider{width: 20px;}.cm-footer__copy{max-width: 135px; font-size: 10.46px; line-height: 11.98px;}.cm-footer__subscribe{font-size: 7.57px; line-height: 12.77px; text-align: center; height: 12.77px; width: 59px;}.cm-footer__copy--old-price::after{width: 20px; -webkit-transform: translate(-20px, 3px); -ms-transform: translate(-20px, 3px); transform: translate(-20px, 3px);}}</style ><style class="darkreader darkreader--sync" media="screen" ></style> <div class="cm-footer__container"> <a target="_blank" rel="noopener noreferrer" class="cm-footer__full-link" href="https://www.bonappetit.com/v2/offers/ba004?source=JNY_BNA_DESKTOP_CM_FOOTER_0_BA_SPRING_SALE_APRIL_2022_PANELA_ZZ&amp;Itm_medium=site&amp;Itm_source=JNY_BNA_DESKTOP_CM_FOOTER&amp;Itm_campaign=ba004" ><span class="sr-only">SUBSCRIBE </span></a > <div class="cm-footer__content"> <div class="cm-footer__content--left"> <div class="cm-footer__logos"> <svg class="cm-footer__logos--first" fill="none" viewBox="0 0 149 32" xmlns="http://www.w3.org/2000/svg" > <path d="m26.922 9.078c-4.4365 0-7.6426 3.4125-7.6426 7.8616 0 4.449 3.2061 7.8615 7.6426 7.8615 4.4364 0 7.6425-3.4125 7.6425-7.8615 0-4.4491-3.2061-7.8616-7.6425-7.8616zm0 13.819c-2.9846 0-4.5103-2.5946-4.5103-5.9931 0-3.3984 1.5257-5.9931 4.5103-5.9931s4.5103 2.5947 4.5103 5.9931c0 3.3985-1.5292 5.9931-4.5103 5.9931zm44.372-0.6169c-0.3239 0.2097-0.6923 0.3401-1.0757 0.3807-0.4183 0-0.6152-0.2221-0.6152-0.8425v-7.1777c0-3.4125-2.1093-5.563-5.8919-5.563-3.4521 0-5.695 1.6569-5.695 3.5254-0.0101 0.1934 0.0195 0.3868 0.0872 0.5682 0.0676 0.1814 0.1718 0.3469 0.3061 0.4862 0.1342 0.1392 0.2956 0.2492 0.4741 0.3232 0.1785 0.0739 0.3703 0.1102 0.5634 0.1065 0.7875 0 1.2832-0.3736 1.7015-1.5088 0.4429-1.2127 1.0546-1.7063 2.7104-1.7063 1.8983 0 2.8123 1.0153 2.8123 3.0918v1.3079c-6.8023 0.2714-9.4389 2.2738-9.4389 5.2175 0 2.6194 1.9722 4.2516 4.8302 4.2516 0.9004-0.0117 1.7886-0.2112 2.608-0.5856 0.8195-0.3745 1.5523-0.9158 2.1519-1.5895 0.2707 1.3572 1.255 1.9777 2.6612 1.9777 0.9381-0.0349 1.8314-0.4108 2.5135-1.0576l-0.7031-1.2092v0.0035zm-8.5284 0.3807c-1.3816 0-2.3202-0.8919-2.3202-2.2738 0-1.879 1.8245-3.1729 6.2153-3.4619v3.5253c-1.0371 1.4313-2.6155 2.2104-3.8951 2.2104zm49.35-14.546l-0.665-0.7932 2.071-2.5206c0.428-0.53037 0.889-1.0342 1.378-1.5089 0.766-0.64162 1.578-0.59226 2.109 0.02468s0.447 1.4348-0.351 2.1152c-0.55 0.40982-1.127 0.782-1.726 1.114l-2.816 1.5688zm1.381 14.546c-2.96 0-4.637-2.027-4.637-5.7357-4e-3 -0.1731 5e-3 -0.3463 0.025-0.5183h10.304v-1.0505c0-3.4091-2.489-6.3034-6.384-6.3034-4.018 0-7.08 3.5606-7.08 7.8616 0 4.7698 2.882 7.8616 7.382 7.8616 2.517 0 4.809-1.2128 6.584-3.3879l-1.117-1.1951c-1.6 1.6146-3.252 2.4677-5.077 2.4677zm-0.703-11.718c1.948 0 3.255 1.4102 3.329 3.7334h-6.988c0.516-2.3338 1.944-3.744 3.67-3.744l-0.011 0.0106zm15.999 10.456l1.111 1.2374c-1.308 1.4348-2.788 2.1751-4.363 2.1751-2.267 0-3.575-1.1387-3.575-3.4866v-10.121h-2.44v-1.5336c2.563-0.32081 3.424-1.2092 3.846-5.8556h1.501v5.7076h4.219v1.6816h-4.219v10.047c0 1.0576 0.394 1.4348 1.283 1.4348 0.992-0.1588 1.913-0.6105 2.647-1.2973l-0.01 0.0106zm3.723-16.414c0-0.38628 0.114-0.76389 0.328-1.0851 0.214-0.32118 0.518-0.57151 0.874-0.71933s0.747-0.1865 1.125-0.11114 0.725 0.26137 0.997 0.53451c0.273 0.27314 0.458 0.62114 0.533 0.99999 0.076 0.37886 0.037 0.77155-0.11 1.1284-0.148 0.35687-0.397 0.6619-0.718 0.8765-0.32 0.21461-0.697 0.32915-1.082 0.32915-0.256 2e-5 -0.51-0.05092-0.746-0.14986s-0.451-0.24391-0.631-0.42654c-0.18-0.18262-0.322-0.39926-0.418-0.63738s-0.145-0.49299-0.142-0.74985l-0.01 0.01058zm-80.152 17.979v1.4102h-7.9132v-1.4102c2.2921-0.1727 2.4889-0.3948 2.4889-2.5947v-5.8168c0-2.2986-0.914-3.3385-2.7385-3.3385-1.3288 0-2.9565 0.9906-4.2888 2.6475v6.4902c0 2.1999 0.1968 2.4219 2.4924 2.5947v1.4101h-7.9378v-1.4101c2.292-0.1728 2.5135-0.3948 2.5135-2.5947v-6.7264c0-2.1998-0.2215-2.4219-2.5135-2.5947v-1.4136l5.2977-0.39484v2.57c1.357-1.7027 3.1639-2.718 5.129-2.718 3.0796 0 5.0025 1.953 5.0025 5.3409v5.9579c-0.0492 2.1751 0.1723 2.3972 2.4889 2.57l-0.0211 0.0211zm28.124-13.893c-0.8698 7.4e-4 -1.7284 0.19644-2.513 0.57279-0.7846 0.37637-1.4755 0.92377-2.0219 1.6024v-2.0694l-5.2767 0.39484v1.4102c2.2956 0.1727 2.5171 0.3948 2.5171 2.5947v14.101c0 2.1999-0.2215 2.4255-2.5171 2.5982v1.4102h8.4581v-1.3573c-2.6893-0.1974-3.0092-0.3984-3.0092-2.5982v-4.583c1.2505 1.0819 2.8595 1.6554 4.5103 1.6076 4.1658 0 7.052-3.6346 7.052-7.8616 0-4.4243-3.0338-7.8369-7.175-7.8369l-0.0246 0.0141zm-0.4922 13.59c-0.7281-0.0087-1.4464-0.1701-2.1087-0.4736-0.6623-0.3036-1.254-0.7427-1.7372-1.289v-7.6184c0.9879-1.3079 2.4608-2.1152 3.7967-2.1152 2.7596 0 4.6087 2.0765 4.6087 5.7358 0 3.7475-1.9229 5.7604-4.5595 5.7604zm58.448 0.2962v1.4101h-7.938v-1.4101c2.292-0.1728 2.513-0.3949 2.513-2.5947v-6.737c0-2.1998-0.221-2.4219-2.513-2.5947v-1.4136l5.452-0.39131v11.126c0 2.1999 0.194 2.4219 2.486 2.5947v0.0106zm-41.215-13.904c-0.8702 7.2e-4 -1.7293 0.19639-2.5145 0.57272-0.7852 0.37637-1.4767 0.92377-2.0239 1.6025v-2.0518l-5.2977 0.39484v1.4102c2.292 0.1727 2.5135 0.3948 2.5135 2.5947v14.101c0 2.1999-0.2215 2.4255-2.5135 2.5982v1.4102h8.437v-1.3573c-2.6858-0.1974-3.0092-0.3984-3.0092-2.5982v-4.583c1.2514 1.0828 2.8617 1.6563 4.5138 1.6076 4.1657 0 7.0487-3.6346 7.0487-7.8616 0-4.4243-3.031-7.8369-7.1717-7.8369l0.0175-0.00353zm-0.5202 13.608c-0.7282-9e-3 -1.4464-0.1704-2.1086-0.4739-0.6623-0.3036-1.2541-0.7425-1.7373-1.2887v-7.6184c0.9878-1.3079 2.4608-2.1152 3.7966-2.1152 2.7632 0 4.6127 2.0765 4.6127 5.7358-0.025 3.758-1.9234 5.7604-4.5705 5.7604h0.0071zm-85.931-13.608c-0.82622-0.00646-1.644 0.16667-2.3972 0.50747-0.75312 0.34081-1.4237 0.84122-1.9655 1.4667v-10.181l-5.4489 0.34549v1.4102c2.2921 0.17274 2.5135 0.39484 2.5135 2.5947v19.284h1.0019l1.3288-1.7627c1.2831 1.3855 3.0584 2.0518 5.0552 2.0518 4.2185 0 7.0976-3.6346 7.0976-7.8616-0.014-4.4419-3.0443-7.8545-7.1855-7.8545zm-0.5168 13.608c-0.72801-0.0094-1.4461-0.171-2.1083-0.4745-0.66221-0.3035-1.254-0.7423-1.7376-1.2881v-7.6184c1.0089-1.3572 2.4889-2.1152 3.772-2.1152 2.7596 0 4.6087 2.0765 4.6087 5.7358 0.0246 3.7721-1.9475 5.7604-4.5349 5.7604zm138.61-0.0493c-1.311 1.4242-2.784 2.1646-4.362 2.1646-2.268 0-3.575-1.1387-3.575-3.4866v-10.111h-2.44v-1.5335c2.563-0.3208 3.428-1.2092 3.846-5.8556h1.504v5.7076h4.57v1.6816h-4.57v10.037c0 1.0576 0.394 1.4349 1.28 1.4349 0.668 0 1.702-0.4442 2.616-1.2374 0.024-0.0247 1.131 1.188 1.131 1.188v0.0106z" fill="#000" data-darkreader-inline-fill="" style="--darkreader-inline-fill: #000000" ></path> </svg> <svg class="cm-footer__logos--divider" viewBox="0 0 4 41" fill="none" xmlns="http://www.w3.org/2000/svg" > <path d="M3.00444 0.458252H0.874115V41H3.00444V0.458252Z" fill="black" data-darkreader-inline-fill="" style="--darkreader-inline-fill: #000000" ></path> </svg> <svg class="cm-footer__logos--second" fill="none" viewBox="0 0 149 32" xmlns="http://www.w3.org/2000/svg" > <path d="m24.588 22.146c-0.2607 0.0189-0.5217-0.033-0.7556-0.1503-0.2338-0.1172-0.4318-0.2954-0.5732-0.516v-10.974c0.4336-0.3488 0.9733-0.53799 1.5292-0.53588 2.1092 0 2.6858 2.7216 2.6858 5.8345-0.0246 4.6147-1.3078 6.3421-2.8862 6.3421zm2.5417-14.708c-0.7461-0.00174-1.4831 0.16388-2.157 0.48473-0.674 0.32085-1.2679 0.78882-1.7381 1.3696l-0.1231-1.5335h-5.6247l-0.0246 23.733h5.7935v-7.9356c0.8895 0.7048 1.9952 1.0786 3.1287 1.0576 3.867 0 6.7813-3.6347 6.7813-8.6054 0.0035-4.5901-1.9441-8.5702-6.036-8.5702zm64.332 0.35254h5.7653v16.456h-5.7653v-16.456zm-1.5292 3.0424c0 1.9037-1.0863 3.2116-2.8616 3.2116s-2.6611-1.2585-2.6611-2.4677c0.0202-0.65 0.2158-1.2823 0.5659-1.8297-0.703-0.39484-2.7596 0.44418-3.4732 2.8203v11.634h-5.7618v-16.418h5.6704l0.0738 2.7462c1.0336-1.953 2.612-3.0917 4.5701-3.0917 2.5416 0 3.8845 1.6076 3.8845 3.4126l-7e-3 -0.0177zm-22.284-3.0424h5.7688v16.456h-5.7618v-3.6312c-0.5941 1.6041-1.9721 4.0295-4.9567 4.0295-3.0795 0-4.5701-2.4501-4.5701-5.0695v-9.3951c0-1.2338-0.3515-1.8508-0.7874-2.0517v-0.32081h6.5422v10.086c0 2.4995 1.1073 2.6723 1.7577 2.6723 0.9105 0 1.603-0.7932 1.9968-1.9284v-10.83l0.0105-0.01762zm80.542 11.119c0 3.3103-2.96 5.6617-7.175 5.6617-2.218 0-4.338-1.114-5.547-1.114-0.862 0-1.083 0.2468-1.083 0.2468l-0.197-4.5478h0.517c2.316 3.0883 3.919 4.4244 6.327 4.4244 1.554 0 2.858-0.765 2.858-2.1153 0-1.4348-1.279-1.7803-3.128-2.2245-5.006-1.2867-6.409-3.4619-6.409-6.402 0-3.2398 2.834-5.4644 6.36-5.4644 1.089 0.00634 2.171 0.18968 3.202 0.54291 0.545 0.17274 2.074 0.84256 3.108 0.76853v4.4137h-0.492c-1.948-2.8661-3.649-4.7451-5.794-4.7451-1.357 0-2.109 0.83903-2.109 1.9284 0 1.3326 1.255 1.7027 3.515 2.3479 4.001 1.2832 6.047 2.8414 6.047 6.2787zm-21.571-11.101h5.769v16.439h-5.769v-3.6312c-0.59 1.6041-1.972 4.0295-4.953 4.0295-3.083 0-4.588-2.4501-4.588-5.0695v-9.3951c0-1.2338-0.351-1.8508-0.787-2.0517v-0.32081h6.581v10.086c0 2.4995 1.111 2.6723 1.757 2.6723 0.911 0 1.604-0.7932 1.997-1.9284v-10.83h-7e-3zm-19.524 15.748c-1.677 0-2.268-2.2739-2.268-7.5655 0-5.2915 0.615-7.5619 2.268-7.5619 1.652 0 2.267 2.2739 2.267 7.5619 0 5.2881-0.615 7.5655-2.267 7.5655zm0-16.118c-5.224 0-8.2336 3.8321-8.2336 8.5525 0 4.7205 3.0336 8.5561 8.2336 8.5561 5.199 0 8.219-3.8321 8.219-8.5561 0-4.7239-3.017-8.5525-8.219-8.5525zm-72.285 0.37016h5.7653v16.439h-5.7653v-16.439zm21.528 10.974l0.3515 0.1234c-0.4183 2.1752-2.4151 5.6865-6.9254 5.6865-5.1044 0-7.5441-3.9802-7.5441-8.5808 0-4.9355 3.2307-8.6019 8.0609-8.6019 3.5752 0 5.7688 1.9037 5.7688 3.9801 0.0052 0.3064-0.0524 0.6106-0.1692 0.8937s-0.2903 0.5392-0.5098 0.7524c-0.2195 0.2131-0.4803 0.3788-0.7662 0.4868s-0.5909 0.156-0.8961 0.141c-0.5452-0.0259-1.0601-0.259-1.4401-0.6518-0.38-0.3929-0.5966-0.9162-0.6059-1.4634 0-1.1845 0.7031-1.8544 1.5785-1.9778-0.1621-0.31076-0.4129-0.56599-0.7204-0.73304-0.3074-0.16705-0.6576-0.23832-1.0057-0.20471-1.5784 0-3.3537 1.9531-3.3537 6.6982 0 3.0918 1.5046 5.8345 4.57 5.8345 2.4608-0.0247 3.5998-2.3973 3.5998-2.3973l0.0071 0.0141zm35.179-15.448c0-1.4595 1.255-2.6194 2.8334-2.6194s2.8334 1.1598 2.8334 2.6194-1.255 2.6194-2.8334 2.6194-2.8334-1.1598-2.8334-2.6194zm-56.648 0c0-1.4595 1.255-2.6194 2.8335-2.6194 1.5784 0 2.8334 1.1598 2.8334 2.6194s-1.255 2.6194-2.8334 2.6194c-1.5785 0-2.8335-1.1598-2.8335-2.6194zm-28.102 12.98c-0.52028-3.5606 0.51679-7.4668 1.9476-7.4668 1.4307 0 2.0705 2.9402 2.1092 6.3456l-4.0568 1.1211zm1.8737-8.8522c-5.252 0-8.3597 4.0048-8.3597 8.5772 0 2.7463 1.0863 5.2669 3.0584 6.8498 1.4073 1.2006 3.2044 1.8428 5.0517 1.805 1.7007 0.0466 3.366-0.4922 4.7187-1.5268 1.3528-1.0346 2.3115-2.5026 2.7165-4.1596h-0.0247c-0.0015-0.0134-1e-4 -0.027 0.0041-0.0398 0.0043-0.0128 0.0113-0.0245 0.0206-0.0343l-0.3692-0.1234s-1.7999 2.3726-4.4856 2.3726c-0.8321-0.0113-1.6407-0.2783-2.3167-0.765-0.80404-0.6788-1.3523-1.6131-1.5538-2.6475l9.0452-2.6194v-0.074c-0.2356-4.449-3.3643-7.6148-7.5055-7.6148z" fill="#000" data-darkreader-inline-fill="" style="--darkreader-inline-fill: #000000" ></path> </svg> </div><div class="cm-footer__copy"> SPRING SALE: Get unlimited recipes from Bon Appétit &amp; Epicurious for just <span class="cm-footer__copy--old-price">$40</span >&nbsp; <span class="cm-footer__copy--new-price">$30/year</span> </div><span class="cm-footer__subscribe">SUBSCRIBE </span> </div></div></div></div></div></div></div><div class="RowWrapper-egDQBE hVsKfd BasePageSiteFooterRow-eexvVf dtsrsg" > <div class="GridWrapper-vNBSO bKMgMh grid grid-margins grid-items-0 BasePageSiteFooterRowGrid-kTfpkH fXKCNJ" > <div class="GridItem-buSdEM kFFJpN grid--item"> <footer class="SiteFooterWrapper-dhzlhc ldgwwo site-footer--with-store" data-event-boundary="click" data-event-click='{"pattern":"SiteFooter"}' data-in-view='{"pattern":"SiteFooter"}' data-include-experiments="true" > <div class="SiteFooterGridNoMargins-edQNAb fTtIEc" data-testid="SiteFooterGridNoMargins" > <div class="SiteFooterBrandInfo-cPASO kUTKSP"> <div class="SiteFooterLogo-cCDyxA bjbfCS site-footer__logo"> <a href="https://www.bonappetit.com/" ><span class="SpanWrapper-kGGzGm fCMktF responsive-asset SiteFooterLogoResponsiveAsset-bwJIQI gndscy site-footer__responsive-image" ><picture class="ResponsiveImagePicture-jIKgcS fArnhQ SiteFooterLogoResponsiveAsset-bwJIQI gndscy site-footer__responsive-image responsive-image" ><img alt="Bon Appétit" class="ResponsiveImageContainer-dlOMGF byslZC responsive-image__image" src="./Nutty Umami Noodles With Scallion Brown Butter and Snow Peas Recipe _ Bon Appétit_files/logo-reverse.adafbb9b583b565c29b99cfbd36ab80f108eac59.svg" srcset="" sizes="100vw"/></picture></span ></a> </div><div data-testid="SiteFooterAbout" class="SiteFooterAbout-kXullu hUQNVu" > <div class="SiteFooterAboutText-joaxqT eCURKh"> Recipes you want to make. Cooking advice that works. Restaurant recommendations you trust. </div></div><div class="SocialIconsWrapper-ixWYBx lmzbhe social-icons social-icons--footer SiteFooterSocialIcons-dMzrQ ecIpEl" data-event-boundary="click" data-event-click='{"pattern":"SocialIcons"}' data-in-view='{"pattern":"SocialIcons"}' data-include-experiments="true" > <ul class="SocialIconsList-NTOMk cRFtOR social-icons__list" > <li class="SocialIconsListItem-hYmGVl kGgUZg social-icons__list-item social-icons__list-item--facebook social-icons__list-item--footer" > <a aria-label="Follow us on Facebook" class="external-link SocialIconExternalLink-gugldc jfMOYR social-icons__link social-icons__link--facebook" data-event-click='{"element":"ExternalLink","outgoingURL":"https://www.facebook.com/bonappetitmag"}' href="https://www.facebook.com/bonappetitmag" rel="nofollow noopener" target="_blank" ><div class="SocialIconContainer-fbhAuK bTiaWs social-icons__icon-container" > <svg class="icon icon-facebook" focusable="false" viewBox="0 0 32 32" width="32" height="32" fill="none" xmlns="http://www.w3.org/2000/svg" > <title>Facebook</title> <path d="M13.621 11.099V13.302H12V15.995H13.621V24H16.951V15.995H19.186C19.186 15.995 19.395 14.704 19.496 13.292H16.964V11.45C16.964 11.175 17.327 10.804 17.686 10.804H19.5V8H17.033C13.539 8 13.621 10.696 13.621 11.099Z" fill="black" data-darkreader-inline-fill="" style="--darkreader-inline-fill: #e8e6e3" ></path> </svg></div ></a> </li><li class="SocialIconsListItem-hYmGVl kGgUZg social-icons__list-item social-icons__list-item--twitter social-icons__list-item--footer" > <a aria-label="Follow us on Twitter" class="external-link SocialIconExternalLink-gugldc jfMOYR social-icons__link social-icons__link--twitter" data-event-click='{"element":"ExternalLink","outgoingURL":"https://twitter.com/bonappetit/"}' href="https://twitter.com/bonappetit/" rel="nofollow noopener" target="_blank" ><div class="SocialIconContainer-fbhAuK bTiaWs social-icons__icon-container" > <svg class="icon icon-twitter" focusable="false" viewBox="0 0 32 32" width="32" height="32" fill="none" xmlns="http://www.w3.org/2000/svg" > <title>Twitter</title> <path d="M13.032 22.003C19.07 22.003 22.372 17.001 22.372 12.663C22.3719 12.5216 22.3686 12.3803 22.362 12.239C23.0045 11.7744 23.5592 11.1991 24 10.54C23.401 10.8056 22.7656 10.9799 22.115 11.057C22.8003 10.6467 23.3132 10.0013 23.558 9.24103C22.9138 9.62343 22.209 9.89297 21.474 10.038C20.9799 9.50946 20.325 9.15892 19.6112 9.04091C18.8973 8.9229 18.1644 9.04403 17.5265 9.38545C16.8886 9.72688 16.3813 10.2695 16.0836 10.9289C15.7858 11.5884 15.7142 12.3277 15.88 13.032C14.5746 12.9664 13.2976 12.6269 12.132 12.0356C10.9663 11.4444 9.93808 10.6145 9.114 9.60003C8.69297 10.3223 8.56366 11.1782 8.7525 11.9926C8.94134 12.8071 9.43407 13.5187 10.13 13.982C9.60866 13.9664 9.0987 13.8258 8.643 13.572V13.614C8.64319 14.3718 8.90547 15.1063 9.38536 15.6928C9.86525 16.2793 10.5332 16.6818 11.276 16.832C10.7924 16.9633 10.2852 16.9825 9.793 16.888C10.0027 17.5404 10.411 18.1109 10.961 18.5197C11.5109 18.9286 12.1749 19.1552 12.86 19.168C11.6971 20.0805 10.2611 20.5754 8.783 20.573C8.518 20.573 8.257 20.558 8 20.528C9.5011 21.4921 11.248 22.0038 13.032 22.002" fill="black" data-darkreader-inline-fill="" style="--darkreader-inline-fill: #e8e6e3" ></path> </svg></div ></a> </li><li class="SocialIconsListItem-hYmGVl kGgUZg social-icons__list-item social-icons__list-item--pinterest social-icons__list-item--footer" > <a aria-label="Follow us on Pinterest" data-pin-do="nothing" class="external-link SocialIconExternalLink-gugldc jfMOYR social-icons__link social-icons__link--pinterest" data-event-click='{"element":"ExternalLink","outgoingURL":"https://www.pinterest.com/bonappetitmag/"}' href="https://www.pinterest.com/bonappetitmag/" rel="nofollow noopener" target="_blank" ><div class="SocialIconContainer-fbhAuK bTiaWs social-icons__icon-container" > <svg class="icon icon-pinterest" focusable="false" viewBox="0 0 32 32" width="32" height="32" fill="none" xmlns="http://www.w3.org/2000/svg" > <title>Pinterest</title> <path d="M15.169 18.448C14.793 20.093 14.425 21.678 13.623 22.928C13.377 23.311 13.13 23.793 12.71 24C12.09 20.807 13.387 18.12 13.899 15.436C13.246 14.103 13.652 11.846 15.051 11.59C17.077 11.22 16.543 13.664 16.2 14.8C16.01 15.424 15.671 16.021 15.722 16.705C15.835 18.146 17.648 18.24 18.577 17.497C19.909 16.436 20.295 14.385 20.164 12.7C19.967 10.135 17.062 8.85997 14.496 9.88497C13.173 10.413 11.973 11.628 11.799 13.413C11.709 14.353 11.906 15.104 12.276 15.634C12.331 15.715 12.523 15.857 12.552 16.072C12.61 16.506 12.352 16.974 12.116 17.298C10.802 16.92 10.124 15.741 10.016 14.248C9.76596 10.848 12.558 8.26397 15.841 8.02197C19.348 7.76497 22.126 9.78896 22.384 12.74C22.576 14.933 21.797 17.14 20.561 18.329C19.631 19.221 17.656 20.096 16.041 19.242C15.684 19.052 15.524 18.82 15.169 18.448Z" fill="black" data-darkreader-inline-fill="" style="--darkreader-inline-fill: #e8e6e3" ></path> </svg></div ></a> </li><li class="SocialIconsListItem-hYmGVl kGgUZg social-icons__list-item social-icons__list-item--instagram social-icons__list-item--footer" > <a aria-label="Follow us on Instagram" class="external-link SocialIconExternalLink-gugldc jfMOYR social-icons__link social-icons__link--instagram" data-event-click='{"element":"ExternalLink","outgoingURL":"https://www.instagram.com/bonappetitmag"}' href="https://www.instagram.com/bonappetitmag" rel="nofollow noopener" target="_blank" ><div class="SocialIconContainer-fbhAuK bTiaWs social-icons__icon-container" > <svg class="icon icon-instagram" focusable="false" viewBox="0 0 32 32" width="32" height="32" fill="none" xmlns="http://www.w3.org/2000/svg" > <title>Instagram</title> <path d="M16 8C18.173 8 18.445 8.01 19.298 8.048C20.15 8.087 20.731 8.222 21.24 8.42C21.766 8.624 22.213 8.898 22.657 9.343C23.102 9.787 23.376 10.233 23.58 10.76C23.778 11.269 23.913 11.85 23.952 12.702C23.991 13.555 24 13.827 24 16C24 18.173 23.99 18.445 23.952 19.298C23.913 20.15 23.778 20.731 23.58 21.24C23.379 21.7738 23.064 22.2574 22.657 22.657C22.213 23.102 21.767 23.376 21.24 23.58C20.731 23.778 20.15 23.913 19.298 23.952C18.445 23.991 18.173 24 16 24C13.827 24 13.555 23.99 12.702 23.952C11.85 23.913 11.269 23.778 10.76 23.58C10.2262 23.379 9.74259 23.064 9.343 22.657C8.93593 22.2574 8.62093 21.7738 8.42 21.24C8.222 20.731 8.087 20.15 8.048 19.298C8.01 18.445 8 18.173 8 16C8 13.827 8.01 13.555 8.048 12.702C8.087 11.85 8.222 11.269 8.42 10.76C8.624 10.234 8.898 9.787 9.343 9.343C9.787 8.898 10.233 8.624 10.76 8.42C11.269 8.222 11.85 8.087 12.702 8.048C13.555 8.01 13.827 8 16 8ZM16 10C14.046 10 13.814 10.007 13.043 10.043C12.329 10.075 11.942 10.194 11.683 10.295C11.3657 10.4124 11.0787 10.5993 10.843 10.842C10.586 11.098 10.427 11.342 10.295 11.684C10.195 11.942 10.075 12.329 10.043 13.043C10.007 13.814 10 14.046 10 16C10 17.954 10.007 18.186 10.043 18.957C10.075 19.671 10.194 20.058 10.295 20.317C10.427 20.658 10.586 20.902 10.842 21.157C11.098 21.414 11.342 21.573 11.684 21.705C11.942 21.805 12.329 21.925 13.043 21.957C13.814 21.993 14.046 22 16 22C17.954 22 18.186 21.993 18.957 21.957C19.671 21.925 20.058 21.806 20.317 21.705C20.658 21.573 20.902 21.414 21.157 21.158C21.414 20.902 21.573 20.658 21.705 20.316C21.805 20.058 21.925 19.671 21.957 18.957C21.993 18.186 22 17.954 22 16C22 14.046 21.993 13.814 21.957 13.043C21.925 12.329 21.806 11.942 21.705 11.683C21.5876 11.3657 21.4007 11.0787 21.158 10.843C20.9219 10.5997 20.6341 10.4124 20.316 10.295C20.058 10.195 19.671 10.075 18.957 10.043C18.186 10.007 17.954 10 16 10ZM16 11.768C16.5558 11.768 17.1061 11.8775 17.6195 12.0901C18.133 12.3028 18.5995 12.6145 18.9925 13.0075C19.3855 13.4005 19.6972 13.867 19.9099 14.3805C20.1225 14.8939 20.232 15.4442 20.232 16C20.232 16.5558 20.1225 17.1061 19.9099 17.6195C19.6972 18.133 19.3855 18.5995 18.9925 18.9925C18.5995 19.3855 18.133 19.6972 17.6195 19.9099C17.1061 20.1225 16.5558 20.232 16 20.232C14.8776 20.232 13.8012 19.7861 13.0075 18.9925C12.2139 18.1988 11.768 17.1224 11.768 16C11.768 14.8776 12.2139 13.8012 13.0075 13.0075C13.8012 12.2139 14.8776 11.768 16 11.768ZM16 18.368C16.628 18.368 17.2303 18.1185 17.6744 17.6744C18.1185 17.2303 18.368 16.628 18.368 16C18.368 15.372 18.1185 14.7697 17.6744 14.3256C17.2303 13.8815 16.628 13.632 16 13.632C15.372 13.632 14.7697 13.8815 14.3256 14.3256C13.8815 14.7697 13.632 15.372 13.632 16C13.632 16.628 13.8815 17.2303 14.3256 17.6744C14.7697 18.1185 15.372 18.368 16 18.368ZM21.3 11.85C21.3 12.155 21.1788 12.4475 20.9632 12.6632C20.7475 12.8788 20.455 13 20.15 13C19.845 13 19.5525 12.8788 19.3368 12.6632C19.1212 12.4475 19 12.155 19 11.85C19 11.545 19.1212 11.2525 19.3368 11.0368C19.5525 10.8212 19.845 10.7 20.15 10.7C20.455 10.7 20.7475 10.8212 20.9632 11.0368C21.1788 11.2525 21.3 11.545 21.3 11.85Z" fill="black" data-darkreader-inline-fill="" style="--darkreader-inline-fill: #e8e6e3" ></path> </svg></div ></a> </li><li class="SocialIconsListItem-hYmGVl kGgUZg social-icons__list-item social-icons__list-item--youtube social-icons__list-item--footer" > <a aria-label="Follow us on YouTube" class="external-link SocialIconExternalLink-gugldc jfMOYR social-icons__link social-icons__link--youtube" data-event-click='{"element":"ExternalLink","outgoingURL":"https://www.youtube.com/channel/UCbpMy0Fg74eXXkvxJrtEn3w"}' href="https://www.youtube.com/channel/UCbpMy0Fg74eXXkvxJrtEn3w" rel="nofollow noopener" target="_blank" ><div class="SocialIconContainer-fbhAuK bTiaWs social-icons__icon-container" > <svg class="icon icon-youtube" focusable="false" viewBox="0 0 32 32" width="32" height="32" fill="none" xmlns="http://www.w3.org/2000/svg" > <title>YouTube</title> <path d="M23.666 11.76C23.5755 11.4196 23.3971 11.109 23.1488 10.8593C22.9005 10.6095 22.5909 10.4294 22.251 10.337C21.003 10 16 10 16 10C16 10 10.997 10 9.749 10.337C9.40915 10.4294 9.09955 10.6095 8.85121 10.8593C8.60287 11.109 8.42451 11.4196 8.334 11.76C8 13.016 8 15.636 8 15.636C8 15.636 8 18.256 8.334 19.512C8.42436 19.8526 8.60265 20.1634 8.851 20.4133C9.09934 20.6632 9.40903 20.8435 9.749 20.936C10.997 21.273 16 21.273 16 21.273C16 21.273 21.003 21.273 22.251 20.936C22.591 20.8435 22.9007 20.6632 23.149 20.4133C23.3974 20.1634 23.5756 19.8526 23.666 19.512C24 18.257 24 15.636 24 15.636C24 15.636 24 13.016 23.666 11.76ZM14.364 18.015V13.257L18.545 15.637L14.364 18.015Z" fill="black" data-darkreader-inline-fill="" style="--darkreader-inline-fill: #e8e6e3" ></path> </svg></div ></a> </li></ul> </div></div><nav aria-label="More from Bon Appétit" class="NavigationWrapper-cfzTvg fpuNqo SiteFooterNavigationVertical-cATFwT gilGph" data-testid="navigation" > <p data-testid="navigation__heading" class="NavigationHeadingWrapper-hlNKKc iCAZcP navigation__heading" > More from Bon Appétit </p><ul class="NavigationListWrapper-iOfHJS lnHNbg navigation__list" data-testid="navigation__list" > <li class="NavigationListItemWrapper-bfHMIL jAOWtm navigation__list-item" data-testid="navigation__list-item" > <a class="NavigationInternalLink-eJHyE hgjcc navigation__link" href="https://www.bonappetit.com/story/digital-masthead" data-testid="navigation__internal-link" >Masthead</a > </li><li class="NavigationListItemWrapper-bfHMIL jAOWtm navigation__list-item" data-testid="navigation__list-item" > <a class="NavigationInternalLink-eJHyE hgjcc navigation__link" href="https://www.bonappetit.com/services/newsletters/demographics" data-testid="navigation__internal-link" >Newsletter Signup</a > </li><li class="NavigationListItemWrapper-bfHMIL jAOWtm navigation__list-item" data-testid="navigation__list-item" > <a class="external-link NavigationExternalLink-eJblFy gTfHDX navigation__link" data-event-click='{"element":"ExternalLink","outgoingURL":"http://www.condenast.com/brands/bon-appetit/"}' href="http://www.condenast.com/brands/bon-appetit/" rel="nofollow noopener" target="_blank" >Bon Appétit Media Kit</a > </li><li class="NavigationListItemWrapper-bfHMIL jAOWtm navigation__list-item" data-testid="navigation__list-item" > <a class="NavigationInternalLink-eJHyE hgjcc navigation__link" href="https://www.bonappetit.com/basically" data-testid="navigation__internal-link" >Basically</a > </li><li class="NavigationListItemWrapper-bfHMIL jAOWtm navigation__list-item" data-testid="navigation__list-item" > <a class="NavigationInternalLink-eJHyE hgjcc navigation__link" href="https://www.bonappetit.com/healthyish" data-testid="navigation__internal-link" >Healthyish</a > </li></ul> </nav> <span class="NavigationDivider-SvudS ePNlNg navigation__divider" ></span> <nav aria-label="Contact" class="NavigationWrapper-cfzTvg fpuNqo SiteFooterNavigationContactVertical-hjbFqL byqBbx" data-testid="navigation" > <p data-testid="navigation__heading" class="NavigationHeadingWrapper-hlNKKc iCAZcP navigation__heading" > Contact </p><ul class="NavigationListWrapper-iOfHJS lnHNbg navigation__list" data-testid="navigation__list" > <li class="NavigationListItemWrapper-bfHMIL jAOWtm navigation__list-item" data-testid="navigation__list-item" > <a class="external-link NavigationExternalLink-eJblFy gTfHDX navigation__link" data-event-click='{"element":"ExternalLink","outgoingURL":"/story/subscription-faq"}' href="https://www.bonappetit.com/story/subscription-faq" rel="nofollow noopener" target="_blank" >Subscription FAQs</a > </li><li class="NavigationListItemWrapper-bfHMIL jAOWtm navigation__list-item" data-testid="navigation__list-item" > <a class="external-link NavigationExternalLink-eJblFy gTfHDX navigation__link" data-event-click='{"element":"ExternalLink","outgoingURL":"https://www.condenast.com/careers/"}' href="https://www.condenast.com/careers/" rel="nofollow noopener" target="_blank" >Careers</a > </li></ul> </nav> <span class="NavigationDivider-SvudS ePNlNg navigation__divider" ></span> <div class="SiteFooterNoticesWrapper-hcgQBB eANPaA"> <div class="SiteFooterNoticesContainerWrapper-cyJdzS dJSSFx" > <nav aria-label="Notices" class="NavigationWrapper-cfzTvg fpuNqo SiteFooterNavigationHorizontal-bgBdWj gVbBfa" data-testid="navigation" > <ul class="NavigationListWrapper-iOfHJS koYZbz navigation__list" data-testid="navigation__list" > <li class="NavigationListItemWrapper-bfHMIL hvZbcK navigation__list-item" data-testid="navigation__list-item" > <a class="external-link NavigationExternalLink-eJblFy gTfHDX navigation__link" data-event-click='{"element":"ExternalLink","outgoingURL":"/rss-feeds"}' href="https://www.bonappetit.com/rss-feeds" rel="nofollow noopener" target="_blank" >RSS Feeds</a > </li><li class="NavigationListItemWrapper-bfHMIL hvZbcK navigation__list-item" data-testid="navigation__list-item" > <a class="NavigationInternalLink-eJHyE hgjcc navigation__link" href="https://www.bonappetit.com/sitemap" data-testid="navigation__internal-link" >Site Map</a > </li><li class="NavigationListItemWrapper-bfHMIL hvZbcK navigation__list-item" data-testid="navigation__list-item" > <a rel="nofollow" class="NavigationInternalLink-eJHyE hgjcc navigation__link" href="https://www.bonappetit.com/story/accessibility-help" data-testid="navigation__internal-link" >Accessibility Help</a > </li><li class="NavigationListItemWrapper-bfHMIL hvZbcK navigation__list-item" data-testid="navigation__list-item" > <a class="external-link NavigationExternalLink-eJblFy gTfHDX navigation__link" data-event-click='{"element":"ExternalLink","outgoingURL":"https://www.condenaststore.com/"}' href="https://www.condenaststore.com/" rel="nofollow noopener" target="_blank" >Condé Nast Store</a > </li><li class="NavigationListItemWrapper-bfHMIL hvZbcK navigation__list-item" data-testid="navigation__list-item" > <a class="external-link NavigationExternalLink-eJblFy gTfHDX navigation__link" data-event-click='{"element":"ExternalLink","outgoingURL":"https://www.cnspotlight.com/ "}' href="https://www.cnspotlight.com/" rel="" target="_blank" >Condé Nast Spotlight</a > </li><li> <button class="BaseButton-aWfgy ButtonWrapper-dOcxiw bxdYtG eRcSjo button button--utility ot-sdk-show-settings ot-sdk-btn--visible" data-event-click='{"element":"Button"}' data-testid="Button" id="ot-sdk-btn" type="button" > Cookies Settings </button> </li></ul> </nav> <span class="NavigationDivider-SvudS ePNlNg navigation__divider" ></span> <p class="SiteFooterLegaleseText-kHYwPm iMfJWH"> © 2022 Condé Nast. All rights reserved. Use of this site constitutes acceptance of our <a class="external-link" data-event-click='{"element":"ExternalLink","outgoingURL":"https://www.condenast.com/user-agreement/"}' href="https://www.condenast.com/user-agreement/" rel="nofollow noopener" target="_blank" >User Agreement</a > and <a class="external-link" data-event-click='{"element":"ExternalLink","outgoingURL":"http://www.condenast.com/privacy-policy#privacypolicy"}' href="http://www.condenast.com/privacy-policy#privacypolicy" rel="nofollow noopener" target="_blank" >Privacy Policy and Cookie Statement</a > and <a class="external-link" data-event-click='{"element":"ExternalLink","outgoingURL":"http://www.condenast.com/privacy-policy#privacypolicy-california"}' href="http://www.condenast.com/privacy-policy#privacypolicy-california" rel="nofollow noopener" target="_blank" >Your California Privacy Rights.</a > <em>Bon Appétit</em> may earn a portion of sales from products that are purchased through our site as part of our Affiliate Partnerships with retailers. The material on this site may not be reproduced, distributed, transmitted, cached or otherwise used, except with the prior written permission of Condé Nast. <a class="external-link" data-event-click='{"element":"ExternalLink","outgoingURL":"http://www.condenast.com/privacy-policy#privacypolicy-optout"}' href="http://www.condenast.com/privacy-policy#privacypolicy-optout" rel="nofollow noopener" target="_blank" >Ad Choices</a > </p><div class="SiteFooterCollectionContainer-gwqYbi kTTWsz"> <p class="SiteFooterCollection-csFFJp kUlLQj"> Food Innovation Group </p></div></div></div></div></footer> </div></div></div></div></div><script type="text/javascript">window.__PRELOADED_STATE__={componentConfig:{ConnectedNavigation:{settings:{navPattern: "StackedNavigation", headerLogoDim:{sources:{xxxl:{height: 32, width: 149, url: "\u002Fverso\u002Fstatic\u002Fbon-appetit\u002Fassets\u002Flogo-header.svg",}, xxl:{height: 32, width: 149, url: "\u002Fverso\u002Fstatic\u002Fbon-appetit\u002Fassets\u002Flogo-header.svg",}, xl:{height: 32, width: 149, url: "\u002Fverso\u002Fstatic\u002Fbon-appetit\u002Fassets\u002Flogo-header.svg",}, lg:{height: 32, width: 149, url: "\u002Fverso\u002Fstatic\u002Fbon-appetit\u002Fassets\u002Flogo-header.svg",}, md:{height: 32, width: 149, url: "\u002Fverso\u002Fstatic\u002Fbon-appetit\u002Fassets\u002Flogo-header.svg",}, sm:{height: 32, width: 149, url: "\u002Fverso\u002Fstatic\u002Fbon-appetit\u002Fassets\u002Flogo-header.svg",},},},},}, SecondaryMenu:{settings:{hasExtraTopMargin: true}}, StackedNavigation:{variation: "FixedHeaderLogoWithSearchBar", settings:{searchQueryParameters:{content: "recipe"}, headerLogoDim:{sources:{xxxl:{height: 32, width: 149, url: "\u002Fverso\u002Fstatic\u002Fbon-appetit\u002Fassets\u002Flogo-header.svg",}, xxl:{height: 32, width: 149, url: "\u002Fverso\u002Fstatic\u002Fbon-appetit\u002Fassets\u002Flogo-header.svg",}, xl:{height: 32, width: 149, url: "\u002Fverso\u002Fstatic\u002Fbon-appetit\u002Fassets\u002Flogo-header.svg",}, lg:{height: 32, width: 149, url: "\u002Fverso\u002Fstatic\u002Fbon-appetit\u002Fassets\u002Flogo-header.svg",}, md:{height: 32, width: 149, url: "\u002Fverso\u002Fstatic\u002Fbon-appetit\u002Fassets\u002Flogo-header.svg",}, sm:{height: 32, width: 149, url: "\u002Fverso\u002Fstatic\u002Fbon-appetit\u002Fassets\u002Flogo-header.svg",},},}, hasSearch: false, showSecondaryFooterAllLink: false,},}, StandardNavigation:{variation: "LogoCenterWithSearchBar", settings:{searchQueryParameters:{content: "recipe"}},}, AccountLinks:{settings:{hasSignOutSeparator: false}}, AccountProfilePage:{settings:{showFAQSection: true}}, ChunkedArticleContent:{variation: "WithAdRail"}, ContentHeader:{variation: "SplitScreenImageRightFullBleed", settings:{rubricVariation: "Card", hideIssueDate: false, hidePublishDate: false, hideSocialIconsOnMobile: true, ledeContentAlign: "center",},}, GallerySlide:{variation: "CardLeftWithCaptionAboveMultipleButtons",}, ProductEmbed:{variation: "ImageLeft", settings:{ctaText: "Shop Now"},}, ReviewPage:{settings:{ctaText: "Shop Now"}}, RecircList:{variation: "TextOverlay", settings:{applicationID: "bon-appetit-recipe-bottom-recirc", contentTypes: "recipe", excludeCategories: ["functional-tags\u002Fnoriver"], numberOfDays: -730, pageSize: 8, shouldHideRubric: false, strategy: "similar", heading: "More from BA",},}, SiteFooter:{settings:{showOneTrustButton: true}}, GroupCallout:{settings:{heading:{article: "Related Stories"}},}, ContributorHeader:{settings:{avatarImageShape: "round"}}, SectionTitle:{settings:{hasMinimalMargins: true}}, SummaryCollageFive:{settings:{summaryItemRubricVariation: "DiscoveryCard"},}, SummaryCollageOne:{settings:{hasUnderlineHed: false, hideRubricItemSummary: true, summaryItemVariation: "SideBySideDarkBackground", summaryItemRubricVariation: "DiscoveryCard",},}, SummaryCollageThree:{settings:{summaryItemRubricVariation: "DiscoveryCard"},}, SummaryCollectionGrid:{settings:{hasIncreasedTitleSpacing: true, hasMinimalMargin: true, hideRubrics:{hideRubricFor3Col: true, hideRubricFor4Col: true}, sectionTitleVariation: "TextCenter", summaryItemRubricVariation: "DiscoveryCard",},}, SummaryCollectionRow:{settings:{summaryItemRubricVariation: "DiscoveryItem"},}, SummaryRiver:{settings:{summaryItemRubricVariation: "DiscoveryItem"},}, TagCloud:{settings:{sectionHeader: "Explore Bon Appétit"}}, SummaryCollageFiftyFifty:{settings:{sectionTitleVariation: "LineAboveLineBelowTextCenter", layout: "one-column", stickyPosition: "bottom", hasBackground: true, shouldHideDekOnMobileView: true, trackingNamespace:{hero: "recipe collage\u002Fhero", aside: "recipe collage\u002F",},},}, VersoFilterableSummaryList:{settings:{ctaCardAspectRatio: [3, 4], isDotClickable: true},}, ContentCardEmbed:{variation: "SideBySide"}, InstructionList:{settings:{hasInstructionGroupDivider: false, hed: "Preparation", instructionHedStrategy: "labelled-numerical", instructionHedStyle: "small",},}, Disclaimer:{settings:{isEnabled: true, disclaimerHtml: "All products featured on Bon Appétit are independently selected by our editors. However, when you buy something through the retail links below, we earn an affiliate commission.",},},}, featureFlags:{showMultipleBuyButtons: true, enableAccounts: true, enableAnalytics: true, enableConsent: true, enableDropcap: false, enableEntitlementProxy: false, enableEntitlementValidation: true, enableEntitlementGrantLogic: false, enableGoogleAmp: true, enableLinkStack: true, enablePayment: false, enableJourneyPayment: true, enableRecipeRatings: false, enableVideoHomePage: false, hasRiser: true, recentWorkTeaser: "rubric-or-channel", bundleTeaser: "rubric-or-channel", contentTeaser: "rubric-or-channel", tagTeaser: "rubric-or-channel", preferCollectionGrid: false, overrideBodyContentHeadings: true, enableSponsoredContentInRelated: false, personalizeRecircList: true, personalizeRecircMostPopular: true, videoPersistable: false, google:{swgEnabled: false, signInEnabled: true}, featureOnboarding:{}, categoryLabels: [{categorySlug: "quick", label: "Quick"},{categorySlug: "easy", label: "Easy"},{categorySlug: "vegan", label: "Vegan"},], hideContributorBio: true, socialShares: ["print", "pinterest", "email"], issueLinkTemplate: "\u002Fsearch?content=recipe&issueDate=%s",}, renditions:{article:{brandedSponsorLogo:{sm:{width: 640}, md:{width: 768}, lg:{width: 1024}, xl:{width: 1280}, xxl:{width: 1600},}, contentPromo:{sm:{aspectRatio: "9:16", width: 768}, md:{aspectRatio: "9:16", width: 1024}, lg:{aspectRatio: "16:9", width: 1280}, xl:{aspectRatio: "16:9", width: 1600}, xxl:{aspectRatio: "16:9", width: 1600},}, externalLink:{sm:{aspectRatio: "1:1", width: 100}, md:{aspectRatio: "1:1", width: 100}, lg:{aspectRatio: "1:1", width: 200}, xl:{aspectRatio: "1:1", width: 200}, xxl:{aspectRatio: "1:1", width: 200},}, imageEmbed:{sm:{width: 640}, md:{width: 768}, lg:{width: 1024}, xl:{width: 1280}, xxl:{width: 1600},}, recipeEmbed:{sm:{aspectRatio: "16:9", width: 640}, md:{aspectRatio: "16:9", width: 768}, lg:{aspectRatio: "16:9", width: 768}, xl:{aspectRatio: "16:9", width: 775}, xxl:{aspectRatio: "16:9", width: 775},}, summaryCollectionSplitColumns:{lede:{sm:{aspectRatio: "4:3"}, md:{aspectRatio: "4:3"}, lg:{aspectRatio: "4:3"}, xl:{aspectRatio: "4:3"}, xxl:{aspectRatio: "4:3"},}, recommendedItems:{sm:{aspectRatio: "16:9", width: 720}, md:{aspectRatio: "16:9", width: 720}, lg:{aspectRatio: "16:9", width: 748}, xl:{aspectRatio: "16:9", width: 748},},}, lede:{sm:{aspectRatio: "1:1", width: 360}, md:{aspectRatio: "1:1", width: 1024}, lg:{aspectRatio: "16:9", width: 1280}, xl:{aspectRatio: "16:9", width: 1280}, xxl:{aspectRatio: "16:9", width: 2560},}, licensedPartnerBadge:{sm:{height: 100}}, contributorThumbnail:{sm:{aspectRatio: "1:1", width: 80}, md:{aspectRatio: "1:1", width: 80}, lg:{aspectRatio: "1:1", width: 90}, xl:{aspectRatio: "1:1", width: 90}, xxl:{aspectRatio: "1:1", width: 90},}, productEmbed:{sm:{width: 360}, md:{width: 1024}, lg:{width: 1280}, xl:{width: 1280}, xxl:{width: 1280},}, articleEmbed:{sm:{width: 640}, md:{width: 768}, lg:{width: 768}, xl:{width: 775}, xxl:{width: 775},}, relatedArticleEmbed:{sm:{width: 640}, md:{width: 768}, lg:{width: 768}, xl:{width: 775}, xxl:{width: 775},}, reviewEmbed:{sm:{width: 640}, md:{width: 768}, lg:{width: 768}, xl:{width: 775}, xxl:{width: 775},}, linkList:{headerImage:{sm:{width: 64}, md:{width: 128}, lg:{width: 128}, xl:{width: 256}, xxl:{width: 256},},},}, bundle:{brandedSponsorLogo:{sm:{width: 640}, md:{width: 768}, lg:{width: 1024}, xl:{width: 1280}, xxl:{width: 1600},}, imageSlideShow:{sm:{aspectRatio: "master", width: 360}, md:{aspectRatio: "master", width: 1024}, lg:{aspectRatio: "master", width: 1280}, xl:{aspectRatio: "master", width: 1280}, xxl:{aspectRatio: "master", width: 2560},}, summaryCollectionGrid:{sm:{aspectRatio: "6:5", width: 360}, md:{aspectRatio: "6:5", width: 360}, lg:{aspectRatio: "3:2", width: 720}, xl:{aspectRatio: "3:2", width: 720}, xxl:{aspectRatio: "3:2", width: 720},}, summaryRiver:{sm:{aspectRatio: "1:1", width: 720}, md:{aspectRatio: "1:1", width: 720}, lg:{aspectRatio: "4:5", width: 748}, xl:{aspectRatio: "4:5", width: 748},}, versoFilterableSummaryList:{sm:{aspectRatio: "3:4", width: 720}, md:{aspectRatio: "3:4", width: 720}, lg:{aspectRatio: "3:4", width: 748}, xl:{aspectRatio: "3:4", width: 748},}, versoPLPFilterableFeature:{sm:{aspectRatio: "3:4", width: 720}, md:{aspectRatio: "3:4", width: 720}, lg:{aspectRatio: "3:4", width: 748}, xl:{aspectRatio: "3:4", width: 748},}, versoArticleFilterableFeature:{sm:{aspectRatio: "3:4", width: 720}, md:{aspectRatio: "3:4", width: 720}, lg:{aspectRatio: "3:4", width: 748}, xl:{aspectRatio: "3:4", width: 748},}, summaryCarousel:{sm:{aspectRatio: "16:9", width: 768}, lg:{aspectRatio: "16:9", width: 1280}, xxl:{aspectRatio: "16:9", width: 1600},},}, cartoon:{sm:{aspectRatio: "1:1", width: 360}, md:{aspectRatio: "1:1", width: 1024}, lg:{aspectRatio: "16:9", width: 1280}, xl:{aspectRatio: "16:9", width: 1280}, xxl:{aspectRatio: "16:9", width: 1280},}, contributor:{lede:{sm:{aspectRatio: "1:1", width: 164}, md:{aspectRatio: "1:1", width: 246}, lg:{aspectRatio: "1:1", width: 310}, xxl:{aspectRatio: "1:1", width: 350},}, recentWork:{sm:{aspectRatio: "16:9", width: 724}, lg:{aspectRatio: "1:1", width: 274}, xxl:{aspectRatio: "1:1", width: 330},},}, designer:{intro:{sm:{aspectRatio: "6:7", width: 768}, lg:{aspectRatio: "6:7", width: 1024},},}, featuredInCarousel:{sm:{aspectRatio: "3:4", width: 720}, md:{aspectRatio: "3:4", width: 720}, lg:{aspectRatio: "3:4", width: 748}, xl:{aspectRatio: "3:4", width: 748},}, gallery:{brandedSponsorLogo:{sm:{width: 640}, md:{width: 768}, lg:{width: 1024}, xl:{width: 1280}, xxl:{width: 1600},}, lede:{sm: "1:1", lg: "16:9"}, slides:{sm: "1:1", lg: "1:1"}, social:{sm: "1:1", lg: "16:9"},}, infopage:{lede:{sm:{aspectRatio: "master", width: 360}, md:{aspectRatio: "master", width: 1024}, lg:{aspectRatio: "master", width: 1280}, xl:{aspectRatio: "master", width: 1280}, xxl:{aspectRatio: "master", width: 1280},}, tout:{sm:{aspectRatio: "master", width: 360}, md:{aspectRatio: "master", width: 1024}, lg:{aspectRatio: "master", width: 1280}, xl:{aspectRatio: "master", width: 1280}, xxl:{aspectRatio: "master", width: 1280},},}, livestory:{brandedSponsorLogo:{sm:{width: 640}, md:{width: 768}, lg:{width: 1024}, xl:{width: 1280}, xxl:{width: 1600},}, lede:{sm:{aspectRatio: "master", width: 360}, md:{aspectRatio: "master", width: 1024}, lg:{aspectRatio: "master", width: 1280}, xl:{aspectRatio: "master", width: 1280}, xxl:{aspectRatio: "master", width: 1280},},}, inlineRecirc:{SideBySide:{sm:{aspectRatio: "1:1", height: 320, width: 320}, lg:{aspectRatio: "1:1", height: 320, width: 320},}, TextOverlay:{sm:{aspectRatio: "2:3", width: 768}, lg:{aspectRatio: "2:3", width: 768},},}, linkBanner:{sm:{aspectRatio: "master", height: 100}, md:{aspectRatio: "master", height: 100}, lg:{aspectRatio: "master", height: 120}, xl:{aspectRatio: "master", height: 120},}, mostPopular:{sm:{aspectRatio: "1:1", height: 350, width: 350}, lg:{aspectRatio: "1:1", height: 240, width: 240}, xl:{aspectRatio: "1:1", height: 350, width: 350},}, bundleHeader:{lede:{sm:{aspectRatio: "1:1", width: 360}, md:{aspectRatio: "1:1", width: 1024}, lg:{aspectRatio: "2:1", width: 1280}, xl:{aspectRatio: "2:1", width: 1280}, xxl:{aspectRatio: "2:1", width: 2560},},}, recircList:{sm:{aspectRatio: "1:1", height: 350, width: 350}, md:{aspectRatio: "1:1", height: 350, width: 350}, lg:{aspectRatio: "1:1", height: 240, width: 240}, xl:{aspectRatio: "1:1", height: 350, width: 350},}, productCard:{sm:{aspectRatio: "1:1", width: 360}}, recircListTextOverlay:{sm:{aspectRatio: "1:1", height: 718, width: 718}, md:{aspectRatio: "1:1", width: 800}, lg:{aspectRatio: "1:1", height: 565, width: 565}, xl:{aspectRatio: "4:3", width: 800},}, review:{lede:{sm:{aspectRatio: "1:1", width: 320}, md:{aspectRatio: "16:9", width: 768}, lg:{aspectRatio: "16:9", width: 952}, xxl:{aspectRatio: "16:9", width: 1160},}, tout:{sm:{aspectRatio: "master", width: 360}, md:{aspectRatio: "master", width: 1024}, lg:{aspectRatio: "master", width: 1280}, xl:{aspectRatio: "master", width: 1280}, xxl:{aspectRatio: "master", width: 1280},},}, recipe:{brandedSponsorLogo:{sm:{width: 640}, md:{width: 768}, lg:{width: 1024}, xl:{width: 1280}, xxl:{width: 1600},}, imageEmbed:{sm:{width: 640}, md:{width: 768}, lg:{width: 768}, xl:{width: 775}, xxl:{width: 775},}, lede:{sm:{aspectRatio: "1:1", width: 360}, md:{aspectRatio: "1:1", width: 1024}, lg:{aspectRatio: "1:1", width: 1280}, xl:{aspectRatio: "1:1", width: 1280}, xxl:{aspectRatio: "1:1", width: 2560},}, tout:{sm:{aspectRatio: "master", width: 360}, md:{aspectRatio: "master", width: 1024}, lg:{aspectRatio: "master", width: 1280}, xl:{aspectRatio: "master", width: 1280}, xxl:{aspectRatio: "master", width: 1280},}, contributorThumbnail:{sm:{aspectRatio: "1:1", width: 80}, md:{aspectRatio: "1:1", width: 80}, lg:{aspectRatio: "1:1", width: 90}, xl:{aspectRatio: "1:1", width: 90}, xxl:{aspectRatio: "1:1", width: 90},}, cookbook:{sm:{width: 160}}, productCarousel:{sm:{aspectRatio: "1:1", width: 320}, md:{aspectRatio: "1:1", width: 640}, lg:{aspectRatio: "1:1", width: 640}, xl:{aspectRatio: "1:1", width: 640}, xxl:{aspectRatio: "1:1", width: 640},},}, runwayShow:{galleryThumbnail:{sm:{aspectRatio: "master", width: 360}, md:{aspectRatio: "master", width: 1024}, lg:{aspectRatio: "master", width: 1280}, xl:{aspectRatio: "master", width: 1280}, xxl:{aspectRatio: "master", width: 2560},}, socialShare:{sm:{aspectRatio: "16:9"}},}, season:{curatedShows:{sm:{aspectRatio: "master", width: 360}, md:{aspectRatio: "master", width: 1024}, lg:{aspectRatio: "master", width: 1280}, xl:{aspectRatio: "master", width: 1280},},}, seriesPagination:{sm:{aspectRatio: "master", height: 100}, md:{aspectRatio: "master", height: 100}, lg:{aspectRatio: "master", height: 120}, xl:{aspectRatio: "master", height: 120},}, seriesRecirc:{sm:{aspectRatio: "6:5", width: 360}, md:{aspectRatio: "6:5", width: 360}, lg:{aspectRatio: "3:2", width: 720}, xl:{aspectRatio: "3:2", width: 720}, xxl:{aspectRatio: "3:2", width: 720},}, socialShare:{aspectRatio: "16:9", width: 1280}, tag:{sm:{aspectRatio: "16:9", width: 724}, lg:{aspectRatio: "1:1", width: 316}, xxl:{aspectRatio: "1:1", width: 354},}, search:{sm:{aspectRatio: "16:9", width: 724}, lg:{aspectRatio: "1:1", width: 316}, xxl:{aspectRatio: "1:1", width: 354},}, searchResultsList:{lede:{sm:{aspectRatio: "1:1", width: 360}, md:{aspectRatio: "1:1", width: 1024}, lg:{aspectRatio: "3:1", width: 1280}, xl:{aspectRatio: "3:1", width: 1280}, xxl:{aspectRatio: "3:1", width: 2560},},}, homepage:{curatedShows:{sm:{aspectRatio: "2:3", width: 480}, lg:{aspectRatio: "2:3", width: 480},}, cneVideo:{summaryCollageOne:{sm:{h: 768, w: 768}, lg:{h: 720, w: 1280}, xxl:{h: 900, w: 1600},}, summaryCollageThree:{primary:{sm:{h: 768, w: 768}, lg:{h: 1024, w: 1024}, xxl:{h: 1280, w: 1280},}, secondary:{sm:{h: 768, w: 768}, lg:{h: 432, w: 768}},}, summaryCollectionGrid:{sm:{h: 768, w: 768}, lg:{h: 960, w: 1280}, xxl:{h: 1200, w: 1600},}, summaryCollageFive:{primary:{sm:{h: 768, w: 768}, lg:{h: 768, w: 768}, xxl:{h: 1024, w: 1024},}, secondary:{sm:{h: 176, w: 320}, lg:{h: 352, w: 640}},}, summaryList:{sm:{h: 432, w: 768}, lg:{h: 720, w: 1280}, xxl:{h: 900, w: 1600},}, summaryListWithAside:{sm:{h: 432, w: 768}, lg:{h: 720, w: 1280}, xxl:{h: 900, w: 1600},},}, contributorThumbnail:{sm:{aspectRatio: "1:1", width: 80}, md:{aspectRatio: "1:1", width: 80}, lg:{aspectRatio: "1:1", width: 90}, xl:{aspectRatio: "1:1", width: 90}, xxl:{aspectRatio: "1:1", width: 90},}, summaryCollectionGrid:{sm:{aspectRatio: "4:3", width: 640}, md:{aspectRatio: "4:3", width: 1024}, lg:{aspectRatio: "4:3", width: 1280}, xl:{aspectRatio: "4:3", width: 1600}, xxl:{aspectRatio: "4:3", width: 2560},}, summaryCollectionGridThreeColumn:{sm:{aspectRatio: "1:1", width: 768}, lg:{aspectRatio: "4:3", width: 1280}, xxl:{aspectRatio: "4:3", width: 1600},}, summaryCollageFive:{primary:{sm:{aspectRatio: "16:9", width: 768}, lg:{aspectRatio: "16:9", width: 768}, xxl:{aspectRatio: "16:9", width: 1024},}, secondary:{sm:{aspectRatio: "16:9", width: 320}, lg:{aspectRatio: "16:9", width: 640},},}, summaryCollageOne:{sm:{aspectRatio: "1:1", width: 640}, md:{aspectRatio: "1:1", width: 1024}, lg:{aspectRatio: "1:1", width: 1280}, xl:{aspectRatio: "1:1", width: 1600}, xxl:{aspectRatio: "1:1", width: 2560},}, summaryCollageTwo:{sm:{aspectRatio: "1:1", width: 768}, lg:{aspectRatio: "1:1", width: 1280}, xxl:{aspectRatio: "1:1", width: 1600},}, summaryCollageThree:{primary:{sm:{aspectRatio: "1:1", width: 768}, lg:{aspectRatio: "1:1", width: 1024}, xxl:{aspectRatio: "1:1", width: 1280},}, secondary:{sm:{aspectRatio: "1:1", width: 768}, lg:{aspectRatio: "16:9", width: 768},},}, summaryCarousel:{sm:{aspectRatio: "16:9", width: 768}, lg:{aspectRatio: "16:9", width: 1280}, xxl:{aspectRatio: "16:9", width: 1600},}, mixedSummaryList:{sm:{aspectRatio: "16:9", width: 768}, lg:{aspectRatio: "16:9", width: 1280, sizes: "50vw"}, xxl:{aspectRatio: "16:9", width: 1600, sizes: "50vw"},}, summaryList:{sm:{aspectRatio: "1:1", width: 768}, lg:{aspectRatio: "4:3", width: 1280, sizes: "50vw"}, xxl:{aspectRatio: "4:3", width: 1600, sizes: "50vw"},}, summaryListWithAside:{sm:{aspectRatio: "1:1", width: 768}, lg:{aspectRatio: "1:1", width: 1280, sizes: "25vw"}, xxl:{aspectRatio: "1:1", width: 1600, sizes: "25vw"},}, tout:{sm:{aspectRatio: "16:9", width: 1280}, xxl:{aspectRatio: "16:9", width: 1280},}, "verso-features-rows":{primary:{sm:{aspectRatio: "16:9", width: 768}, lg:{aspectRatio: "16:9", width: 768},}, secondary:{sm:{aspectRatio: "1:1", width: 80}, lg:{aspectRatio: "1:1", width: 80},},}, "verso-multi-package-feature":{sm:{aspectRatio: "4:3", width: 768}, lg:{aspectRatio: "4:3", width: 1280}, xxl:{aspectRatio: "4:3", width: 1600},}, "verso-featured-item":{sm:{aspectRatio: "1:1", width: 768}, lg:{aspectRatio: "3:4", width: 1280}, xxl:{aspectRatio: "3:4", width: 1600},}, "verso-issue-feature":{sm:{aspectRatio: "1:1", width: 768}, lg:{aspectRatio: "3:4", width: 1280}, xxl:{aspectRatio: "3:4", width: 1600},}, "verso-native":{sm:{aspectRatio: "1:1", width: 160}, xxl:{aspectRatio: "1:1", width: 320},}, "verso-promobox":{sm:{aspectRatio: "3:4", width: 240}, md:{aspectRatio: "16:9", width: 960}, lg:{aspectRatio: "16:9", width: 1280}, xl:{aspectRatio: "16:9", width: 1920},}, "verso-related":{sm:{aspectRatio: "1:1", width: 160}, xxl:{aspectRatio: "1:1", width: 320},}, "verso-river":{sm:{aspectRatio: "1:1", width: 160}, lg:{aspectRatio: "16:9", width: 768},}, "verso-river-list":{sm:{aspectRatio: "4:3", width: 320}, lg:{aspectRatio: "4:3", width: 768},}, "verso-subtopic-discovery":{sm:{aspectRatio: "16:9", width: 768}, lg:{aspectRatio: "16:9", width: 1280}, xxl:{aspectRatio: "16:9"},}, "verso-best-stories-package":{sm:{aspectRatio: "16:9", width: 768}, lg:{aspectRatio: "1:1", width: 1280}, xxl:{aspectRatio: "16:9"},}, "verso-summary-collection-row":{sm:{aspectRatio: "1:1", width: 160}, xxl:{aspectRatio: "1:1", width: 320},}, "verso-in-page-marketing-newsletter":{sm:{aspectRatio: "16:9", width: 768}, lg:{aspectRatio: "16:9", width: 1280}, xxl:{aspectRatio: "16:9", width: 1600},}, "verso-ticker":{sm:{aspectRatio: "master", width: 160}, md:{aspectRatio: "master", width: 160}, lg:{aspectRatio: "master", width: 160}, xl:{aspectRatio: "master", width: 160},}, "verso-topics-list":{sm:{aspectRatio: "1:1", width: 134}, md:{aspectRatio: "1:1", width: 120}, lg:{aspectRatio: "1:1", width: 120}, xl:{aspectRatio: "1:1", width: 120},}, "verso-fifty-fifty":{primary:{sm:{aspectRatio: "3:4", width: 960}, md:{aspectRatio: "3:4", width: 1280}, lg:{aspectRatio: "3:4", width: 1280}, xl:{aspectRatio: "3:4", width: 1920},}, secondary:{sm:{aspectRatio: "3:4", width: 240}, md:{aspectRatio: "3:4", width: 960}, lg:{aspectRatio: "3:4", width: 1280}, xl:{aspectRatio: "3:4", width: 1920},}, secondaryAlternate:{sm:{aspectRatio: "3:4", width: 240}, md:{aspectRatio: "3:4", width: 960}, lg:{aspectRatio: "3:4", width: 1280}, xl:{aspectRatio: "3:4", width: 1920},},},}, productArticleGallleryCarousel:{sm:{aspectRatio: "3:4", width: 720}, md:{aspectRatio: "3:4", width: 720}, lg:{aspectRatio: "3:4", width: 748}, xl:{aspectRatio: "3:4", width: 748},}, automatedPLPpageFeature:{sm:{aspectRatio: "3:4", width: 720}, md:{aspectRatio: "3:4", width: 720}, lg:{aspectRatio: "3:4", width: 748}, xl:{aspectRatio: "3:4", width: 748},},}, transformed:{identifier: "recipe\u002Fnutty-umami-noodles-with-scallion-brown-butter-and-snow-peas", journey:{url: "https:\u002F\u002Fjourney.bonappetit.com\u002Fbuild-bf2a45c220b5cf9fbd59621a94c4cf32.js",}, "ads.page":{channel: "recipes", contentType: "recipe", keywords:{copilotid: ["625eb968d2dd9946d391d0e8"], platform: ["verso"], tags: [ "meal-time", "dinner", "meal", "main", "simple-cooking", "quick", "weeknight-meals", "diet", "vegetarian", "easy", "cooking-method", "saute", "ingredient", "pasta-noodles", "noodle", "ramen-noodle", "vegetable", "pea", "udon-noodle", "recipes",],}, server: "production", slug: "nutty-umami-noodles-with-scallion-brown-butter-and-snow-peas", subChannel: "", subSubChannel: "", templateType: "mt_recipe",}, "ads.none": false, payment:{form: "free", acceptableFormsOfTenderedPayment: ["free"], contentClassifiers:{isPaywalled: false, canBeSampled: false}, acceptableForms: ["free", "sample", "pass"], acceptableScopes: [ "recipe", "ba-web-basic", "epi-web-basic", "ba-cds",], groupsToRender: ["ads", "consumer-marketing"], entitlement:{enabled: true, domain: ".bonappetit.com", server: "https:\u002F\u002Fpayment.conde.io\u002Fbon-appetit",}, products: [{name: "ba:web:basic", slug: "bna"},{name: "epi:web:basic", slug: "epi"},], negotiation:{content:{channelSlug: "recipes", contentType: "recipe", functionalTags: [], isPreview: false, publishDate: "2022-04-21T15:29:05.087Z", tags: [ "dinner", "main", "quick", "weeknight meals", "vegetarian", "easy", "sauté", "ramen noodle", "pea", "noodle", "udon noodle",],}, config:{acceptableForms: ["free", "sample", "pass"], acceptableScopes: [ "recipe", "ba-web-basic", "epi-web-basic", "ba-cds",], products: [{name: "ba:web:basic", slug: "bna"},{name: "epi:web:basic", slug: "epi"},], contentTypes: ["article", "gallery", "recipe"], renderingRules: [{form: "free", groups: ["ads", "consumer-marketing"]},{form: "pass", scope: "ba-cds", groups: ["ads"]},{form: "pass", scope: "ba-web-basic", groups: ["ads"]},{form: "pass", scope: "epi-web-basic", groups: ["ads"]},{form: "pass", scope: "recipe", groups: ["ads"]},{form: "", groups: ["ads", "consumer-marketing", "paywall"],},], entitlementChecks:{}, allContentIsFree: false, articlesAreFreeWhen: [],}, logic:{},}, bypass: false,}, response:{headers:{payment: "free"}, statusCode: 200}, paywall:{isMuted: false, gateway:{}}, access:{isAccessNegotiationEnabled: false, contentRestricted: false, reason: "",}, coreDataLayer:{content:{authorIds: "5fd005c78ea326cd2802eb56", authorNames: "Zaynab Issa", brand: "Bon Appétit", brandSlug: "bon-appetit", contentId: "625eb968d2dd9946d391d0e8", contentLength: "all", contentLang: "en-US", contentSource: "web", contentType: "recipe", contentTitle: "Nutty Umami Noodles With Scallion Brown Butter and Snow Peas", coralCommentsStatus: "disabled", dataSource: "web", editorNames: "Epi Web Services", embeddedMedia: "product-carousel_bottom", functionalTags: "", hasBuyButtons: "false", modifiedDate: "2022-04-21T15:29:05.087Z", noOfRevisions: "19", pageValue: "all", publishDate: "2022-04-21T15:29:05.087Z", section: "recipes", subsection: "", subsection2: "", tags: "recipes|dinner|main|vegetarian|easy|quick|weeknight meals|sauté|pea|noodle|udon noodle|ramen noodle", wordCount: "", totalGalleryImages: "0", templateType: "mt_recipe", paywallStatus: "not paywalled",}, marketing:{brand: "Bon Appétit"}, page:{syndicatorUrl: "", canonical: "https:\u002F\u002Fwww.bonappetit.com\u002Frecipe\u002Fnutty-umami-noodles-with-scallion-brown-butter-and-snow-peas",}, search:{}, site:{orgId: "4gKgcFFoYyWqtAJpQGvhXSjiGT5R", orgAppId: "a61a3c7a-01d9-4175-8ab8-7171949de605", appVersion: "multi-tenant", env: "production",}, syndication:{content: "false", originalSource: ""},}, googleTagManagerId: "TLPN5X9", boomerang:{tags:{brand: "bon-appetit", contentType: "recipe", brand_slug: "bon-appetit", content_type: "recipe",},}, brandName: "Bon Appétit", channelSlug: "default", scTheme:{colors:{background:{adContainer:{inverted: "transparent", special: "grey3", standard: "grey3", sticky: "white",}, black: "black", brand: "primary1", dark: "secondary7", light: "grey4", white: "white",}, consumption:{body:{inverted:{accent: "white", adlabel: "grey2", "bg-card": "grey4", "bg-photo": "black", body: "white", "body-deemphasized": "white", "display-signature": "white", "display-texture": "white", divider: "white", link: "white", "link-hover": "white", subhed: "white",}, special:{accent: "black", adlabel: "grey2", "bg-card": "primary1", "bg-photo": "white", body: "black", "body-deemphasized": "black", "display-signature": "black", "display-texture": "black", divider: "black", link: "black", "link-hover": "black", subhed: "black",}, standard:{accent: "primary1", adlabel: "grey2", "bg-card": "grey4", "bg-photo": "white", body: "black", "body-deemphasized": "grey2", "display-signature": "primary1", "display-texture": "black", divider: "black", link: "black", "link-hover": "black", subhed: "black",},}, lead:{inverted:{accent: "white", accreditation: "white", background: "black", "context-signature": "white", "context-tertiary": "white", "context-texture": "primary1", description: "white", divider: "white", heading: "white", "heading-background": "black", link: "white", "link-hover": "white", syndication: "white",}, special:{accent: "black", accreditation: "black", background: "primary1", "context-signature": "white", "context-tertiary": "black", "context-texture": "black", description: "black", divider: "black", heading: "black", "heading-background": "primary1", link: "black", "link-hover": "black", syndication: "black",}, standard:{accent: "black", accreditation: "black", background: "white", "context-signature": "black", "context-tertiary": "black", "context-texture": "white", description: "black", divider: "grey3", heading: "black", "heading-background": "white", link: "black", "link-hover": "black", syndication: "black",},},}, discovery:{body:{black:{accent: "grey4", accreditation: "grey3", background: "black", border: "white", "context-signature": "primary1", "context-tertiary": "grey3", "context-texture": "white", description: "grey4", divider: "white", heading: "white", "heading-background": "black", syndication: "white",}, brand:{accent: "black", accreditation: "grey2", background: "primary1", border: "black", "context-signature": "black", "context-tertiary": "black", "context-texture": "primary1", description: "black", divider: "black", heading: "black", "heading-background": "primary1", syndication: "black",}, dark:{accent: "black", accreditation: "grey2", background: "secondary7", border: "black", "context-signature": "black", "context-tertiary": "black", "context-texture": "white", description: "grey2", divider: "black", heading: "black", "heading-background": "secondary7", syndication: "black",}, light:{accent: "black", accreditation: "grey2", background: "secondary3", border: "black", "context-signature": "black", "context-tertiary": "black", "context-texture": "primary1", description: "grey2", divider: "black", heading: "black", "heading-background": "secondary3", syndication: "black",}, white:{accent: "black", accreditation: "grey2", background: "white", border: "black", "context-signature": "black", "context-tertiary": "black", "context-texture": "white", description: "grey2", divider: "black", heading: "black", "heading-background": "white", syndication: "black",},}, lead:{primary:{accent: "black", background: "primary1", description: "black", divider: "black", hed: "black", link: "black", "link-hover": "primary1",}, secondary:{accent: "white", background: "black", description: "white", divider: "black", hed: "white", link: "white", "link-hover": "primary1",},},}, foundation:{"collapsed-menu":{"nav-link":{default: "white", hover: "primary1"}, "utility-link":{default: "primary1", hover: "white"},}, "expanded-context": "black", "expanded-menu":{"nav-link":{default: "black", hover: "black"}, "utility-link":{default: "black", hover: "black"},}, "expanded-utility":{"nav-link":{default: "black", hover: "black"},}, footer:{accent: "white", bg: "black", context: "white", links:{primary: "white", secondary: "white"}, "meta-primary": "white", "meta-secondary": "white", social:{hover: "primary1"},}, icon:{default: "grey4", hover: "grey4"}, menu:{dividers: "grey2"}, "menu-bg":{accent: "black", collapsed: "black", expanded: "white",},}, interactive:{base:{black: "black", "brand-primary": "black", "brand-secondary": "black", dark: "grey1", "invalid-primary": "negative1", "invalid-secondary": "negative2", light: "grey5", "valid-primary": "valid1", "valid-secondary": "valid2", white: "white",}, social:{primary: "black", "primary-hover": "primary1", secondary: "white", "secondary-hover": "white",},}, palette:{black: "rgba(0,0,0,1)", grey1: "rgba(68,68,68,1)", grey2: "rgba(102,102,102,1)", grey3: "rgba(236,236,236,1)", grey4: "rgba(248,248,248,1)", grey5: "rgba(215,215,215,1)", negative1: "rgba(219,7,7,1)", negative2: "rgba(252,242,242,1)", primary1: "rgba(255,218,8,1)", primary2: "rgba(255,166,122,1)", primary3: "rgba(4,152,249,1)", secondary1: "rgba(250,219,127,1)", secondary2: "rgba(251,240,160,1)", secondary3: "rgba(250,249,240,1)", secondary4: "rgba(238,236,227,1)", secondary5: "rgba(222,218,202,1)", secondary6: "rgba(218,243,245,1)", secondary7: "rgba(254,230,163,1)", transparent: "rgba(255,255,255,0)", valid1: "rgba(33,115,50,1)", valid2: "rgba(219,235,219,1)", white: "rgba(255,255,255,1)",},}, "container-styles":{"block-background":{pattern: [{solid:{color: "#FFFFFF"}}],}, "content-background": null, "item-background": null, "lede-background": null, "main-background": null, "page-background":{pattern: [{solid:{color: "#FFFFFF"}}]},}, decorations:{borderRadius: 0, borderStyle: "solid", borderWidth: 1, cardRadiusLg: 20, cardRadiusMd: 16, cardRadiusSm: 8, dividerStyle: "solid", dividerWidth: 2, iconProfileRadius: 0, navigationRuleStyle: "solid", navigationRuleWidth: 1, sectionOrnamentLength: 100, sectionOrnamentStyle: "solid", sectionOrnamentWidth: 8, titleBorderDecoration:{type: "none", file: "", thickness: 0, offset: 0, placement: "grid", repeat: "round", width: "100%", align: "center", side: "bottom",}, sectionBorderPrimary:{type: "none", file: "", thickness: 0, offset: 0, placement: "grid", repeat: "round", width: "100%", align: "center", side: "bottom",}, sectionBorderSecondary:{type: "none", file: "", thickness: 0, offset: 0, placement: "grid", repeat: "round", width: "100%", align: "center", side: "bottom",}, sectionBorderTertiary:{type: "none", file: "", thickness: 0, offset: 0, placement: "grid", repeat: "round", width: "100%", align: "center", side: "bottom",}, badgePrimary:{type: "none", file: "", width: 0, height: 0, x: "start", y: "start", placement: "center", offsetX: 0, offsetY: 0, rotation: 0,}, badgeSecondary:{type: "none", file: "", width: 0, height: 0, x: "start", y: "start", placement: "center", offsetX: 0, offsetY: 0, rotation: 0,}, badgeFlag:{type: "none", file: "", width: 0, height: 0, x: "start", y: "start", placement: "center", offsetX: 0, offsetY: 0, rotation: 0,}, backgroundImagePrimary:{type: "none", file: "", attachment: "initial", position: "initial", repeat: "no-repeat", size: "cover",}, backgroundImageSecondary:{type: "none", file: "", attachment: "initial", position: "initial", repeat: "no-repeat", size: "cover",},}, interactive:{links:{default:{active:{style: "underline"}, focus:{style: "underline"}, hover:{style: "underline"}, link:{style: "underline"}, visited:{style: "null"},}, navigation:{active:{style: "underline"}, focus:{style: "underline"}, hover:{style: "underline"}, link:{style: "null"}, visited:{style: "null"},},},}, navigation:{header:{"container-spacing-unit": 0, lg:{"align-logo": "left", hasPrimary: false, hasSecondary: true, "logo-height": 3.25, "logo-padding": [0, 3],}, "max-width": 1280, md:{"align-logo": "left", hasPrimary: false, hasSecondary: true, "logo-height": 3.25, "logo-padding": [0, 3],}, sm:{"align-logo": "center", hasPrimary: false, hasSecondary: true, "logo-height": 2, "logo-padding": [0, 3],}, xl:{"align-logo": "left", hasPrimary: true, hasSecondary: true, "logo-height": 3, "logo-padding": [0, 3],},},}, spacing:{"box-inset": 10}, typography:{definitions:{consumptionEditorial:{"body-core":{case: "normal", family: "Radley", italic: false, "letter-spacing": 0, ligatures: null, "line-height": 1.8064705343807446, "mobile-size": 17, weight: 400,}, "body-feature":{case: "normal", family: "Radley", italic: false, "letter-spacing": 0, ligatures: null, "line-height": 1.6699999703301325, "mobile-size": 18, weight: 400,}, citation:{case: "normal", family: "Radley", italic: true, "letter-spacing": 0, ligatures: null, "line-height": 1.6052941715016085, "mobile-size": 17, weight: 400,}, "description-core":{case: "normal", family: "FuturaPT", italic: false, "letter-spacing": 0.014999999664723873, ligatures: null, "line-height": 1.5, "mobile-size": 16, weight: 500,}, "description-embed":{case: "normal", family: "Radley", italic: false, "letter-spacing": 0, ligatures: null, "line-height": 1.75, "mobile-size": 16, weight: 400,}, "description-feature":{case: "normal", family: "FuturaPT", italic: false, "letter-spacing": 0, ligatures: null, "line-height": 1.3333333333333333, "mobile-size": 18, weight: 600,}, "display-large":{case: "normal", family: "FuturaPT", italic: false, "letter-spacing": 0.01999999913904402, ligatures: null, "line-height": 1.1699999703301325, "mobile-size": 36, weight: 600,}, "display-medium":{case: "normal", family: "FuturaPT", italic: false, "letter-spacing": 0, ligatures: null, "line-height": 1.1400000027247839, "mobile-size": 28, weight: 600,}, "display-small":{case: "normal", family: "FuturaPT", fontSizeMd: 33.599998474121094, italic: false, "letter-spacing": 0, ligatures: null, "line-height": 1.1400000027247839, lineHeightMd: 1.1398809814399076, "mobile-size": 28, weight: 600,}, "hed-bulletin":{case: "normal", family: "FuturaPT", fontSizeMd: 33.599998474121094, italic: false, "letter-spacing": 0.020000000085149492, ligatures: null, "line-height": 1.1400000027247839, lineHeightMd: 1.1398809814399076, "mobile-size": 28, weight: 600,}, "hed-feature":{case: "normal", family: "FuturaPT", fontSizeLg: 46.79999923706055, fontSizeMd: 43.20000076293945, italic: false, "letter-spacing": 0.01999999913904402, ligatures: null, "line-height": 1.1699999703301325, lineHeightLg: 1.1700854532956744, lineHeightMd: 1.1699074079388616, "mobile-size": 36, weight: 600,}, "hed-standard":{case: "normal", family: "FuturaPT", fontSizeLg: 48, fontSizeMd: 42, italic: false, "letter-spacing": 0.0004999999784761005, ligatures: null, "line-height": 1.1699999703301325, lineHeightLg: 1.1666666666666667, lineHeightMd: 1.1428571428571428, "mobile-size": 36, weight: 600,}, "subhed-aux-primary":{case: "normal", family: "FuturaPT", italic: false, "letter-spacing": 0.02307690106905424, ligatures: null, "line-height": 1.1499999853280873, "mobile-size": 26, weight: 600,}, "subhed-aux-secondary":{case: "normal", family: "FuturaPT", italic: false, "letter-spacing": 0.015422221687104967, ligatures: null, "line-height": 1.3333333333333333, "mobile-size": 18, weight: 600,}, "subhed-break-primary":{case: "normal", family: "FuturaPT", fontSizeMd: 32, italic: false, "letter-spacing": 0, ligatures: null, "line-height": 1.2142857142857142, lineHeightMd: 1.1875, "mobile-size": 28, weight: 600,}, "subhed-break-secondary":{case: "normal", family: "FuturaPT", italic: false, "letter-spacing": 0, ligatures: null, "line-height": 1.1400000027247839, "mobile-size": 28, weight: 600,},}, discovery:{"description-core":{case: "normal", family: "FuturaPT", italic: false, "letter-spacing": 0.01333333303531011, ligatures: null, "line-height": 1.3333333333333333, "mobile-size": 18, weight: 400,}, "description-feature":{case: "normal", family: "FuturaPT", italic: false, "letter-spacing": 0.020000000298023225, ligatures: null, "line-height": 1.4, "mobile-size": 20, weight: 400,}, "description-page":{case: "normal", family: "FuturaPT", italic: false, "letter-spacing": -0.019999998807907104, ligatures: null, "line-height": 1.4, "mobile-size": 20, weight: 400,}, "hed-break-out":{case: "normal", family: "FuturaPT", fontSizeLg: 42, fontSizeMd: 36, italic: false, "letter-spacing": 0.012500000186264515, ligatures: null, "line-height": 1.1875, lineHeightLg: 1.1428571428571428, lineHeightMd: 1.2222222222222223, "mobile-size": 32, weight: 600,}, "hed-bulletin-primary":{case: "normal", family: "FuturaPT", italic: false, "letter-spacing": -0.019999999552965164, ligatures: null, "line-height": 1.25, "mobile-size": 16, weight: 600,}, "hed-bulletin-secondary":{case: "normal", family: "FuturaPT", italic: false, "letter-spacing": -0.019999999552965164, ligatures: null, "line-height": 1.25, "mobile-size": 16, weight: 600,}, "hed-core-primary":{case: "normal", family: "FuturaPT", fontSizeMd: 28, italic: false, "letter-spacing": 0, ligatures: null, "line-height": 1.1666666666666667, lineHeightMd: 1.1428571428571428, "mobile-size": 24, weight: 600,}, "hed-core-secondary":{case: "normal", family: "FuturaPT", fontSizeMd: 24, italic: false, "letter-spacing": 0.020000000298023225, ligatures: null, "line-height": 1.2, lineHeightMd: 1.1666666666666667, "mobile-size": 20, weight: 600,}, "hed-feature":{case: "normal", family: "FuturaPT", fontSizeLg: 40, fontSizeMd: 34, italic: false, "letter-spacing": 0, ligatures: null, "line-height": 1.1428571428571428, lineHeightLg: 1.2, lineHeightMd: 1.1764705882352942, "mobile-size": 28, weight: 600,}, "page-hed-section":{case: "normal", family: "FuturaPT", fontSizeMd: 40, italic: false, "letter-spacing": 0.01176470605766072, ligatures: null, "line-height": 1.1764705882352942, lineHeightMd: 1.2, "mobile-size": 34, weight: 900,}, "page-hed-subsection":{case: "normal", family: "FuturaPT", fontSizeMd: 54.599998474121094, italic: false, "letter-spacing": 0.013000000090826126, ligatures: null, "line-height": 1, lineHeightMd: 1, "mobile-size": 42, weight: 500,}, "subhed-section-collection":{case: "uppercase", family: "FuturaPT", italic: false, "letter-spacing": 0.11133333047231038, ligatures: null, "line-height": 1.3333333333333333, "mobile-size": 18, weight: 600,}, "subhed-section-primary":{case: "uppercase", family: "FuturaPT", fontSizeMd: 40, italic: false, "letter-spacing": 0.01176470605766072, ligatures: null, "line-height": 1.1764705882352942, lineHeightMd: 1.2, "mobile-size": 34, weight: 900,}, "subhed-section-secondary":{case: "uppercase", family: "FuturaPT", italic: false, "letter-spacing": 0.12999999523162842, ligatures: null, "line-height": 1.3, "mobile-size": 20, weight: 500,}, "subhed-section-tertiary":{case: "normal", family: "FuturaPT", italic: false, "letter-spacing": 0, ligatures: null, "line-height": 1.25, "mobile-size": 16, weight: 500,},}, foundation:{"link-feature":{case: "uppercase", family: "FuturaPT", italic: false, "letter-spacing": 0.21400000154972076, ligatures: null, "line-height": 1.25, "mobile-size": 16, weight: 700,}, "link-primary":{case: "uppercase", family: "FuturaPT", italic: false, "letter-spacing": 0.16699999570846558, ligatures: null, "line-height": 1.5, "mobile-size": 12, weight: 600,}, "link-secondary":{case: "normal", family: "FuturaPT", italic: false, "letter-spacing": 0.0625, ligatures: null, "line-height": 1.25, "mobile-size": 16, weight: 500,}, "link-utility":{case: "uppercase", family: "FuturaPT", italic: false, "letter-spacing": 0.16699999570846558, ligatures: null, "line-height": 1.5, "mobile-size": 12, weight: 600,}, list:{case: "uppercase", family: "FuturaPT", italic: false, "letter-spacing": 0.1669999902898615, ligatures: null, "line-height": 1.3600000034679065, "mobile-size": 11, weight: 400,}, "meta-primary":{case: "normal", family: "Radley", italic: false, "letter-spacing": 0, ligatures: null, "line-height": 1.6699999703301325, "mobile-size": 18, weight: 400,}, "meta-secondary":{case: "normal", family: "FuturaPT", italic: false, "letter-spacing": 0, ligatures: null, "line-height": 1.5, "mobile-size": 12, weight: 500,}, "title-primary":{case: "capitalize", family: "FuturaPT", italic: false, "letter-spacing": 0.03125, ligatures: null, "line-height": 1.2512500286102295, "mobile-size": 16, weight: 900,}, "title-secondary":{case: "uppercase", family: "FuturaPT", italic: false, "letter-spacing": 0.2140000065167745, ligatures: null, "line-height": 1.5, "mobile-size": 12, weight: 700,},}, globalEditorial:{"accreditation-core":{case: "uppercase", family: "FuturaPT", italic: false, "letter-spacing": 0.15308332443237305, ligatures: null, "line-height": 1.3333333333333333, "mobile-size": 12, weight: 600,}, "accreditation-feature":{case: "normal", family: "FuturaPT", italic: false, "letter-spacing": 0.014999999664723873, ligatures: null, "line-height": 1.5, "mobile-size": 16, weight: 400,}, "ad-label":{case: "uppercase", family: "FuturaPT", italic: false, "letter-spacing": 0.15, ligatures: null, "line-height": 1, "mobile-size": 10, weight: 500,}, "context-primary":{case: "uppercase", family: "FuturaPT", italic: false, "letter-spacing": 0.125, ligatures: null, "line-height": 1.3333333333333333, "mobile-size": 12, weight: 600,}, "context-secondary":{case: "normal", family: "Radley", italic: false, "letter-spacing": 0.024999999574252536, ligatures: null, "line-height": 1.2899999618530273, "mobile-size": 14, weight: 400,}, "context-tertiary":{case: "capitalize", family: "FuturaPT", italic: false, "letter-spacing": 0.018461538048890922, ligatures: null, "line-height": 1.3846153846153846, "mobile-size": 13, weight: 500,}, "context-title":{case: "uppercase", family: "FuturaPT", italic: false, "letter-spacing": 0.022222222553359136, ligatures: null, "line-height": 1.3333333333333333, "mobile-size": 18, weight: 600,}, "numerical-large":{case: "normal", family: "FuturaPT", italic: false, "letter-spacing": 0, ligatures: null, "line-height": 1.1, "mobile-size": 30, weight: 600,}, "numerical-small":{case: "normal", family: "FuturaPT", italic: false, "letter-spacing": 0, ligatures: null, "line-height": 1.25, "mobile-size": 16, weight: 500,}, syndication:{case: "uppercase", family: "FuturaPT", italic: false, "letter-spacing": 0.15400000718923715, ligatures: null, "line-height": 1.5, "mobile-size": 13, weight: 400,}, tags:{case: "normal", family: "FuturaPT", italic: false, "letter-spacing": 0, ligatures: null, "line-height": 1.25, "mobile-size": 16, weight: 500,},}, utility:{"assistive-text":{case: "normal", family: "FuturaPT", italic: false, "letter-spacing": 0, ligatures: null, "line-height": 1.555833339691162, "mobile-size": 12, weight: 400,}, "button-bulletin":{case: "uppercase", family: "FuturaPT", italic: false, "letter-spacing": 0.07142857142857142, ligatures: null, "line-height": 1.4285714285714286, "mobile-size": 14, weight: 600,}, "button-core":{case: "uppercase", family: "FuturaPT", italic: false, "letter-spacing": 0.08333333333333333, ligatures: null, "line-height": 1.5, "mobile-size": 12, weight: 600,}, "button-utility":{case: "uppercase", family: "FuturaPT", italic: false, "letter-spacing": 0.08333333333333333, ligatures: null, "line-height": 1.5, "mobile-size": 12, weight: 500,}, "input-core":{case: "normal", family: "FuturaPT", italic: false, "letter-spacing": 0, ligatures: null, "line-height": 1.4300000326974052, "mobile-size": 14, weight: 400,}, "input-feature":{case: "normal", family: "FuturaPT", fontSizeMd: 33.599998474121094, italic: false, "letter-spacing": 0, ligatures: null, "line-height": 1.1400000027247839, lineHeightMd: 1.1398809814399076, "mobile-size": 28, weight: 500,}, label:{case: "normal", family: "FuturaPT", italic: false, "letter-spacing": 0, ligatures: null, "line-height": 1.2512500286102295, "mobile-size": 16, weight: 600,},},}, typefaces:{FuturaPT:{fallback: "'helvetica, sans-serif'"}, Radley:{fallback: "'Georgia, serif'"},}, fontFaces: '\n \n@font-face{\n font-family: FuturaPT;\n font-weight: 700;\n font-style: normal;\n font-display: swap;\n src: url("\u002Fverso\u002Fstatic\u002Fassets\u002Ffonts\u002FFuturaPT-Bold.woff2") format("woff2"), url("\u002Fverso\u002Fstatic\u002Fassets\u002Ffonts\u002FFuturaPT-Bold.woff") format("woff");}\n \n @font-face{\n font-family: FuturaPT;\n font-weight: 700;\n font-style: italic;\n font-display: swap;\n src: url("\u002Fverso\u002Fstatic\u002Fassets\u002Ffonts\u002FFuturaPT-BoldOblique.woff2") format("woff2"), url("\u002Fverso\u002Fstatic\u002Fassets\u002Ffonts\u002FFuturaPT-BoldOblique.woff") format("woff");}\n \n @font-face{\n font-family: FuturaPT;\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n src: url("\u002Fverso\u002Fstatic\u002Fassets\u002Ffonts\u002FFuturaPT-Book.woff2") format("woff2"), url("\u002Fverso\u002Fstatic\u002Fassets\u002Ffonts\u002FFuturaPT-Book.woff") format("woff");}\n \n @font-face{\n font-family: FuturaPT;\n font-weight: 400;\n font-style: italic;\n font-display: swap;\n src: url("\u002Fverso\u002Fstatic\u002Fassets\u002Ffonts\u002FFuturaPT-BookOblique.woff2") format("woff2"), url("\u002Fverso\u002Fstatic\u002Fassets\u002Ffonts\u002FFuturaPT-BookOblique.woff") format("woff");}\n \n @font-face{\n font-family: FuturaPT;\n font-weight: 600;\n font-style: normal;\n font-display: swap;\n src: url("\u002Fverso\u002Fstatic\u002Fassets\u002Ffonts\u002FFuturaPT-Demi.woff2") format("woff2"), url("\u002Fverso\u002Fstatic\u002Fassets\u002Ffonts\u002FFuturaPT-Demi.woff") format("woff");}\n \n @font-face{\n font-family: FuturaPT;\n font-weight: 600;\n font-style: italic;\n font-display: swap;\n src: url("\u002Fverso\u002Fstatic\u002Fassets\u002Ffonts\u002FFuturaPT-DemiOblique.woff2") format("woff2"), url("\u002Fverso\u002Fstatic\u002Fassets\u002Ffonts\u002FFuturaPT-DemiOblique.woff") format("woff");}\n \n @font-face{\n font-family: FuturaPT;\n font-weight: 500;\n font-style: normal;\n font-display: swap;\n src: url("\u002Fverso\u002Fstatic\u002Fassets\u002Ffonts\u002FFuturaPT-Medium.woff2") format("woff2"), url("\u002Fverso\u002Fstatic\u002Fassets\u002Ffonts\u002FFuturaPT-Medium.woff") format("woff");}\n \n @font-face{\n font-family: FuturaPT;\n font-weight: 500;\n font-style: italic;\n font-display: swap;\n src: url("\u002Fverso\u002Fstatic\u002Fassets\u002Ffonts\u002FFuturaPT-MediumOblique.woff2") format("woff2"), url("\u002Fverso\u002Fstatic\u002Fassets\u002Ffonts\u002FFuturaPT-MediumOblique.woff") format("woff");}\n \n \n @font-face{\n font-family: Radley;\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n src: url("\u002Fverso\u002Fstatic\u002Fassets\u002Ffonts\u002FRadley-Regular.woff2") format("woff2"), url("\u002Fverso\u002Fstatic\u002Fassets\u002Ffonts\u002FRadley-Regular.woff") format("woff");}\n \n @font-face{\n font-family: Radley;\n font-weight: 400;\n font-style: italic;\n font-display: swap;\n src: url("\u002Fverso\u002Fstatic\u002Fassets\u002Ffonts\u002FRadley-RegularItalic.woff2") format("woff2"), url("\u002Fverso\u002Fstatic\u002Fassets\u002Ffonts\u002FRadley-RegularItalic.woff") format("woff");}\n \n ',}, meta:{name: "bon-appetit", market: "us"},}, presenter: "presenter-recipes", comScoreCollectionName: "Food Innovation Group", footerLogo:{altText: "Bon Appétit", sources:{sm:{url: "\u002Fverso\u002Fstatic\u002Fbon-appetit\u002Fassets\u002Flogo-reverse.adafbb9b583b565c29b99cfbd36ab80f108eac59.svg",},},}, headerLogo:{altText: "Bon Appétit", sources:{sm:{url: "\u002Fverso\u002Fstatic\u002Fbon-appetit\u002Fassets\u002Flogo-header.29b3f7bcdadf3b208a05a3ab761757ab663c1e12.svg",},},}, headerInvertedLogo:{altText: "Bon Appétit", sources:{sm:{url: "\u002Fverso\u002Fstatic\u002Fbon-appetit\u002Fassets\u002Flogo-reverse.adafbb9b583b565c29b99cfbd36ab80f108eac59.svg",},},}, logo:{altText: "Bon Appétit", sources:{sm:{url: "\u002Fverso\u002Fstatic\u002Fbon-appetit\u002Fassets\u002Flogo.dd1c7cd44efec1aab27082736a05fa3bc8865dad.svg",},},}, invertedLogo:{altText: "Bon Appétit", sources:{sm:{url: "\u002Fverso\u002Fstatic\u002Fbon-appetit\u002Fassets\u002Flogo.dd1c7cd44efec1aab27082736a05fa3bc8865dad.svg",},},}, logoBaseUrl: "\u002F", "head.og.image": "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F16:9\u002Fw_1280,c_limit\u002F0418-snow-pea-noodles-lede.jpg", "head.twitterImageSrc": "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F16:9\u002Fw_1280,c_limit\u002F0418-snow-pea-noodles-lede.jpg", seriesLogos:{}, landingPageLink:{}, navigationSearch: true, translations:{"AccountLinks.NavigationAriaLabel": [{type: 0, value: "Account"}], "Ad.adLabel": [{type: 0, value: "Advertisement"}], "AgeGate.AcceptLabel": [{type: 0, value: "I am 18+"}], "AgeGate.DeclineLabel": [{type: 0, value: "I'm under 18"}], "AgeGate.DekText": [{type: 0, value: "This material is intended for people over the age of 18",},], "AgeGate.HedText": [{type: 0, value: "Are you 18 or over?"}], "ArticlePage.TruncatedButtonLabel": [{type: 0, value: "Read Full Story"},], "BookmarkIcon.Alert": [{type: 0, value: "Save this story for later."},], "BookmarkIcon.CompletionLabel": [{type: 0, value: "Story saved. To revisit this article, select My Account, then View Saved Stories. Press Escape to dismiss tooltip.",},], "BookmarkIcon.Label": [{type: 0, value: "Story saved"}], "BookmarkIcon.OnboardingAriaLabel": [{type: 0, value: "Save story. Press Enter to save this story for later. Press Escape to dismiss tooltip.",},], "BookmarkIcon.SignInMessage": [{type: 0, value: "After signing in, you can save stories and easily revisit them on any device—even off-line.",},], "Byline.More": [{type: 0, value: "more"}], "Byline.Preamble": [{type: 0, value: "By"}], "Bylines.AnimatorPreamble": [{type: 0, value: "Animation by"}], "Bylines.ArtistPreamble": [{type: 0, value: "Art by"}], "Bylines.ArtworkPreamble": [{type: 0, value: "Artwork by"}], "Bylines.AstoldtoPreamble": [{type: 0, value: "As told to"}], "Bylines.AuthorPreamble": [{type: 0, value: "By"}], "Bylines.DeveloperPreamble": [{type: 0, value: "Development by"}], "Bylines.DirectorPreamble": [{type: 0, value: "Directed by"}], "Bylines.EditorPreamble": [{type: 0, value: "Edited by"}], "Bylines.FilmByPreamble": [{type: 0, value: "Film by"}], "Bylines.HairPreamble": [{type: 0, value: "Hair by"}], "Bylines.IllustratorPreamble": [{type: 0, value: "Illustration by"},], "Bylines.IntroducerPreamble": [{type: 0, value: "Introduced by"}], "Bylines.MakeupPreamble": [{type: 0, value: "Makeup by"}], "Bylines.MedicalReviewerPreamble": [{type: 0, value: "Medically reviewed by"},], "Bylines.NailsPreamble": [{type: 0, value: "Nails by"}], "Bylines.PhotographerPreamble": [{type: 0, value: "Photography by"},], "Bylines.PodcasthostPreamble": [{type: 0, value: "With"}], "Bylines.ProducerPreamble": [{type: 0, value: "Produced by"}], "Bylines.ReporterPreamble": [{type: 0, value: "Reporting by"}], "Bylines.ReviewerPreamble": [{type: 0, value: "Reviewed by"}], "Bylines.StylistPreamble": [{type: 0, value: "Styled by"}], "Bylines.TextByPreamble": [{type: 0, value: "Text by"}], "Bylines.ToldbyPreamble": [{type: 0, value: "As told by"}], "Bylines.VideoByPreamble": [{type: 0, value: "Video by"}], "Bylines.WithPreamble": [{type: 0, value: "With"}], "Bylines.inconversationPreamble": [{type: 0, value: "In Conversation with"},], "Bylines.introductionPreamble": [{type: 0, value: "Introduction by"},], "CNEVideoWatchPage.AboutPremiereDate": [{type: 0, value: "Released on "},{type: 1, value: "premiereDate"},], "CNEVideoWatchPage.AboutPremiereDateFormat": [{type: 0, value: "MM\u002FDD\u002FYYYY"},], "CNEVideoWatchPage.AboutTabLabel": [{type: 0, value: "About"}], "CNEVideoWatchPage.CreditsTabLabel": [{type: 0, value: "Credits"},], "CNEVideoWatchPage.PlaylistHeading": [{type: 0, value: "Up Next"},], "CNEVideoWatchPage.PreviewHeading": [{type: 0, value: "Preview"}], "CNEVideoWatchPage.PreviewLinkCopied": [{type: 0, value: "copied to clipboard"},], "CNEVideoWatchPage.RubricEpisode": [{type: 0, value: "Episode "},{type: 1, value: "episode"},], "CNEVideoWatchPage.TheaterModeLabel": [{type: 0, value: "Hide"}], "CNEVideoWatchPage.TranscriptHeading": [{type: 0, value: "Transcript"},], "CarouselControls.BackAriaLabel": [{type: 0, value: "Carousel back"},], "CarouselControls.ForwardAriaLabel": [{type: 0, value: "Carousel forward"},], "Ceros.IframeTitle": [{type: 0, value: "Ceros embed"}], "ChannelFilter.ClearAll": [{type: 0, value: "Clear All"}], "ChannelFilter.ClearAllFiltersText": [{type: 0, value: "Clear All Filters and Keywords"},], "ChannelFilter.FilterPreamble": [{type: 0, value: "Filter by"}], "ChannelFilter.Save": [{type: 0, value: "Save"}], "ChannelFilter.StoryCount": [{type: 0, value: "Showing "},{offset: 0, options:{one:{value: [{type: 7},{type: 0, value: " Story"}]}, other:{value: [{type: 7},{type: 0, value: " Stories"}],},}, pluralType: "cardinal", type: 6, value: "storyCount",},], "ChannelNavigation.ChannelDrawerContentLabel": [{type: 0, value: "Runway filters navigation"},], "ChannelNavigation.GlobalDrawerContentLabel": [{type: 0, value: "Navigation Menu"},], "ChannelNavigation.ToggleLabel": [{type: 0, value: "Open Navigation Menu"},], "Clamp.ReadLess": [{type: 0, value: "Read less"}], "Clamp.ReadMore": [{type: 0, value: "Read more"}], "CneVideoEmbed.Live": [{type: 0, value: "• Live"}], "CneVideoEmbed.PersistantCloseTitle": [{type: 0, value: "Close Persisted Player"},], "CneVideoEmbed.WatchNow": [{type: 0, value: "Streaming Live Now"},], "ComingSoon.SeriesNavigation": [{type: 0, value: "COMING SOON"}], "ConnectedNewsletterSubscribeForm.BadResponse": [{type: 0, value: "Bad response"},], "ConnectedNewsletterSubscribeForm.ErrorMessage": [{type: 0, value: "Subscription failed:"},], "ConnectedNewsletterSubscribeForm.SuccessDek": [{type: 0, value: "You've successfully subscribed to our newsletter....",},], "ConnectedNewsletterSubscribeForm.SuccessHed": [{type: 0, value: "You're all set..."},], "ConnectedNewsletterSubscribeForm.TypeMismatchMessage": [{type: 0, value: "Please enter a valid email address"},], "ConsentBanner.consentText": [{type: 0, value: "This content can also be viewed on the site it ",},{children: [{type: 0, value: "originates"}], type: 8, value: "a",},{type: 0, value: " from."},], "ConsentBanner.consentWarningText": [{type: 0, value: "To honor your privacy preferences, this content can only be viewed on the site it ",},{children: [{type: 0, value: "originates"}], type: 8, value: "a",},{type: 0, value: " from."},], "ContentCardEmbed.articleButtonCta": [{type: 0, value: "View Story"},], "ContentCardEmbed.recipeButtonCta": [{type: 0, value: "View Recipe"},], "ContentHeader.ReadReviews": [{type: 0, value: "Read Reviews"}], "ContentHeader.ShowAllPhotos": [{type: 0, value: "Show all Photos"},], "ContentPromoEmbed.DefaultButtonText": [{type: 0, value: "Read More"},], "ContentPromoEmbed.GalleryButtonText": [{type: 0, value: "View Slideshow"},], "ContributorPage.LoadMoreLoadingText": [{type: 0, value: "Loading ..."},], "ContributorPage.LoadMoreText": [{type: 0, value: "More Stories"},], "Contributors.AuthorPreamble": [{type: 0, value: "Written by "},{type: 1, value: "brandName"},{type: 0, value: " Staff"},], "CrosswordEmbed.SignInMessage": [{type: 0, value: "To save your progress, sign in to your "},{children: [{type: 1, value: "portal"}], type: 8, value: "emTag",},{type: 0, value: " account."},], "CrosswordEmbed.Title": [{type: 0, value: "Embedded Crossword"}], "CuratedShows.ButtonLabel": [{type: 0, value: "View all shows"}], "CuratedShows.DrawerContentLabel": [{type: 0, value: "Runway All Shows navigation"},], "CuratedShows.GroupedNavigationBrowserFilterLabel": [{type: 0, value: "Search..."},], "CuratedShows.GroupedNavigationFilterLabel": [{type: 0, value: "Search for a designer..."},], "CuratedShows.GroupedNavigationSummaryCarouselFilterLabel": [{type: 0, value: "Search..."},], "Disclaimer.Text": [{type: 0, value: "All products featured on "},{type: 1, value: "brandName"},{type: 0, value: " are independently selected by our editors. However, when you buy something through our retail links, we may earn an affiliate commission.",},], "Drawer.ButtonLabel": [{type: 0, value: "Close drawer"}], "Drawer.ContentLabel": [{type: 0, value: "Secondary menu navigation"},], "DynamicChannelNav.PrimaryLinks": [{type: 0, value: "Primary"}], "ErrorBoundary.ErrorMessage": [{type: 0, value: "An error occurred."},], "ErrorPage.buttonLabel": [{type: 0, value: "Go to Homepage"}], "ErrorPage.buttonLink": [{type: 0, value: "\u002F"}], "ErrorPage.dangerousDek": [{type: 0, value: "There was an issue with this page"},], "ErrorPage.dangerousHed": [{type: 0, value: "Oops"}], "EventBanner.CloseBanner": [{type: 0, value: "Close Banner"}], "EventBanner.LiveOn": [{type: 0, value: "Live on"}], "EventBanner.SponsorPreamble": [{type: 0, value: "Countdown Presented By"},], "EventBanner.WatchLiveOn": [{type: 0, value: "Watch live on"}], "EventBanner.eventDays": [{type: 0, value: "Days"}], "EventBanner.eventHours": [{type: 0, value: "Hours"}], "EventBanner.eventMinutes": [{type: 0, value: "Minutes"}], "EventBanner.eventSeconds": [{type: 0, value: "Seconds"}], "EventsList.Title": [{type: 0, value: "Featured Events"}], "ExternalLinkEmbed.Rubric": [{type: 0, value: "Read More"}], "FacebookEmbed.AriaLabelText": [{type: 0, value: "social media post"},], "FacebookEmbed.ConsentBannerHeader": [{type: 0, value: "Facebook content"},], "Filmstrip.CollapsedMessage": [{type: 0, value: "Explore"}], "Filmstrip.expandedMessage": [{type: 0, value: "Hide"}], "FilterableSummaryList.AtArticleGalleryCarouselBtnText": [{type: 0, value: "VIEW ALL "},{type: 1, value: "categoryName"},], "FireworkEmbed.ConsentBannerHeader": [{type: 0, value: "Firework content"},], "FormWithValidation.BadInput": [{type: 0, value: "Bad input"}], "FormWithValidation.CustomError": [{type: 0, value: "Custom error"},], "FormWithValidation.InvalidValueMessage": [{type: 1, value: "field"},{type: 0, value: " is invalid."},], "FormWithValidation.PatternMismatch": [{type: 0, value: "Pattern mismatch"},], "FormWithValidation.RangeOverflow": [{type: 0, value: "Range overflow"},], "FormWithValidation.RangeUnderflow": [{type: 0, value: "Range underflow"},], "FormWithValidation.StepMismatch": [{type: 0, value: "Step mismatch"},], "FormWithValidation.TooLong": [{type: 0, value: "Too long"}], "FormWithValidation.TooShort": [{type: 0, value: "Too short"}], "FormWithValidation.TypeMismatch": [{type: 0, value: "Type mismatch"},], "FormWithValidation.ValueMissing": [{type: 0, value: "This field cannot be empty"},], "GalleryEmbedControls.AdSlideText": [{type: 0, value: "Advertisement"},], "GalleryEmbedControls.BackArrowButtonAriaLabel": [{type: 0, value: "gallery-back"},], "GalleryEmbedControls.ForwardArrowButtonAriaLabel": [{type: 0, value: "gallery-forward"},], "GalleryPage.SignInCalloutLinkText": [{type: 0, value: "Sign in or create an account to vote"},], "GallerySlide.ArticleCta": [{type: 0, value: "View Story"}], "GallerySlide.DefaultCTAText": [{type: 0, value: "Book Now"}], "GallerySlide.ProductCta": [{type: 0, value: "Shop Now"}], "GallerySlide.RecipeCta": [{type: 0, value: "View Recipe"}], "GallerySlide.ReviewCta": [{type: 0, value: "Read More"}], "GallerySlide.VenueCta": [{type: 0, value: "Make a reservation"}], "GallerySlide.VenueSellerPreviewText": [{type: 0, value: "Powered By:"},], "GoogleSignInButton.Label": [{type: 0, value: "Sign in with Google"},], "GroupedNavigation.FilterInputAriaLabel": [{type: 0, value: "Filter links"},], "GroupedNavigationHasBrowser.FilterInputAriaLabel": [{type: 0, value: "Filter links"},], "GroupedNavigationHasSummaryCarousel.FilterInputAriaLabel": [{type: 0, value: "Filter links"},], "Icons.AgeGate": [{type: 0, value: "Age Gate"}], "Icons.Arrow": [{type: 0, value: "Arrow"}], "Icons.Article": [{type: 0, value: "Article"}], "Icons.Bookmark": [{type: 0, value: "Save Story"}], "Icons.BookmarkActivated": [{type: 0, value: "Story Saved"}], "Icons.Check": [{type: 0, value: "Check"}], "Icons.Chevron": [{type: 0, value: "Chevron"}], "Icons.Close": [{type: 0, value: "Close"}], "Icons.Collapse": [{type: 0, value: "Collapse"}], "Icons.Comment": [{type: 0, value: "Comment"}], "Icons.Dots": [{type: 0, value: "Dots"}], "Icons.Email": [{type: 0, value: "Email"}], "Icons.Expand": [{type: 0, value: "Expand"}], "Icons.Facebook": [{type: 0, value: "Facebook"}], "Icons.Filmstrip": [{type: 0, value: "Filmstrip"}], "Icons.Flipboard": [{type: 0, value: "Flipboard"}], "Icons.Gallery": [{type: 0, value: "Gallery"}], "Icons.Grid": [{type: 0, value: "Grid"}], "Icons.Headphone": [{type: 0, value: "Headphone"}], "Icons.Information": [{type: 0, value: "Information"}], "Icons.Instagram": [{type: 0, value: "Instagram"}], "Icons.LargeChevron": [{type: 0, value: "LargeChevron"}], "Icons.Like": [{type: 0, value: "Like"}], "Icons.LikeFilled": [{type: 0, value: "LikeFilled"}], "Icons.Line": [{type: 0, value: "Line"}], "Icons.LinkedIn": [{type: 0, value: "LinkedIn"}], "Icons.List": [{type: 0, value: "List"}], "Icons.Maximize": [{type: 0, value: "Maximize"}], "Icons.Menu": [{type: 0, value: "Menu"}], "Icons.NativeShare": [{type: 0, value: "Native Share"}], "Icons.Newsletter": [{type: 0, value: "Newsletter"}], "Icons.Ok": [{type: 0, value: "Odnoklassniki"}], "Icons.Pause": [{type: 0, value: "Pause"}], "Icons.Pinterest": [{type: 0, value: "Pinterest"}], "Icons.Play": [{type: 0, value: "Play"}], "Icons.PlayCNE": [{type: 0, value: "PlayCNE"}], "Icons.PlayOutlined": [{type: 0, value: "PlayOutlined"}], "Icons.Playlist": [{type: 0, value: "Playlist"}], "Icons.Print": [{type: 0, value: "Print"}], "Icons.RatingFilled": [{type: 0, value: "RatingFilled"}], "Icons.RatingHalf": [{type: 0, value: "RatingHalf"}], "Icons.RatingOutlined": [{type: 0, value: "RatingOutlined"}], "Icons.Replay": [{type: 0, value: "Replay"}], "Icons.Rss": [{type: 0, value: "Rss"}], "Icons.Search": [{type: 0, value: "Search"}], "Icons.Share": [{type: 0, value: "Share"}], "Icons.Shopping": [{type: 0, value: "Shopping"}], "Icons.Snapchat": [{type: 0, value: "Snapchat"}], "Icons.Spotify": [{type: 0, value: "Spotify"}], "Icons.Star": [{type: 0, value: "Star"}], "Icons.Telegram": [{type: 0, value: "Telegram"}], "Icons.Tiktok": [{type: 0, value: "Tiktok"}], "Icons.Timestamp": [{type: 0, value: "Timestamp"}], "Icons.Triangle": [{type: 0, value: "Triangle"}], "Icons.TriangleDown": [{type: 0, value: "TriangleDown"}], "Icons.TriangleUp": [{type: 0, value: "TriangleUp"}], "Icons.Tumblr": [{type: 0, value: "Tumblr"}], "Icons.Twitter": [{type: 0, value: "Twitter"}], "Icons.Vero": [{type: 0, value: "VERO"}], "Icons.Viber": [{type: 0, value: "Rakuten Viber"}], "Icons.Video": [{type: 0, value: "Video"}], "Icons.Vk": [{type: 0, value: "VKonkakte"}], "Icons.WeChat": [{type: 0, value: "WeChat"}], "Icons.Weibo": [{type: 0, value: "Sina Weibo"}], "Icons.Xing": [{type: 0, value: "Xing"}], "Icons.YandexZen": [{type: 0, value: "Yandex.Zen"}], "Icons.YouTube": [{type: 0, value: "YouTube"}], "IframeEmbed.AriaLabel": [{type: 0, value: "Click button to go to: "},{type: 1, value: "name"},], "IframeEmbed.ConsentBannerHeader": [{type: 0, value: "Content"}], "IframeEmbed.DangerousDek": [{type: 0, value: "Listen to this story"},], "IframeEmbed.Title": [{type: 0, value: "Embedded Frame"}], "IngredientList.hedText": [{type: 0, value: "Ingredients"}], "IngredientList.nutritionHedText": [{type: 0, value: "Nutrition Per Serving"},], "InstagramEmbed.ConsentBannerHeader": [{type: 0, value: "Instagram content"},], "InstructionList.StepText": [{type: 0, value: "Step"}], "ItemCount.ItemTypeDefault": [{offset: 0, options:{one:{value: [{type: 7},{type: 0, value: " Item"}]}, other:{value: [{type: 7},{type: 0, value: " Items"}]},}, pluralType: "cardinal", type: 6, value: "count",},], "ItemCount.ItemTypeImage": [{offset: 0, options:{one:{value: [{type: 7},{type: 0, value: " Image"}]}, other:{value: [{type: 7},{type: 0, value: " Images"}],},}, pluralType: "cardinal", type: 6, value: "count",},], "ItemCount.ItemTypePhoto": [{offset: 0, options:{one:{value: [{type: 7},{type: 0, value: " Photo"}]}, other:{value: [{type: 7},{type: 0, value: " Photos"}],},}, pluralType: "cardinal", type: 6, value: "count",},], "ItemCount.ItemTypeSlide": [{offset: 0, options:{one:{value: [{type: 7},{type: 0, value: " Slide"}]}, other:{value: [{type: 7},{type: 0, value: " Slides"}],},}, pluralType: "cardinal", type: 6, value: "count",},], "ItemCount.ItemTypeVenue": [{offset: 0, options:{one:{value: [{type: 7},{type: 0, value: " Venue"}]}, other:{value: [{type: 7},{type: 0, value: " Venues"}],},}, pluralType: "cardinal", type: 6, value: "count",},], "JustWatchEmbed.PoweredBy": [{type: 0, value: "Powered by"}], "Lightbox.CloseButtonIconLabel": [{type: 0, value: "Close Lightbox"},], "Lightbox.ContentLabel": [{type: 0, value: "Photo Gallery"}], "LiveStory.LoadMoreButtonLabel": [{type: 0, value: "Load More"}], "LiveStory.LoadMoreLoadingLabel": [{type: 0, value: "Loading ..."},], "LiveStory.feedADayAgoLabel": [{type: 0, value: "a day ago"}], "LiveStory.feedAMinAgoLabel": [{type: 0, value: "a minute ago"}], "LiveStory.feedAMonthAgoLabel": [{type: 0, value: "a month ago"}], "LiveStory.feedAYearAgoLabel": [{type: 0, value: "a year ago"}], "LiveStory.feedAnHourAgoLabel": [{type: 0, value: "an hour ago"}], "LiveStory.feedFewSecondsAgoLabel": [{type: 0, value: "a few seconds ago"},], "LiveStory.lastUpdatedTimePrefixLabel": [{type: 0, value: "Updated"},], "MagazineDisclaimer.DisclaimerNoHed": [{type: 0, value: "Published in the print edition of the "},{children: [{type: 1, value: "issueDate"}], type: 8, value: "a",},{type: 0, value: ", issue."},], "MagazineDisclaimer.DisclaimerWithHed": [{type: 0, value: "Published in the print edition of the "},{children: [{type: 1, value: "issueDate"}], type: 8, value: "a",},{type: 0, value: ", issue, with the headline “"},{type: 1, value: "hed"},{type: 0, value: ".”"},], "MapPreview.MapAriaLabel": [{type: 0, value: "Location map of address"},], "MapPreview.MapPreviewHeader": [{type: 0, value: "Location Map"}], "MegaMenu.All": [{type: 0, value: "All"}], "MegaMenu.MegaMenuButton": [{type: 0, value: "Close Mega Menu"}], "MegaMenu.NavigationPrimaryAriaLabel": [{type: 0, value: "Primary"},], "MegaMenu.SignInLinkText": [{type: 0, value: "Sign in"}], "MegaMenu.VerboseClickOut": [{type: 0, value: "More"}], "MobileProductCard.CardAvailability": [{type: 0, value: "Multiple Buying Options Available"},], "MobileProductCard.CardRating": [{type: 0, value: "Rating: "},{type: 1, value: "rating"},{type: 0, value: "\u002F10"},], "MobileProductCard.CtaText": [{type: 0, value: "Buy Now"}], "Multipackages.ExploreInstead": [{type: 0, value: "Explore these instead"},], "Multipackages.NoStories": [{type: 0, value: "No stories found for your search"},], "NativeShareButton.ButtonTitle": [{type: 0, value: "Share"}], "Navigation.OneTrustButtonLabel": [{type: 0, value: "Do Not Sell My Personal Info"},], "NewsFeed.LoadMoreNewsPreamble": [{type: 0, value: "Show More News"},], "NewsletterManageContent.SecondaryOptinsDangerousLegend": [{type: 0, value: "Primary and Third Party Optins"},], "NewsletterManagePage.BadResponseServerMessage": [{type: 0, value: "Subscription failed: Bad response"},], "NewsletterManagePage.EmptyNewsletterErrorMessage": [{type: 0, value: "Subscription failed: Please select a newsletter",},], "NewsletterManagePage.UnknownErrorMessage": [{type: 0, value: "Subscription failed: Unknown error occurred"},], "NewsletterSlice.DismissButton": [{type: 0, value: "Dismiss Newsletter Slice"},], "NewsletterSlice.NewsletterSecondaryOptinsLegend": [{type: 0, value: "Consent checks"},], "NowReading.SeriesNavigation": [{type: 0, value: "Now Reading"}], "OverlayNavigation.OverlayNavigationButton": [{type: 0, value: "Close Navigation Menu"},], "OverlayNavigation.OverlayNavigationPrimaryLinks": [{type: 0, value: "Primary"},], "OverlayNavigation.OverlayNavigationSearchLabel": [{type: 0, value: "Search"},], "OverlayNavigation.OverlayNavigationSecondaryLinks": [{type: 0, value: "Secondary"},], "OverlayNavigation.OverlayNavigationSignInLabel": [{type: 0, value: "Sign In"},], "OverlayNavigation.OverlayNavigationUtilityLinks": [{type: 0, value: "Utility"},], "OverlayNavigation.OverlayNavigationWrapper": [{type: 0, value: "Overlay Navigation"},], "PLPProductCard.AtRetailerNameComponentText": [{type: 0, value: "At "},{type: 1, value: "sellerNameText"},], "PLPProductCard.AtRetailerNameLabel": [{type: 0, value: "$ "},{type: 1, value: "finalPriceLabel"},{type: 0, value: " At "},{type: 1, value: "sellerNameText"},], "PLPProductCard.BuyAt": [{type: 0, value: "Buy At "},{type: 1, value: "sellerNameText"},], "PaginationModal.NextPage": [{type: 0, value: "Next"}], "PaginationModal.PreviousPage": [{type: 0, value: "Previous"}], "PaginationRow.NextPage": [{type: 0, value: "Next Page"}], "PhotoVogueHomePage.bestOfPvText": [{type: 0, value: "Best of Photovogue"},], "PhotoVogueHomePage.featured": [{type: 0, value: "featured"}], "PhotoVogueHomePage.introductionText": [{type: 0, value: "Connecting artists, community and commerce through Condé Nast's global creative networks, we champion talent and influence visual literacy to help foster a more just, ethical and inclusive world.",},], "PhotoVogueHomePage.nationalitiesAuthorNameText": [{type: 0, value: "Countries represented"},], "PhotoVogueHomePage.nationalitiesRubricNameText": [{type: 0, value: "Nationalities"},], "PhotoVogueHomePage.news": [{type: 0, value: "news"}], "PhotoVogueHomePage.photoCountText": [{offset: 0, options:{one:{value: [{type: 7},{type: 0, value: " Photo"}]}, other:{value: [{type: 7},{type: 0, value: " Photos"}],},}, pluralType: "cardinal", type: 6, value: "photoCount",},], "PhotoVogueHomePage.photoVogue": [{type: 0, value: "PhotoVogue"}], "PhotoVogueHomePage.photograpersAuthorNameText": [{type: 0, value: "Participating photographers"},], "PhotoVogueHomePage.photographersRubricNameText": [{type: 0, value: "Photographers"},], "PhotoVogueHomePage.photosAuthorNameText": [{type: 0, value: "Photos selected by the editors"},], "PhotoVogueHomePage.photosRubricNameText": [{type: 0, value: "Photos"},], "PhotoVogueHomePage.picOfTheDay": [{type: 0, value: "PIC OF THE DAY"},], "PhotoVogueHomePage.seeAllBestOf": [{type: 0, value: "See All Best Of"},], "PhotoVogueHomePage.seeAllFeatured": [{type: 0, value: "SEE ALL featured"},], "PhotoVogueHomePage.seeAllNews": [{type: 0, value: "See All News"},], "PhotoVogueHomePage.seeAllPhotographers": [{type: 0, value: "See All Photographers"},], "PhotoVogueHomePage.seeAllPicOfTheDay": [{type: 0, value: "SEE ALL PICS OF THE DAY"},], "PhotoVogueHomePage.spotlightPhotographers": [{type: 0, value: "Spotlight Photographers"},], "PhotoVogueHomePage.spotlightRubric": [{type: 0, value: "Spotlight"},], "PhotoVogueHomePage.tickerText": [{type: 0, value: "Were excited to open up contributions to video, illustration and digital art—launching later in 2022",},], "PhotoVoguePhotographersFilter.placeholderText": [{type: 0, value: "Search by first or last name"},], "PhotoVoguePhotographersFilter.searchButtonText": [{type: 0, value: "Search"},], "PhotoVoguePhotographersPage.PhotosCount": [{offset: 0, options:{one:{value: [{type: 7},{type: 0, value: " photo"}]}, other:{value: [{type: 7},{type: 0, value: " photos"}],},}, pluralType: "cardinal", type: 6, value: "count",},], "PhotoVoguePhotographersPage.clearAllText": [{type: 0, value: "Clear All"},], "PhotoVoguePhotographersPage.country": [{type: 0, value: "Country"},], "PhotoVoguePhotographersPage.errorMessage": [{type: 0, value: "Sorry, something went wrong. Please refresh the page and try again.",},], "PhotoVoguePhotographersPage.genre": [{type: 0, value: "Genre"}], "PhotoVoguePhotographersPage.isSpotlight": [{type: 0, value: "Spotlight"},], "PhotoVoguePhotographersPage.loadMore": [{type: 0, value: "See More"},], "PhotoVoguePhotographersPage.loading": [{type: 0, value: "Loading…"},], "PhotoVoguePhotographersPage.orText": [{type: 0, value: "or"}], "PhotoVoguePhotographersPage.photographerLabel": [{type: 0, value: "photographer"},], "PhotoVoguePhotographersPage.photographersLabel": [{type: 0, value: "photographers"},], "PhotoVoguePhotographersPage.spotlight": [{type: 0, value: "Spotlight"},], "PhotoVoguePhotosPage.Filter": [{type: 0, value: "Filter"}], "PhotoVoguePhotosPage.countPrefixText": [{type: 0, value: "Showing"},], "PhotoVoguePhotosPage.errorMessage": [{type: 0, value: "Sorry, something went wrong. Please refresh the page and try again.",},], "PhotoVoguePhotosPage.loadMore": [{type: 0, value: "Load More"}], "PhotoVoguePhotosPage.loading": [{type: 0, value: "Loading…"}], "PhotoVoguePhotosPage.photoLabel": [{type: 0, value: "photo"}], "PhotoVoguePhotosPage.photosLabel": [{type: 0, value: "photos"}], "PhotovogueArtistProfilePage.ShowLessText": [{type: 0, value: "Show less"},], "PhotovogueArtistProfilePage.ShowMoreText": [{type: 0, value: "Show more"},], "PhotovogueArtistProfilePage.allPhotos": [{type: 0, value: "All photos:"},], "PhotovogueArtistProfilePage.bestOfPhotoVogue": [{type: 0, value: "Best of PhotoVogue:"},], "PhotovogueArtistProfilePage.genre": [{type: 0, value: "Genre:"}], "PhotovogueArtistProfilePage.picOfTheDayVogueText": [{type: 0, value: "Pic of the Day:"},], "PhotovogueArtistProfilePage.portfolio": [{type: 0, value: "Portfolio"},], "PhotovogueArtistProfilePage.showMoreText": [{type: 0, value: "Show more"},], "PhotovogueArtistProfilePage.spotlightTitle": [{type: 0, value: "Spotlight"},], "PinterestEmbed.AriaLabelText": [{type: 0, value: "social media post"},], "PinterestEmbed.ConsentBannerHeader": [{type: 0, value: "Pinterest content"},], "ProductCard.CardRating": [{type: 0, value: "Rating: "},{type: 1, value: "rating"},{type: 0, value: "\u002F10"},], "ProductEmbed.DefaultCtaText": [{type: 0, value: "Buy It"}], "ProductEmbed.DefaultTextPreamble": [{type: 0, value: "Learn More"},], "ProductEmbed.PriceWithNoSellerPreamble": [{type: 0, value: "Buy for "},{type: 1, value: "price"},], "ProductEmbed.PriceWithSellerPreamble": [{type: 1, value: "price"},{type: 0, value: " at "},{type: 1, value: "sellerName"},], "ProductEmbed.VenueCtaText": [{type: 0, value: "Book Now"}], "ProductOffer.price": [{type: 1, value: "priceValue"},{type: 0, value: " at "},{type: 1, value: "sellerName"},], "ProsCons.ConsLabel": [{type: 0, value: "Cons →"}], "ProsCons.ProsLabel": [{type: 0, value: "Pros →"}], "Rating.RatingAriaLabel": [{type: 0, value: "Rating"}], "RatingsForm.LoadingText": [{type: 0, value: "Loading..."}], "RatingsForm.PreviousRatingText": [{type: 0, value: "You previously rated "},{type: 1, value: "RATING_SUBJECT"},{type: 0, value: "."},], "RatingsForm.PromptText": [{type: 0, value: "How would you rate "},{type: 1, value: "RATING_SUBJECT"},{type: 0, value: "?"},], "RatingsForm.SuccessText": [{type: 0, value: "Thanks for your feedback!"},], "ReadMore.SeriesRecirc": [{type: 0, value: "Read more"}], "ReadNext.SeriesRecirc": [{type: 0, value: "Read next"}], "RecipePage.ActiveTime": [{type: 0, value: "Active Time"}], "RecipePage.CooksNote": [{type: 0, value: "Cooks' Note"}], "RecipePage.PrepTime": [{type: 0, value: "Prep Time"}], "RecipePage.TotalTime": [{type: 0, value: "Total Time"}], "RecipeProductCarousel.Title": [{type: 0, value: "What youll need"},], "RecircList.ReadMore": [{type: 0, value: "Read More"}], "RecircMostPopular.SectionTitle": [{type: 0, value: "Most Popular"},], "RelatedList.SectionTitle": [{type: 0, value: "Related Stories"}], "RelatedVideo.HeaderText": [{type: 0, value: "Featured Video"}], "ResponsiveClip.ClipAriaLabel": [{type: 0, value: "Play\u002FPause"},], "ResponsiveClip.ClipLabel": [{type: 0, value: "Play\u002FPause Button"},], "ReviewForm.AlertMessageError": [{type: 0, value: "Sorry, that didnt go through. Please try again later.",},], "ReviewForm.AlertMessageSuccess": [{type: 0, value: "Thanks for your feedback!"},], "ReviewForm.FakeInputPlaceholderText": [{type: 0, value: "Tell us what you think"},], "ReviewForm.Hed": [{type: 0, value: "Leave a Review"}], "ReviewForm.InvalidFieldErrorMessage": [{type: 0, value: "Required fields missing"},], "ReviewForm.IsAnonymousCheckboxLabel": [{type: 0, value: "Share anonymously"},], "ReviewForm.LocationFieldLabel": [{type: 0, value: "Where are you from?"},], "ReviewForm.LocationFieldPlaceholder": [{type: 0, value: "Boston, MA"},], "ReviewForm.ReviewTextFieldLabel": [{type: 0, value: "Your Review"},], "ReviewForm.ReviewTextFieldPlaceholder": [{type: 0, value: "Let us know your thoughts…"},], "ReviewForm.ReviewerInfoFieldLabel": [{type: 0, value: "Display Name"},], "ReviewForm.ReviewerInfoFieldPlaceholder": [{type: 0, value: "Jane Doe"},], "ReviewForm.SubmitButtonLabel": [{type: 0, value: "Submit"}], "ReviewForm.SubmitButtonLabelLoading": [{type: 0, value: "Loading…"},], "ReviewForm.WillPrepareAgainOption1Label": [{type: 0, value: "Yes"},], "ReviewForm.WillPrepareAgainOption2Label": [{type: 0, value: "No"},], "ReviewForm.WillPrepareAgainRadioLabel": [{type: 0, value: "Would you make this recipe again?"},], "ReviewList.Loading": [{type: 0, value: "Loading…"}], "ReviewList.ReviewListError": [{type: 0, value: "Sorry, more reviews cant be loaded right now. ",},{type: 1, value: "br"},{type: 0, value: " Please try again later."},], "ReviewListContainer.UtilityLabel": [{type: 0, value: "Back to Top"},], "ReviewRatingData.ButtonLabel": [{type: 0, value: "Open rating explainer"},], "ReviewRatingData.DataLabel": [{type: 0, value: "Rating:"}], "ReviewSummary.SummaryLabel": [{type: 0, value: "TL;DR:"}], "RunwayGalleryFilmstrip.FilmstripCollapsedMessage": [{type: 0, value: "Explore Collection"},], "RunwayGalleryFilmstrip.FilmstripCollapsedMessageForNonCollectionGalleries": [{type: 0, value: "Explore Gallery"}], "RunwayGalleryFilmstrip.FilmstripExpandedMessage": [{type: 0, value: "Hide Collection"},], "RunwayGalleryFilmstrip.FilmstripExpandedMessageForNonCollectionGalleries": [{type: 0, value: "Hide Gallery"}], "RunwayGalleryLookNumber.imageLookNumberPrefix": [{type: 0, value: "Look"},], "ScoreBox.BestNewMusic": [{type: 0, value: "Best New Music"}], "ScoreBox.BestNewReissue": [{type: 0, value: "Best New Reissue"}], "ScoreBox.BestNewTrack": [{type: 0, value: "Best New Track"}], "SearchBar.placeholder": [{type: 0, value: 'Search for "stir-fry"'},], "SearchPage.LoadMoreButtonLabel": [{type: 0, value: "More Stories"},], "SearchPage.LoadMoreLoadingLabel": [{type: 0, value: "Loading ..."},], "SearchPage.NoResultsHed": [{type: 0, value: "No stories found for your search"},], "SearchPage.ResultsHed": [{type: 0, value: "Search stories from "},{type: 1, value: "brandName"},], "SearchPage.SearchButtonLabel": [{type: 0, value: "Search"}], "SearchPage.SearchInputAriaLabel": [{type: 0, value: "search"}], "SearchPage.SearchInputPlaceholder": [{type: 0, value: 'Try "Racial justice"'},], "SearchPage.SortLabel": [{type: 0, value: "Sort by"}], "SearchResultsIndicator.EmptyResultText": [{type: 0, value: "explore these instead"},], "SearchResultsIndicator.ResultsTextWithTerm": [{offset: 0, options:{one:{value: [{type: 7},{type: 0, value: " story"}]}, other:{value: [{type: 7},{type: 0, value: " stories"}],},}, pluralType: "cardinal", type: 6, value: "resultCount",},{type: 0, value: ' about "'},{type: 1, value: "searchTerm"},{type: 0, value: '"'},], "SearchResultsIndicator.ResultsTextWithoutTerm": [{offset: 0, options:{one:{value: [{type: 7},{type: 0, value: " story"}]}, other:{value: [{type: 7},{type: 0, value: " stories"}],},}, pluralType: "cardinal", type: 6, value: "resultCount",},{type: 0, value: " from "},{type: 1, value: "brandName"},], "SearchResultsIndicator.resultsList": [{offset: 0, options:{one:{value: [{type: 7},{type: 0, value: " Result"}]}, other:{value: [{type: 7},{type: 0, value: " Results"}],},}, pluralType: "cardinal", type: 6, value: "resultCount",},], "SearchResultsIndicator.resultsListWithEntity": [{type: 1, value: "resultCount"},{type: 0, value: " "},{type: 1, value: "entity"},], "SearchResultsIndicator.resultsListWithLocation": [{offset: 0, options:{one:{value: [{type: 7},{type: 0, value: " Result"}]}, other:{value: [{type: 7},{type: 0, value: " Results"}],},}, pluralType: "cardinal", type: 6, value: "resultCount",},{type: 0, value: " in "},{type: 1, value: "location"},], "SearchResultsIndicator.resultsListWithLocationAndEntity": [{type: 1, value: "resultCount"},{type: 0, value: " "},{type: 1, value: "entity"},{type: 0, value: " in "},{type: 1, value: "location"},], "SearchResultsListPage.DekText": [{type: 0, value: "The best hotels in "},{type: 1, value: "locationName"},{type: 0, value: ", as reviewed by our editors and contributors. We've stayed at some of the finest properties around the world, and these made the top of our list.",},], "SearchResultsListPage.HeaderText": [{type: 1, value: "pageHed"},{type: 0, value: " "},{options:{hotel:{value: [{type: 0, value: "hotels"}]}, other:{value: []},}, type: 5, value: "contentType",},], "SearchResultsListPage.Loading": [{type: 0, value: "Loading ..."},], "SearchResultsListPage.MoreResults": [{type: 0, value: "Load More"},], "SecondaryMenu.NavigationPrimaryAriaLabel": [{type: 0, value: "Primary"},], "SecondaryMenu.SearchLinkText": [{type: 0, value: "Search"}], "SecondaryMenu.SecondaryLinksAriaLabel": [{type: 0, value: "Secondary"},], "SecondaryMenu.SignInLinkText": [{type: 0, value: "Sign in"}], "SecondaryMenu.UtilityLinksAriaLabel": [{type: 0, value: "Utility"},], "ShopifyCart.CartHeader": [{type: 0, value: "Shopping Cart"}], "ShopifyCartEmpty.EmptyCartButtonLabel": [{type: 0, value: "GO SHOPPING"},], "ShopifyCartEmpty.EmptyCartButtonLink": [{type: 0, value: "\u002Fshop\u002Flisting\u002Fall"},], "ShopifyCartEmpty.EmptyCartHeader": [{type: 0, value: "YOUR SHOPPING CART IS EMPTY"},], "ShopifyCartItem.CheckoutLabel": [{type: 0, value: "CHECK OUT"}], "ShopifyCartItem.CheckoutText": [{type: 0, value: "Shipping and taxes calculated at checkout"},], "ShopifyCartItem.RetailerLabel": [{type: 0, value: "Retailer:"}], "ShopifyCartItem.SubtotalLabel": [{type: 0, value: "Subtotal"}], "ShopifyProductDetail.addToCartLabel": [{type: 0, value: "Add To Cart"},], "ShopifyProductDetail.quantityLabel": [{type: 0, value: "Quantity"},], "ShoppableAssetEmbed.shoppingIconHoverText": [{type: 0, value: "Shop the look"},], "SignInModal.CloseButtonAriaLabel": [{type: 0, value: "Close Sign In Modal"},], "SignInModal.CloseButtonLabel": [{type: 0, value: "Close Sign In Modal"},], "SignInModal.Hed": [{type: 0, value: "Save stories"}], "SignInModal.HedSpanTag": [{type: 0, value: "with an account"}], "SignInModal.OidcSignInLinkText": [{type: 0, value: "Sign in"}], "SignInModal.OidcSignInText": [{type: 0, value: "Already have an account?"},], "SignInModal.OidcSignUpButtonLabel": [{type: 0, value: "Create account"},], "SignOutButton.SignOut": [{type: 0, value: "Sign Out"}], "SimpleNavigation.SearchLabel": [{type: 0, value: "Search"}], "SiteFooter.Dropdown": [{type: 0, value: "Select international site"},], "SiteFooter.NoticesContainer": [{type: 0, value: "Notices"}], "SiteFooter.OneTrustButtonLabel": [{type: 0, value: "Do Not Sell My Personal Info"},], "SiteHeader.ScrollingNavigation": [{type: 0, value: "Primary"}], "SiteHeader.UtilityNavigation": [{type: 0, value: "Utility"}], "SmallProductCard.AtRetailerNameComponentText": [{type: 0, value: "At "},{type: 1, value: "retailerNameText"},], "SmallProductCard.AtRetailerNameLabel": [{type: 1, value: "finalPriceLabel"},{type: 0, value: " At "},{type: 1, value: "retailerNameText"},], "SmallProductCard.BuyAt": [{type: 0, value: "Buy At "},{type: 1, value: "retailerNameText"},], "SplitScreenContentHeader.RatingLinkLabel": [{type: 0, value: "Read Reviews"},], "SplitScreenContentHeader.VariousArtists": [{type: 0, value: "Various Artists"},], "SponsoredContentHeader.BylineBrandXAdvertiser": [{type: 1, value: "brandName"},{type: 0, value: " X"},], "SponsoredContentHeader.BylineBrandedContent": [{type: 0, value: "Branded Content By"},], "SponsoredContentHeader.BylineCreated": [{type: 0, value: "Created By "},{type: 1, value: "brandName"},{type: 0, value: " For"},], "SponsoredContentHeader.BylineInCollaboration": [{type: 0, value: "In Collaboration With"},], "SponsoredContentHeader.BylineInPartnership": [{type: 0, value: "In Partnership With"},], "SponsoredContentHeader.BylinePaidPost": [{type: 0, value: "PAID POST"},], "SponsoredContentHeader.BylineProduced": [{type: 0, value: "Produced By"},], "SponsoredContentHeader.BylineProducedByAdvertiser": [{type: 0, value: "Produced By"},], "SponsoredContentHeader.BylineProducedByBrand": [{type: 0, value: "Produced By "},{type: 1, value: "brandName"},{type: 0, value: " With"},], "SponsoredContentHeader.BylineSponsored": [{type: 0, value: "Sponsored content"},], "SponsoredContentHeader.BylineSponsoredBy": [{type: 0, value: "Sponsored By"},], "SponsoredContentHeader.BylineSponsoredContent": [{type: 0, value: "Sponsored Content By"},], "SponsoredContentHeader.SponsoredLinkCTA": [{type: 0, value: "Click to go to "},{type: 1, value: "sponsorName"},{type: 0, value: "'s website"},], "StackedNavigation.BookmarkAlertLabel": [{type: 0, value: "To revisit this article, visit My Profile, then",},], "StackedNavigation.DrawerLabel": [{type: 0, value: "Navigation and Sign Up Menu"},], "StackedNavigation.MenuButton": [{type: 0, value: "Open Navigation Menu"},], "StackedNavigation.OpenSearchMenuLabel": [{type: 0, value: "Open Search Menu"},], "StackedNavigation.PrimaryLinksLabel": [{type: 0, value: "Primary"},], "StackedNavigation.ProfileLinkLabel": [{type: 0, value: "My Profile"},], "StackedNavigation.SavedStoriesLabel": [{type: 0, value: "View saved stories"},], "StackedNavigation.SearchLabel": [{type: 0, value: "Search"}], "StackedNavigation.SubscribeLabel": [{type: 0, value: "Subscribe"},], "StackedNavigation.UtilityLinksLabel": [{type: 0, value: "Utility"},], "StandardNavigation.AccountBookmarkAlertLabel": [{type: 0, value: "To revisit this article, select My Account, then",},], "StandardNavigation.AccountLabel": [{type: 0, value: "My Account"},], "StandardNavigation.BookmarkAlertLabel": [{type: 0, value: "To revisit this article, visit My Profile, then",},], "StandardNavigation.Drawer": [{type: 0, value: "Navigation and Sign Up Menu"},], "StandardNavigation.MenuButton": [{type: 0, value: "Open Navigation Menu"},], "StandardNavigation.OpenSearchMenuLabel": [{type: 0, value: "Open Search Menu"},], "StandardNavigation.SavedStoriesLabel": [{type: 0, value: "View saved stories"},], "StandardNavigation.SearchLabel": [{type: 0, value: "Search"}], "StandardNavigation.SecondaryLinksLabel": [{type: 0, value: "Secondary"},], "StandardNavigation.SignInLabel": [{type: 0, value: "Sign In"}], "StandardNavigation.UtilityLinksLabel": [{type: 0, value: "Utility"},], "SummaryCarousel.seeMoreAriaLabel": [{type: 0, value: "See more videos"},], "SummaryCollectionSplitColumns.GuideItemHed": [{type: 1, value: "location"},{type: 0, value: " Travel Guide"},], "SummaryCollectionSplitColumns.RecommendedTitle": [{type: 0, value: "Recommended "},{options:{hotel:{value: [{type: 0, value: "hotels"}]}, other:{value: []},}, type: 5, value: "recommendedType",},], "SummaryCollectionSplitColumns.ViewAllButton": [{type: 0, value: "View All "},{type: 1, value: "location"},{type: 0, value: " "},{options:{hotel:{value: [{type: 0, value: "hotels"}]}, other:{value: []},}, type: 5, value: "recommendedType",},], "SummaryItem.DefaultCTAText": [{type: 0, value: "Book Now"}], "SummaryItem.DekReadMoreText": [{type: 0, value: "Read full review"},], "SummaryItem.ReadMore": [{type: 0, value: "Read More"}], "SummaryItem.Slides": [{offset: 0, options:{one:{value: [{type: 7},{type: 0, value: " slide"}]}, other:{value: [{type: 7},{type: 0, value: " slides"}],},}, pluralType: "cardinal", type: 6, value: "slidesCount",},], "SummaryItem.SponsoredContent": [{type: 0, value: "Sponsored Content"},], "SummaryItem.VenueSellerPreviewText": [{type: 0, value: "Powered By:"},], "SummaryItemFeatured.FeaturedTitle": [{type: 0, value: "Featured"},], "SummarySpotlight.ContinueReading": [{type: 0, value: "Continue reading »"},], "SummarySpotlight.SelectedStories": [{type: 0, value: "Selected Stories"},], "TagCloud.SectionHeader": [{type: 0, value: "Topics"}], "TagPage.Loading": [{type: 0, value: "Loading ..."}], "TagPage.MoreStories": [{type: 0, value: "More Stories"}], "TiktokEmbed.ConsentBannerHeader": [{type: 0, value: "TikTok content"},], "TwitterEmbed.ConsentBannerHeader": [{type: 0, value: "Twitter content"},], "TwitterEmbed.EmbedContainer": [{type: 0, value: "social media post"},], "UtilityNavigation.AccountDropdown": [{type: 0, value: "Account"},], "UtilityNavigation.AccountDropdownAssistive": [{type: 0, value: "Account Navigation"},], "UtilityNavigation.MarketSwitcherLabel": [{type: 0, value: "Country"},], "UtilityNavigation.SearchLabel": [{type: 0, value: "Search"}], "UtilityNavigation.SignInLabel": [{type: 0, value: "Sign In"}], "UtilityNavigation.UtilityNavigationButton": [{type: 0, value: "Open Navigation Menu"},], "UtilityValidationDescription.Heading": [{type: 0, value: "Errors"},], "VenuePage.BylinePreamble": [{type: 0, value: "Reviewed by"}], "VenuePage.DefaultCTAText": [{type: 0, value: "Book Now"}], "VenuePage.SectionTitleHed": [{type: 0, value: "Photos"}], "VenuePage.VenueSellerPreviewText": [{type: 0, value: "Powered By:"},], "VersoFeatures.viewAllButton": [{type: 0, value: "View All"}], "VersoFilterableSummaryList.CTAMessage": [{type: 0, value: "See more "},{type: 1, value: "groupName"},{type: 0, value: " recipes"},], "VersoIssueFeature.IssueFeatureLabel": [{type: 0, value: "Table of Contents »"},], "VideoWrapper.headerText": [{type: 0, value: "WATCH"}], "VideoWrapper.headerTextRelatedOverride": [{type: 0, value: "Featured Video"},], "VideoWrapper.moreLink": [{type: 0, value: "More "},{type: 1, value: "brandName"},{type: 0, value: " Videos"},],}, consentEnabled: true, brandIdentityAssets:{favicon: "https:\u002F\u002Fwww.bonappetit.com\u002Fverso\u002Fstatic\u002Fbon-appetit\u002Fassets\u002Ffavicon.ico", signInModalAsset:{default:{altText: "Sign In", sources:{sm:{url: "\u002Fverso\u002Fstatic\u002Fbon-appetit\u002Fassets\u002Fsign-in-modal.png",},},}, crosswords:{altText: "Sign In", sources:{sm:{url: "\u002Fverso\u002Fstatic\u002Fbon-appetit\u002Fassets\u002Fsign-in-modal-crosswords.png",},},}, voting:{altText: "Sign In", sources:{sm:{url: "\u002Fverso\u002Fstatic\u002Fbon-appetit\u002Fassets\u002Fsign-in-modal-voting.png",},},},},}, useTrailingSlash: false, globalMessage: null, fastly:{response:{headers:{"model-name": "recipe", "modified-at": 1650648506, "surrogate-control": "stale-while-revalidate=60, stale-if-error=86400, max-age=3720",},},}, google:{isSwgEnabledOnTenantChannel: false, isSwgEnabledOnSystem: true, registrationSourceCode: "VERSO_BNA", swgPublicationId: "", swgSku: "", entitlement:{processEntitlementResponse: false},}, "head.canonicalUrl": "https:\u002F\u002Fwww.bonappetit.com\u002Frecipe\u002Fnutty-umami-noodles-with-scallion-brown-butter-and-snow-peas", "head.hreflang": [], "head.description": "Brown butter and savory oyster sauce make a flavor duo so beautiful we're wondering what took us so long to combine them.", "head.keywords": "dinner,main,vegetarian,easy,quick,weeknight meals,sauté,pea,noodle,udon noodle,ramen noodle", "head.og.type": "article", "head.robots": "index, follow, max-image-preview:large", "head.title": "Nutty Umami Noodles With Scallion Brown Butter and Snow Peas Recipe | Bon Appétit", tenant: "bon-appetit", "head.social.title": "Nutty Umami Noodles With Scallion Brown Butter and Snow Peas", "head.social.description": "Brown butter and savory oyster sauce make a flavor duo so beautiful we're wondering what took us so long to combine them.", "head.promo.dek": "Brown butter and savory oyster sauce make a flavor duo so beautiful we're wondering what took us so long to combine them.", "head.social.opinion": "false", "head.jsonld": [{"@context": "http:\u002F\u002Fschema.org", "@type": "Recipe", articleBody: "Ideal for busy days, these quick, simple noodles taste like they took hours to make. Pantry superstar oyster sauce is beloved for its salty, funky flavors—its great for adding a quick hit of umami—but can be a bit intense solo. Thats where the scallion brown butter comes in—scallions sizzle away while the butter browns, yielding toasty scallions and an aromatic, nutty fat that cuts through the intensity of the oyster sauce. Throw in some crisp snow peas and toss everything together with some cooked noodles for a low-lift, high-reward meal that comes together in a flash. If snow peas arent available, feel free to swap in any other quick-cooking crisp vegetable you like; sliced bell pepper or chopped broccolini would work just as well. —Zaynab Issa", alternativeHeadline: "Brown butter and savory oyster sauce make a flavor duo so beautiful we're wondering what took us so long to combine them.", keywords: [ "dinner", "main", "vegetarian", "easy", "quick", "weeknight meals", "sauté", "pea", "noodle", "udon noodle", "ramen noodle", "web",], thumbnailUrl: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F3:2\u002Fw_4200,h_2800,c_limit\u002F0418-snow-pea-noodles-lede.jpg", publisher:{"@context": "https:\u002F\u002Fschema.org", "@type": "Organization", name: "Bon Appétit", logo:{"@type": "ImageObject", url: "https:\u002F\u002Fwww.bonappetit.com\u002Fverso\u002Fstatic\u002Fbon-appetit\u002Fassets\u002Flogo-seo.328de564b950e3d5d1fbe3e42f065290ca1d3844.png", width: "479px", height: "100px",}, url: "https:\u002F\u002Fwww.bonappetit.com",}, isPartOf:{"@type": "CreativeWork", name: "Bon Appétit"}, isAccessibleForFree: true, author: [{"@type": "Person", name: "Zaynab Issa", sameAs: "https:\u002F\u002Fwww.bonappetit.com\u002Fcontributor\u002Fzaynab-issa",},], aggregateRating:{"@type": "AggregateRating", ratingValue: 5, ratingCount: 1,}, description: "Brown butter and savory oyster sauce make a flavor duo so beautiful we're wondering what took us so long to combine them.", image: [ "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F3:4\u002Fw_2100,h_2800,c_limit\u002F0418-snow-pea-noodles-lede.jpg", "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F4:5\u002Fw_2240,h_2800,c_limit\u002F0418-snow-pea-noodles-lede.jpg", "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F5:7\u002Fw_2000,h_2800,c_limit\u002F0418-snow-pea-noodles-lede.jpg", "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F6:9\u002Fw_1866,h_2799,c_limit\u002F0418-snow-pea-noodles-lede.jpg", "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F5:4\u002Fw_3500,h_2800,c_limit\u002F0418-snow-pea-noodles-lede.jpg", "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F8:5\u002Fw_4200,h_2625,c_limit\u002F0418-snow-pea-noodles-lede.jpg", "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F2:1\u002Fw_4200,h_2100,c_limit\u002F0418-snow-pea-noodles-lede.jpg", "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F16:9\u002Fw_4191,h_2357,c_limit\u002F0418-snow-pea-noodles-lede.jpg", "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F4:3\u002Fw_3732,h_2799,c_limit\u002F0418-snow-pea-noodles-lede.jpg", "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F1:1\u002Fw_2800,h_2800,c_limit\u002F0418-snow-pea-noodles-lede.jpg", "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F2:3\u002Fw_1866,h_2799,c_limit\u002F0418-snow-pea-noodles-lede.jpg", "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F3:2\u002Fw_4200,h_2800,c_limit\u002F0418-snow-pea-noodles-lede.jpg",], headline: "Nutty Umami Noodles With Scallion Brown Butter and Snow Peas", name: "Nutty Umami Noodles With Scallion Brown Butter and Snow Peas", recipeIngredient: [ "16 oz. fresh or dried wheat noodles (such as lo mein, udon, or ramen)", "⅓ cup oyster sauce", "⅓ cup (or more) soy sauce", "1 Tbsp. plus 1½ tsp. unseasoned rice vinegar", "1 Tbsp. sugar", "6 scallions", "½ cup (1 stick) unsalted butter", "4 garlic cloves, finely chopped", "8 oz. snow peas", "¾ tsp. mild chile flakes, plus more for serving",], recipeInstructions: [{"@type": "HowToStep", text: "Cook 16 oz. fresh or dried wheat noodles in a large pot of boiling water according to package directions. Drain, reserving 1 cup noodle cooking liquid; set noodles aside.",},{"@type": "HowToStep", text: "Whisk ⅓ cup oyster sauce, ⅓ cup soy sauce, 1 Tbsp. plus 1½ tsp. unseasoned rice vinegar, and 1 Tbsp. sugar in a small bowl until combined; set sauce aside.",},{"@type": "HowToStep", text: "Separate dark green tops from white and pale green parts of 6 scallions; thinly slice tops and set aside. Thinly slice white and pale green parts.",},{"@type": "HowToStep", text: "Cook ½ cup (1 stick) unsalted butter and white and pale green parts of scallions in a large skillet over medium-high, stirring often, until milk solids are golden brown and scallions are softened and starting to brown, about 4 minutes. Add 4 garlic cloves, finely chopped, 8 oz. snow peas, ¾ tsp. mild chile flakes, and most of reserved scallion tops. Cook, stirring constantly, until milk solids are deep amber in color and snow peas are bright green and just crisp-tender, about 1 minute.",},{"@type": "HowToStep", text: "Stir in reserved sauce and bring to a simmer. Add reserved noodles and pour in ¼ cup reserved noodle cooking liquid. Cook, tossing often and adding more noodle cooking liquid as needed, until sauce is glossy and clings to noodles, about 1 minute. Taste and add more soy sauce if needed.",},{"@type": "HowToStep", text: "Divide noodles among bowls and top with more mild chile flakes and remaining scallion tops.",},], recipeYield: "46 servings", url: "https:\u002F\u002Fwww.bonappetit.com\u002Frecipe\u002Fnutty-umami-noodles-with-scallion-brown-butter-and-snow-peas", dateModified: "2022-04-21T11:29:05.087-04:00", datePublished: "2022-04-21T11:29:05.087-04:00",},], "head.contentID": "625eb968d2dd9946d391d0e8", "head.pageType": "recipe", "head.photos":{"image-16-9": "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F16:9\u002Fw_1000,c_limit\u002F0418-snow-pea-noodles-lede.jpg", "image-1-1": "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F1:1\u002Fw_1000,c_limit\u002F0418-snow-pea-noodles-lede.jpg",}, "head.firstPublishDate": "2022-04-21T15:29:05.087Z", "head.primaryTagsRoot": "ingredient", "head.hasSponsoredContent": false, linkBannerData:{hed: "", dek: "", image:{}, links: [], tracking: "",}, navigation:{aboutText: "Recipes you want to make. Cooking advice that works. Restaurant recommendations you trust.", account:{accountLinks: [{text: "My Account", url: "\u002Faccount\u002Fprofile"},], signInLink: "\u002Fauth\u002Finitiate?redirectURL=%2Frecipe%2Fnutty-umami-noodles-with-scallion-brown-butter-and-snow-peas&source=VERSO_NAVIGATION", redirectURL: "%2Frecipe%2Fnutty-umami-noodles-with-scallion-brown-butter-and-snow-peas", signOutLink: "\u002Fauth\u002Fend?redirectURL=%2Frecipe%2Fnutty-umami-noodles-with-scallion-brown-butter-and-snow-peas",}, contactLinks: [{text: "Subscription FAQs", url: "\u002Fstory\u002Fsubscription-faq", isExternal: true, isActive: false,},{text: "Careers", url: "https:\u002F\u002Fwww.condenast.com\u002Fcareers\u002F", isExternal: true, isActive: false,},], contactLinksHeading: "Contact", footerLinks: [{text: "Masthead", url: "\u002Fstory\u002Fdigital-masthead", isExternal: false, isActive: false,},{text: "Newsletter Signup", url: "\u002Fservices\u002Fnewsletters\u002Fdemographics", isExternal: false, isActive: false,},{text: "Bon Appétit Media Kit", url: "http:\u002F\u002Fwww.condenast.com\u002Fbrands\u002Fbon-appetit\u002F", isExternal: true, isActive: false,},{text: "Basically", url: "\u002Fbasically", isExternal: false, isActive: false,},{text: "Healthyish", url: "\u002Fhealthyish", isExternal: false, isActive: false,},], footerLinksHeading: "More from Bon Appétit", hasChannelNavigation: false, internationalInfo:{homeLocation:{name: "United States"}, internationalSites: [],}, noticesLinks: [{text: "RSS Feeds", url: "\u002Frss-feeds", isExternal: true, isActive: false,},{text: "Site Map", url: "\u002Fsitemap", isActive: false},{attributes:{rel: "nofollow"}, text: "Accessibility Help", url: "\u002Fstory\u002Faccessibility-help", isActive: false,},{text: "Condé Nast Store", url: "https:\u002F\u002Fwww.condenaststore.com\u002F", isExternal: true, isActive: false,},{isExternal: true, rel: "", text: "Condé Nast Spotlight", url: "https:\u002F\u002Fwww.cnspotlight.com\u002F ", isActive: false,},], primaryLinks: [{isExternal: false, showInTopNav: true, text: "Recipes", url: "\u002Frecipes", forceLeftOfNav: false, hasChildren: true, hasHrefForLinks: true, layout: "verbose", children: [{isExternal: false, text: "Everyday Recipes", url: "", hasChildren: true, children: [{groupName: "Simple Cooking", links: [{isExternal: false, text: "Quick", url: "\u002Fsimple-cooking\u002Fquick",},{isExternal: false, text: "Easy", url: "\u002Fsimple-cooking\u002Feasy",},{isExternal: false, text: "5 Ingredients or Fewer", url: "\u002Fsimple-cooking\u002F5-ingredients-or-fewer",},{isExternal: false, text: "One-Pot Meals", url: "\u002Fsimple-cooking\u002Fone-pot-meals",},{isExternal: false, text: "Sheet-Pan Dinners", url: "\u002Fsimple-cooking\u002Fsheet-pan-dinners",},{isExternal: false, text: "Weeknight Meals", url: "\u002Fsimple-cooking\u002Fweeknight-meals",},],},],},{isExternal: false, text: "Dishes", url: "", hasChildren: true, children: [{groupName: "Dinner", isExternal: false, isLink: false, text: "Dinner", url: "\u002Fmeal-time\u002Fdinner", links: [{isExternal: false, text: "Fried Rice", url: "\u002Fdish\u002Ffried-rice",},{isExternal: false, text: "Pasta", url: "\u002Fdish\u002Fpasta",},{isExternal: false, text: "Burgers", url: "\u002Fdish\u002Fburger",},{isExternal: false, text: "Casseroles", url: "\u002Fdish\u002Fcasserole",},{isExternal: false, text: "Stir-fries", url: "\u002Fdish\u002Fstir-fry",},{isExternal: false, text: "EXPLORE MORE", isLinkForMore: true, url: "\u002Fmeal-time\u002Fdinner",},],},{groupName: "Lunch", isExternal: false, isLink: false, text: "Lunch", url: "\u002Fmeal-time\u002Flunch", links: [{isExternal: false, text: "Sandwiches", url: "\u002Fdish\u002Fsandwich",},{isExternal: false, text: "Salads", url: "\u002Fdish\u002Fsalad",},{isExternal: false, text: "Soups", url: "\u002Fdish\u002Fsoups-and-stews",},{isExternal: false, text: "Grain Bowls", url: "\u002Fdish\u002Frice-and-grain-bowl",},{isExternal: false, text: "Chili", url: "\u002Fdish\u002Fchili",},{isExternal: false, text: "EXPLORE MORE", isLinkForMore: true, url: "\u002Fmeal-time\u002Flunch",},],},{groupName: "Breakfast", isExternal: false, isLink: false, text: "Breakfast", url: "\u002Fmeal-time\u002Fbreakfast", links: [{isExternal: false, text: "Quiche", url: "\u002Fdish\u002Fquiche",},{isExternal: false, text: "Granola", url: "\u002Fdish\u002Fgranola",},{isExternal: false, text: "Frittatas", url: "\u002Fdish\u002Ffrittata",},{isExternal: false, text: "Omelets", url: "\u002Fdish\u002Fomelet",},{isExternal: false, text: "Pancakes", url: "\u002Fdish\u002Fpancake",},{isExternal: false, text: "EXPLORE MORE", isLinkForMore: true, url: "\u002Fmeal-time\u002Fbreakfast",},],},{groupName: "More", links: [{isExternal: false, text: "Nachos", url: "\u002Fdish\u002Fnachos",},{isExternal: false, text: "Pizza", url: "\u002Fdish\u002Fpizza",},{isExternal: false, text: "Dumplings", url: "\u002Fdish\u002Fdumpling",},{isExternal: false, text: "Tacos", url: "\u002Fdish\u002Ftaco",},{isExternal: false, text: "Dips", url: "\u002Fdish\u002Fdip",},],},],},{isExternal: false, text: "Baking & Desserts", url: "", hasChildren: true, children: [{groupName: "Desserts", isExternal: false, isLink: false, text: "Desserts", url: "\u002Fdish\u002Fdessert", links: [{isExternal: false, text: "Cookies", url: "\u002Fdish\u002Fcookie",},{isExternal: false, text: "Brownies", url: "\u002Fdish\u002Fbrownie",},{isExternal: false, text: "Ice Cream", url: "\u002Fdish\u002Fice-cream",},{isExternal: false, text: "Custards", url: "\u002Fdish\u002Fcustard",},{isExternal: false, text: "Pies", url: "\u002Fdish\u002Fpie",},],},{groupName: "", links: [{isExternal: false, text: "Cakes", url: "\u002Fdish\u002Fcake",},{isExternal: false, text: "Cheesecakes", url: "\u002Fdish\u002Fcheesecake",},{isExternal: false, text: "Cupcakes", url: "\u002Fdish\u002Fcupcake",},{isExternal: false, text: "Loaf Cakes", url: "\u002Fdish\u002Floaf-cake",},{isExternal: false, text: "Soufflés", url: "\u002Fdish\u002Fsouffle",},{isExternal: false, text: "EXPLORE MORE", isLinkForMore: true, url: "\u002Fdish\u002Fdessert",},],},{groupName: "Pastries & More", links: [{isExternal: false, text: "Muffins", url: "\u002Fdish\u002Fmuffin",},{isExternal: false, text: "Scones", url: "\u002Fdish\u002Fscone",},{isExternal: false, text: "Biscuits", url: "\u002Fdish\u002Fbiscuit",},{isExternal: false, text: "Bread", url: "\u002Fdish\u002Fbread",},{isExternal: false, text: "Doughnuts", url: "\u002Fdish\u002Fdoughnut",},{isExternal: false, text: "EXPLORE MORE", isLinkForMore: true, url: "\u002Fcooking-method\u002Fbaking",},],},],},{isExternal: false, text: "Drinks", url: "", hasChildren: true, children: [{groupName: "Cocktails", isExternal: false, isLink: false, text: "Cocktails", url: "\u002Fdish\u002Fcocktail", links: [{isExternal: false, text: "Martinis", url: "\u002Fdish\u002Fmartini",},{isExternal: false, text: "Margaritas", url: "\u002Fdish\u002Fmargarita",},{isExternal: false, text: "Mojitos", url: "\u002Fdish\u002Fmojito",},{isExternal: false, text: "Sangria", url: "\u002Fdish\u002Fsangria",},{isExternal: false, text: "Spritzes", url: "\u002Fdish\u002Fspritz",},{isExternal: false, text: "EXPLORE MORE", isLinkForMore: true, url: "\u002Fdish\u002Fcocktail",},],},{groupName: "Spirits", links: [{isExternal: false, text: "Tequila", url: "\u002Fingredient\u002Ftequila",},{isExternal: false, text: "Whiskey", url: "\u002Fingredient\u002Fwhiskey",},{isExternal: false, text: "Gin", url: "\u002Fingredient\u002Fgin",},{isExternal: false, text: "Rum", url: "\u002Fingredient\u002Frum",},{isExternal: false, text: "Vodka", url: "\u002Fingredient\u002Fvodka",},],},{groupName: "More", links: [{isExternal: false, text: "Nonalcoholic Drinks", url: "\u002Fdiet\u002Fnon-alcoholic",},{isExternal: false, text: "Hot Chocolate", url: "\u002Fdish\u002Fhot-chocolate",},{isExternal: false, text: "Shakes", url: "\u002Fdish\u002Fmilkshake",},{isExternal: false, text: "Smoothies", url: "\u002Fdish\u002Fsmoothie",},{isExternal: false, text: "Punch", url: "\u002Fdish\u002Fpunch",},{isExternal: false, text: "EXPLORE MORE", isLinkForMore: true, url: "\u002Fmeal\u002Fdrinks",},],},],},{isExternal: false, text: "Special Diets", url: "", hasChildren: true, children: [{groupName: "Considerations", links: [{isExternal: false, text: "Vegetarian", url: "\u002Fdiet\u002Fvegetarian",},{isExternal: false, text: "Vegan", url: "\u002Fdiet\u002Fvegan",},{isExternal: false, text: "Gluten-Free", url: "\u002Fdiet\u002Fgluten-free",},{isExternal: false, text: "Dairy-Free", url: "\u002Fdiet\u002Fdairy-free",},{isExternal: false, text: "Nut-Free", url: "\u002Fdiet\u002Fnut-free",},],},{groupName: "", links: [{isExternal: false, text: "Keto", url: "\u002Fdiet\u002Fketo",},{isExternal: false, text: "Raw", url: "\u002Fdiet\u002Fraw",},{isExternal: false, text: "Healthyish", url: "\u002Fdiet\u002Fhealthyish",},],},],},{isExternal: false, text: "Techniques & Tools", url: "", hasChildren: true, children: [{groupName: "Techniques", links: [{isExternal: false, text: "Braise", url: "\u002Fcooking-method\u002Fbraise",},{isExternal: false, text: "Roast", url: "\u002Fcooking-method\u002Froast",},{isExternal: false, text: "Steam", url: "\u002Fcooking-method\u002Fsteam",},{isExternal: false, text: "Sauté", url: "\u002Fcooking-method\u002Fsaute",},{isExternal: false, text: "Fry", url: "\u002Fcooking-method\u002Ffry",},],},{groupName: "", links: [{isExternal: false, text: "Grill", url: "\u002Fcooking-method\u002Fgrilling",},{isExternal: false, text: "Deep-Fry", url: "\u002Fcooking-method\u002Fdeep-fry",},{isExternal: false, text: "Pickle & Preserve", url: "\u002Fcooking-method\u002Fpickle-and-preserve",},{isExternal: false, text: "Broil", url: "\u002Fcooking-method\u002Fbroil",},{isExternal: false, text: "Sear", url: "\u002Fcooking-method\u002Fsear",},],},{groupName: "Tools", links: [{isExternal: false, text: "Instant Pot", url: "\u002Fcooking-method\u002Finstant-pot",},{isExternal: false, text: "Slow Cooker", url: "\u002Fcooking-method\u002Fslow-cooker",},{isExternal: false, text: "Dutch Oven", url: "\u002Frecipes\u002Fslideshow\u002Fdutch-oven-recipes",},{isExternal: false, text: "Cast-Iron Skillet", url: "\u002Frecipes\u002Fslideshow\u002Fcast-iron-skillet-recipes",},{isExternal: false, text: "Food Processor", url: "\u002Fgallery\u002Ffood-processor-recipes",},],},],},], isActive: false,},{isExternal: false, showInTopNav: true, text: "Ingredients", url: "\u002Fingredients", forceLeftOfNav: false, hasChildren: true, layout: "verbose", children: [{isExternal: false, text: "In Season", url: "\u002Fseason\u002Fspring", hasChildren: true, hasClickOut: true, clickOutText: "See More Spring Recipes", children: [{groupName: "Spring Vegetables", isExternal: false, isLink: false, text: "Spring Vegetables", url: "\u002Fingredient\u002Fvegetable", links: [{isExternal: false, text: "Mustard Greens", url: "\u002Fingredient\u002Fmustard-greens",},{isExternal: false, text: "Artichoke", url: "\u002Fingredient\u002Fartichoke",},{isExternal: false, text: "Radish", url: "\u002Fingredient\u002Fradish",},{isExternal: false, text: "Sugar Snap Peas", url: "\u002Fingredient\u002Fsugar-snap-pea",},{isExternal: false, text: "Ramps", url: "\u002Fingredient\u002Framps",},{isExternal: false, text: "EXPLORE MORE", isLinkForMore: true, url: "\u002Fingredient\u002Fvegetable",},],},{groupName: "Spring Fruits", isExternal: false, isLink: false, text: "Spring Fruits", url: "\u002Fingredient\u002Ffruit", links: [{isExternal: false, text: "Rhubarb", url: "\u002Fingredient\u002Frhubarb",},{isExternal: false, text: "Cherries", url: "\u002Fingredient\u002Fcherry",},{isExternal: false, text: "Mango", url: "\u002Fingredient\u002Fmango",},{isExternal: false, text: "Pineapple", url: "\u002Fingredient\u002Fpineapple",},{isExternal: false, text: "Kiwi", url: "\u002Fingredient\u002Fkiwi",},{isExternal: false, text: "EXPLORE MORE", isLinkForMore: true, url: "\u002Fingredient\u002Ffruit",},],},],},{isExternal: false, text: "Meat & Poultry", url: "", hasChildren: true, children: [{groupName: "Chicken", isExternal: false, isLink: false, text: "Chicken", url: "\u002Fingredient\u002Fchicken", links: [{isExternal: false, text: "Chicken Breast", url: "\u002Fingredient\u002Fchicken-breast",},{isExternal: false, text: "Chicken Thighs", url: "\u002Fingredient\u002Fchicken-thigh",},{isExternal: false, text: "Chicken Wings", url: "\u002Fingredient\u002Fchicken-wing",},{isExternal: false, text: "Chicken Legs", url: "\u002Fingredient\u002Fchicken-leg",},{isExternal: false, text: "Ground Chicken", url: "\u002Fingredient\u002Fground-chicken",},{isExternal: false, text: "EXPLORE MORE", isLinkForMore: true, url: "\u002Fingredient\u002Fchicken",},],},{groupName: "Beef", isExternal: false, isLink: false, text: "Beef", url: "\u002Fingredient\u002Fbeef", links: [{isExternal: false, text: "Ground Beef", url: "\u002Fingredient\u002Fground-beef",},{isExternal: false, text: "Brisket", url: "\u002Fingredient\u002Fbrisket",},{isExternal: false, text: "Steak", url: "\u002Fingredient\u002Fsteak",},{isExternal: false, text: "Short Ribs", url: "\u002Fingredient\u002Fshort-rib",},{isExternal: false, text: "Oxtail", url: "\u002Fingredient\u002Foxtail",},{isExternal: false, text: "EXPLORE MORE", isLinkForMore: true, url: "\u002Fingredient\u002Fbeef",},],},{groupName: "Pork", isExternal: false, isLink: false, text: "Pork", url: "\u002Fingredient\u002Fpork", links: [{isExternal: false, text: "Pork Chops", url: "\u002Fingredient\u002Fpork-chop",},{isExternal: false, text: "Pork Tenderloin", url: "\u002Fingredient\u002Fpork-tenderloin",},{isExternal: false, text: "Pork Loin", url: "\u002Fingredient\u002Fpork-loin",},{isExternal: false, text: "Pork Shoulder", url: "\u002Fingredient\u002Fpork-shoulder",},{isExternal: false, text: "Ground Pork", url: "\u002Fingredient\u002Fground-pork",},{isExternal: false, text: "EXPLORE MORE", isLinkForMore: true, url: "\u002Fingredient\u002Fpork",},],},{groupName: "More", isLink: false, links: [{isExternal: false, text: "Ground Turkey", url: "\u002Fingredient\u002Fground-turkey",},{isExternal: false, text: "Lamb Chops", url: "\u002Fingredient\u002Flamb-chop",},{isExternal: false, text: "Ham", url: "\u002Fingredient\u002Fham",},{isExternal: false, text: "Sausage", url: "\u002Fingredient\u002Fsausage",},{isExternal: false, text: "Duck", url: "\u002Fingredient\u002Fduck",},{isExternal: false, text: "EXPLORE MORE", isLinkForMore: true, url: "\u002Fingredient\u002Fmeat",},],},],},{isExternal: false, text: "Fish & Shellfish", url: "", hasChildren: true, children: [{groupName: "Fish", isExternal: false, isLink: false, text: "Fish", url: "\u002Fingredient\u002Ffish", links: [{isExternal: false, text: "Salmon", url: "\u002Fingredient\u002Fsalmon",},{isExternal: false, text: "Cod", url: "\u002Fingredient\u002Fcod",},{isExternal: false, text: "Halibut", url: "\u002Fingredient\u002Fhalibut",},{isExternal: false, text: "Mahi-Mahi", url: "\u002Fingredient\u002Fmahi-mahi",},{isExternal: false, text: "Swordfish", url: "\u002Fingredient\u002Fswordfish",},{isExternal: false, text: "EXPLORE MORE", isLinkForMore: true, url: "\u002Fingredient\u002Ffish",},],},{groupName: "Shellfish", isExternal: false, isLink: false, text: "Shellfish", url: "\u002Fingredient\u002Fshellfish", links: [{isExternal: false, text: "Shrimp", url: "\u002Fingredient\u002Fshrimp",},{isExternal: false, text: "Scallops", url: "\u002Fingredient\u002Fscallop",},{isExternal: false, text: "Mussels", url: "\u002Fingredient\u002Fmussel",},{isExternal: false, text: "Crab", url: "\u002Fingredient\u002Fcrab",},{isExternal: false, text: "Clams", url: "\u002Fingredient\u002Fclam",},{isExternal: false, text: "EXPLORE MORE", isLinkForMore: true, url: "\u002Fingredient\u002Fshellfish",},],},],},{isExternal: false, text: "Fruits & Vegetables", url: "", hasChildren: true, children: [{groupName: "Vegetables", isExternal: false, isLink: false, text: "Vegetables", url: "\u002Fingredient\u002Fvegetable", links: [{isExternal: false, text: "Collard Greens", url: "\u002Fingredient\u002Fcollard-greens",},{isExternal: false, text: "Spinach", url: "\u002Fingredient\u002Fspinach",},{isExternal: false, text: "Bok Choy", url: "\u002Fingredient\u002Fbok-choy",},{isExternal: false, text: "Kale", url: "\u002Fingredient\u002Fkale",},{isExternal: false, text: "Mushrooms", url: "\u002Fingredient\u002Fmushroom",},],},{groupName: "", links: [{isExternal: false, text: "Cabbage", url: "\u002Fingredient\u002Fcabbage",},{isExternal: false, text: "Asparagus", url: "\u002Fingredient\u002Fasparagus",},{isExternal: false, text: "Green Beans", url: "\u002Fingredient\u002Fgreen-bean",},{isExternal: false, text: "Zucchini", url: "\u002Fingredient\u002Fzucchini",},{isExternal: false, text: "Eggplant", url: "\u002Fingredient\u002Feggplant",},],},{groupName: "", links: [{isExternal: false, text: "Brussels Sprouts", url: "\u002Fingredient\u002Fbrussels-sprout",},{isExternal: false, text: "Butternut Squash", url: "\u002Fingredient\u002Fbutternut-squash",},{isExternal: false, text: "Potatoes", url: "\u002Fingredient\u002Fpotato",},{isExternal: false, text: "Sweet Potatoes", url: "\u002Fingredient\u002Fsweet-potato",},{isExternal: false, text: "Cauliflower", url: "\u002Fingredient\u002Fcauliflower",},{isExternal: false, text: "EXPLORE MORE", isLinkForMore: true, url: "\u002Fingredient\u002Fvegetable",},],},{groupName: "Fruits", isLink: false, links: [{isExternal: false, text: "Apple", url: "\u002Fingredient\u002Fapple",},{isExternal: false, text: "Banana", url: "\u002Fingredient\u002Fbanana",},{isExternal: false, text: "Blueberry", url: "\u002Fingredient\u002Fblueberry",},{isExternal: false, text: "Strawberry", url: "\u002Fingredient\u002Fstrawberry",},{isExternal: false, text: "Pear", url: "\u002Fingredient\u002Fpear",},{isExternal: false, text: "EXPLORE MORE", isLinkForMore: true, url: "\u002Fingredient\u002Ffruit",},],},],},{isExternal: false, text: "Rice, Grains, Pasta, Noodles", url: "", hasChildren: true, children: [{groupName: "Rice & Grains", isExternal: false, isLink: false, text: "Rice & Grains", url: "\u002Fingredient\u002Frice-grains", links: [{isExternal: false, text: "Quinoa", url: "\u002Fingredient\u002Fquinoa",},{isExternal: false, text: "Rice", url: "\u002Fingredient\u002Frice",},{isExternal: false, text: "Grits", url: "\u002Fingredient\u002Fgrits",},{isExternal: false, text: "Farro", url: "\u002Fingredient\u002Ffarro",},{isExternal: false, text: "Barley", url: "\u002Fingredient\u002Fbarley",},{isExternal: false, text: "EXPLORE MORE", isLinkForMore: true, url: "\u002Fingredient\u002Frice-grains",},],},{groupName: "Pasta", isExternal: false, isLink: false, text: "Pasta", url: "\u002Fingredient\u002Fpasta", links: [{isExternal: false, text: "Lasagna", url: "\u002Fingredient\u002Flasagna",},{isExternal: false, text: "Spaghetti", url: "\u002Fingredient\u002Fspaghetti",},{isExternal: false, text: "Linguine", url: "\u002Fingredient\u002Flinguine",},{isExternal: false, text: "Couscous", url: "\u002Fingredient\u002Fcouscous",},{isExternal: false, text: "Orzo", url: "\u002Fingredient\u002Forzo",},{isExternal: false, text: "EXPLORE MORE", isLinkForMore: true, url: "\u002Fdish\u002Fpasta",},],},{groupName: "Noodles", isExternal: false, isLink: false, text: "Noodles", url: "\u002Fingredient\u002Fnoodle", links: [{isExternal: false, text: "Ramen", url: "\u002Fingredient\u002Framen-noodle",},{isExternal: false, text: "Udon", url: "\u002Fingredient\u002Fudon-noodle",},{isExternal: false, text: "Soba", url: "\u002Fingredient\u002Fsoba-noodle",},{isExternal: false, text: "Egg Noodles", url: "\u002Fingredient\u002Fegg-noodle",},{isExternal: false, text: "Rice Noodles", url: "\u002Fingredient\u002Frice-noodle",},{isExternal: false, text: "EXPLORE MORE", isLinkForMore: true, url: "\u002Fingredient\u002Fnoodle",},],},],},{isExternal: false, text: "Cheese & Dairy", url: "", hasChildren: true, children: [{groupName: "Cheese", isLink: false, links: [{isExternal: false, text: "Ricotta", url: "\u002Fingredient\u002Fricotta",},{isExternal: false, text: "Burrata", url: "\u002Fingredient\u002Fburrata",},{isExternal: false, text: "Mozzarella", url: "\u002Fingredient\u002Fmozzarella",},{isExternal: false, text: "Mascarpone", url: "\u002Fingredient\u002Fmascarpone",},{isExternal: false, text: "Cream Cheese", url: "\u002Fingredient\u002Fcream-cheese",},],},{groupName: "", links: [{isExternal: false, text: "Paneer", url: "\u002Fingredient\u002Fpaneer",},{isExternal: false, text: "Halloumi", url: "\u002Fingredient\u002Fhalloumi",},{isExternal: false, text: "Goat Cheese", url: "\u002Fingredient\u002Fgoat-cheese",},{isExternal: false, text: "Blue Cheese", url: "\u002Fingredient\u002Fblue-cheese",},{isExternal: false, text: "Brie", url: "\u002Fingredient\u002Fbrie",},{isExternal: false, text: "EXPLORE MORE", isLinkForMore: true, url: "\u002Fingredient\u002Fcheese",},],},{groupName: "Dairy", isLink: false, links: [{isExternal: false, text: "Buttermilk", url: "\u002Fingredient\u002Fbuttermilk",},{isExternal: false, text: "Yogurt", url: "\u002Fingredient\u002Fyogurt",},],},],},{isExternal: false, text: "Vegetarian Proteins", url: "", hasChildren: true, children: [{groupName: "Soy", links: [{isExternal: false, text: "Tofu", url: "\u002Fingredient\u002Ftofu",},{isExternal: false, text: "Tempeh", url: "\u002Fingredient\u002Ftempeh",},{isExternal: false, text: "Edamame", url: "\u002Fingredient\u002Fedamame",},],},{groupName: "Beans", links: [{isExternal: false, text: "Chickpeas", url: "\u002Fingredient\u002Fchickpea",},{isExternal: false, text: "Black-Eyed Peas", url: "\u002Fingredient\u002Fblack-eyed-pea",},{isExternal: false, text: "Pinto Beans", url: "\u002Fingredient\u002Fpinto-bean",},{isExternal: false, text: "Black Beans", url: "\u002Fingredient\u002Fblack-bean",},{isExternal: false, text: "Lima Beans", url: "\u002Fingredient\u002Flima-bean",},{isExternal: false, text: "EXPLORE MORE", isLinkForMore: true, url: "\u002Fingredient\u002Fbean",},],},{groupName: "More", links: [{isExternal: false, text: "Lentils", url: "\u002Fingredient\u002Flentil",},{isExternal: false, text: "Eggs", url: "\u002Fingredient\u002Fegg",},],},],},], isActive: false,},{isExternal: false, showInTopNav: true, text: "Cooking", url: "\u002Fcooking", forceLeftOfNav: false, isActive: false,},{isExternal: false, showInTopNav: true, text: "Culture", url: "\u002Fculture", forceLeftOfNav: false, isActive: false,},{isExternal: false, showInTopNav: true, text: "Shopping", url: "\u002Fshopping", forceLeftOfNav: false, isActive: false,},{isExternal: false, showInTopNav: true, text: "Restaurants", url: "\u002Frestaurants", forceLeftOfNav: false, isActive: false,},{isExternal: false, showInTopNav: true, text: "BA Market", url: "https:\u002F\u002Fmarket.bonappetit.com\u002F", forceLeftOfNav: false, isActive: false,},{isExternal: false, showInTopNav: true, text: "Videos", url: "\u002Fvideo\u002F", forceLeftOfNav: false, isActive: false,},{isExternal: false, showInTopNav: true, text: "Podcast", url: "\u002Fstory\u002Fbon-appetit-foodcast", forceLeftOfNav: false, isActive: false,},{isExternal: false, showInTopNav: true, text: "Merch", url: "https:\u002F\u002Fshop.bonappetit.com\u002F", forceLeftOfNav: false, isActive: false,},], searchLink: "\u002Fsearch", secondaryLinks: [], callToActionLink: null, pageHeadline: "Nutty Umami Noodles With Scallion Brown Butter and Snow Peas", socialLinks: [{network: "facebook", url: "https:\u002F\u002Fwww.facebook.com\u002Fbonappetitmag", label: "Follow us on Facebook",},{network: "twitter", url: "https:\u002F\u002Ftwitter.com\u002Fbonappetit\u002F", label: "Follow us on Twitter",},{network: "pinterest", url: "https:\u002F\u002Fwww.pinterest.com\u002Fbonappetitmag\u002F", label: "Follow us on Pinterest",},{network: "instagram", url: "https:\u002F\u002Fwww.instagram.com\u002Fbonappetitmag", label: "Follow us on Instagram",},{network: "youtube", url: "https:\u002F\u002Fwww.youtube.com\u002Fchannel\u002FUCbpMy0Fg74eXXkvxJrtEn3w", label: "Follow us on YouTube",},], socialLinksHeading: "", subchannelLinks: [], utilityLinks: [{text: "Newsletter", url: "\u002Fnewsletter\u002Fsubscribe", forceLeftOfNav: false, showInTopNav: true, showInBottomNav: true, isActive: false,},],}, isAccountsEnabled: true, accountProps:{accountLinks: [{text: "My Account", url: "\u002Faccount\u002Fprofile"},], signInLink: "\u002Fauth\u002Finitiate?redirectURL=%2Frecipe%2Fnutty-umami-noodles-with-scallion-brown-butter-and-snow-peas&source=VERSO_NAVIGATION", redirectURL: "%2Frecipe%2Fnutty-umami-noodles-with-scallion-brown-butter-and-snow-peas", signOutLink: "\u002Fauth\u002Fend?redirectURL=%2Frecipe%2Fnutty-umami-noodles-with-scallion-brown-butter-and-snow-peas",}, parsely:{isEnabled: true, publicKey: "bonappetit.com"}, sentry:{dsn: "https:\u002F\u002F01670db7f463402085dc9e319887ec36@sentry.io\u002F1222280",}, appConfig:{brandSlug: "bon-appetit"}, userPlatform:{isDomainSigninSwitchEnabled: true, siteCode: "BNA", userPlatformProxy: "https:\u002F\u002Fwww.bonappetit.com\u002Fapi\u002Fup", xClientID: "Verso-BonApp", excludedBookmarkTypes: [],}, recipe:{allContributors:{edges: [{node:{url: "contributor\u002Fzaynab-issa", name: "Zaynab Issa", contributorType: "AUTHOR", photo: null, title: "", bio: "", socialMedia: [], metadata:{contentType: "contributor"},},},],}, id: "625eb968d2dd9946d391d0e8", lang: "en-US", hed: "Nutty Umami Noodles With Scallion Brown Butter and Snow Peas", pubDate: "2022-04-21T15:29:05.087Z", lede:{id: "625def3e989fa4e14e8195db", aspectRatios: [{name: "3:4", url: null, width: 2100, height: 2800, format: null,},{name: "4:5", url: null, width: 2240, height: 2800, format: null,},{name: "5:7", url: null, width: 2000, height: 2800, format: null,},{name: "6:9", url: null, width: 1866, height: 2799, format: null,},{name: "5:4", url: null, width: 3500, height: 2800, format: null,},{name: "8:5", url: null, width: 4200, height: 2625, format: null,},{name: "2:1", url: null, width: 4200, height: 2100, format: null,},{name: "16:9", url: null, width: 4191, height: 2357, format: null,},{name: "4:3", url: null, width: 3732, height: 2799, format: null,},{name: "1:1", url: null, width: 2800, height: 2800, format: null,},{name: "2:3", url: null, width: 1866, height: 2799, format: null,},{name: "3:2", url: null, width: 4200, height: 2800, format: null,},{name: "master", url: "https:\u002F\u002Fcn-copilot-media.s3.amazonaws.com\u002Fpublic\u002Fbonappetit-services\u002Fproduction\u002F2022\u002F04\u002F18\u002F625def3e989fa4e14e8195da_0418-snow-pea-noodles-lede.jpg", width: 4200, height: 2800, format: "JPEG",},], filename: "0418-snow-pea-noodles-lede.jpg", credit: "Photograph by Isa Zapata, Food Styling by Judy Kim, Prop Styling by Stephanie De Luca", altText: "Dish of noodles with snow peas and chopsticks on a beige background.", contextualCaption: null, contextualTitle: null, caption: "", metadata:{contentType: "photo"},}, metadata:{contentType: "recipe"}, tout:{id: "625def3e989fa4e14e8195db", aspectRatios: [{name: "3:4", url: null, width: 2100, height: 2800, format: null,},{name: "4:5", url: null, width: 2240, height: 2800, format: null,},{name: "5:7", url: null, width: 2000, height: 2800, format: null,},{name: "6:9", url: null, width: 1866, height: 2799, format: null,},{name: "5:4", url: null, width: 3500, height: 2800, format: null,},{name: "8:5", url: null, width: 4200, height: 2625, format: null,},{name: "2:1", url: null, width: 4200, height: 2100, format: null,},{name: "16:9", url: null, width: 4191, height: 2357, format: null,},{name: "4:3", url: null, width: 3732, height: 2799, format: null,},{name: "1:1", url: null, width: 2800, height: 2800, format: null,},{name: "2:3", url: null, width: 1866, height: 2799, format: null,},{name: "3:2", url: null, width: 4200, height: 2800, format: null,},{name: "master", url: "https:\u002F\u002Fcn-copilot-media.s3.amazonaws.com\u002Fpublic\u002Fbonappetit-services\u002Fproduction\u002F2022\u002F04\u002F18\u002F625def3e989fa4e14e8195da_0418-snow-pea-noodles-lede.jpg", width: 4200, height: 2800, format: "JPEG",},], filename: "0418-snow-pea-noodles-lede.jpg", credit: "Photograph by Isa Zapata, Food Styling by Judy Kim, Prop Styling by Stephanie De Luca", altText: "Dish of noodles with snow peas and chopsticks on a beige background.", contextualCaption: null, contextualTitle: null, caption: "", metadata:{contentType: "photo"},}, socialPhoto:{edges: [{node:{id: "625def3e989fa4e14e8195db", aspectRatios: [{name: "3:4", url: null, width: 2100, height: 2800, format: null,},{name: "4:5", url: null, width: 2240, height: 2800, format: null,},{name: "5:7", url: null, width: 2000, height: 2800, format: null,},{name: "6:9", url: null, width: 1866, height: 2799, format: null,},{name: "5:4", url: null, width: 3500, height: 2800, format: null,},{name: "8:5", url: null, width: 4200, height: 2625, format: null,},{name: "2:1", url: null, width: 4200, height: 2100, format: null,},{name: "16:9", url: null, width: 4191, height: 2357, format: null,},{name: "4:3", url: null, width: 3732, height: 2799, format: null,},{name: "1:1", url: null, width: 2800, height: 2800, format: null,},{name: "2:3", url: null, width: 1866, height: 2799, format: null,},{name: "3:2", url: null, width: 4200, height: 2800, format: null,},{name: "master", url: "https:\u002F\u002Fcn-copilot-media.s3.amazonaws.com\u002Fpublic\u002Fbonappetit-services\u002Fproduction\u002F2022\u002F04\u002F18\u002F625def3e989fa4e14e8195da_0418-snow-pea-noodles-lede.jpg", width: 4200, height: 2800, format: "JPEG",},], filename: "0418-snow-pea-noodles-lede.jpg", credit: "Photograph by Isa Zapata, Food Styling by Judy Kim, Prop Styling by Stephanie De Luca", altText: "Dish of noodles with snow peas and chopsticks on a beige background.", contextualCaption: null, contextualTitle: null, caption: "", metadata:{contentType: "photo"},},},],}, interludeOverride:{edges: []}, tags: [{id: "5b9681817995142c3c3abd14", name: "Dinner", slug: "dinner", metadata:{contentType: "category"}, hierarchy: [{id: "5b9681817995142c3c3abd14", name: "Dinner", slug: "dinner",},{id: "61fb65a4bb40748ef6bbe206", name: "Meal Time", slug: "meal-time",},{id: "5afc813d89a26c29083a9507", name: "Tags", slug: "tags",},], root:{slug: "tags"},},{id: "61fbdf8c91c05315a4e02134", name: "Main", slug: "main", metadata:{contentType: "category"}, hierarchy: [{id: "61fbdf8c91c05315a4e02134", name: "Main", slug: "main",},{id: "5b9681801e31dc269251c6a9", name: "Meal Type", slug: "meal",},{id: "5afc813d89a26c29083a9507", name: "Tags", slug: "tags",},], root:{slug: "tags"},},{id: "5b9681892e0d82381a2377e6", name: "Vegetarian", slug: "vegetarian", metadata:{contentType: "category"}, hierarchy: [{id: "5b9681892e0d82381a2377e6", name: "Vegetarian", slug: "vegetarian",},{id: "61fbdcbd53ee9ed519d42213", name: "Diet", slug: "diet",},{id: "5afc813d89a26c29083a9507", name: "Tags", slug: "tags",},], root:{slug: "tags"},},{id: "5b9681988ebd2b24ac2d3e02", name: "Easy", slug: "easy", metadata:{contentType: "category"}, hierarchy: [{id: "5b9681988ebd2b24ac2d3e02", name: "Easy", slug: "easy",},{id: "61fbda7c91c05315a4e02133", name: "Simple Cooking", slug: "simple-cooking",},{id: "5afc813d89a26c29083a9507", name: "Tags", slug: "tags",},], root:{slug: "tags"},},{id: "5b9681a2bd84752d89a7cf81", name: "Quick", slug: "quick", metadata:{contentType: "category"}, hierarchy: [{id: "5b9681a2bd84752d89a7cf81", name: "Quick", slug: "quick",},{id: "61fbda7c91c05315a4e02133", name: "Simple Cooking", slug: "simple-cooking",},{id: "5afc813d89a26c29083a9507", name: "Tags", slug: "tags",},], root:{slug: "tags"},},{id: "61fbdac6b7fba5e3be0da686", name: "Weeknight Meals", slug: "weeknight-meals", metadata:{contentType: "category"}, hierarchy: [{id: "61fbdac6b7fba5e3be0da686", name: "Weeknight Meals", slug: "weeknight-meals",},{id: "61fbda7c91c05315a4e02133", name: "Simple Cooking", slug: "simple-cooking",},{id: "5afc813d89a26c29083a9507", name: "Tags", slug: "tags",},], root:{slug: "tags"},},{id: "61fbcab6d1e92c476ce28cc4", name: "Sauté", slug: "saute", metadata:{contentType: "category"}, hierarchy: [{id: "61fbcab6d1e92c476ce28cc4", name: "Sauté", slug: "saute",},{id: "61fbc924bb40748ef6bbe217", name: "Cooking Method", slug: "cooking-method",},{id: "5afc813d89a26c29083a9507", name: "Tags", slug: "tags",},], root:{slug: "tags"},},{id: "5b9681973d923e31d08fedc1", name: "Pea", slug: "pea", metadata:{contentType: "category"}, hierarchy: [{id: "5b9681973d923e31d08fedc1", name: "Pea", slug: "pea"},{id: "5b9681804afc173e7f1ebf09", name: "Vegetable", slug: "vegetable",},{id: "5b96817fbd84752d89a7cf48", name: "Ingredient", slug: "ingredient",},{id: "5afc813d89a26c29083a9507", name: "Tags", slug: "tags",},], root:{slug: "tags"},},{id: "5b9681827995142c3c3abd15", name: "Noodle", slug: "noodle", metadata:{contentType: "category"}, hierarchy: [{id: "5b9681827995142c3c3abd15", name: "Noodle", slug: "noodle",},{id: "61fb995dbccddc8831922102", name: "Pasta & Noodles", slug: "pasta-noodles",},{id: "5b96817fbd84752d89a7cf48", name: "Ingredient", slug: "ingredient",},{id: "5afc813d89a26c29083a9507", name: "Tags", slug: "tags",},], root:{slug: "tags"},},{id: "61fba0d1bb40748ef6bbe211", name: "Udon Noodle", slug: "udon-noodle", metadata:{contentType: "category"}, hierarchy: [{id: "61fba0d1bb40748ef6bbe211", name: "Udon Noodle", slug: "udon-noodle",},{id: "5b9681827995142c3c3abd15", name: "Noodle", slug: "noodle",},{id: "61fb995dbccddc8831922102", name: "Pasta & Noodles", slug: "pasta-noodles",},{id: "5b96817fbd84752d89a7cf48", name: "Ingredient", slug: "ingredient",},{id: "5afc813d89a26c29083a9507", name: "Tags", slug: "tags",},], root:{slug: "tags"},},{id: "61fba0b1bccddc8831922104", name: "Ramen Noodle", slug: "ramen-noodle", metadata:{contentType: "category"}, hierarchy: [{id: "61fba0b1bccddc8831922104", name: "Ramen Noodle", slug: "ramen-noodle",},{id: "5b9681827995142c3c3abd15", name: "Noodle", slug: "noodle",},{id: "61fb995dbccddc8831922102", name: "Pasta & Noodles", slug: "pasta-noodles",},{id: "5b96817fbd84752d89a7cf48", name: "Ingredient", slug: "ingredient",},{id: "5afc813d89a26c29083a9507", name: "Tags", slug: "tags",},], root:{slug: "tags"},},], socialTitle: "Nutty Umami Noodles With Scallion Brown Butter and Snow Peas", bodyJsonML:{content: [ "div", [ "p", "Ideal for busy days, these quick, simple noodles taste like they took hours to make. Pantry superstar ", [ "a",{href: "https:\u002F\u002Fwww.bonappetit.com\u002Fstory\u002Foyster-sauce-explainer", isExternal: false,}, "oyster sauce",], " is beloved for its salty, funky flavors—its great for adding a quick hit of umami—but can be a bit intense solo. Thats where the scallion brown butter comes in—scallions sizzle away while the butter browns, yielding toasty scallions and an aromatic, nutty fat that cuts through the intensity of the oyster sauce. Throw in some crisp snow peas and toss everything together with some cooked noodles for a low-lift, high-reward meal that comes together in a flash. If snow peas arent available, feel free to swap in any other quick-cooking crisp vegetable you like; sliced bell pepper or chopped broccolini would work just as well. —", ["em", "Zaynab Issa"],],], connectedEmbeds:{edges: []},}, times:{prepTime: "", activeTime: "", totalTime: ""}, servingSizeInfo:{description: "46 servings"}, ingredientGroups: [{dangerousHed: "", ingredients: [{dangerousDescription: "16 oz. fresh or dried wheat noodles (such as lo mein, udon, or ramen)", descriptionJsonMl: [ "div", [ "p", "16 oz. fresh or dried wheat noodles (such as lo mein, udon, or ramen)",],],},{dangerousDescription: "⅓ cup oyster sauce", descriptionJsonMl: ["div", ["p", "⅓ cup oyster sauce"]],},{dangerousDescription: "⅓ cup (or more) soy sauce", descriptionJsonMl: [ "div", ["p", "⅓ cup (or more) soy sauce"],],},{dangerousDescription: "1 Tbsp. plus 1½ tsp. unseasoned rice vinegar", descriptionJsonMl: [ "div", ["p", "1 Tbsp. plus 1½ tsp. unseasoned rice vinegar"],],},{dangerousDescription: "1 Tbsp. sugar", descriptionJsonMl: ["div", ["p", "1 Tbsp. sugar"]],},{dangerousDescription: "6 scallions", descriptionJsonMl: ["div", ["p", "6 scallions"]],},{dangerousDescription: "½ cup (1 stick) unsalted butter", descriptionJsonMl: [ "div", ["p", "½ cup (1 stick) unsalted butter"],],},{dangerousDescription: "4 garlic cloves, finely chopped", descriptionJsonMl: [ "div", ["p", "4 garlic cloves, finely chopped"],],},{dangerousDescription: "8 oz. snow peas", descriptionJsonMl: ["div", ["p", "8 oz. snow peas"]],},{dangerousDescription: "¾ tsp. mild chile flakes, plus more for serving", descriptionJsonMl: [ "div", ["p", "¾ tsp. mild chile flakes, plus more for serving"],],},],},], aggregateRating: 5, reviewsCount: 1, products:{edges: [{node:{id: "59665b62ebe72a54a152df5d", brand: null, category:{edges: [{node:{}}]}, contextualBody: null, contextualTitle: null, description: "", functionalTags: [], name: "Large Pot", offers: [{currency: "USD", comparisonPrice: null, purchaseUri: "https:\u002F\u002Fwww.amazon.com\u002FCuisinart-744-24-Classic-Stainless-Stockpot\u002Fdp\u002FB00008CM6I\u002Fref=sr_1_3?gclid=Cj0KCQiAu62QBhC7ARIsALXijXSx99BfY1rd3Tmc5OGBl62slHfev-CzcpD3N_UgmIgZH0Esgk_4an8aAgjYEALw_wcB&hvadid=409953025329&hvdev=c&hvlocphy=9004338&hvnetw=g&hvqmt=b&hvrand=11579729350741690720&hvtargid=kwd-315774104854&hydadcr=4666_11139220&keywords=6-qt+stock+pot&qid=1644943762&sr=8-3", offerId: "5d38abbfbae1d90008cf44b1", offerType: "PURCHASE", price: 55, sellerName: "Amazon", shortUrl: "https:\u002F\u002Fcna.st\u002Fp\u002F2hc5hQAHzoCJK2BmmbYU8ExZD6VffRqrZEGXCa3GCbmsePu89zrtEVdnnGmhJCnfaR4K6fFrA9iG8F2RkThLkTJFehKHy22j28BNNwCoMP6",},], tout:{id: "596938717654ad3411665279", aspectRatios: [{name: "master", url: "https:\u002F\u002Fcn-copilot-media.s3.amazonaws.com\u002Fpublic\u002Fbonappetit-services\u002Fproduction\u002F2017\u002F07\u002F14\u002F596938707654ad3411665278_basically-equipment-large-pot.jpg", width: 12500, height: 12500, format: "JPEG",},], filename: "basically-equipment-large-pot.jpg", credit: null, altText: "This image may contain Jewelry, Accessories, Ring, Accessory, and Window", contextualCaption: null, contextualTitle: null, caption: null, metadata:{contentType: "photo"},}, url: "products\u002F59665b62ebe72a54a152df5d", metadata:{contentType: "product"},},},{node:{id: "5978dea341d52f40491c002a", brand: null, category:{edges: [{node:{}}]}, contextualBody: null, contextualTitle: null, description: "", functionalTags: [], name: "Colander", offers: [{currency: "USD", comparisonPrice: null, purchaseUri: "https:\u002F\u002Famzn.to\u002F3ut87bv", offerId: "5d38abb5aeb4eb00089d92e3", offerType: "PURCHASE", price: 11, sellerName: "Amazon", shortUrl: "https:\u002F\u002Fcna.st\u002Fp\u002F2hc5hQAHzoCJK2BmmbYU8ExZD6VffRqrZEGXCa3GCbmt8bHMXXTtTfRB9qNevWK2mBBuS92MmwfGdUiM95HxhW5woBjfu6HbHZwyiATY7EJ",},], tout:{id: "597901243942a20318cc3f87", aspectRatios: [{name: "master", url: "https:\u002F\u002Fcn-copilot-media.s3.amazonaws.com\u002Fpublic\u002Fbonappetit-services\u002Fproduction\u002F2017\u002F07\u002F26\u002F597901243942a20318cc3f86_Basically_Colander.jpg", width: 3000, height: 3000, format: "JPEG",},], filename: "Basically_Colander.jpg", credit: null, altText: "Image may contain: Drain", contextualCaption: null, contextualTitle: null, caption: null, metadata:{contentType: "photo"},}, url: "products\u002F5978dea341d52f40491c002a", metadata:{contentType: "product"},},},{node:{id: "59665cadb0ad7f35186810a2", brand: null, category:{edges: [{node:{}}]}, contextualBody: null, contextualTitle: null, description: "", functionalTags: [], name: "Tongs", offers: [{currency: "USD", comparisonPrice: null, purchaseUri: "https:\u002F\u002Famzn.to\u002F33q8TtL", offerId: "5d38aba94d8a680008b239a9", offerType: "PURCHASE", price: 13, sellerName: "Amazon", shortUrl: "https:\u002F\u002Fcna.st\u002Fp\u002F2hc5hQAHzoCJK2BmmbYU8ExZD6VffRqrZEGXCa3GCbmsePu8Y3B7K5G4cFmneVqqJNvPgsmfJEFejzaPQQWMnt7Y8L64Tuvzjahsb2382jz",},], tout:{id: "5a1eddec2479441876ab9959", aspectRatios: [{name: "master", url: "https:\u002F\u002Fcn-copilot-media.s3.amazonaws.com\u002Fpublic\u002Fbonappetit-services\u002Fproduction\u002F2017\u002F11\u002F29\u002F5a1eddec2479441876ab9958_Basically_Tongs.jpg", width: 8333, height: 8333, format: "JPEG",},{name: "5:7", url: null, width: 5950, height: 8330, format: null,},{name: "6:9", url: null, width: 5554, height: 8331, format: null,},{name: "5:4", url: null, width: 8330, height: 6664, format: null,},{name: "8:5", url: null, width: 8328, height: 5205, format: null,},{name: "3:2", url: null, width: 8331, height: 5554, format: null,},{name: "16:9", url: null, width: 8320, height: 4680, format: null,},{name: "4:3", url: null, width: 8332, height: 6249, format: null,},{name: "1:1", url: null, width: 8333, height: 8333, format: null,},], filename: "Basically_Tongs.jpg", credit: null, altText: "Image may contain: Weapon, and Weaponry", contextualCaption: null, contextualTitle: null, caption: null, metadata:{contentType: "photo"},}, url: "products\u002F59665cadb0ad7f35186810a2", metadata:{contentType: "product"},},},{node:{id: "5a71f5511bc6f23c69d9f8d0", brand: null, category:{edges: [{node:{}}]}, contextualBody: null, contextualTitle: null, description: "4-Quart saute pan with large cooking surface and tall sides - perfect for sauteing, browning or searing 3-ply bonded construction consists of durable stainless steel encapsulating an aluminum core for even heating throughout Highly polished cooking surface with starburst finish offers stick resistance and easy maintenance, plus won't react with food Contoured stainless-steel handles permanently secured with stainless-steel rivets; capacity etched on base; flat stainless-steel lid Oven- and broiler-safe up to 600 degrees F (without lid); induction compatible; limited lifetime warranty; Made in USA", functionalTags: [], name: "Large Straight-Sided Skillet", offers: [{currency: "USD", comparisonPrice: 199, purchaseUri: "https:\u002F\u002Fwww.amazon.com\u002FAll-Clad-Stainless-Tri-Ply-Dishwasher-Cookware\u002Fdp\u002FB004T6J64M?psc=1&SubscriptionId=AKIAJM3KU4TPIXE245JA&tag=undefined&linkCode=xm2&camp=2025&creative=165953&creativeASIN=B004T6J64M", offerId: "5d38aba781d9c70008e818b5", offerType: "PURCHASE", price: 290, sellerName: "Amazon", shortUrl: "https:\u002F\u002Fcna.st\u002Fp\u002F2hc5hQAHzoCJK2BmmbYU8ExZD6VffRqrZEGXCa3GCdEz7aHcWV17QBryrFgfPndLMr7q7jcJu8HVVyjvzyQh9fWsy2Z7od3wxSQSXig86V2",},], tout:{id: "5a71f59996525e37e74c6349", aspectRatios: [{name: "master", url: "https:\u002F\u002Fcn-copilot-media.s3.amazonaws.com\u002Fpublic\u002Fbonappetit-services\u002Fproduction\u002F2018\u002F01\u002F31\u002F5a71f59996525e37e74c6348_Basically_Skillet-Large-Straight-Sided_FINAL.jpg", width: 3000, height: 3000, format: "JPEG",},{name: "5:7", url: null, width: 2140, height: 2996, format: null,},{name: "6:9", url: null, width: 2000, height: 3000, format: null,},{name: "5:4", url: null, width: 3000, height: 2400, format: null,},{name: "8:5", url: null, width: 3000, height: 1875, format: null,},{name: "3:2", url: null, width: 3000, height: 2000, format: null,},{name: "16:9", url: null, width: 2992, height: 1683, format: null,},{name: "4:3", url: null, width: 3000, height: 2250, format: null,},{name: "1:1", url: null, width: 3000, height: 3000, format: null,},], filename: "Basically_Skillet-Large-Straight-Sided_FINAL.jpg", credit: null, altText: "Image may contain: Wok, and Frying Pan", contextualCaption: null, contextualTitle: null, caption: null, metadata:{contentType: "photo"},}, url: "products\u002F5a71f5511bc6f23c69d9f8d0", metadata:{contentType: "product"},},},],}, publishInfo:{firstPublished: "2022-04-21T15:29:05.087Z"}, versoSettings: [], reviews:{recipeId: "625eb968d2dd9946d391d0e8", averageRating: 5, willPrepareAgainPercentage: 0, weightedRating: 3.9423, weightedWillPrepareAgainPercentage: 38.96, weightedRanking: 4.3319, reviews: [], reviewsCount: 0, page:{generatedAt: "2022-04-23T19:02:39.560Z", count: 0, number: 1, size: 15, totalCount: 0,},}, body: [ "div", [ "div",{className: "container container--body"}, [ "div",{className: "container--body-inner"}, [ "p", "Ideal for busy days, these quick, simple noodles taste like they took hours to make. Pantry superstar ", [ "a",{href: "https:\u002F\u002Fwww.bonappetit.com\u002Fstory\u002Foyster-sauce-explainer", isExternal: false,}, "oyster sauce",], " is beloved for its salty, funky flavors—its great for adding a quick hit of umami—but can be a bit intense solo. Thats where the scallion brown butter comes in—scallions sizzle away while the butter browns, yielding toasty scallions and an aromatic, nutty fat that cuts through the intensity of the oyster sauce. Throw in some crisp snow peas and toss everything together with some cooked noodles for a low-lift, high-reward meal that comes together in a flash. If snow peas arent available, feel free to swap in any other quick-cooking crisp vegetable you like; sliced bell pepper or chopped broccolini would work just as well. —", ["em", "Zaynab Issa"],],],],], brandSlug: "bon-appetit", cookbooks: [], showBookmark: false, featureFlags:{showMultipleBuyButtons: true, enableAccounts: true, enableAnalytics: true, enableConsent: true, enableDropcap: false, enableEntitlementProxy: false, enableEntitlementValidation: true, enableEntitlementGrantLogic: false, enableGoogleAmp: true, enableLinkStack: true, enablePayment: false, enableJourneyPayment: true, enableRecipeRatings: false, enableVideoHomePage: false, hasRiser: true, recentWorkTeaser: "rubric-or-channel", bundleTeaser: "rubric-or-channel", contentTeaser: "rubric-or-channel", tagTeaser: "rubric-or-channel", preferCollectionGrid: false, overrideBodyContentHeadings: true, enableSponsoredContentInRelated: false, personalizeRecircList: true, personalizeRecircMostPopular: true, videoPersistable: false, google:{swgEnabled: false, signInEnabled: true}, featureOnboarding:{},}, headerProps:{issueDate: "", issueLink: "", dangerousDek: "", dangerousHed: "Nutty Umami Noodles With Scallion Brown Butter and Snow Peas", contributors:{author:{items: [{dangerousBio: null, dangerousTitle: null, name: "Zaynab Issa", socialMedia: [], url: "\u002Fcontributor\u002Fzaynab-issa",},],},}, lede:{altText: "Dish of noodles with snow peas and chopsticks on a beige background.", caption: "", contentType: "photo", credit: "Photograph by Isa Zapata, Food Styling by Judy Kim, Prop Styling by Stephanie De Luca", id: "625def3e989fa4e14e8195db", sources:{sm:{aspectRatio: "1:1", width: 360, url: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F1:1\u002Fw_360,c_limit\u002F0418-snow-pea-noodles-lede.jpg", srcset: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F1:1\u002Fw_120,c_limit\u002F0418-snow-pea-noodles-lede.jpg 120w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F1:1\u002Fw_240,c_limit\u002F0418-snow-pea-noodles-lede.jpg 240w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F1:1\u002Fw_320,c_limit\u002F0418-snow-pea-noodles-lede.jpg 320w",}, md:{aspectRatio: "1:1", width: 1024, url: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F1:1\u002Fw_1024,c_limit\u002F0418-snow-pea-noodles-lede.jpg", srcset: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F1:1\u002Fw_120,c_limit\u002F0418-snow-pea-noodles-lede.jpg 120w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F1:1\u002Fw_240,c_limit\u002F0418-snow-pea-noodles-lede.jpg 240w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F1:1\u002Fw_320,c_limit\u002F0418-snow-pea-noodles-lede.jpg 320w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F1:1\u002Fw_640,c_limit\u002F0418-snow-pea-noodles-lede.jpg 640w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F1:1\u002Fw_960,c_limit\u002F0418-snow-pea-noodles-lede.jpg 960w",}, lg:{aspectRatio: "1:1", width: 1280, url: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F1:1\u002Fw_1280,c_limit\u002F0418-snow-pea-noodles-lede.jpg", srcset: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F1:1\u002Fw_120,c_limit\u002F0418-snow-pea-noodles-lede.jpg 120w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F1:1\u002Fw_240,c_limit\u002F0418-snow-pea-noodles-lede.jpg 240w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F1:1\u002Fw_320,c_limit\u002F0418-snow-pea-noodles-lede.jpg 320w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F1:1\u002Fw_640,c_limit\u002F0418-snow-pea-noodles-lede.jpg 640w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F1:1\u002Fw_960,c_limit\u002F0418-snow-pea-noodles-lede.jpg 960w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F1:1\u002Fw_1280,c_limit\u002F0418-snow-pea-noodles-lede.jpg 1280w",}, xl:{aspectRatio: "1:1", width: 1280, url: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F1:1\u002Fw_1280,c_limit\u002F0418-snow-pea-noodles-lede.jpg", srcset: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F1:1\u002Fw_120,c_limit\u002F0418-snow-pea-noodles-lede.jpg 120w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F1:1\u002Fw_240,c_limit\u002F0418-snow-pea-noodles-lede.jpg 240w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F1:1\u002Fw_320,c_limit\u002F0418-snow-pea-noodles-lede.jpg 320w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F1:1\u002Fw_640,c_limit\u002F0418-snow-pea-noodles-lede.jpg 640w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F1:1\u002Fw_960,c_limit\u002F0418-snow-pea-noodles-lede.jpg 960w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F1:1\u002Fw_1280,c_limit\u002F0418-snow-pea-noodles-lede.jpg 1280w",}, xxl:{aspectRatio: "1:1", width: 2560, url: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F1:1\u002Fw_2560,c_limit\u002F0418-snow-pea-noodles-lede.jpg", srcset: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F1:1\u002Fw_120,c_limit\u002F0418-snow-pea-noodles-lede.jpg 120w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F1:1\u002Fw_240,c_limit\u002F0418-snow-pea-noodles-lede.jpg 240w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F1:1\u002Fw_320,c_limit\u002F0418-snow-pea-noodles-lede.jpg 320w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F1:1\u002Fw_640,c_limit\u002F0418-snow-pea-noodles-lede.jpg 640w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F1:1\u002Fw_960,c_limit\u002F0418-snow-pea-noodles-lede.jpg 960w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F1:1\u002Fw_1280,c_limit\u002F0418-snow-pea-noodles-lede.jpg 1280w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F1:1\u002Fw_1600,c_limit\u002F0418-snow-pea-noodles-lede.jpg 1600w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F1:1\u002Fw_1920,c_limit\u002F0418-snow-pea-noodles-lede.jpg 1920w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F1:1\u002Fw_2240,c_limit\u002F0418-snow-pea-noodles-lede.jpg 2240w",},}, masterAspectRatio: "4200:2800",}, hidePublishDate: false, publishDate: "April 21, 2022", rubric:{name: "recipes", url: "\u002Frecipes"}, sponsoredContentHeaderProps: null,}, hideContributorBio: true, hideAffiliateDisclaimer: false, isAffiliateLinksEnabled: true, interlude:{brand: "bonappetit", humanName: "Bon Appétit", playerBase: "https:\u002F\u002Fplayer.cnevids.com", strategy:{method: "default", enabled: true}, isRailEligible: true,}, instructions: [{dangerousHed: "", steps: [{dangerousDescription: "Cook \u003Cstrong\u003E16 oz. fresh or dried wheat noodles\u003C\u002Fstrong\u003E in a large pot of boiling water according to package directions. Drain, reserving 1 cup noodle cooking liquid; set noodles aside.", descriptionJsonMl: [ "div", [ "p", "Cook ", ["strong", "16 oz. fresh or dried wheat noodles"], " in a large pot of boiling water according to package directions. Drain, reserving 1 cup noodle cooking liquid; set noodles aside.",],],},{dangerousDescription: "Whisk \u003Cstrong\u003E⅓ cup oyster sauce\u003C\u002Fstrong\u003E, \u003Cstrong\u003E⅓ cup soy sauce\u003C\u002Fstrong\u003E, \u003Cstrong\u003E1 Tbsp. plus 1½ tsp. unseasoned rice vinegar\u003C\u002Fstrong\u003E, and \u003Cstrong\u003E1 Tbsp. sugar\u003C\u002Fstrong\u003E in a small bowl until combined; set sauce aside.", descriptionJsonMl: [ "div", [ "p", "Whisk ", ["strong", "⅓ cup oyster sauce"], ", ", ["strong", "⅓ cup soy sauce"], ", ", [ "strong", "1 Tbsp. plus 1½ tsp. unseasoned rice vinegar",], ", and ", ["strong", "1 Tbsp. sugar"], " in a small bowl until combined; set sauce aside.",],],},{dangerousDescription: "Separate dark green tops from white and pale green parts of \u003Cstrong\u003E6 scallions\u003C\u002Fstrong\u003E; thinly slice tops and set aside. Thinly slice white and pale green parts.", descriptionJsonMl: [ "div", [ "p", "Separate dark green tops from white and pale green parts of ", ["strong", "6 scallions"], "; thinly slice tops and set aside. Thinly slice white and pale green parts.",],],},{dangerousDescription: "Cook \u003Cstrong\u003E½ cup (1 stick) unsalted butter\u003C\u002Fstrong\u003E and white and pale green parts of scallions in a large skillet over medium-high, stirring often, until milk solids are golden brown and scallions are softened and starting to brown, about 4 minutes. Add \u003Cstrong\u003E4 garlic cloves\u003C\u002Fstrong\u003E, finely chopped, \u003Cstrong\u003E8 oz. snow peas\u003C\u002Fstrong\u003E, \u003Cstrong\u003E¾ tsp. mild chile flakes\u003C\u002Fstrong\u003E, and most of reserved scallion tops. Cook, stirring constantly, until milk solids are deep amber in color and snow peas are bright green and just crisp-tender, about 1 minute.", descriptionJsonMl: [ "div", [ "p", "Cook ", ["strong", "½ cup (1 stick) unsalted butter"], " and white and pale green parts of scallions in a large skillet over medium-high, stirring often, until milk solids are golden brown and scallions are softened and starting to brown, about 4 minutes. Add ", ["strong", "4 garlic cloves"], ", finely chopped, ", ["strong", "8 oz. snow peas"], ", ", ["strong", "¾ tsp. mild chile flakes"], ", and most of reserved scallion tops. Cook, stirring constantly, until milk solids are deep amber in color and snow peas are bright green and just crisp-tender, about 1 minute.",],],},{dangerousDescription: "Stir in reserved sauce and bring to a simmer. Add reserved noodles and pour in ¼ cup reserved noodle cooking liquid. Cook, tossing often and adding more noodle cooking liquid as needed, until sauce is glossy and clings to noodles, about 1 minute. Taste and add more soy sauce if needed.", descriptionJsonMl: [ "div", [ "p", "Stir in reserved sauce and bring to a simmer. Add reserved noodles and pour in ¼ cup reserved noodle cooking liquid. Cook, tossing often and adding more noodle cooking liquid as needed, until sauce is glossy and clings to noodles, about 1 minute. Taste and add more soy sauce if needed.",],],},{dangerousDescription: "Divide noodles among bowls and top with more mild chile flakes and remaining scallion tops.", descriptionJsonMl: [ "div", [ "p", "Divide noodles among bowls and top with more mild chile flakes and remaining scallion tops.",],],},],},], isNativeRecipe: false, nutritionalInfo: "", productCarousel:{products: [{offerUrl: "https:\u002F\u002Fwww.amazon.com\u002FCuisinart-744-24-Classic-Stainless-Stockpot\u002Fdp\u002FB00008CM6I\u002Fref=sr_1_3?gclid=Cj0KCQiAu62QBhC7ARIsALXijXSx99BfY1rd3Tmc5OGBl62slHfev-CzcpD3N_UgmIgZH0Esgk_4an8aAgjYEALw_wcB&hvadid=409953025329&hvdev=c&hvlocphy=9004338&hvnetw=g&hvqmt=b&hvrand=11579729350741690720&hvtargid=kwd-315774104854&hydadcr=4666_11139220&keywords=6-qt+stock+pot&qid=1644943762&sr=8-3", price: "$55", currency: "USD", purchaseUri: "https:\u002F\u002Fcna.st\u002Fp\u002F2hc5hQAHzoCJK2BmmbYU8ExZD6VffRqrZEGXCa3GCbmsePu89zrtEVdnnGmhJCnfaR4K6fFrA9iG8F2RkThLkTJFehKHy22j28BNNwCoMP6?cid=625eb968d2dd9946d391d0e8", sellerName: "Amazon", reducedPrice: "", name: "Large Pot", image:{altText: "This image may contain Jewelry Accessories Ring Accessory and Window", segmentedSources:{sm: [{aspectRatio: "1:1", width: 640, url: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F596938717654ad3411665279\u002F1:1\u002Fw_640,c_limit\u002Fbasically-equipment-large-pot.jpg", srcset: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F596938717654ad3411665279\u002F1:1\u002Fw_120,c_limit\u002Fbasically-equipment-large-pot.jpg 120w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F596938717654ad3411665279\u002F1:1\u002Fw_240,c_limit\u002Fbasically-equipment-large-pot.jpg 240w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F596938717654ad3411665279\u002F1:1\u002Fw_320,c_limit\u002Fbasically-equipment-large-pot.jpg 320w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F596938717654ad3411665279\u002F1:1\u002Fw_640,c_limit\u002Fbasically-equipment-large-pot.jpg 640w",},], lg: [{aspectRatio: "1:1", width: 640, url: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F596938717654ad3411665279\u002F1:1\u002Fw_640,c_limit\u002Fbasically-equipment-large-pot.jpg", srcset: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F596938717654ad3411665279\u002F1:1\u002Fw_120,c_limit\u002Fbasically-equipment-large-pot.jpg 120w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F596938717654ad3411665279\u002F1:1\u002Fw_240,c_limit\u002Fbasically-equipment-large-pot.jpg 240w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F596938717654ad3411665279\u002F1:1\u002Fw_320,c_limit\u002Fbasically-equipment-large-pot.jpg 320w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F596938717654ad3411665279\u002F1:1\u002Fw_640,c_limit\u002Fbasically-equipment-large-pot.jpg 640w",},],}, sources:{sm:{aspectRatio: "1:1", width: 320, url: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F596938717654ad3411665279\u002F1:1\u002Fw_320,c_limit\u002Fbasically-equipment-large-pot.jpg", srcset: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F596938717654ad3411665279\u002F1:1\u002Fw_120,c_limit\u002Fbasically-equipment-large-pot.jpg 120w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F596938717654ad3411665279\u002F1:1\u002Fw_240,c_limit\u002Fbasically-equipment-large-pot.jpg 240w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F596938717654ad3411665279\u002F1:1\u002Fw_320,c_limit\u002Fbasically-equipment-large-pot.jpg 320w",}, md:{aspectRatio: "1:1", width: 640, url: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F596938717654ad3411665279\u002F1:1\u002Fw_640,c_limit\u002Fbasically-equipment-large-pot.jpg", srcset: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F596938717654ad3411665279\u002F1:1\u002Fw_120,c_limit\u002Fbasically-equipment-large-pot.jpg 120w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F596938717654ad3411665279\u002F1:1\u002Fw_240,c_limit\u002Fbasically-equipment-large-pot.jpg 240w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F596938717654ad3411665279\u002F1:1\u002Fw_320,c_limit\u002Fbasically-equipment-large-pot.jpg 320w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F596938717654ad3411665279\u002F1:1\u002Fw_640,c_limit\u002Fbasically-equipment-large-pot.jpg 640w",}, lg:{aspectRatio: "1:1", width: 640, url: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F596938717654ad3411665279\u002F1:1\u002Fw_640,c_limit\u002Fbasically-equipment-large-pot.jpg", srcset: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F596938717654ad3411665279\u002F1:1\u002Fw_120,c_limit\u002Fbasically-equipment-large-pot.jpg 120w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F596938717654ad3411665279\u002F1:1\u002Fw_240,c_limit\u002Fbasically-equipment-large-pot.jpg 240w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F596938717654ad3411665279\u002F1:1\u002Fw_320,c_limit\u002Fbasically-equipment-large-pot.jpg 320w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F596938717654ad3411665279\u002F1:1\u002Fw_640,c_limit\u002Fbasically-equipment-large-pot.jpg 640w",}, xl:{aspectRatio: "1:1", width: 640, url: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F596938717654ad3411665279\u002F1:1\u002Fw_640,c_limit\u002Fbasically-equipment-large-pot.jpg", srcset: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F596938717654ad3411665279\u002F1:1\u002Fw_120,c_limit\u002Fbasically-equipment-large-pot.jpg 120w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F596938717654ad3411665279\u002F1:1\u002Fw_240,c_limit\u002Fbasically-equipment-large-pot.jpg 240w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F596938717654ad3411665279\u002F1:1\u002Fw_320,c_limit\u002Fbasically-equipment-large-pot.jpg 320w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F596938717654ad3411665279\u002F1:1\u002Fw_640,c_limit\u002Fbasically-equipment-large-pot.jpg 640w",}, xxl:{aspectRatio: "1:1", width: 640, url: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F596938717654ad3411665279\u002F1:1\u002Fw_640,c_limit\u002Fbasically-equipment-large-pot.jpg", srcset: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F596938717654ad3411665279\u002F1:1\u002Fw_120,c_limit\u002Fbasically-equipment-large-pot.jpg 120w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F596938717654ad3411665279\u002F1:1\u002Fw_240,c_limit\u002Fbasically-equipment-large-pot.jpg 240w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F596938717654ad3411665279\u002F1:1\u002Fw_320,c_limit\u002Fbasically-equipment-large-pot.jpg 320w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F596938717654ad3411665279\u002F1:1\u002Fw_640,c_limit\u002Fbasically-equipment-large-pot.jpg 640w",},},},},{offerUrl: "https:\u002F\u002Famzn.to\u002F3ut87bv", price: "$11", currency: "USD", purchaseUri: "https:\u002F\u002Fcna.st\u002Fp\u002F2hc5hQAHzoCJK2BmmbYU8ExZD6VffRqrZEGXCa3GCbmt8bHMXXTtTfRB9qNevWK2mBBuS92MmwfGdUiM95HxhW5woBjfu6HbHZwyiATY7EJ?cid=625eb968d2dd9946d391d0e8", sellerName: "Amazon", reducedPrice: "", name: "Colander", image:{altText: "Image may contain Drain", segmentedSources:{sm: [{aspectRatio: "1:1", width: 640, url: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F597901243942a20318cc3f87\u002F1:1\u002Fw_640,c_limit\u002FBasically_Colander.jpg", srcset: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F597901243942a20318cc3f87\u002F1:1\u002Fw_120,c_limit\u002FBasically_Colander.jpg 120w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F597901243942a20318cc3f87\u002F1:1\u002Fw_240,c_limit\u002FBasically_Colander.jpg 240w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F597901243942a20318cc3f87\u002F1:1\u002Fw_320,c_limit\u002FBasically_Colander.jpg 320w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F597901243942a20318cc3f87\u002F1:1\u002Fw_640,c_limit\u002FBasically_Colander.jpg 640w",},], lg: [{aspectRatio: "1:1", width: 640, url: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F597901243942a20318cc3f87\u002F1:1\u002Fw_640,c_limit\u002FBasically_Colander.jpg", srcset: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F597901243942a20318cc3f87\u002F1:1\u002Fw_120,c_limit\u002FBasically_Colander.jpg 120w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F597901243942a20318cc3f87\u002F1:1\u002Fw_240,c_limit\u002FBasically_Colander.jpg 240w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F597901243942a20318cc3f87\u002F1:1\u002Fw_320,c_limit\u002FBasically_Colander.jpg 320w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F597901243942a20318cc3f87\u002F1:1\u002Fw_640,c_limit\u002FBasically_Colander.jpg 640w",},],}, sources:{sm:{aspectRatio: "1:1", width: 320, url: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F597901243942a20318cc3f87\u002F1:1\u002Fw_320,c_limit\u002FBasically_Colander.jpg", srcset: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F597901243942a20318cc3f87\u002F1:1\u002Fw_120,c_limit\u002FBasically_Colander.jpg 120w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F597901243942a20318cc3f87\u002F1:1\u002Fw_240,c_limit\u002FBasically_Colander.jpg 240w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F597901243942a20318cc3f87\u002F1:1\u002Fw_320,c_limit\u002FBasically_Colander.jpg 320w",}, md:{aspectRatio: "1:1", width: 640, url: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F597901243942a20318cc3f87\u002F1:1\u002Fw_640,c_limit\u002FBasically_Colander.jpg", srcset: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F597901243942a20318cc3f87\u002F1:1\u002Fw_120,c_limit\u002FBasically_Colander.jpg 120w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F597901243942a20318cc3f87\u002F1:1\u002Fw_240,c_limit\u002FBasically_Colander.jpg 240w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F597901243942a20318cc3f87\u002F1:1\u002Fw_320,c_limit\u002FBasically_Colander.jpg 320w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F597901243942a20318cc3f87\u002F1:1\u002Fw_640,c_limit\u002FBasically_Colander.jpg 640w",}, lg:{aspectRatio: "1:1", width: 640, url: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F597901243942a20318cc3f87\u002F1:1\u002Fw_640,c_limit\u002FBasically_Colander.jpg", srcset: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F597901243942a20318cc3f87\u002F1:1\u002Fw_120,c_limit\u002FBasically_Colander.jpg 120w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F597901243942a20318cc3f87\u002F1:1\u002Fw_240,c_limit\u002FBasically_Colander.jpg 240w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F597901243942a20318cc3f87\u002F1:1\u002Fw_320,c_limit\u002FBasically_Colander.jpg 320w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F597901243942a20318cc3f87\u002F1:1\u002Fw_640,c_limit\u002FBasically_Colander.jpg 640w",}, xl:{aspectRatio: "1:1", width: 640, url: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F597901243942a20318cc3f87\u002F1:1\u002Fw_640,c_limit\u002FBasically_Colander.jpg", srcset: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F597901243942a20318cc3f87\u002F1:1\u002Fw_120,c_limit\u002FBasically_Colander.jpg 120w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F597901243942a20318cc3f87\u002F1:1\u002Fw_240,c_limit\u002FBasically_Colander.jpg 240w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F597901243942a20318cc3f87\u002F1:1\u002Fw_320,c_limit\u002FBasically_Colander.jpg 320w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F597901243942a20318cc3f87\u002F1:1\u002Fw_640,c_limit\u002FBasically_Colander.jpg 640w",}, xxl:{aspectRatio: "1:1", width: 640, url: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F597901243942a20318cc3f87\u002F1:1\u002Fw_640,c_limit\u002FBasically_Colander.jpg", srcset: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F597901243942a20318cc3f87\u002F1:1\u002Fw_120,c_limit\u002FBasically_Colander.jpg 120w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F597901243942a20318cc3f87\u002F1:1\u002Fw_240,c_limit\u002FBasically_Colander.jpg 240w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F597901243942a20318cc3f87\u002F1:1\u002Fw_320,c_limit\u002FBasically_Colander.jpg 320w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F597901243942a20318cc3f87\u002F1:1\u002Fw_640,c_limit\u002FBasically_Colander.jpg 640w",},},},},{offerUrl: "https:\u002F\u002Famzn.to\u002F33q8TtL", price: "$13", currency: "USD", purchaseUri: "https:\u002F\u002Fcna.st\u002Fp\u002F2hc5hQAHzoCJK2BmmbYU8ExZD6VffRqrZEGXCa3GCbmsePu8Y3B7K5G4cFmneVqqJNvPgsmfJEFejzaPQQWMnt7Y8L64Tuvzjahsb2382jz?cid=625eb968d2dd9946d391d0e8", sellerName: "Amazon", reducedPrice: "", name: "Tongs", image:{altText: "Image may contain Weapon and Weaponry", segmentedSources:{sm: [{aspectRatio: "1:1", width: 640, url: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a1eddec2479441876ab9959\u002F1:1\u002Fw_640,c_limit\u002FBasically_Tongs.jpg", srcset: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a1eddec2479441876ab9959\u002F1:1\u002Fw_120,c_limit\u002FBasically_Tongs.jpg 120w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a1eddec2479441876ab9959\u002F1:1\u002Fw_240,c_limit\u002FBasically_Tongs.jpg 240w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a1eddec2479441876ab9959\u002F1:1\u002Fw_320,c_limit\u002FBasically_Tongs.jpg 320w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a1eddec2479441876ab9959\u002F1:1\u002Fw_640,c_limit\u002FBasically_Tongs.jpg 640w",},], lg: [{aspectRatio: "1:1", width: 640, url: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a1eddec2479441876ab9959\u002F1:1\u002Fw_640,c_limit\u002FBasically_Tongs.jpg", srcset: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a1eddec2479441876ab9959\u002F1:1\u002Fw_120,c_limit\u002FBasically_Tongs.jpg 120w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a1eddec2479441876ab9959\u002F1:1\u002Fw_240,c_limit\u002FBasically_Tongs.jpg 240w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a1eddec2479441876ab9959\u002F1:1\u002Fw_320,c_limit\u002FBasically_Tongs.jpg 320w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a1eddec2479441876ab9959\u002F1:1\u002Fw_640,c_limit\u002FBasically_Tongs.jpg 640w",},],}, sources:{sm:{aspectRatio: "1:1", width: 320, url: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a1eddec2479441876ab9959\u002F1:1\u002Fw_320,c_limit\u002FBasically_Tongs.jpg", srcset: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a1eddec2479441876ab9959\u002F1:1\u002Fw_120,c_limit\u002FBasically_Tongs.jpg 120w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a1eddec2479441876ab9959\u002F1:1\u002Fw_240,c_limit\u002FBasically_Tongs.jpg 240w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a1eddec2479441876ab9959\u002F1:1\u002Fw_320,c_limit\u002FBasically_Tongs.jpg 320w",}, md:{aspectRatio: "1:1", width: 640, url: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a1eddec2479441876ab9959\u002F1:1\u002Fw_640,c_limit\u002FBasically_Tongs.jpg", srcset: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a1eddec2479441876ab9959\u002F1:1\u002Fw_120,c_limit\u002FBasically_Tongs.jpg 120w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a1eddec2479441876ab9959\u002F1:1\u002Fw_240,c_limit\u002FBasically_Tongs.jpg 240w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a1eddec2479441876ab9959\u002F1:1\u002Fw_320,c_limit\u002FBasically_Tongs.jpg 320w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a1eddec2479441876ab9959\u002F1:1\u002Fw_640,c_limit\u002FBasically_Tongs.jpg 640w",}, lg:{aspectRatio: "1:1", width: 640, url: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a1eddec2479441876ab9959\u002F1:1\u002Fw_640,c_limit\u002FBasically_Tongs.jpg", srcset: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a1eddec2479441876ab9959\u002F1:1\u002Fw_120,c_limit\u002FBasically_Tongs.jpg 120w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a1eddec2479441876ab9959\u002F1:1\u002Fw_240,c_limit\u002FBasically_Tongs.jpg 240w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a1eddec2479441876ab9959\u002F1:1\u002Fw_320,c_limit\u002FBasically_Tongs.jpg 320w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a1eddec2479441876ab9959\u002F1:1\u002Fw_640,c_limit\u002FBasically_Tongs.jpg 640w",}, xl:{aspectRatio: "1:1", width: 640, url: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a1eddec2479441876ab9959\u002F1:1\u002Fw_640,c_limit\u002FBasically_Tongs.jpg", srcset: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a1eddec2479441876ab9959\u002F1:1\u002Fw_120,c_limit\u002FBasically_Tongs.jpg 120w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a1eddec2479441876ab9959\u002F1:1\u002Fw_240,c_limit\u002FBasically_Tongs.jpg 240w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a1eddec2479441876ab9959\u002F1:1\u002Fw_320,c_limit\u002FBasically_Tongs.jpg 320w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a1eddec2479441876ab9959\u002F1:1\u002Fw_640,c_limit\u002FBasically_Tongs.jpg 640w",}, xxl:{aspectRatio: "1:1", width: 640, url: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a1eddec2479441876ab9959\u002F1:1\u002Fw_640,c_limit\u002FBasically_Tongs.jpg", srcset: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a1eddec2479441876ab9959\u002F1:1\u002Fw_120,c_limit\u002FBasically_Tongs.jpg 120w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a1eddec2479441876ab9959\u002F1:1\u002Fw_240,c_limit\u002FBasically_Tongs.jpg 240w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a1eddec2479441876ab9959\u002F1:1\u002Fw_320,c_limit\u002FBasically_Tongs.jpg 320w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a1eddec2479441876ab9959\u002F1:1\u002Fw_640,c_limit\u002FBasically_Tongs.jpg 640w",},},},},{offerUrl: "https:\u002F\u002Fwww.amazon.com\u002FAll-Clad-Stainless-Tri-Ply-Dishwasher-Cookware\u002Fdp\u002FB004T6J64M?psc=1&SubscriptionId=AKIAJM3KU4TPIXE245JA&tag=undefined&linkCode=xm2&camp=2025&creative=165953&creativeASIN=B004T6J64M", price: "$290", currency: "USD", purchaseUri: "https:\u002F\u002Fcna.st\u002Fp\u002F2hc5hQAHzoCJK2BmmbYU8ExZD6VffRqrZEGXCa3GCdEz7aHcWV17QBryrFgfPndLMr7q7jcJu8HVVyjvzyQh9fWsy2Z7od3wxSQSXig86V2?cid=625eb968d2dd9946d391d0e8", reducedPrice: "$199", sellerName: "Amazon", name: "Large Straight-Sided Skillet", image:{altText: "Image may contain Wok and Frying Pan", segmentedSources:{sm: [{aspectRatio: "1:1", width: 640, url: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a71f59996525e37e74c6349\u002F1:1\u002Fw_640,c_limit\u002FBasically_Skillet-Large-Straight-Sided_FINAL.jpg", srcset: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a71f59996525e37e74c6349\u002F1:1\u002Fw_120,c_limit\u002FBasically_Skillet-Large-Straight-Sided_FINAL.jpg 120w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a71f59996525e37e74c6349\u002F1:1\u002Fw_240,c_limit\u002FBasically_Skillet-Large-Straight-Sided_FINAL.jpg 240w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a71f59996525e37e74c6349\u002F1:1\u002Fw_320,c_limit\u002FBasically_Skillet-Large-Straight-Sided_FINAL.jpg 320w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a71f59996525e37e74c6349\u002F1:1\u002Fw_640,c_limit\u002FBasically_Skillet-Large-Straight-Sided_FINAL.jpg 640w",},], lg: [{aspectRatio: "1:1", width: 640, url: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a71f59996525e37e74c6349\u002F1:1\u002Fw_640,c_limit\u002FBasically_Skillet-Large-Straight-Sided_FINAL.jpg", srcset: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a71f59996525e37e74c6349\u002F1:1\u002Fw_120,c_limit\u002FBasically_Skillet-Large-Straight-Sided_FINAL.jpg 120w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a71f59996525e37e74c6349\u002F1:1\u002Fw_240,c_limit\u002FBasically_Skillet-Large-Straight-Sided_FINAL.jpg 240w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a71f59996525e37e74c6349\u002F1:1\u002Fw_320,c_limit\u002FBasically_Skillet-Large-Straight-Sided_FINAL.jpg 320w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a71f59996525e37e74c6349\u002F1:1\u002Fw_640,c_limit\u002FBasically_Skillet-Large-Straight-Sided_FINAL.jpg 640w",},],}, sources:{sm:{aspectRatio: "1:1", width: 320, url: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a71f59996525e37e74c6349\u002F1:1\u002Fw_320,c_limit\u002FBasically_Skillet-Large-Straight-Sided_FINAL.jpg", srcset: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a71f59996525e37e74c6349\u002F1:1\u002Fw_120,c_limit\u002FBasically_Skillet-Large-Straight-Sided_FINAL.jpg 120w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a71f59996525e37e74c6349\u002F1:1\u002Fw_240,c_limit\u002FBasically_Skillet-Large-Straight-Sided_FINAL.jpg 240w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a71f59996525e37e74c6349\u002F1:1\u002Fw_320,c_limit\u002FBasically_Skillet-Large-Straight-Sided_FINAL.jpg 320w",}, md:{aspectRatio: "1:1", width: 640, url: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a71f59996525e37e74c6349\u002F1:1\u002Fw_640,c_limit\u002FBasically_Skillet-Large-Straight-Sided_FINAL.jpg", srcset: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a71f59996525e37e74c6349\u002F1:1\u002Fw_120,c_limit\u002FBasically_Skillet-Large-Straight-Sided_FINAL.jpg 120w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a71f59996525e37e74c6349\u002F1:1\u002Fw_240,c_limit\u002FBasically_Skillet-Large-Straight-Sided_FINAL.jpg 240w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a71f59996525e37e74c6349\u002F1:1\u002Fw_320,c_limit\u002FBasically_Skillet-Large-Straight-Sided_FINAL.jpg 320w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a71f59996525e37e74c6349\u002F1:1\u002Fw_640,c_limit\u002FBasically_Skillet-Large-Straight-Sided_FINAL.jpg 640w",}, lg:{aspectRatio: "1:1", width: 640, url: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a71f59996525e37e74c6349\u002F1:1\u002Fw_640,c_limit\u002FBasically_Skillet-Large-Straight-Sided_FINAL.jpg", srcset: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a71f59996525e37e74c6349\u002F1:1\u002Fw_120,c_limit\u002FBasically_Skillet-Large-Straight-Sided_FINAL.jpg 120w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a71f59996525e37e74c6349\u002F1:1\u002Fw_240,c_limit\u002FBasically_Skillet-Large-Straight-Sided_FINAL.jpg 240w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a71f59996525e37e74c6349\u002F1:1\u002Fw_320,c_limit\u002FBasically_Skillet-Large-Straight-Sided_FINAL.jpg 320w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a71f59996525e37e74c6349\u002F1:1\u002Fw_640,c_limit\u002FBasically_Skillet-Large-Straight-Sided_FINAL.jpg 640w",}, xl:{aspectRatio: "1:1", width: 640, url: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a71f59996525e37e74c6349\u002F1:1\u002Fw_640,c_limit\u002FBasically_Skillet-Large-Straight-Sided_FINAL.jpg", srcset: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a71f59996525e37e74c6349\u002F1:1\u002Fw_120,c_limit\u002FBasically_Skillet-Large-Straight-Sided_FINAL.jpg 120w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a71f59996525e37e74c6349\u002F1:1\u002Fw_240,c_limit\u002FBasically_Skillet-Large-Straight-Sided_FINAL.jpg 240w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a71f59996525e37e74c6349\u002F1:1\u002Fw_320,c_limit\u002FBasically_Skillet-Large-Straight-Sided_FINAL.jpg 320w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a71f59996525e37e74c6349\u002F1:1\u002Fw_640,c_limit\u002FBasically_Skillet-Large-Straight-Sided_FINAL.jpg 640w",}, xxl:{aspectRatio: "1:1", width: 640, url: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a71f59996525e37e74c6349\u002F1:1\u002Fw_640,c_limit\u002FBasically_Skillet-Large-Straight-Sided_FINAL.jpg", srcset: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a71f59996525e37e74c6349\u002F1:1\u002Fw_120,c_limit\u002FBasically_Skillet-Large-Straight-Sided_FINAL.jpg 120w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a71f59996525e37e74c6349\u002F1:1\u002Fw_240,c_limit\u002FBasically_Skillet-Large-Straight-Sided_FINAL.jpg 240w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a71f59996525e37e74c6349\u002F1:1\u002Fw_320,c_limit\u002FBasically_Skillet-Large-Straight-Sided_FINAL.jpg 320w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F5a71f59996525e37e74c6349\u002F1:1\u002Fw_640,c_limit\u002FBasically_Skillet-Large-Straight-Sided_FINAL.jpg 640w",},},},},],}, socialMedia:{showBookmark: false, links: [{network: "email", url: "mailto:?subject=Nutty%20Umami%20Noodles%20With%20Scallion%20Brown%20Butter%20and%20Snow%20Peas&body=https%3A%2F%2Fwww.bonappetit.com%2Frecipe%2Fnutty-umami-noodles-with-scallion-brown-butter-and-snow-peas%3Futm_source%3Donsite-share%26utm_medium%3Demail%26utm_campaign%3Donsite-share%26utm_brand%3Dbon-appetit", label: "Share via Email",},{network: "pinterest", url: "https:\u002F\u002Fwww.pinterest.com\u002Fpin\u002Fcreate\u002Fbutton\u002F?url=https%3A%2F%2Fwww.bonappetit.com%2Frecipe%2Fnutty-umami-noodles-with-scallion-brown-butter-and-snow-peas%3Futm_source%3Dpinterest%26utm_medium%3Dsocial%26utm_campaign%3Donsite-share%26utm_brand%3Dbon-appetit%26utm_social-type%3Dearned&media=https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F625def3e989fa4e14e8195db\u002F1:1\u002Fw_360,c_limit\u002F0418-snow-pea-noodles-lede.jpg", label: "Share on Pinterest",},{network: "print", behavior: "print", label: "Print", url: "#",},],}, tagCloud:{tags: [{id: "5b9681817995142c3c3abd14", tag: "Dinner", url: "\u002Fmeal-time\u002Fdinner",},{id: "61fbdf8c91c05315a4e02134", tag: "Main", url: "\u002Fmeal\u002Fmain",},{id: "5b9681892e0d82381a2377e6", tag: "Vegetarian", url: "\u002Fdiet\u002Fvegetarian",},{id: "5b9681988ebd2b24ac2d3e02", tag: "Easy", url: "\u002Fsimple-cooking\u002Feasy",},{id: "5b9681a2bd84752d89a7cf81", tag: "Quick", url: "\u002Fsimple-cooking\u002Fquick",},{id: "61fbdac6b7fba5e3be0da686", tag: "Weeknight Meals", url: "\u002Fsimple-cooking\u002Fweeknight-meals",},{id: "61fbcab6d1e92c476ce28cc4", tag: "Sauté", url: "\u002Fcooking-method\u002Fsaute",},{id: "5b9681973d923e31d08fedc1", tag: "Pea", url: "\u002Fingredient\u002Fpea",},{id: "5b9681804afc173e7f1ebf09", tag: "Vegetable", url: "\u002Fingredient\u002Fvegetable",},{id: "5b9681827995142c3c3abd15", tag: "Noodle", url: "\u002Fingredient\u002Fnoodle",},{id: "61fb995dbccddc8831922102", tag: "Pasta & Noodles", url: "\u002Fingredient\u002Fpasta-noodles",},{id: "61fba0d1bb40748ef6bbe211", tag: "Udon Noodle", url: "\u002Fingredient\u002Fudon-noodle",},{id: "61fba0b1bccddc8831922104", tag: "Ramen Noodle", url: "\u002Fingredient\u002Framen-noodle",},],}, reviewFormSignInURL: "\u002Fauth\u002Finitiate?redirectURL=%2Frecipe%2Fnutty-umami-noodles-with-scallion-brown-butter-and-snow-peas%23leave-a-review&source=BA_REVIEW_MODULE", prepNotes: "", prepNotesHed: "",}, related: [], recaptcha:{recaptchaSiteKey: "6Le657YZAAAAAFAy278qlWh67QyzPIfMrFbNxcfi",}, "head.ampUrl": "https:\u002F\u002Fwww.bonappetit.com\u002Frecipe\u002Fnutty-umami-noodles-with-scallion-brown-butter-and-snow-peas\u002Famp", featuredInCarouselData:{items: [{contentType: "article", dangerousDek: "Its just two ingredients that you probably already have.", dangerousHed: "This Brown ButterOyster Sauce Is the Umami Powerhouse to Put On Everything", image:{altText: "Close up of brown butter noodles with oyster sauce. ", caption: "", contentType: "photo", credit: "", id: "62607379d5acc8338f68146f", sources:{sm:{aspectRatio: "3:4", width: 720, url: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F62607379d5acc8338f68146f\u002F3:4\u002Fw_720,c_limit\u002F0420-brown-butter-oyster-sauce.jpg", srcset: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F62607379d5acc8338f68146f\u002F3:4\u002Fw_120,c_limit\u002F0420-brown-butter-oyster-sauce.jpg 120w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F62607379d5acc8338f68146f\u002F3:4\u002Fw_240,c_limit\u002F0420-brown-butter-oyster-sauce.jpg 240w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F62607379d5acc8338f68146f\u002F3:4\u002Fw_320,c_limit\u002F0420-brown-butter-oyster-sauce.jpg 320w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F62607379d5acc8338f68146f\u002F3:4\u002Fw_640,c_limit\u002F0420-brown-butter-oyster-sauce.jpg 640w",}, md:{aspectRatio: "3:4", width: 720, url: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F62607379d5acc8338f68146f\u002F3:4\u002Fw_720,c_limit\u002F0420-brown-butter-oyster-sauce.jpg", srcset: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F62607379d5acc8338f68146f\u002F3:4\u002Fw_120,c_limit\u002F0420-brown-butter-oyster-sauce.jpg 120w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F62607379d5acc8338f68146f\u002F3:4\u002Fw_240,c_limit\u002F0420-brown-butter-oyster-sauce.jpg 240w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F62607379d5acc8338f68146f\u002F3:4\u002Fw_320,c_limit\u002F0420-brown-butter-oyster-sauce.jpg 320w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F62607379d5acc8338f68146f\u002F3:4\u002Fw_640,c_limit\u002F0420-brown-butter-oyster-sauce.jpg 640w",}, lg:{aspectRatio: "3:4", width: 748, url: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F62607379d5acc8338f68146f\u002F3:4\u002Fw_748,c_limit\u002F0420-brown-butter-oyster-sauce.jpg", srcset: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F62607379d5acc8338f68146f\u002F3:4\u002Fw_120,c_limit\u002F0420-brown-butter-oyster-sauce.jpg 120w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F62607379d5acc8338f68146f\u002F3:4\u002Fw_240,c_limit\u002F0420-brown-butter-oyster-sauce.jpg 240w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F62607379d5acc8338f68146f\u002F3:4\u002Fw_320,c_limit\u002F0420-brown-butter-oyster-sauce.jpg 320w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F62607379d5acc8338f68146f\u002F3:4\u002Fw_640,c_limit\u002F0420-brown-butter-oyster-sauce.jpg 640w",}, xl:{aspectRatio: "3:4", width: 748, url: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F62607379d5acc8338f68146f\u002F3:4\u002Fw_748,c_limit\u002F0420-brown-butter-oyster-sauce.jpg", srcset: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F62607379d5acc8338f68146f\u002F3:4\u002Fw_120,c_limit\u002F0420-brown-butter-oyster-sauce.jpg 120w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F62607379d5acc8338f68146f\u002F3:4\u002Fw_240,c_limit\u002F0420-brown-butter-oyster-sauce.jpg 240w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F62607379d5acc8338f68146f\u002F3:4\u002Fw_320,c_limit\u002F0420-brown-butter-oyster-sauce.jpg 320w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F62607379d5acc8338f68146f\u002F3:4\u002Fw_640,c_limit\u002F0420-brown-butter-oyster-sauce.jpg 640w",},}, segmentedSources:{sm: [{aspectRatio: "3:4", width: 720, url: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F62607379d5acc8338f68146f\u002F3:4\u002Fw_720,c_limit\u002F0420-brown-butter-oyster-sauce.jpg", srcset: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F62607379d5acc8338f68146f\u002F3:4\u002Fw_120,c_limit\u002F0420-brown-butter-oyster-sauce.jpg 120w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F62607379d5acc8338f68146f\u002F3:4\u002Fw_240,c_limit\u002F0420-brown-butter-oyster-sauce.jpg 240w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F62607379d5acc8338f68146f\u002F3:4\u002Fw_320,c_limit\u002F0420-brown-butter-oyster-sauce.jpg 320w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F62607379d5acc8338f68146f\u002F3:4\u002Fw_640,c_limit\u002F0420-brown-butter-oyster-sauce.jpg 640w",},], lg: [{aspectRatio: "3:4", width: 748, url: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F62607379d5acc8338f68146f\u002F3:4\u002Fw_748,c_limit\u002F0420-brown-butter-oyster-sauce.jpg", srcset: "https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F62607379d5acc8338f68146f\u002F3:4\u002Fw_120,c_limit\u002F0420-brown-butter-oyster-sauce.jpg 120w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F62607379d5acc8338f68146f\u002F3:4\u002Fw_240,c_limit\u002F0420-brown-butter-oyster-sauce.jpg 240w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F62607379d5acc8338f68146f\u002F3:4\u002Fw_320,c_limit\u002F0420-brown-butter-oyster-sauce.jpg 320w, https:\u002F\u002Fassets.bonappetit.com\u002Fphotos\u002F62607379d5acc8338f68146f\u002F3:4\u002Fw_640,c_limit\u002F0420-brown-butter-oyster-sauce.jpg 640w",},],},}, url: "https:\u002F\u002Fwww.bonappetit.com\u002Fstory\u002Fhow-to-make-brown-butter-oyster-sauce",},],}, outbrain:{shouldDisplayAboveRecircList: false, template: "Bonappetit", widgetId: "AR_16", canonicalUrl: "https:\u002F\u002Fwww.bonappetit.com\u002Frecipe\u002Fnutty-umami-noodles-with-scallion-brown-butter-and-snow-peas",}, shopifyConfiguration:{},}, locale: "en-US", env: "production",}; </script> <script type="text/javascript">window.dataLayer=[{event: "data-layer-loaded", content:{authorIds: "5fd005c78ea326cd2802eb56", authorNames: "Zaynab Issa", brand: "Bon Appétit", brandSlug: "bon-appetit", contentId: "625eb968d2dd9946d391d0e8", contentLength: "all", contentLang: "en-US", contentSource: "web", contentType: "recipe", contentTitle: "Nutty Umami Noodles With Scallion Brown Butter and Snow Peas", coralCommentsStatus: "disabled", dataSource: "web", editorNames: "Epi Web Services", embeddedMedia: "product-carousel_bottom", functionalTags: "", hasBuyButtons: "false", modifiedDate: "2022-04-21T15:29:05.087Z", noOfRevisions: "19", pageValue: "all", publishDate: "2022-04-21T15:29:05.087Z", section: "recipes", subsection: "", subsection2: "", tags: "recipes|dinner|main|vegetarian|easy|quick|weeknight meals|sauté|pea|noodle|udon noodle|ramen noodle", wordCount: "", totalGalleryImages: "0", templateType: "mt_recipe", paywallStatus: "not paywalled",}, marketing:{brand: "Bon Appétit"}, page:{syndicatorUrl: "", canonical: "https:\u002F\u002Fwww.bonappetit.com\u002Frecipe\u002Fnutty-umami-noodles-with-scallion-brown-butter-and-snow-peas",}, search:{}, site:{orgId: "4gKgcFFoYyWqtAJpQGvhXSjiGT5R", orgAppId: "a61a3c7a-01d9-4175-8ab8-7171949de605", appVersion: "multi-tenant", env: "production",}, syndication:{content: "false", originalSource: ""},},]; </script> <script defer="" type="text/javascript" src="./Nutty Umami Noodles With Scallion Brown Butter and Snow Peas Recipe _ Bon Appétit_files/polyfill.min.js" ></script> <script defer="" type="text/javascript" src="./Nutty Umami Noodles With Scallion Brown Butter and Snow Peas Recipe _ Bon Appétit_files/chunk.vendors_presenter-account-bookmarks_presenter-account-linking_presenter-account-sign-in-help_present_ed568e70.28870d02f55274ffec34.js" ></script> <script defer="" type="text/javascript" src="./Nutty Umami Noodles With Scallion Brown Butter and Snow Peas Recipe _ Bon Appétit_files/chunk.vendors_presenter-account-bookmarks_presenter-account-linking_presenter-account-sign-in-help_present_c3d18dd1.1666a8fdc889f33601cb.js" ></script> <script defer="" type="text/javascript" src="./Nutty Umami Noodles With Scallion Brown Butter and Snow Peas Recipe _ Bon Appétit_files/presenter-recipes.a6d87ed4c0ab5dcee9d9.js" ></script> <script></script> <script id="esi-1"> window.CN_STACK_TEMP="verso"; </script> <script id="cns-config-include"> window.cns=window.cns ||{}; window.cns.config={config:{ad_unit:{generate_path: 'function (opts){return opts.network + "/" + opts.suffix + "/" + opts.position + "/" + opts.category + "/" + opts.contentType + "/" + opts.instance;}',}, request_vp_range:{_default:{desktop: 100, tablet: 150, mobile: 200},}, domain: "bonappetit.com", network: 3379, slot:{__auid_one: "bonapp", sets:{_default: [], mt_recipe: [ "_out_of_page", "hero", "rail", "mid_content", "footer", "read_more",], mt_recipe_one_column: [ "_out_of_page", "hero", "footer", "sponsor",], mt_article: [ "_out_of_page", "hero", "rail", "mid_content", "mid_gallery", "footer", "in_content", "read_more",], mt_article_two_column: [ "_out_of_page", "hero", "rail", "mid_content", "mid_gallery", "footer", "in_content", "aside", "read_more",], mt_article_override: [ "_out_of_page", "hero", "rail", "mid_content", "mid_gallery", "footer",], mt_contributor: [ "_out_of_page", "hero", "rail", "mid_content", "footer",], mt_gallery: [ "_out_of_page", "hero", "rail", "mid_content", "footer", "in_content", "aside", "read_more", "sponsor_gallery_unit", "sponsor_product",], mt_gallery_one_column: [ "_out_of_page", "hero", "mid_content", "footer", "in_content", "read_more", "sponsor_gallery_unit", "sponsor_product",], mt_homepage: [ "_out_of_page", "hero", "rail", "mid_content", "footer", "promo",], mt_channel: [ "_out_of_page", "hero", "rail", "mid_content", "footer", "promo",], mt_nativearticle: [ "_out_of_page", "hero", "rail", "mid_content", "mid_gallery", "footer", "sponsor",], mt_nativearticle_two_column: [ "_out_of_page", "hero", "rail", "mid_content", "mid_gallery", "footer", "sponsor",], mt_nativegallery: [ "_out_of_page", "hero", "rail", "mid_content", "footer", "sponsor",], mt_native_bundle: [ "_out_of_page", "hero", "rail", "mid_content", "footer", "sponsor",], mt_nativerecipe: [ "_out_of_page", "hero", "rail", "footer", "sponsor",], mt_nativerecipe_one_column: [ "_out_of_page", "hero", "footer", "sponsor",], mt_search: [ "_out_of_page", "hero", "rail", "mid_content", "footer",], mt_livestory: [ "_out_of_page", "hero", "rail", "mid_content", "footer",],}, types:{_out_of_page:{_default:{suffix: "conde.bonapp", render:{slot:{top: ".ad__slot--out-of-page"}}, position: "interstitial", refresh: 0, isOutOfPage: true, can_be_hidden: true,},}, hero:{_default:{suffix: "conde.bonapp", render:{slot:{top: ".ad__slot--hero"}}, position: "hero", static_refresh_size: true, sizes:{desktop: ["728x90", "970x250", "970x90", "9x1", "10x1"], tablet: ["728x90", "9x1", "8x1"], mobile: ["300x50", "320x50", "9x1", "3x1"],},}, mt_article:{can_be_hidden: true, is_sticky: true}, mt_gallery:{can_be_hidden: true, is_sticky: true}, mt_article_two_column:{can_be_hidden: true, is_sticky: true}, mt_gallery_one_column:{can_be_hidden: true, is_sticky: true},}, rail:{_default:{suffix: "conde.bonapp", render:{slot:{top: ".ad__slot--rail"}}, position: "rail", sizes:{desktop: ["300x250", "300x600"], tablet: ["300x250", "300x600"], mobile: false,},},}, mid_content:{_default:{suffix: "conde.bonapp", render:{slot:{top: ".ad__slot--mid-content"}}, position: "mid-content", static_refresh_size: true, sizes:{desktop: [ "728x90", "970x250", "970x90", "9x1", "4x1", "2x1",], tablet: ["728x90", "9x1", "4x1", "2x1"], mobile: [ "300x50", "300x250", "320x50", "9x1", "16x9", "2x1",],},},}, mid_gallery:{_default:{suffix: "conde.bonapp", render:{slot:{top: ".ad__slot--mid-gallery"}}, position: "mid-gallery", sizes:{desktop: ["300x250"], tablet: ["300x250"], mobile: ["300x250"],},},}, footer:{_default:{suffix: "conde.bonapp", render:{slot:{top: ".ad__slot--footer"}}, position: "footer", sizes:{desktop: ["728x90", "970x250", "970x90", "9x1", "4x1"], tablet: ["728x90", "9x1", "4x1"], mobile: ["300x50", "320x50", "9x1", "16x9"],}, request_vp_range:{desktop: 50, tablet: 50, mobile: 100},},}, sponsor:{_default:{suffix: "conde.bonapp", render:{slot:{bottom: ".ad__slot--out-of-page"}}, position: "sponsor", refresh: 0, isOutOfPage: true, can_be_hidden: true,},}, aside:{_default:{suffix: "conde.bonapp.native", render:{slot:{top: ".ad__slot--aside"}}, position: "aside", can_be_hidden: true, refresh: 0, sizes:{desktop: ["fluid"], tablet: false, mobile: false},},}, in_content:{_default:{suffix: "conde.bonapp.native", render:{slot:{top: ".ad__slot--in-content"}}, position: "in-content", can_be_hidden: true, refresh: 0, sizes:{desktop: ["fluid"], tablet: ["fluid"], mobile: ["fluid"],},},}, promo:{_default:{suffix: "conde.bonapp.native", render:{slot:{top: ".ad__slot--promo"}}, position: "promo", refresh: 0, can_be_hidden: true, sizes:{desktop: ["fluid"], tablet: ["fluid"], mobile: ["fluid"],},},}, read_more:{_default:{suffix: "conde.bonapp.native", render:{slot:{bottom: ".ad__slot--read-more"}}, position: "read-more", refresh: 0, can_be_hidden: true, sizes:{desktop: ["fluid"], tablet: ["fluid"], mobile: ["fluid"],},},}, sponsor_gallery_unit:{_default:{suffix: "conde.bonapp", render:{slot:{top: ".page--gallery .ad--out-of-page"}}, position: "sponsor", refresh: 0, can_be_hidden: true, sizes:{desktop: ["9x11"], tablet: ["9x11"], mobile: ["9x11"],},},}, sponsor_product:{_default:{suffix: "conde.bonapp.native", render:{slot:{top: ".ad__slot--sponsor-product"}}, position: "sponsor-product", refresh: 0, can_be_hidden: true, sizes:{desktop: ["fluid"], tablet: ["fluid"], mobile: ["fluid"],},},},},},}, plugins:{amazon_match_buy:{enabled: true}, prebid:{enabled: true}, aam:{enabled: true}, proximic:{enabled: true}, "4d":{xid_pixels: true}, lr:{pid: "1410"},}, buildDate: "2022-04-22T19:27:11.107Z",}; </script> <script id="cns-footer-include"> (function (){"use strict"; var commonjsGlobal="undefined" !=typeof globalThis ? globalThis : "undefined" !=typeof window ? window : "undefined" !=typeof global ? global : "undefined" !=typeof self ? self :{}, usertiming={exports:{}}, module; function pathToArray(e){return e.split ? e.split(".") : e;}function get$1(e, t){t=pathToArray(t); for (let n=0; e && n < t.length; n++) e=e[t[n]]; return e;}function set$2(e, t, n){const r=(t=pathToArray(t)).length - 1, o=t[r]; for (let n=0; n < r; n++){const o=t[n]; !e[o] && n < r && (e[o]={}), (e=e[t[n]]);}return{oldValue: e && e[o], newValue: e && (e[o]=n)};}function pick(e, t){const n={}; return ( t.forEach((t)=>{const r=get$1(e, t); r && set$2(n, t, r);}), n );}function ownKeys$2(e, t){var n=Object.keys(e); if (Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e); t && (r=r.filter(function (t){return Object.getOwnPropertyDescriptor(e, t).enumerable;})), n.push.apply(n, r);}return n;}function _objectSpread2(e){for (var t=1; t < arguments.length; t++){var n=null !=arguments[t] ? arguments[t] :{}; t % 2 ? ownKeys$2(Object(n), !0).forEach(function (t){_defineProperty(e, t, n[t]);}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : ownKeys$2(Object(n)).forEach(function (t){Object.defineProperty( e, t, Object.getOwnPropertyDescriptor(n, t) );});}return e;}function _defineProperty(e, t, n){return ( t in e ? Object.defineProperty(e, t,{value: n, enumerable: !0, configurable: !0, writable: !0,}) : (e[t]=n), e );}(module=usertiming), (function (e){void 0===e && (e={}), void 0===e.performance && (e.performance={}), (e._perfRefForUserTimingPolyfill=e.performance), (e.performance.userTimingJsNow=!1), (e.performance.userTimingJsNowPrefixed=!1), (e.performance.userTimingJsUserTiming=!1), (e.performance.userTimingJsUserTimingPrefixed=!1), (e.performance.userTimingJsPerformanceTimeline=!1), (e.performance.userTimingJsPerformanceTimelinePrefixed=!1); var t, n, r=[], o=[], i=null; if ("function" !=typeof e.performance.now){for ( e.performance.userTimingJsNow=!0, o=["webkitNow", "msNow", "mozNow"], t=0; t < o.length; t++ ) if ("function"==typeof e.performance[o[t]]){(e.performance.now=e.performance[o[t]]), (e.performance.userTimingJsNowPrefixed=!0); break;}var s=+new Date(); e.performance.timing && e.performance.timing.navigationStart ? (s=e.performance.timing.navigationStart) : "undefined" !=typeof process && "function"==typeof process.hrtime && ((s=process.hrtime()), (e.performance.now=function (){var e=process.hrtime(s); return 1e3 * e[0] + 1e-6 * e[1];})), "function" !=typeof e.performance.now && (Date.now ? (e.performance.now=function (){return Date.now() - s;}) : (e.performance.now=function (){return +new Date() - s;}));}var a=function (){}, c=function (){}, l=[], u=!1, d=!1; if ( "function" !=typeof e.performance.getEntries || "function" !=typeof e.performance.mark ){for ( "function"==typeof e.performance.getEntries && "function" !=typeof e.performance.mark && (d=!0), e.performance.userTimingJsPerformanceTimeline=!0, r=["webkit", "moz"], o=["getEntries", "getEntriesByName", "getEntriesByType"], t=0; t < o.length; t++ ) for (n=0; n < r.length; n++) (i=r[n] + o[t].substr(0, 1).toUpperCase() + o[t].substr(1)), "function"==typeof e.performance[i] && ((e.performance[o[t]]=e.performance[i]), (e.performance.userTimingJsPerformanceTimelinePrefixed=!0)); a=function (e){l.push(e), "measure"===e.entryType && (u=!0);}; var g=function (){u && (l.sort(function (e, t){return e.startTime - t.startTime;}), (u=!1));}; if ( ((c=function (e, n){for (t=0; t < l.length; ) l[t].entryType !==e || (void 0 !==n && l[t].name !==n) ? t++ : l.splice(t, 1);}), "function" !=typeof e.performance.getEntries || d) ){var f=e.performance.getEntries; e.performance.getEntries=function (){g(); var t=l.slice(0); return ( d && f && (Array.prototype.push.apply(t, f.call(e.performance)), t.sort(function (e, t){return e.startTime - t.startTime;})), t );};}if ("function" !=typeof e.performance.getEntriesByType || d){var p=e.performance.getEntriesByType; e.performance.getEntriesByType=function (n){if (void 0===n || ("mark" !==n && "measure" !==n)) return d && p ? p.call(e.performance, n) : []; "measure"===n && g(); var r=[]; for (t=0; t < l.length; t++) l[t].entryType===n && r.push(l[t]); return r;};}if ("function" !=typeof e.performance.getEntriesByName || d){var m=e.performance.getEntriesByName; e.performance.getEntriesByName=function (n, r){if (r && "mark" !==r && "measure" !==r) return d && m ? m.call(e.performance, n, r) : []; void 0 !==r && "measure"===r && g(); var o=[]; for (t=0; t < l.length; t++) (void 0 !==r && l[t].entryType !==r) || (l[t].name===n && o.push(l[t])); return ( d && m && (Array.prototype.push.apply( o, m.call(e.performance, n, r) ), o.sort(function (e, t){return e.startTime - t.startTime;})), o );};}}if ("function" !=typeof e.performance.mark){for ( e.performance.userTimingJsUserTiming=!0, r=["webkit", "moz", "ms"], o=["mark", "measure", "clearMarks", "clearMeasures"], t=0; t < o.length; t++ ) for (n=0; n < r.length; n++) (i=r[n] + o[t].substr(0, 1).toUpperCase() + o[t].substr(1)), "function"==typeof e.performance[i] && ((e.performance[o[t]]=e.performance[i]), (e.performance.userTimingJsUserTimingPrefixed=!0)); var y={}; "function" !=typeof e.performance.mark && (e.performance.mark=function (t){var n=e.performance.now(); if (void 0===t) throw new SyntaxError("Mark name must be specified"); if (e.performance.timing && t in e.performance.timing) throw new SyntaxError("Mark name is not allowed"); y[t] || (y[t]=[]), y[t].push(n), a({entryType: "mark", name: t, startTime: n, duration: 0,});}), "function" !=typeof e.performance.clearMarks && (e.performance.clearMarks=function (e){e ? (y[e]=[]) : (y={}), c("mark", e);}), "function" !=typeof e.performance.measure && (e.performance.measure=function (t, n, r){var o=e.performance.now(); if (void 0===t) throw new SyntaxError("Measure must be specified"); if (n){var i=0; if (e.performance.timing && n in e.performance.timing){if ( "navigationStart" !==n && 0===e.performance.timing[n] ) throw new Error(n + " has a timing of 0"); i=e.performance.timing[n] - e.performance.timing.navigationStart;}else{if (!(n in y)) throw new Error(n + " mark not found"); i=y[n][y[n].length - 1];}var s=o; if (r) if ( ((s=0), e.performance.timing && r in e.performance.timing) ){if ( "navigationStart" !==r && 0===e.performance.timing[r] ) throw new Error(r + " has a timing of 0"); s=e.performance.timing[r] - e.performance.timing.navigationStart;}else{if (!(r in y)) throw new Error(r + " mark not found"); s=y[r][y[r].length - 1];}a({entryType: "measure", name: t, startTime: i, duration: s - i,});}else a({entryType: "measure", name: t, startTime: 0, duration: o,});}), "function" !=typeof e.performance.clearMeasures && (e.performance.clearMeasures=function (e){c("measure", e);});}module.exports=e.performance;})("undefined" !=typeof window ? window : void 0); const prefix="ads."; function emitEvent(e, t, n){window.cnBus.emit(prefix + t + "." + e, n);}const levels={debug: emitEvent.bind(null, "debug"), info: emitEvent.bind(null, "info"), warn: emitEvent.bind(null, "warn"), error: emitEvent.bind(null, "error"),}, debug$1=levels.debug, error$1=levels.error, warn=levels.warn, styling={debug: "color:darkgreen", info: "color:darkblue"}; function EventEmitter(e){return Object.keys(levels).reduce( (t, n)=> ((t[n]=(t, r)=> levels[n](e + "." + t, r)), t),{});}function addStyling(e, t){styling[e] && (t[1] && (t[2]=t[1]), (t[0]="%c" + t[0]), (t[1]=styling[e]));}function render(e, t){let n=t.topic; const r=n.split("."), o=r[r.length - 1], i=console[o], s=[n]; e && s.push(e), addStyling(o, s), i.apply(console, s);}function addDefaultSubscriptions(e, t){t && e.on("ads.#.debug", render), e.on("ads.#.info", render), e.on("ads.#.warn", render), e.on("ads.#.error", render);}function handlePromiseError(e){return (t)=> emitEvent("error", e, t);}_objectSpread2( _objectSpread2({emitEvent: emitEvent, EventEmitter: EventEmitter, handlePromiseError: handlePromiseError,}, levels ),{},{addDefaultSubscriptions: addDefaultSubscriptions}); const minInterval=50; function deprecated(e){let t=arguments.length > 1 && void 0 !==arguments[1] ? arguments[1] : "unnamed"; return function (){warn(`function ${t}is deprecated`); for (var n=arguments.length, r=new Array(n), o=0; o < n; o++) r[o]=arguments[o]; return e.apply(null, r);};}function til(e, t, n){let r; n=Math.max(n || minInterval, minInterval); try{if (((r=e()), r)) try{return t();}catch (e){error$1("til", e);}}catch (e){}setTimeout(til.bind(null, e, t, n), n);}function find$1(e, t){for (let n=0; n < e.length; n++) if (t(e[n])) return e[n];}function any(e, t){return !!find$1(e, t);}function all(e, t){for (let n=0; n < e.length; n++) if (!t(e[n])) return !1; return !0;}function uniq(e){return Array.from(new Set(e));}function difference(e, t){return e.filter((e)=> -1===t.indexOf(e));}function applyTargeting(e, t){Object.keys(t).forEach((n)=> e.setTargeting(n, t[n]));}const isValidCreativeSize=(e)=> !!e && Array.isArray(e) && 2===e.length, isSpacerCreative=(e)=>{let t=e.size; return ( !e.isEmpty && isValidCreativeSize(t) && 1===t[0] && 1===t[1] );}; function shouldSetSlotSize(e, t, n){return ( n.hasStaticRefreshSize && !t && isValidCreativeSize(e) && !isSpacerCreative({size: e, isEmpty: t}) );}function setSlotSize(e, t, n){t.defineSizeMapping(e.sizeMapping().addSize([0, 0], n).build());}function getSizeStringAsArray(e){return "fluid"===e ? e : e.split("x").map((e)=> parseInt(e, 10));}function sizesToArray(e){return e ? e.map(getSizeStringAsArray) : [];}function getSlotById(e){return find$1( window.googletag.pubads().getSlots(), (t)=> t.getSlotElementId()===e );}function getPositionFromSlot(e){return ( e.getTargeting("pos")[0] || e.getTargeting("slot_position")[0] || "" );}function getSizeFromSlotRenderEnded(e){const t=e.size; return Array.isArray(t) && 2===t.length ? `${t[0]}x${t[1]}` : "string"==typeof t ? t : "";}function getSizesFromSlot$1(e){return e .getSizes() .map((e)=> ("string"==typeof e ? e : `${e.width}x${e.height}`));}function isSizeOverride(e, t){return "0x0" !==e && !getSizesFromSlot$1(t).includes(e);}var fastdom$1={exports:{}}; !(function (e){!(function (t){var n=t.requestAnimationFrame || t.webkitRequestAnimationFrame || t.mozRequestAnimationFrame || t.msRequestAnimationFrame || function (e){return setTimeout(e, 16);}; function r(){var e=this; (e.reads=[]), (e.writes=[]), (e.raf=n.bind(t));}function o(e){e.scheduled || ((e.scheduled=!0), e.raf(i.bind(null, e)));}function i(e){var t, n=e.writes, r=e.reads; try{r.length, s(r), n.length, s(n);}catch (e){t=e;}if (((e.scheduled=!1), (r.length || n.length) && o(e), t)){if (!e.catch) throw t; e.catch(t);}}function s(e){for (var t; (t=e.shift()); ) t();}function a(e, t){var n=e.indexOf(t); return !!~n && !!e.splice(n, 1);}r.prototype={constructor: r, measure: function (e, t){var n=t ? e.bind(t) : e; return this.reads.push(n), o(this), n;}, mutate: function (e, t){var n=t ? e.bind(t) : e; return this.writes.push(n), o(this), n;}, clear: function (e){return a(this.reads, e) || a(this.writes, e);}, extend: function (e){if ("object" !=typeof e) throw new Error("expected object"); var t=Object.create(this); return ( (function (e, t){for (var n in t) t.hasOwnProperty(n) && (e[n]=t[n]);})(t, e), (t.fastdom=this), t.initialize && t.initialize(), t );}, catch: null,}; var c=(t.fastdom=t.fastdom || new r()); e.exports=c;})("undefined" !=typeof window ? window : commonjsGlobal);})(fastdom$1); var fastdom=fastdom$1.exports; function domCall(e, t, n){return n || ((n=e), (e=document)), e[t](n);}function getElementById(e, t){return domCall(e, "getElementById", t);}function find(e, t){return domCall(e, "querySelector", t);}function findAll(e, t){return Array.prototype.slice.call(domCall(e, "querySelectorAll", t));}function setStyle(e, t){let n=Object.keys(t); for (let r=0; r < n.length; r++){const o=n[r]; e.style[o]=t[o];}}function addClasses(e, t){const n=Object.keys(t); for (let r=0; r < n.length; r++) e.classList.add(t[n[r]]);}function setElementData(e, t){const n=Object.keys(t); for (let r=0; r < n.length; r++){const o=n[r]; e.setAttribute("data-" + o, t[o]);}}function createElement$1(e, t){const n=document.createElement(e); return ( t && Object.keys(t).forEach((e)=>{n[e]=t[e];}), n );}const defaultStyles='.cns-ads-stage{margin: 0 auto;padding: 0;position: relative;width: 100%;z-index: 1;}[data-slot-type="_out_of_page"]{position: absolute;z-index: -1;}.cns-ads-flex-sizer{display: none;}', flexStyles='.cns-ads-stage.cns-ads-flex{display: block;position: relative;}.cns-ads-flex .cns-ads-flex-sizer{display: block;width: 100%;}.cns-ads-flex .cns-ads-container,.cns-ads-flex iframe[id^="google_ads_iframe"],.cns-ads-flex div[id*="google_ads_iframe"]{position: absolute;left: 0;top: 0;right: 0;bottom: 0;height: 100% !important;width: 100% !important;}.full-screen .cns-ads-container,.full-screen iframe[id^="google_ads_iframe"],.full-screen div[id*="google_ads_iframe"]{height: 100vh !important;width: 100vw !important;}', versoStyles='iframe[id^="google_ads_iframe"],div[id*="google_ads_iframe"]{margin: 0 auto;padding: 0;}.cns-ads-slot-size-9x1 iframe[id^="google_ads_iframe"],.cns-ads-slot-size-9x1 div[id*="google_ads_iframe"]{height: 0;width: 100%;min-width: 100%;}', legacyStyles='iframe[id^="google_ads_iframe"],div[id*="google_ads_iframe"]{margin: 0 auto;padding: 0;height: 0;width: 100%;min-width: 100%;}', isCNSAdsSlotSizeClassRegex=new RegExp(/^cns-ads-slot-size-/); function ContainerStyler(e){const t=new EventEmitter("ContainerStyler").debug, n=["3x1", "4x1", "8x1", "10x1", "16x9"], r=["2x1"]; function o(e, t){setStyle(e,{height: `${t[1]}px`, minHeight: `${t[1]}px`, width: `${t[0]}px`, minWidth: `${t[0]}px`,});}function i(e, t){return e && 2===e.length && t.indexOf(`${e[0]}x${e[1]}`) > -1;}function s(e, t){const n=t.classList; n.remove("cns-ads-slot-state-filled"), n.add("cns-ads-slot-state-empty"), setStyle(e,{height: "0px", width: "0px", minWidth: "0px", minHeight: "0px",});}!(function (){const t=createElement$1("style"), n=t.styleSheet; t.classList.add("cns-ads-iframe-styles"), (t.type="text/css"); let r=defaultStyles + flexStyles; (r +=e ? versoStyles : legacyStyles), n ? (n.cssText=r) : t.appendChild(document.createTextNode(r)), fastdom.mutate(()=>{document.head.appendChild(t);});})(), (this.updateContainer=function (a, c){let l=c.isEmpty, u=c.size, d=c.slot; const g=a.parentNode; t("ContainerStyler",{container: a, stage: g, isEmpty: l, size: u, id: d.getSlotElementId(),}), (function (e){const t=e.classList; t.remove("cns-ads-slot-state-empty"); for (let e=0; e < t.length; e++) isCNSAdsSlotSizeClassRegex.test(t[e]) && t.remove(t[e]);})(g), l ? s(a, g) : ((function (e, t){addClasses(e, [ "cns-ads-slot-state-filled", `cns-ads-slot-size-${t && t[0] && t[1] && `${t[0]}x${t[1]}`}`,]);})(g, u), i(u, n) ? (function (e, t){const n=(parseFloat(e[1]) / parseFloat(e[0])) * 100, r=t.parentNode; r.classList.add("cns-ads-flex"), (r.querySelector( ".cns-ads-flex-sizer" ).style.paddingTop=`${n}%`);})(u, a) : i(u, r) && (function (e){e.parentNode.classList.add("full-screen");})(a), e || ((function (e){const t=["height", "width", "padding", "margin"]; e.forEach((e)=>{t.forEach((t)=>{e.removeAttribute(t);});});})([a, g]), (function (e){return 9===e[0];})(u) || (function (e, t, n){const r='[id^="google_ads_iframe"]:not([id$="to_be_removed__"]):not([id$="hidden__"])', i=find(t, `iframe${r}`), s=find(t, `div${r}`); o(e, n), o(i, n), o(s, n);})(a, g, u)));});}function getCookie(e, t){const n=(t=t || document.cookie).split(";"), r=RegExp("^\\s*" + e + "=\\s*(.*?)\\s*$"); for (let e=0; e < n.length; e++){const t=n[e].match(r); if (t) return t[1];}}const alphanumeric=new RegExp(/[^a-zA-Z0-9]/g), cookieKey="CN_xid", isValidLength=(e)=> e.length >=32 && e.length <=150; function getPPID(){const e=getCookie(cookieKey); if (!e) return !1; const t=e.replace(alphanumeric, ""); return isValidLength(t) && t;}function setPPID(e){const t=getPPID(); t && e.setPublisherProvidedId(t);}function updateCorrelatorInterval(){set$2(window, "cns.flags.shouldCorrelatorUpdate", !0); const e=setInterval(()=>{get$1(window, "cns.flags.shouldCorrelatorUpdate") ? get$1(window, "cns.config.config.useRoadblock") || window.googletag.pubads().updateCorrelator() : clearInterval(e);}, 3e4);}var version$1="6.57.1"; function addBoomerangVariable(e, t){e && t && ((window.BOOMR_mq=window.BOOMR_mq || []), window.BOOMR_mq.push(["addVar", e, t]));}function sendBoomerangAdLibraryInformation(){addBoomerangVariable("cnsLib", version$1);}function setPubadsReadyMetric(){performance.mark("GPT-Init");}function setAdsReadyMetric(){performance.mark("ATP-Init");}function setFirstRequestedMetric(){performance.mark("ATP-First-Request"), performance.measure( "ATP-Init-To-First-Request", "ATP-Init", "ATP-First-Request" );}function setFirstMoneyRequestedMetric(){performance.mark("ATP-First-Money-Request"), performance.measure( "ATP-Init-To-First-Money-Request", "ATP-Init", "ATP-First-Money-Request" );}function setFirstImpressionMetric(){performance.mark("ATP-First-Impression"), performance.measure( "ATP-Init-To-First-Impression", "ATP-Init", "ATP-First-Impression" );}function setFirstMoneyImpressionMetric(){performance.mark("ATP-First-Money-Impression"), performance.measure( "ATP-Init-To-First-Money-Impression", "ATP-Init", "ATP-First-Money-Impression" );}function setFirstViewableMetric(){performance.mark("ATP-First-Viewable-Impression"), performance.measure( "ATP-Init-To-Viewable-Impression", "ATP-Init", "ATP-First-Viewable-Impression" );}function setFirstMoneyViewableMetric(){performance.mark("ATP-First-Money-Viewable-Impression"), performance.measure( "ATP-Init-To-Money-Viewable-Impression", "ATP-Init", "ATP-First-Money-Viewable-Impression" );}function setFirstPrebidAuction(){performance.mark("ATP-First-Prebid-Auction"), performance.measure( "ATP-Init-To-First-Prebid-Auction", "ATP-Init", "ATP-First-Prebid-Auction" );}function setFirstA9Auction(){performance.mark("ATP-First-A9-Auction"), performance.measure( "ATP-Init-To-First-A9-Auction", "ATP-Init", "ATP-First-A9-Auction" );}function setFirstOnLoad(){performance.mark("V2-ATP-First-On-Load"), performance.measure( "ATP-Init-To-First-On-Load", "ATP-Init", "V2-ATP-First-On-Load" );}function setFirstMoneyOnLoad(){performance.mark("V2-ATP-First-Money-On-Load"), performance.measure( "ATP-Init-To-First-Money-On-Load", "ATP-Init", "V2-ATP-First-Money-On-Load" );}function setFirstRenderEndedMetric(){performance.mark("V2-ATP-First-Render-Ended"), performance.measure( "ATP-Init-To-First-Render-Ended", "ATP-Init", "V2-ATP-First-Render-Ended" );}function setFirstMoneyRenderEndedMetric(){performance.mark("V2-ATP-First-Money-Render-Ended"), performance.measure( "ATP-Init-To-First-Money-Render-Ended", "ATP-Init", "V2-ATP-First-Money-Render-Ended" );}function setFirstRequestedV2Metric(){performance.mark("V2-ATP-First-Request"), performance.measure( "V2-ATP-Init-To-First-Request", "ATP-Init", "V2-ATP-First-Request" );}function setFirstMoneyRequestedV2Metric(){performance.mark("V2-ATP-First-Money-Request"), performance.measure( "V2-ATP-Init-To-First-Money-Request", "ATP-Init", "V2-ATP-First-Money-Request" );}function setFirstResponseReceivedMetric(){performance.mark("V2-ATP-First-Response-Received"), performance.measure( "ATP-Init-To-First-Response-Received", "ATP-Init", "V2-ATP-First-Response-Received" );}function setFirstMoneyResponseReceivedMetric(){performance.mark("V2-ATP-First-Money-Response-Received"), performance.measure( "ATP-Init-To-First-Money-Response-Received", "ATP-Init", "V2-ATP-First-Money-Response-Received" );}function setMoatLoad(){performance.mark("ATP-Moat-Load"), performance.measure( "ATP-Init-To-Moat-Load", "ATP-Init", "ATP-Moat-Load" );}const events={adsReady: setAdsReadyMetric, pubadsReady: setPubadsReadyMetric, firstRequested: setFirstRequestedMetric, firstRequestedV2: setFirstRequestedV2Metric, firstMoneyRequested: setFirstMoneyRequestedMetric, firstMoneyRequestedV2: setFirstMoneyRequestedV2Metric, firstImpression: setFirstImpressionMetric, firstMoneyImpression: setFirstMoneyImpressionMetric, firstImpressionViewable: setFirstViewableMetric, firstMoneyImpressionViewable: setFirstMoneyViewableMetric, firstPrebidAuction: setFirstPrebidAuction, firstA9Auction: setFirstA9Auction, firstOnload: setFirstOnLoad, firstMoneyOnload: setFirstMoneyOnLoad, firstRenderEnded: setFirstRenderEndedMetric, firstMoneyRenderEnded: setFirstMoneyRenderEndedMetric, firstResponseReceived: setFirstResponseReceivedMetric, firstMoneyResponseReceived: setFirstMoneyResponseReceivedMetric, moatLoad: setMoatLoad,}; function emitBoomPixel(e){events[e] ? events[e]() : error$1("boomerang-rum-collector.eventNotDefined");}function PubadsCollector(){const e={}, t={isFirstRequested: !1, isFirstMoneyRequested: !1, isFirstMoneyRequestedV2: !1, isFirstImpression: !1, isImpressionViewable: !1, isFirstResponseReceived: !1,}; let n=!0, r=!0, o=!0, i=!0, s=!0; function a(e, n, r, o){const i=n.slot, s=i.getOutOfPage(), a=i.getAdUnitPath().includes(".cm"), c=i.getAdUnitPath().includes(".native"), l=n.isEmpty; return ( s || a || l || c || (t[e]=t[e] ? t[e] : r + o), t[e] && t[e]===r + o );}(this.emitReady=function (){emitBoomPixel("pubadsReady");}), (this.onSlotRenderEnded=function (t){const r=t.slot.getSlotElementId(), o=e[r] ||{}, i=o && o.requestNumber >=0 ? o.requestNumber + 1 : 0, s=a("isFirstRequested", t, r, i), c={requestNumber: i}, l=Object.assign(o, c); (e[r]=l), n && (emitBoomPixel("firstRequested"), emitBoomPixel("firstRenderEnded"), (n=!1)), s && (emitBoomPixel("firstMoneyRequested"), emitBoomPixel("firstMoneyRenderEnded"));}), (this.onSlotOnload=function (t){const n=t.slot.getSlotElementId(), r=e[n]; r && ((r.isFirstMoneyImpression=a( "isFirstImpression", t, n, r.requestNumber )), (r.isFirstImpression=o), (r.impression=r.impression || Date.now()), r.isFirstMoneyImpression && (emitBoomPixel("firstMoneyImpression"), emitBoomPixel("firstMoneyOnload")), o && (emitBoomPixel("firstImpression"), emitBoomPixel("firstOnload"), (o=!1)));}), (this.onSlotRequested=function (t){const n=t.slot.getSlotElementId(), o=e[n] ||{}, i=o && o.requestNumber >=0 ? o.requestNumber + 1 : 0, s=a("isFirstMoneyRequestedV2", t, n, i), c={requestNumber: i}, l=Object.assign(o, c); (e[n]=l), r && (emitBoomPixel("firstRequestedV2"), (r=!1)), s && emitBoomPixel("firstMoneyRequestedV2");}), (this.onSlotResponseReceived=function (t){const n=t.slot.getSlotElementId(), r=e[n] ||{}, o=r && r.requestNumber >=0 ? r.requestNumber + 1 : 0, i=a("isFirstResponseReceived", t, n, o), c={requestNumber: o}, l=Object.assign(r, c); (e[n]=l), s && (emitBoomPixel("firstResponseReceived"), (s=!1)), i && emitBoomPixel("firstMoneyResponseReceived");}), (this.onImpressionViewable=function (t){const n=t.slot.getSlotElementId(), r=e[n] ||{}; (r.isFirstMoneyImpressionViewable=a( "isImpressionViewable", t, n, r.requestNumber )), (r.isFirstImpressionViewable=i), r.isFirstMoneyImpressionViewable && emitBoomPixel("firstMoneyImpressionViewable"), i && (emitBoomPixel("firstImpressionViewable"), (i=!1));});}const stickySizes=[ "728x90", "970x90", "300x50", "320x50", "320x100", "10x1", "8x1", "3x1",], stickyIsSize=(e)=> stickySizes.includes(e); function stickyIsEligible(e, t, n){return ( "hero_0"===e && !!t.isSticky && Array.isArray(n) && stickyIsSize(n.join("x")) );}function isStickyDeviceEnabled(e, t){return !0===e || (!!e && !!e[t]);}const validSizes=[ "300x250", "300x600", "320x50", "300x50", "728x90", "970x250",]; function clearTargetingByPrefix(e, t){e.getTargetingKeys().forEach((n)=>{0===n.indexOf(t) && e.clearTargeting(n);});}function intersect(){let e=arguments.length > 0 && void 0 !==arguments[0] ? arguments[0] : [], t=arguments.length > 1 && void 0 !==arguments[1] ? arguments[1] : []; return e.filter((e)=> t.indexOf(e) > -1);}function getSizesFromSlot(e){return e .getSizes(window.innerWidth, window.innerHeight) .map((e)=> "fluid" !==e && `${e.getWidth()}x${e.getHeight()}`);}function getValidSizesFromSlot(e, t){return intersect(getSizesFromSlot(e), t);}function hasValidSize(e, t){return e.getSizes && getValidSizesFromSlot(e, t).length > 0;}function isSlotEligible(e){return hasValidSize(e, validSizes);}function getConfig$1(e){return e.cns && e.cns.config;}const euCountryCodes=[ "AT", "BE", "BG", "CY", "CZ", "DE", "DK", "EE", "ES", "FI", "FR", "GB", "GR", "HR", "HU", "IE", "IS", "IT", "LI", "LT", "LU", "LV", "MT", "NL", "NO", "PL", "PT", "RO", "SE", "SI", "SK",]; function isEU(){const e=getCookie("CN_geo_country_code") || ""; return !!(e && euCountryCodes.indexOf(e) > -1);}function shouldApplyGDPR(){let e=!1; return ( window.__tcfapi && window.__tcfapi("ping", 2, (t)=>{t.gdprApplies && (e=!0);}), e );}function isTCFLoaded(){let e=!1; return ( window.__tcfapi && window.__tcfapi("ping", 2, (t)=>{t.cmpLoaded && (e=!0);}), e );}function shouldWaitForConsent(){const e=getConfig$1(window).config.consentRequired; return (void 0 !==e && e) || isEU();}function restrictDataProcessing(){window.googletag .pubads() .setPrivacySettings({restrictDataProcessing: !0});}function setRequestNonPersonalizedAds(e){window.googletag.pubads().setRequestNonPersonalizedAds(e);}function getPrivacyString(){return getCookie("usprivacy") || "1---";}function getConsentString(){let e=""; return ( isTCFLoaded() && window.__tcfapi("getTCData", 2, (t, n)=>{if (n){const n=t.tcString; n && (e=n);}}), e );}function getPurposes(){let e={}; return ( isTCFLoaded() && window.__tcfapi("getTCData", 2, (t, n)=>{n && (e=get$1(t, "purpose.consents") ||{});}), e );}function shouldRestrictDataProcessing(){const e=getPrivacyString(); return ( e && 4===e.length && "1"===e[0] && "y"===e[2].toLowerCase() );}function shouldSetNonPersonalizedAds(){return ( shouldApplyGDPR() && window.OnetrustActiveGroups && -1===window.OnetrustActiveGroups.indexOf("C0004") );}function shouldReadAndWriteCookies(){return ( !shouldApplyGDPR() || (window.OnetrustActiveGroups && window.OnetrustActiveGroups.indexOf("C0004") > -1) );}function checkPrivacySettings(){shouldRestrictDataProcessing() && restrictDataProcessing(), shouldSetNonPersonalizedAds() ? setRequestNonPersonalizedAds(1) : setRequestNonPersonalizedAds(0);}function oneTrustGroupsUpdated(e){return window.cnBus.on("onetrust.OneTrustGroupsUpdated", e);}function onConsentListener(e){const t=window.__tcfapi; t("addEventListener", 2, (n, r)=>{!r || ("tcloaded" !==n.eventStatus && "useractioncomplete" !==n.eventStatus) || t( "removeEventListener", 2, ()=>{setTimeout(e, 0);}, n.listenerId );});}function onConsent(e, t){let n=!1; function r(){n || ((n=!0), setTimeout(e, 0));}if (isTCFLoaded()) onConsentListener(r); else{const e=oneTrustGroupsUpdated(()=>{e(), isTCFLoaded() ? onConsentListener(r) : r();});}t && setTimeout(r, t);}function hasConsentToAuction(){if (shouldApplyGDPR()){return getPurposes()[1] || !1;}return !0;}function getViewportTemplate(){const e=window.innerWidth; return e < 768 ? "mobile" : e < 1024 ? "tablet" : "desktop";}function decode(e){return decodeURIComponent(e.replace(/\+/g, " "));}function querystring(e){for (var t, n=/([^=?&]+)=?([^&]*)/g, r={}; (t=n.exec(e)); ){var o=decode(t[1]), i=decode(t[2]); o in r || (r[o]=i);}return r;}var parse=querystring; function getFeatures(e){return e && "string"==typeof e ? e.split(",").reduce((e, t)=> ((e[t]=!0), e),{}) :{};}const queryParameters=parse(document.location.search) ||{}, featureFlags=getFeatures(queryParameters.feature_flags); featureFlags.ao_norefresh && (window.cns.flags.shouldNotRefresh=!0); const invalidSpecialCharacters=new RegExp( "["',=!#~;<>\\]+*^()[\\s]", "g" ), consecutiveUnderscores=/_+/g, consecutiveDashes=/-+/g, leadingTrailingUnderscores=/(^_|_$)/g, leadingTrailingDashes=/(^-|-$)/g, leadingNumbers=/^[0-9]/, allowedTypes=["string", "number"], isAllowedType=(e)=> allowedTypes.indexOf(typeof e) >=0, isValidValue=(e)=> isAllowedType(e); function toArray(e){return Array.isArray(e) ? e : [e];}function isValidKey(e){return ( (e=e.toString().trim()).length && !e.match(invalidSpecialCharacters) && e.length <=20 && !e.match(leadingNumbers) );}function applyGPTLimits(e){return e .toString() .toLowerCase() .replace(invalidSpecialCharacters, "_") .replace(consecutiveUnderscores, "_") .replace(leadingTrailingUnderscores, "");}function push$2(e, t, n){(e[t]=e[t] || []), e[t].push(n);}function sanitizeWithDashes(e){return e .toString() .toLowerCase() .replace(invalidSpecialCharacters, "-") .replace(consecutiveDashes, "-") .replace(leadingTrailingDashes, "");}function sanitize(e){const t={}, n={}, r=Object.keys(e); for (let o=0; o < r.length; o++){const i=r[o]; if (isValidKey(i)){const r=toArray(e[i]); for (let e=0; e < r.length; e++){const o=r[e]; isValidValue(o) ? push$2(t, i, applyGPTLimits(o)) : push$2(n, i, o);}}else n[i]=e[i];}return ( Object.keys(t).forEach((e)=>{Array.isArray(t[e]) && (t[e]=Array.from(new Set(t[e])).filter((e)=> e));}),{sanitized: t, errors: n});}function prebidRenderEnded(e){setTimeout(()=>{clearTargetingByPrefix(e.slot, "hb_");}, 1e3);}function Prebid(e){const t="prebid"; let n=1e3, r=!0; const o=new EventEmitter(t).debug, i={filterSettings:{iframe:{bidders: "*", filter: "include"}}, userIds: [{name: "unifiedId", params:{url: "//match.adsrvr.org/track/rid?ttd_pid=3egfyfq&fmt=json",}, storage:{type: "cookie", name: "pbjs-unifiedid", expires: 60,},},{name: "pubCommonId", storage:{type: "cookie", name: "_pubcid", expires: 60},},], syncDelay: 3e3,}; function s(e, t){const n=get$1(window, "cns.prebid.sequence") || []; return n.indexOf(e.bidder) - n.indexOf(t.bidder);}function a(e){return new Promise((t)=>{const i=getValidSizesFromSlot(e, validSizes); if (!i) return void t(); let a=setTimeout(()=>{t();}, n); window.pbjs.que.push(()=>{clearTimeout(a); const c=getPositionFromSlot(e), l=e.getSlotElementId(), u=`${c}_${i.sort().join("_")}`; window.pbjs.adUnits.filter((e)=> e.code===u).length < 1 && window.pbjs.addAdUnits( (function (e, t, n){const r=getViewportTemplate(), o=get$1(window, `cns.prebid.adunits.${e}.${r}`) ||{bids: [], mediaType: "banner",}, i=o.bids, a=o.mediaType; return ( i.sort(s),{code: n, mediaTypes:{[a]:{sizes: sizesToArray(t)}}, bids: i,});})(c, i, u) ); const d=(function (e, t, r){return{timeout: n, adUnitCodes: [e], bidsBackHandler: r, labels: t,};})(u, i, (e)=>{o(`complete.${l}`, e), window.pbjs.setTargetingForGPTAsync( [u], (e)=> ()=> e.getSlotElementId()===l ), t();}); window.pbjs.requestBids(d), r && ((r=!1), (n=2e3), emitBoomPixel("firstPrebidAuction"));});});}function c(t){const n=[ (function (){const t=get$1(e, "plugins.lr.pid"); if (t) return{provider: "atsAnalytics", options:{pid: t}};})(),].filter((e)=> e); n.length && t.enableAnalytics(n);}function l(){if (!shouldApplyGDPR() || getConsentString()) return ( (function (){const t=get$1(e, "plugins.lr.pid"); if (!t) return; const n={name: "identityLink", params:{pid: t}, storage:{type: "cookie", name: "idl_env", expires: 30},}; i.userIds.push(n);})(),{userSync: i});}function u(){const e=(function (){const e=sanitize({tags: get$1(window, "cns.pageContext.keywords.tags"),}).sanitized; return (void 0===e ?{}: e).tags || [];})(); return{ortb2:{site:{ext:{data:{cnt_tags: e}}}}, ix:{firstPartyData:{cnt_tags: e}},};}!(function (){const e=window; e.pbjs=e.pbjs ||{que: []}; const t=e.pbjs; t.que.push(()=>{queryParameters.bidders && (function (){const e=(get$1(window, "cns.prebid") ||{}).adunits, t=queryParameters.bidders.split(","); Object.keys(e).forEach((n)=>{Object.keys(e[n]).forEach((r)=>{e[n][r].bids=e[n][r].bids.filter( (e)=> t.indexOf(e.bidder) > -1 );});});})(), (function (){const e=get$1(window, "cns.prebid"), t=e.adunits, n=e.adunit_default; n && Object.keys(t).forEach((e)=>{Object.keys(t[e]).forEach((r)=>{t[e][r].bids.forEach((e)=>{const t=e.bidder; n[t] && Object.assign(e.params, n[t]);});});});})(); const n=get$1(e, "cns.prebid.config") ||{}; Object.assign( n, (function (){const e={usp:{cmpApi: "static", consentData:{getUSPData:{uspString: getPrivacyString()},}, timeout: 50,},}; if (shouldApplyGDPR()){const t=shouldReadAndWriteCookies(); e.gdpr={cmpApi: "iab", timeout: 1e4, deviceAccess: t};}return{consentManagement: e};})() ), Object.assign(n, l()), Object.assign(n, u()), t.setConfig(n), c(t);});})(), (this.startAuction=function (e){return ( o( "startAuction", e.map((e)=> e.getSlotElementId()) ), Promise.all(e.map(a)).then(()=> e.map(()=> ({}))) );}), (this.isSlotEligible=isSlotEligible), (this.market=t);}function pixel(e){let t=e.campaign, n=e.name, r=e.meta; window.sparrowQueue.push(()=>{window.sparrow.track(t, n, r);});}window.sparrowQueue=window.sparrowQueue || []; const errorMessage$1="Ads -- Missing page context", errorParamMessage=`${errorMessage$1}parameter : `, requiredKeys=["templateType"], expectedKeys=["channel", "server"]; function validate(e){requiredKeys.forEach((t)=>{!e.templateType && error$1(`${errorParamMessage}${t}`);}), expectedKeys.forEach((t)=>{!e[t] && warn(`${errorParamMessage}${t}`);});}function getPageContext(e){let t=e.cns && e.cns.pageContext; if (t) return ( (t.templateType=t.templateType || t.template_type), (t.subChannel=t.subChannel || t.sub_channel), validate(t), t ); error$1(errorMessage$1);}function getBase(){const e=getPageContext(window) ||{}, t=e.templateType || ""; let n=get$1(e, "keywords.platform") || []; n=n[0] || ""; return{channel: get$1(e, "channel") || "", platform: n, template: t, viewport: getViewportTemplate(),};}function onPubadsReady(){const e=_objectSpread2( _objectSpread2({}, getBase()),{},{pageContext: getPageContext(window), version: version$1}); pixel({campaign: "ad_metrics", meta:{dim1: JSON.stringify(e)}, name: "pubadsReady",});}function onImpressionViewable(e, t){const n=getPositionFromSlot(t.slot), r=t.slot.getSlotElementId(), o=e .getSingleInstance() .getSlotStateStore() .getSlotState(r).renderedSize, i=isSizeOverride(o, t.slot), s=_objectSpread2( _objectSpread2({}, getBase()),{},{isOverride: i, position: n, size: o}); pixel({campaign: "ad_metrics", meta:{dim1: JSON.stringify(s)}, name: "impressionViewable",});}function onSlotRenderEnded(e){const t=getPositionFromSlot(e.slot), n=getSizeFromSlotRenderEnded(e), r=e.isEmpty, o=!r && isSizeOverride(n, e.slot), i=_objectSpread2( _objectSpread2({}, getBase()),{},{isEmpty: r, isOverride: o, position: t, size: n}); pixel({campaign: "ad_metrics", meta:{dim1: JSON.stringify(i)}, name: "renderEnded",});}function onAdBlockDetected(e){const t={device: getViewportTemplate(), pageContext: getPageContext(window), adBlock: e,}; pixel({campaign: "ad_metrics", meta:{dim1: JSON.stringify(t)}, name: "adBlock",});}function onPIIDetected(){pixel({campaign: "ad_metrics", name: "pii", meta:{dim1: JSON.stringify({search: window.location.search, ref: document.referrer,}),},});}var sparrowCollector={onImpressionViewable: onImpressionViewable, onPubadsReady: onPubadsReady, onSlotRenderEnded: onSlotRenderEnded,}; function GPTRouter(e, t, n, r){const o=new ContainerStyler( e.getSingleInstance().getPageDefinition().isVerso ); (window.googletag=window.googletag ||{}), (window.googletag.cmd=window.googletag.cmd || []); const i=window.googletag, s=new PubadsCollector(e), a=e.getSingleInstance().getSlotStateStore(); const c={slotRenderEnded: [ function (t){try{const n=t.slot.getSlotElementId(), s=t.size, c=t.isEmpty, l=t.slot, u=t.creativeId, d=getSizeFromSlotRenderEnded(t); a.setSlotState(n,{creativeId: u, renderedSize: d}); const g=e .getSingleInstance() .getSlotDefinitionFromGPTSlot(t.slot), f=document.getElementById(n), p=a.getSlotState(n).nodeId; isSpacerCreative(t) && a.setSpacerCreativeId(u); const m={nodeId: p, size: s, isSpacer: a.isSpacerCreative(u), slotElementId: n,}; f && o.updateContainer(f, t), shouldSetSlotSize(s, c, g) && setSlotSize(i, l, s), stickyIsEligible(n, g, s) && r.emit( "ads.stickyBanner.hero.slotRenderEnded." + s.join("x") ), c ? (r.emit(`ads.slotRenderEnded.${n}.empty`), p && r.emit(`ads.slotRenderEnded.${p}.empty`, m)) : (r.emit(`ads.slotRenderEnded.${n}.filled`), p && r.emit(`ads.slotRenderEnded.${p}.filled`, m));}catch (e){error$1("onSlotRenderEnded",{event: t, ex: e});}}, t.onSlotRenderEnded, n.onSlotRenderEnded, sparrowCollector.onSlotRenderEnded, s.onSlotRenderEnded,], impressionViewable: [ function (t){try{const n=t.slot.getSlotElementId(), o=e .getSingleInstance() .getSlotDefinitionFromGPTSlot(t.slot); "hero_0"===n && o.isSticky && r.emit("ads.stickyBanner.hero.impressionViewable", t);}catch (e){error$1("onImpressionViewable",{event: t, ex: e});}}, t.onImpressionViewable, sparrowCollector.onImpressionViewable.bind(null, e), s.onImpressionViewable,], slotOnload: [prebidRenderEnded, s.onSlotOnload], slotResponseReceived: [s.onSlotResponseReceived], slotRequested: [s.onSlotRequested],}; i.cmd.push(()=>{const t=i.pubads(); setPPID(t), t.enableSingleRequest(); const n=get$1(window, "cns.config.config.useRoadblock"); if ( (n || t.disableInitialLoad(), t.setCentering(!0), (function (e, t){Object.keys(e).forEach((n)=>{e[n].forEach((e)=> t.addEventListener(n, e));});})(c, t), e.getSingleInstance().getPageDefinition().forChildren && t.setTagForChildDirectedTreatment(!0), updateCorrelatorInterval(), checkPrivacySettings(), oneTrustGroupsUpdated(checkPrivacySettings), n) ){const n=e .getSingleInstance() .getPageDefinition().lazyloadSettings; t.enableLazyLoad(n);}t.enableVideoAds(), i.enableServices(), sparrowCollector.onPubadsReady(), s.emitReady(), r.emit("ads.pubadsReady");});}function hasEmail(e){return new RegExp( "([a-zA-Z0-9._+-]+(@|%40|%2540)[a-zA-Z0-9._-]+.[a-zA-Z0-9._-]+)", "gi" ).test(e);}function hasPII(){return any([document.referrer, document.location.href], (e)=> hasEmail(e) );}function detect(e){let t=!1; const n={}, r={}; function o(e){let t=n.cosmetic; if ( null !==window.document.body.getAttribute("abp") || null===t.offsetParent || 0===t.offsetHeight || 0===t.offsetLeft || 0===t.offsetTop || 0===t.offsetWidth || 0===t.clientHeight || 0===t.clientWidth ) return e(!0); if (window.getComputedStyle){let n=window.getComputedStyle(t, null); if ( "none"===n.getPropertyValue("display") || "hidden"===n.getPropertyValue("visibility") ) return e(!0);}r.cosmetic=setTimeout(()=>{o(e);}, 25);}function i(e){(n.cosmetic=document.createElement("div")), n.cosmetic.setAttribute( "class", "pub_300x250 pub_300x250m pub_728x90 text-ad textAd text_ad text_ads text-ads text-ad-links" ), n.cosmetic.setAttribute( "style", "width: 1px !important; height: 1px !important; position: absolute !important; left: -10000px !important; top: -1000px !important;" ), window.document.body.appendChild(n.cosmetic), o(e);}function s(){return function (o){t || ((t=!0), Object.keys(r).forEach((e)=>{clearTimeout(r[e]);}), Object.keys(n).forEach((e)=>{window.document.body.removeChild(n[e]);}), e(o));};}function a(){setTimeout(()=>{i(s());}, 1);}function c(){setTimeout(()=>{var e; (e=s()), document.querySelectorAll( "div[id*='google_ads_iframe'] > iframe" ).length ? e(!1) : e(!0);}, 4e3);}!(function (e){const t=new XMLHttpRequest(); t.open("GET", "/hotzones/src/ads.js", !0), (t.onreadystatechange=function (){4===t.readyState && 0===t.status && e(!0);}), t.send();})(s()), "complete"===document.readyState ? (a(), c()) : "interactive"===document.readyState ? (a(), window.addEventListener("load", c, !1)) : (window.addEventListener("DOMContentLoaded", a, !1), window.addEventListener("load", c, !1));}function AdBlockDetect(e){detect((t)=>{t ? e.emit("ads.environment.adblock.detected") : e.emit("ads.environment.adblock.notdetected"), set$2(window, "cns.pageContext.adBlock", t), onAdBlockDetected(t);});}var check=function (e){return e && e.Math==Math && e;}, global$p=check("object"==typeof globalThis && globalThis) || check("object"==typeof window && window) || check("object"==typeof self && self) || check("object"==typeof commonjsGlobal && commonjsGlobal) || (function (){return this;})() || Function("return this")(), objectGetOwnPropertyDescriptor={}, fails$8=function (e){try{return !!e();}catch (e){return !0;}}, fails$7=fails$8, descriptors=!fails$7(function (){return ( 7 !=Object.defineProperty({}, 1,{get: function (){return 7;},})[1] );}), fails$6=fails$8, functionBindNative=!fails$6(function (){var e=function (){}.bind(); return "function" !=typeof e || e.hasOwnProperty("prototype");}), NATIVE_BIND$2=functionBindNative, call$5=Function.prototype.call, functionCall=NATIVE_BIND$2 ? call$5.bind(call$5) : function (){return call$5.apply(call$5, arguments);}, objectPropertyIsEnumerable={}, $propertyIsEnumerable={}.propertyIsEnumerable, getOwnPropertyDescriptor$1=Object.getOwnPropertyDescriptor, NASHORN_BUG=getOwnPropertyDescriptor$1 && !$propertyIsEnumerable.call({1: 2}, 1); objectPropertyIsEnumerable.f=NASHORN_BUG ? function (e){var t=getOwnPropertyDescriptor$1(this, e); return !!t && t.enumerable;}: $propertyIsEnumerable; var createPropertyDescriptor$3=function (e, t){return{enumerable: !(1 & e), configurable: !(2 & e), writable: !(4 & e), value: t,};}, NATIVE_BIND$1=functionBindNative, FunctionPrototype$2=Function.prototype, bind=FunctionPrototype$2.bind, call$4=FunctionPrototype$2.call, uncurryThis$b=NATIVE_BIND$1 && bind.bind(call$4, call$4), functionUncurryThis=NATIVE_BIND$1 ? function (e){return e && uncurryThis$b(e);}: function (e){return ( e && function (){return call$4.apply(e, arguments);});}, uncurryThis$a=functionUncurryThis, toString$3=uncurryThis$a({}.toString), stringSlice=uncurryThis$a("".slice), classofRaw$1=function (e){return stringSlice(toString$3(e), 8, -1);}, global$o=global$p, uncurryThis$9=functionUncurryThis, fails$5=fails$8, classof$2=classofRaw$1, Object$4=global$o.Object, split=uncurryThis$9("".split), indexedObject=fails$5(function (){return !Object$4("z").propertyIsEnumerable(0);}) ? function (e){return "String"==classof$2(e) ? split(e, "") : Object$4(e);}: Object$4, global$n=global$p, TypeError$8=global$n.TypeError, requireObjectCoercible$2=function (e){if (null==e) throw TypeError$8("Can't call method on " + e); return e;}, IndexedObject=indexedObject, requireObjectCoercible$1=requireObjectCoercible$2, toIndexedObject$3=function (e){return IndexedObject(requireObjectCoercible$1(e));}, isCallable$c=function (e){return "function"==typeof e;}, isCallable$b=isCallable$c, isObject$8=function (e){return "object"==typeof e ? null !==e : isCallable$b(e);}, global$m=global$p, isCallable$a=isCallable$c, aFunction=function (e){return isCallable$a(e) ? e : void 0;}, getBuiltIn$4=function (e, t){return arguments.length < 2 ? aFunction(global$m[e]) : global$m[e] && global$m[e][t];}, uncurryThis$8=functionUncurryThis, objectIsPrototypeOf=uncurryThis$8({}.isPrototypeOf), getBuiltIn$3=getBuiltIn$4, engineUserAgent=getBuiltIn$3("navigator", "userAgent") || "", global$l=global$p, userAgent=engineUserAgent, process$1=global$l.process, Deno=global$l.Deno, versions=(process$1 && process$1.versions) || (Deno && Deno.version), v8=versions && versions.v8, match, version; v8 && ((match=v8.split(".")), (version=match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]))), !version && userAgent && ((match=userAgent.match(/Edge\/(\d+)/)), (!match || match[1] >=74) && ((match=userAgent.match(/Chrome\/(\d+)/)), match && (version=+match[1]))); var engineV8Version=version, V8_VERSION=engineV8Version, fails$4=fails$8, nativeSymbol=!!Object.getOwnPropertySymbols && !fails$4(function (){var e=Symbol(); return ( !String(e) || !(Object(e) instanceof Symbol) || (!Symbol.sham && V8_VERSION && V8_VERSION < 41) );}), NATIVE_SYMBOL$1=nativeSymbol, useSymbolAsUid=NATIVE_SYMBOL$1 && !Symbol.sham && "symbol"==typeof Symbol.iterator, global$k=global$p, getBuiltIn$2=getBuiltIn$4, isCallable$9=isCallable$c, isPrototypeOf$1=objectIsPrototypeOf, USE_SYMBOL_AS_UID$1=useSymbolAsUid, Object$3=global$k.Object, isSymbol$2=USE_SYMBOL_AS_UID$1 ? function (e){return "symbol"==typeof e;}: function (e){var t=getBuiltIn$2("Symbol"); return ( isCallable$9(t) && isPrototypeOf$1(t.prototype, Object$3(e)) );}, global$j=global$p, String$4=global$j.String, tryToString$1=function (e){try{return String$4(e);}catch (e){return "Object";}}, global$i=global$p, isCallable$8=isCallable$c, tryToString=tryToString$1, TypeError$7=global$i.TypeError, aCallable$1=function (e){if (isCallable$8(e)) return e; throw TypeError$7(tryToString(e) + " is not a function");}, aCallable=aCallable$1, getMethod$1=function (e, t){var n=e[t]; return null==n ? void 0 : aCallable(n);}, global$h=global$p, call$3=functionCall, isCallable$7=isCallable$c, isObject$7=isObject$8, TypeError$6=global$h.TypeError, ordinaryToPrimitive$1=function (e, t){var n, r; if ( "string"===t && isCallable$7((n=e.toString)) && !isObject$7((r=call$3(n, e))) ) return r; if ( isCallable$7((n=e.valueOf)) && !isObject$7((r=call$3(n, e))) ) return r; if ( "string" !==t && isCallable$7((n=e.toString)) && !isObject$7((r=call$3(n, e))) ) return r; throw TypeError$6("Can't convert object to primitive value");}, shared$3={exports:{}}, global$g=global$p, defineProperty=Object.defineProperty, setGlobal$3=function (e, t){try{defineProperty(global$g, e,{value: t, configurable: !0, writable: !0,});}catch (n){global$g[e]=t;}return t;}, global$f=global$p, setGlobal$2=setGlobal$3, SHARED="__core-js_shared__", store$3=global$f[SHARED] || setGlobal$2(SHARED,{}), sharedStore=store$3, store$2=sharedStore; (shared$3.exports=function (e, t){return store$2[e] || (store$2[e]=void 0 !==t ? t :{});})("versions", []).push({version: "3.21.1", mode: "global", copyright: "© 2014-2022 Denis Pushkarev (zloirock.ru)", license: "https://github.com/zloirock/core-js/blob/v3.21.1/LICENSE", source: "https://github.com/zloirock/core-js",}); var global$e=global$p, requireObjectCoercible=requireObjectCoercible$2, Object$2=global$e.Object, toObject$1=function (e){return Object$2(requireObjectCoercible(e));}, uncurryThis$7=functionUncurryThis, toObject=toObject$1, hasOwnProperty=uncurryThis$7({}.hasOwnProperty), hasOwnProperty_1=Object.hasOwn || function (e, t){return hasOwnProperty(toObject(e), t);}, uncurryThis$6=functionUncurryThis, id=0, postfix=Math.random(), toString$2=uncurryThis$6((1).toString), uid$2=function (e){return ( "Symbol(" + (void 0===e ? "" : e) + ")_" + toString$2(++id + postfix, 36) );}, global$d=global$p, shared$2=shared$3.exports, hasOwn$7=hasOwnProperty_1, uid$1=uid$2, NATIVE_SYMBOL=nativeSymbol, USE_SYMBOL_AS_UID=useSymbolAsUid, WellKnownSymbolsStore=shared$2("wks"), Symbol$1=global$d.Symbol, symbolFor=Symbol$1 && Symbol$1.for, createWellKnownSymbol=USE_SYMBOL_AS_UID ? Symbol$1 : (Symbol$1 && Symbol$1.withoutSetter) || uid$1, wellKnownSymbol$3=function (e){if ( !hasOwn$7(WellKnownSymbolsStore, e) || (!NATIVE_SYMBOL && "string" !=typeof WellKnownSymbolsStore[e]) ){var t="Symbol." + e; NATIVE_SYMBOL && hasOwn$7(Symbol$1, e) ? (WellKnownSymbolsStore[e]=Symbol$1[e]) : (WellKnownSymbolsStore[e]=USE_SYMBOL_AS_UID && symbolFor ? symbolFor(t) : createWellKnownSymbol(t));}return WellKnownSymbolsStore[e];}, global$c=global$p, call$2=functionCall, isObject$6=isObject$8, isSymbol$1=isSymbol$2, getMethod=getMethod$1, ordinaryToPrimitive=ordinaryToPrimitive$1, wellKnownSymbol$2=wellKnownSymbol$3, TypeError$5=global$c.TypeError, TO_PRIMITIVE=wellKnownSymbol$2("toPrimitive"), toPrimitive$1=function (e, t){if (!isObject$6(e) || isSymbol$1(e)) return e; var n, r=getMethod(e, TO_PRIMITIVE); if (r){if ( (void 0===t && (t="default"), (n=call$2(r, e, t)), !isObject$6(n) || isSymbol$1(n)) ) return n; throw TypeError$5("Can't convert object to primitive value");}return void 0===t && (t="number"), ordinaryToPrimitive(e, t);}, toPrimitive=toPrimitive$1, isSymbol=isSymbol$2, toPropertyKey$2=function (e){var t=toPrimitive(e, "string"); return isSymbol(t) ? t : t + "";}, global$b=global$p, isObject$5=isObject$8, document$1=global$b.document, EXISTS$1=isObject$5(document$1) && isObject$5(document$1.createElement), documentCreateElement=function (e){return EXISTS$1 ? document$1.createElement(e) :{};}, DESCRIPTORS$5=descriptors, fails$3=fails$8, createElement=documentCreateElement, ie8DomDefine=!DESCRIPTORS$5 && !fails$3(function (){return ( 7 !=Object.defineProperty(createElement("div"), "a",{get: function (){return 7;},}).a );}), DESCRIPTORS$4=descriptors, call$1=functionCall, propertyIsEnumerableModule=objectPropertyIsEnumerable, createPropertyDescriptor$2=createPropertyDescriptor$3, toIndexedObject$2=toIndexedObject$3, toPropertyKey$1=toPropertyKey$2, hasOwn$6=hasOwnProperty_1, IE8_DOM_DEFINE$1=ie8DomDefine, $getOwnPropertyDescriptor$1=Object.getOwnPropertyDescriptor; objectGetOwnPropertyDescriptor.f=DESCRIPTORS$4 ? $getOwnPropertyDescriptor$1 : function (e, t){if ( ((e=toIndexedObject$2(e)), (t=toPropertyKey$1(t)), IE8_DOM_DEFINE$1) ) try{return $getOwnPropertyDescriptor$1(e, t);}catch (e){}if (hasOwn$6(e, t)) return createPropertyDescriptor$2( !call$1(propertyIsEnumerableModule.f, e, t), e[t] );}; var objectDefineProperty={}, DESCRIPTORS$3=descriptors, fails$2=fails$8, v8PrototypeDefineBug=DESCRIPTORS$3 && fails$2(function (){return ( 42 !=Object.defineProperty(function (){}, "prototype",{value: 42, writable: !1,}).prototype );}), global$a=global$p, isObject$4=isObject$8, String$3=global$a.String, TypeError$4=global$a.TypeError, anObject$3=function (e){if (isObject$4(e)) return e; throw TypeError$4(String$3(e) + " is not an object");}, global$9=global$p, DESCRIPTORS$2=descriptors, IE8_DOM_DEFINE=ie8DomDefine, V8_PROTOTYPE_DEFINE_BUG=v8PrototypeDefineBug, anObject$2=anObject$3, toPropertyKey=toPropertyKey$2, TypeError$3=global$9.TypeError, $defineProperty=Object.defineProperty, $getOwnPropertyDescriptor=Object.getOwnPropertyDescriptor, ENUMERABLE="enumerable", CONFIGURABLE$1="configurable", WRITABLE="writable"; objectDefineProperty.f=DESCRIPTORS$2 ? V8_PROTOTYPE_DEFINE_BUG ? function (e, t, n){if ( (anObject$2(e), (t=toPropertyKey(t)), anObject$2(n), "function"==typeof e && "prototype"===t && "value" in n && WRITABLE in n && !n[WRITABLE]) ){var r=$getOwnPropertyDescriptor(e, t); r && r[WRITABLE] && ((e[t]=n.value), (n={configurable: CONFIGURABLE$1 in n ? n[CONFIGURABLE$1] : r[CONFIGURABLE$1], enumerable: ENUMERABLE in n ? n[ENUMERABLE] : r[ENUMERABLE], writable: !1,}));}return $defineProperty(e, t, n);}: $defineProperty : function (e, t, n){if ( (anObject$2(e), (t=toPropertyKey(t)), anObject$2(n), IE8_DOM_DEFINE) ) try{return $defineProperty(e, t, n);}catch (e){}if ("get" in n || "set" in n) throw TypeError$3("Accessors not supported"); return "value" in n && (e[t]=n.value), e;}; var DESCRIPTORS$1=descriptors, definePropertyModule$1=objectDefineProperty, createPropertyDescriptor$1=createPropertyDescriptor$3, createNonEnumerableProperty$5=DESCRIPTORS$1 ? function (e, t, n){return definePropertyModule$1.f( e, t, createPropertyDescriptor$1(1, n) );}: function (e, t, n){return (e[t]=n), e;}, redefine$1={exports:{}}, uncurryThis$5=functionUncurryThis, isCallable$6=isCallable$c, store$1=sharedStore, functionToString=uncurryThis$5(Function.toString); isCallable$6(store$1.inspectSource) || (store$1.inspectSource=function (e){return functionToString(e);}); var inspectSource$2=store$1.inspectSource, global$8=global$p, isCallable$5=isCallable$c, inspectSource$1=inspectSource$2, WeakMap$1=global$8.WeakMap, nativeWeakMap=isCallable$5(WeakMap$1) && /native code/.test(inspectSource$1(WeakMap$1)), shared$1=shared$3.exports, uid=uid$2, keys=shared$1("keys"), sharedKey$1=function (e){return keys[e] || (keys[e]=uid(e));}, hiddenKeys$3={}, NATIVE_WEAK_MAP=nativeWeakMap, global$7=global$p, uncurryThis$4=functionUncurryThis, isObject$3=isObject$8, createNonEnumerableProperty$4=createNonEnumerableProperty$5, hasOwn$5=hasOwnProperty_1, shared=sharedStore, sharedKey=sharedKey$1, hiddenKeys$2=hiddenKeys$3, OBJECT_ALREADY_INITIALIZED="Object already initialized", TypeError$2=global$7.TypeError, WeakMap=global$7.WeakMap, set$1, get, has, enforce=function (e){return has(e) ? get(e) : set$1(e,{});}, getterFor=function (e){return function (t){var n; if (!isObject$3(t) || (n=get(t)).type !==e) throw TypeError$2("Incompatible receiver, " + e + " required"); return n;};}; if (NATIVE_WEAK_MAP || shared.state){var store=shared.state || (shared.state=new WeakMap()), wmget=uncurryThis$4(store.get), wmhas=uncurryThis$4(store.has), wmset=uncurryThis$4(store.set); (set$1=function (e, t){if (wmhas(store, e)) throw new TypeError$2(OBJECT_ALREADY_INITIALIZED); return (t.facade=e), wmset(store, e, t), t;}), (get=function (e){return wmget(store, e) ||{};}), (has=function (e){return wmhas(store, e);});}else{var STATE=sharedKey("state"); (hiddenKeys$2[STATE]=!0), (set$1=function (e, t){if (hasOwn$5(e, STATE)) throw new TypeError$2(OBJECT_ALREADY_INITIALIZED); return ( (t.facade=e), createNonEnumerableProperty$4(e, STATE, t), t );}), (get=function (e){return hasOwn$5(e, STATE) ? e[STATE] :{};}), (has=function (e){return hasOwn$5(e, STATE);});}var internalState={set: set$1, get: get, has: has, enforce: enforce, getterFor: getterFor,}, DESCRIPTORS=descriptors, hasOwn$4=hasOwnProperty_1, FunctionPrototype$1=Function.prototype, getDescriptor=DESCRIPTORS && Object.getOwnPropertyDescriptor, EXISTS=hasOwn$4(FunctionPrototype$1, "name"), PROPER=EXISTS && "something"===function (){}.name, CONFIGURABLE=EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype$1, "name").configurable)), functionName={EXISTS: EXISTS, PROPER: PROPER, CONFIGURABLE: CONFIGURABLE,}, global$6=global$p, isCallable$4=isCallable$c, hasOwn$3=hasOwnProperty_1, createNonEnumerableProperty$3=createNonEnumerableProperty$5, setGlobal$1=setGlobal$3, inspectSource=inspectSource$2, InternalStateModule=internalState, CONFIGURABLE_FUNCTION_NAME=functionName.CONFIGURABLE, getInternalState=InternalStateModule.get, enforceInternalState=InternalStateModule.enforce, TEMPLATE=String(String).split("String"); (redefine$1.exports=function (e, t, n, r){var o, i=!!r && !!r.unsafe, s=!!r && !!r.enumerable, a=!!r && !!r.noTargetGet, c=r && void 0 !==r.name ? r.name : t; isCallable$4(n) && ("Symbol("===String(c).slice(0, 7) && (c="[" + String(c).replace(/^Symbol\(([^)]*)\)/, "$1") + "]"), (!hasOwn$3(n, "name") || (CONFIGURABLE_FUNCTION_NAME && n.name !==c)) && createNonEnumerableProperty$3(n, "name", c), (o=enforceInternalState(n)).source || (o.source=TEMPLATE.join("string"==typeof c ? c : ""))), e !==global$6 ? (i ? !a && e[t] && (s=!0) : delete e[t], s ? (e[t]=n) : createNonEnumerableProperty$3(e, t, n)) : s ? (e[t]=n) : setGlobal$1(t, n);})(Function.prototype, "toString", function (){return ( (isCallable$4(this) && getInternalState(this).source) || inspectSource(this) );}); var objectGetOwnPropertyNames={}, ceil=Math.ceil, floor=Math.floor, toIntegerOrInfinity$2=function (e){var t=+e; return t !=t || 0===t ? 0 : (t > 0 ? floor : ceil)(t);}, toIntegerOrInfinity$1=toIntegerOrInfinity$2, max=Math.max, min$1=Math.min, toAbsoluteIndex$1=function (e, t){var n=toIntegerOrInfinity$1(e); return n < 0 ? max(n + t, 0) : min$1(n, t);}, toIntegerOrInfinity=toIntegerOrInfinity$2, min=Math.min, toLength$1=function (e){return e > 0 ? min(toIntegerOrInfinity(e), 9007199254740991) : 0;}, toLength=toLength$1, lengthOfArrayLike$1=function (e){return toLength(e.length);}, toIndexedObject$1=toIndexedObject$3, toAbsoluteIndex=toAbsoluteIndex$1, lengthOfArrayLike=lengthOfArrayLike$1, createMethod=function (e){return function (t, n, r){var o, i=toIndexedObject$1(t), s=lengthOfArrayLike(i), a=toAbsoluteIndex(r, s); if (e && n !=n){for (; s > a; ) if ((o=i[a++]) !=o) return !0;}else for (; s > a; a++) if ((e || a in i) && i[a]===n) return e || a || 0; return !e && -1;};}, arrayIncludes={includes: createMethod(!0), indexOf: createMethod(!1),}, uncurryThis$3=functionUncurryThis, hasOwn$2=hasOwnProperty_1, toIndexedObject=toIndexedObject$3, indexOf=arrayIncludes.indexOf, hiddenKeys$1=hiddenKeys$3, push$1=uncurryThis$3([].push), objectKeysInternal=function (e, t){var n, r=toIndexedObject(e), o=0, i=[]; for (n in r) !hasOwn$2(hiddenKeys$1, n) && hasOwn$2(r, n) && push$1(i, n); for (; t.length > o; ) hasOwn$2(r, (n=t[o++])) && (~indexOf(i, n) || push$1(i, n)); return i;}, enumBugKeys$1=[ "constructor", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "toLocaleString", "toString", "valueOf",], internalObjectKeys=objectKeysInternal, enumBugKeys=enumBugKeys$1, hiddenKeys=enumBugKeys.concat("length", "prototype"); objectGetOwnPropertyNames.f=Object.getOwnPropertyNames || function (e){return internalObjectKeys(e, hiddenKeys);}; var objectGetOwnPropertySymbols={}; objectGetOwnPropertySymbols.f=Object.getOwnPropertySymbols; var getBuiltIn$1=getBuiltIn$4, uncurryThis$2=functionUncurryThis, getOwnPropertyNamesModule=objectGetOwnPropertyNames, getOwnPropertySymbolsModule=objectGetOwnPropertySymbols, anObject$1=anObject$3, concat=uncurryThis$2([].concat), ownKeys$1=getBuiltIn$1("Reflect", "ownKeys") || function (e){var t=getOwnPropertyNamesModule.f(anObject$1(e)), n=getOwnPropertySymbolsModule.f; return n ? concat(t, n(e)) : t;}, hasOwn$1=hasOwnProperty_1, ownKeys=ownKeys$1, getOwnPropertyDescriptorModule=objectGetOwnPropertyDescriptor, definePropertyModule=objectDefineProperty, copyConstructorProperties$2=function (e, t, n){for ( var r=ownKeys(t), o=definePropertyModule.f, i=getOwnPropertyDescriptorModule.f, s=0; s < r.length; s++ ){var a=r[s]; hasOwn$1(e, a) || (n && hasOwn$1(n, a)) || o(e, a, i(t, a));}}, fails$1=fails$8, isCallable$3=isCallable$c, replacement=/#|\.prototype\./, isForced$1=function (e, t){var n=data[normalize(e)]; return ( n==POLYFILL || (n !=NATIVE && (isCallable$3(t) ? fails$1(t) : !!t)) );}, normalize=(isForced$1.normalize=function (e){return String(e).replace(replacement, ".").toLowerCase();}), data=(isForced$1.data={}), NATIVE=(isForced$1.NATIVE="N"), POLYFILL=(isForced$1.POLYFILL="P"), isForced_1=isForced$1, global$5=global$p, getOwnPropertyDescriptor=objectGetOwnPropertyDescriptor.f, createNonEnumerableProperty$2=createNonEnumerableProperty$5, redefine=redefine$1.exports, setGlobal=setGlobal$3, copyConstructorProperties$1=copyConstructorProperties$2, isForced=isForced_1, _export=function (e, t){var n, r, o, i, s, a=e.target, c=e.global, l=e.stat; if ( (n=c ? global$5 : l ? global$5[a] || setGlobal(a,{}) : (global$5[a] ||{}).prototype) ) for (r in t){if ( ((i=t[r]), (o=e.noTargetGet ? (s=getOwnPropertyDescriptor(n, r)) && s.value : n[r]), !isForced(c ? r : a + (l ? "." : "#") + r, e.forced) && void 0 !==o) ){if (typeof i==typeof o) continue; copyConstructorProperties$1(i, o);}(e.sham || (o && o.sham)) && createNonEnumerableProperty$2(i, "sham", !0), redefine(n, r, i, e);}}, NATIVE_BIND=functionBindNative, FunctionPrototype=Function.prototype, apply$1=FunctionPrototype.apply, call=FunctionPrototype.call, functionApply=("object"==typeof Reflect && Reflect.apply) || (NATIVE_BIND ? call.bind(apply$1) : function (){return call.apply(apply$1, arguments);}), global$4=global$p, isCallable$2=isCallable$c, String$2=global$4.String, TypeError$1=global$4.TypeError, aPossiblePrototype$1=function (e){if ("object"==typeof e || isCallable$2(e)) return e; throw TypeError$1("Can't set " + String$2(e) + " as a prototype");}, uncurryThis$1=functionUncurryThis, anObject=anObject$3, aPossiblePrototype=aPossiblePrototype$1, objectSetPrototypeOf=Object.setPrototypeOf || ("__proto__" in{}? (function (){var e, t=!1, n={}; try{(e=uncurryThis$1( Object.getOwnPropertyDescriptor( Object.prototype, "__proto__" ).set ))(n, []), (t=n instanceof Array);}catch (e){}return function (n, r){return ( anObject(n), aPossiblePrototype(r), t ? e(n, r) : (n.__proto__=r), n );};})() : void 0), isCallable$1=isCallable$c, isObject$2=isObject$8, setPrototypeOf$1=objectSetPrototypeOf, inheritIfRequired$1=function (e, t, n){var r, o; return ( setPrototypeOf$1 && isCallable$1((r=t.constructor)) && r !==n && isObject$2((o=r.prototype)) && o !==n.prototype && setPrototypeOf$1(e, o), e );}, wellKnownSymbol$1=wellKnownSymbol$3, TO_STRING_TAG$1=wellKnownSymbol$1("toStringTag"), test={}; test[TO_STRING_TAG$1]="z"; var toStringTagSupport="[object z]"===String(test), global$3=global$p, TO_STRING_TAG_SUPPORT=toStringTagSupport, isCallable=isCallable$c, classofRaw=classofRaw$1, wellKnownSymbol=wellKnownSymbol$3, TO_STRING_TAG=wellKnownSymbol("toStringTag"), Object$1=global$3.Object, CORRECT_ARGUMENTS="Arguments"==classofRaw( (function (){return arguments;})() ), tryGet=function (e, t){try{return e[t];}catch (e){}}, classof$1=TO_STRING_TAG_SUPPORT ? classofRaw : function (e){var t, n, r; return void 0===e ? "Undefined" : null===e ? "Null" : "string"==typeof (n=tryGet((t=Object$1(e)), TO_STRING_TAG)) ? n : CORRECT_ARGUMENTS ? classofRaw(t) : "Object"==(r=classofRaw(t)) && isCallable(t.callee) ? "Arguments" : r;}, global$2=global$p, classof=classof$1, String$1=global$2.String, toString$1=function (e){if ("Symbol"===classof(e)) throw TypeError("Cannot convert a Symbol value to a string"); return String$1(e);}, toString=toString$1, normalizeStringArgument$1=function (e, t){return void 0===e ? (arguments.length < 2 ? "" : t) : toString(e);}, isObject$1=isObject$8, createNonEnumerableProperty$1=createNonEnumerableProperty$5, installErrorCause$1=function (e, t){isObject$1(t) && "cause" in t && createNonEnumerableProperty$1(e, "cause", t.cause);}, uncurryThis=functionUncurryThis, replace=uncurryThis("".replace), TEST=String(Error("zxcasd").stack), V8_OR_CHAKRA_STACK_ENTRY=/\n\s*at [^:]*:[^\n]*/, IS_V8_OR_CHAKRA_STACK=V8_OR_CHAKRA_STACK_ENTRY.test(TEST), clearErrorStack$1=function (e, t){if (IS_V8_OR_CHAKRA_STACK && "string"==typeof e) for (; t--; ) e=replace(e, V8_OR_CHAKRA_STACK_ENTRY, ""); return e;}, fails=fails$8, createPropertyDescriptor=createPropertyDescriptor$3, errorStackInstallable=!fails(function (){var e=Error("a"); return ( !("stack" in e) || (Object.defineProperty( e, "stack", createPropertyDescriptor(1, 7) ), 7 !==e.stack) );}), getBuiltIn=getBuiltIn$4, hasOwn=hasOwnProperty_1, createNonEnumerableProperty=createNonEnumerableProperty$5, isPrototypeOf=objectIsPrototypeOf, setPrototypeOf=objectSetPrototypeOf, copyConstructorProperties=copyConstructorProperties$2, inheritIfRequired=inheritIfRequired$1, normalizeStringArgument=normalizeStringArgument$1, installErrorCause=installErrorCause$1, clearErrorStack=clearErrorStack$1, ERROR_STACK_INSTALLABLE=errorStackInstallable, wrapErrorConstructorWithCause$1=function (e, t, n, r){var o=r ? 2 : 1, i=e.split("."), s=i[i.length - 1], a=getBuiltIn.apply(null, i); if (a){var c=a.prototype; if ((hasOwn(c, "cause") && delete c.cause, !n)) return a; var l=getBuiltIn("Error"), u=t(function (e, t){var n=normalizeStringArgument(r ? t : e, void 0), i=r ? new a(e) : new a(); return ( void 0 !==n && createNonEnumerableProperty(i, "message", n), ERROR_STACK_INSTALLABLE && createNonEnumerableProperty( i, "stack", clearErrorStack(i.stack, 2) ), this && isPrototypeOf(c, this) && inheritIfRequired(i, this, u), arguments.length > o && installErrorCause(i, arguments[o]), i );}); (u.prototype=c), "Error" !==s && (setPrototypeOf ? setPrototypeOf(u, l) : copyConstructorProperties(u, l,{name: !0})), copyConstructorProperties(u, a); try{c.name !==s && createNonEnumerableProperty(c, "name", s), (c.constructor=u);}catch (e){}return u;}}, $=_export, global$1=global$p, apply=functionApply, wrapErrorConstructorWithCause=wrapErrorConstructorWithCause$1, WEB_ASSEMBLY="WebAssembly", WebAssembly=global$1[WEB_ASSEMBLY], FORCED=7 !==Error("e",{cause: 7}).cause, exportGlobalErrorCauseWrapper=function (e, t){var n={}; (n[e]=wrapErrorConstructorWithCause(e, t, FORCED)), $({global: !0, forced: FORCED}, n);}, exportWebAssemblyErrorCauseWrapper=function (e, t){if (WebAssembly && WebAssembly[e]){var n={}; (n[e]=wrapErrorConstructorWithCause( WEB_ASSEMBLY + "." + e, t, FORCED )), $({target: WEB_ASSEMBLY, stat: !0, forced: FORCED}, n);}}; function isPlainObject(e){return !!e && e.constructor===Object;}function concatUniques(e){if (!(e=e.filter(Array.isArray)).length) return []; const t=e.shift(); return Array.from(new Set(t.concat.apply(t, e)));}function mergeBase(e, t, n, r){let o; if ( (isPlainObject(t) ? (o=e.filter((e)=> isPlainObject(e[n]))) : Array.isArray(t) && (o=e.filter((e)=> Array.isArray(e[n]))), o && o.length) ){t=merge( o.map((e)=> e[n]), r );}return t;}function merge(e, t){const n=e.filter((e)=> !!e); if (n < 2) return e[0]; const r=concatUniques(n.filter((e)=> !!e).map(Object.keys)), o=n[0]; return r.reduce((e, r)=>{let o=n.filter((e)=> void 0 !==e[r]); if (t){let n=!1, i=o[0][r]; for (let e=1; e < o.length; e++){const s=t(i, o[e][r], r); void 0 !==s && ((i=s), (n=!0));}if (n) return (e[r]=i), e;}for (let o=n.length - 1; o >=0; o--){let i=n[o][r]; if (void 0 !==i) return (e[r]=mergeBase(n, i, r, t)), e;}return e;}, o);}function mergeViewportSizes(e, t){const n={}; return ( Object.keys(e).forEach((r)=>{if (((n[r]=e[r] || []), t && void 0 !==t[r])) if (!1===t[r] || (!t[r] && !1===e[r])) n[r]=!1; else{n[r]=concatUniques([e[r], t[r]]); const o=n[r].filter((e)=> e && "-"===e[0]), i=o.map((e)=> e.slice(1)), s=o.concat(i); n[r]=difference(n[r], s);}}), n );}function mergeObjectsOfArrays(e){return concatUniques(e.map(Object.keys)).reduce((t, n)=>{const r=e.map((e)=> e[n]).filter(Array.isArray); return r.length && (t[n]=concatUniques(r)), t;},{});}exportGlobalErrorCauseWrapper("Error", function (e){return function (t){return apply(e, this, arguments);};}), exportGlobalErrorCauseWrapper("EvalError", function (e){return function (t){return apply(e, this, arguments);};}), exportGlobalErrorCauseWrapper("RangeError", function (e){return function (t){return apply(e, this, arguments);};}), exportGlobalErrorCauseWrapper("ReferenceError", function (e){return function (t){return apply(e, this, arguments);};}), exportGlobalErrorCauseWrapper("SyntaxError", function (e){return function (t){return apply(e, this, arguments);};}), exportGlobalErrorCauseWrapper("TypeError", function (e){return function (t){return apply(e, this, arguments);};}), exportGlobalErrorCauseWrapper("URIError", function (e){return function (t){return apply(e, this, arguments);};}), exportWebAssemblyErrorCauseWrapper("CompileError", function (e){return function (t){return apply(e, this, arguments);};}), exportWebAssemblyErrorCauseWrapper("LinkError", function (e){return function (t){return apply(e, this, arguments);};}), exportWebAssemblyErrorCauseWrapper("RuntimeError", function (e){return function (t){return apply(e, this, arguments);};}); const isRunningOnClient="undefined" !=typeof window; function isObject(e){return "object"==typeof e && e.constructor===Object;}function getRender(e){return pick(e, [ "desktop", "tablet", "mobile", "constellation", "slot",]);}function stringToFunction(string){return eval("(" + string + ")");}function slotComplexRenderPreProcessor(e){Object.values(e ||{}).forEach((e)=>{isObject(e) && e.every && e.el && (e.when && (e.when=(isRunningOnClient && stringToFunction(e.when)) || e.when.toString()), e.in && e.in.el && e.in.when && (e.in.when=(isRunningOnClient && stringToFunction(e.in.when)) || e.in.when.toString()));});}function slotComplexRenderProcessor(e){e && (e.slot ? slotComplexRenderPreProcessor(e.slot) : Object.values(e).forEach((e)=>{slotComplexRenderPreProcessor(e.slot);}));}function mergePlugins(e, t){return Object.keys(t).reduce((n, r)=>{const o=merge([{}, e[r], t[r]], (e, t)=>{if (!1 !==e && !0===t) return e;}); return o && (n[r]=o), n;},{});}function mergeSlotTypeDefinitions(e, t){return Object.keys(t).reduce((n, r)=>{const o=mergeAdTechConfigs(e[r], t[r]); return o && (n[r]=o), n;},{});}const specialKeys={types: (e, t)=>{if (isObject(e)) return mergeSlotTypeDefinitions(e, t);}, groups: (e, t)=> e ? (isObject(e) ? concatUniques([e, t]) : void 0) : t, targeting: (e, t)=> e ? (isObject(e) ? mergeObjectsOfArrays([e, t]) : void 0) : t, position: (e, t)=> e ? (isObject(e) ? mergeObjectsOfArrays([e, t]) : void 0) : t, content_type: (e, t)=> e ? (isObject(e) ? mergeObjectsOfArrays([e, t]) : void 0) : t, sizes: (e, t)=>{if (isObject(e)) return mergeViewportSizes(e, t);}, render: (e, t)=> ( slotComplexRenderProcessor(e), slotComplexRenderProcessor(t), getRender(e ? t || e : t) ), plugins: mergePlugins,}; function adConfigMerger(e, t, n){let r; return ( specialKeys[n] ? (r=specialKeys[n](e, t)) : Array.isArray(e) && Array.isArray(t) && (r=t), r );}function mergeAdTechConfigs(e, t){return merge([{}, e, t], adConfigMerger);}const errorMessage="Ads -- Ad unit path generation error : ", matcher$1="[^A-Za-z0-9]"; function dashSlugify(e){const t=new RegExp(matcher$1, "g"); return ( e && e .toString() .toLowerCase() .replace(t, "-") .replace(/-+/g, "-") .replace(/(^-|-$)/g, "") );}function evalPath(fnString, options){try{const pathFn=eval("(" + fnString + ")"); if ("function"==typeof pathFn) return pathFn(options); error$1(`${errorMessage}generation function is not a function`);}catch (e){error$1(`${errorMessage}generation function cannot be evaluated`);}}function searchMap(e, t){return Object.keys(e).reduce( (n, r)=> (find$1(e[r], (e)=> e===t) ? r : n), !1 );}function findCategory(e){let t=e.channel, n=t ? dashSlugify(t) : "misc"; return (n="home"===n ? "homepage" : n), n;}function findContentType(e){const t=get$1(e, "adUnit.map.contentType"); t || error$1( `${errorMessage}Content type map is missing in the config` ); const n=searchMap(t, e.templateType); return n || error$1(`${errorMessage}contentType is undefined`), n;}function matchAdUnitPathComponent(e){let t=arguments.length > 1 && void 0 !==arguments[1] ? arguments[1] : [], n=arguments.length > 2 && void 0 !==arguments[2] ? arguments[2] : ""; t.sort((e, t)=>{const n=Array.isArray(e) ? e[0].length : e.length; return (Array.isArray(t) ? t[0].length : t.length) - n;}); for (let n=0; n < t.length; n +=1){const r=Array.isArray(t[n]), o=r ? t[n][0] : t[n]; if (e.startsWith(o)) return r ? t[n][1] : o;}return n || e;}function buildMatchedAdUnitPath(e, t){let n=e.categoryMatch, r=void 0===n ? [] : n, o=e.contentTypeMatch, i=void 0===o ? [] : o; const s=matchAdUnitPathComponent(t.category, r), a=matchAdUnitPathComponent( s, [matchAdUnitPathComponent(t.contentType, i)], t.contentType ); return `${t.network}/${t.suffix}/${t.position}/${s}/${a}/${t.instance}`;}function buildOrEvalPath(e, t){return Array.isArray(e.categoryMatch) ? buildMatchedAdUnitPath(e, t) : evalPath(e.generatePath, t);}function buildAdUnitPath(e){const t=e.position, n=e.network, r=e.positionCount, o=e.suffix, i=e.subChannel, s=e.contentType || findContentType(e), a=findCategory(e), c={network: n, position: t, category: a, contentType: s, instance: r, suffix: o, subChannel: i,}; set$2(window, "cns.adUnit.contentType", s), set$2(window, "cns.adUnit.category", a); return buildOrEvalPath({generatePath: get$1(e, "adUnit.generatePath"), categoryMatch: get$1(e, "adUnit.categoryMatch"), contentTypeMatch: get$1(e, "adUnit.contentTypeMatch"),}, c );}function buildLegacyPath(e){return evalPath(get$1(e, "adUnit.generateLegacyPath"), e);}function buildOverridePath(e){return `${e.network}/${e.override.replace(/,/g, "/")}`;}function slugifyChannels(e){let t=e.channel, n=e.subChannel; return{channel: dashSlugify(t) || "", subChannel: dashSlugify(n) || "",};}function generatePathOptions(e, t){const n=e.positionCount, r=e.network, o=e.override, i=e.suffix, s=e.templateType, a=e.slotName, c=e.shouldUseLegacyPath, l=e.position, u=slugifyChannels(e), d=u.channel, g=u.subChannel; return{adUnit: t.adUnit, network: r, override: o, templateType: s, positionCount: n, shouldUseLegacyPath: c, slotName: a, channel: d, subChannel: g, suffix: i, contentType: t.contentType, position: l,};}function getAdUnitPath(e, t){const n=generatePathOptions(e, t); let r; return ( (r=n.override ? buildOverridePath(n) : n.shouldUseLegacyPath ? buildLegacyPath(n) : buildAdUnitPath(n)), r || error$1(errorMessage), debug$1(`${e.slotName}.adUnitPathGenerated`, r), r );}const SlotCounter=function (){let e={}; (this.next=(t)=>{e[t]=e[t] || 0; const n=e[t]; return e[t]++, n;}), (this.current=(t)=> e[t] || 0);}, PositionCounter=function (){let e={}; this.next=(t)=>{e[t]=e[t] || 1; const n=e[t]; return e[t]++, n;};}, Store=function (){let e=arguments.length > 0 && void 0 !==arguments[0] ? arguments[0] :{}; const t=new Map(Object.entries(e)); (this.getState=(e)=> (t.has(e) ? t.get(e) :{})), (this.setState=function (e){let n=arguments.length > 1 && void 0 !==arguments[1] ? arguments[1] :{}; const r=t.has(e) ? t.get(e) :{}, o=Object.freeze(_objectSpread2(_objectSpread2({}, r), n)); return t.set(e, o), o;}), (this.getStore=()=> t);}, SlotStore=function (){const e=new Store(), t=new Set(); (this.getSlotState=(t)=> e.getState(t)), (this.setSlotState=(t, n)=> e.setState(t, n)), (this.isSpacerCreative=(e)=> t.has(e)), (this.setSpacerCreativeId=(e)=>{t.add(e);}), (this.getStore=()=> e.getStore());}, v6ToBlueprintKeys=new Map([ ["ctx_page_channel", "channel"], ["cnt_copilotid", "content_id"], ["ctx_ref_soc", "ctx_ref_soc"], ["ctx_ref_url", "ctx_ref_url"], ["ctx_page_slug", "page_slug"], ["cnt_platform", "platform"], ["ctx_slot_instance", "slot_instance"], ["pos", "slot_position"], ["ctx_slot_rn", "slot_refresh"], ["ctx_page_sub_channel", "subchannel"], ["cnt_tags", "tags"], ["ctx_template", "template_name"],]), getTargetingKeyTranslator=(e)=> e ? (e)=> (v6ToBlueprintKeys.has(e) ? v6ToBlueprintKeys.get(e) : e) : (e)=> e, getTargetingObjectTranslator=(e)=> (t)=>{const n=getTargetingKeyTranslator(e); return Object.keys(t).reduce((e, r)=> ((e[n(r)]=t[r]), e),{});}, matcher="[^A-Za-z0-9]"; function slugify(e){const t=new RegExp(matcher, "g"); return e .toString() .toLowerCase() .replace(t, "_") .replace(/_+/g, "_") .replace(/(^_|_$)/g, "");}function defineReadOnlyProperties(e, t){const n=Object.keys(t), r={}; for (let e=0; e < n.length; e++){const o=n[e]; r[o]={value: t[o], writable: !1, enumerable: !0};}return Object.defineProperties(e, r);}function freeze(e){try{return Object.freeze(e);}catch (e){throw new Error( 'Must use "new" keyword to instantiate, must support Object.freeze.' );}}function matchVariantPattern(e, t){let n=!1; return ( t.forEach((t)=>{!n && e[t] && (n=e[t]);}), n || e._default || e.__default );}function getSpecificityPattern(e){let t=e.slug, n=e.channel, r=e.subChannel, o=e.templateType; return [t, `${n}_${r}_${o}`, `${n}_${o}`, `${o}`];}function getSlotNamesForPage(e, t){const n=getSpecificityPattern(e); return matchVariantPattern(get$1(t, "slot.sets"), n);}function getConfig(){return get$1(window, "cns.config.config");}function getBrandAdUnitId(){return get$1(getConfig(), "slot.__auid_one");}function getAdUnit(){const e=get$1(window, "cns.config.config.ad_unit") ||{}; return{generatePath: e.generate_path, categoryMatch: e.category_match, contentTypeMatch: e.content_type_match, generateLegacyPath: e.generate_legacy_path, map:{contentType: get$1(e, "map.content_type")},};}function getNetwork(){return get$1(window, "cns.config.config.network");}function getViewportRange(e, t, n){const r=getConfig()[n], o=r && matchVariantPattern(r, e); return (o && o[t]) || o || 0;}function getPathOverride(){return queryParameters && queryParameters.ao_iu;}function getVersoFlag(e){const t=get$1(e, "keywords.platform") || []; return !!(t.length && "verso"===t[0]);}function getOverrideVpRange(e, t){return get$1(t, `request_vp_range.${e}`);}function getPageRefreshTime(){return getConfig().refresh;}function CompleteDefiner(e, t, n){const r=new SlotCounter(), o=new PositionCounter(), i=new SlotStore(), s=getSpecificityPattern(e), a=getConfig(), c=a.slot.types, l=getSlotNamesForPage(e, a), u=c._default ||{}, d=(a ||{}).useBlueprintTargeting, g=getTargetingKeyTranslator(void 0 !==d && d), f="for_children", p="static_refresh_size", m="can_be_hidden", y="insert_after_react_ready", h="is_sticky", b="required_targeting", $="wait_for_oop"; function S(e){const t=e.render; return t && (t.slot || (t[n] && t[n].slot));}function w(e, t, r, o){e || warn(`Invalid sizes: unable to define '${r}' on ${n}.`,{definition: o, slotName: r,}), t || warn(`Invalid render: unable to define: '${r}' on ${n}`,{definition: o, slotName: r,});}const T=freeze( l.reduce((e, r)=>{const o=mergeAdTechConfigs(u, c[r]._default), i=(function (e){const n=matchVariantPattern(c[e], s); return t ? mergeAdTechConfigs(n, t) : n;})(r), a=mergeAdTechConfigs(o, i); return ( (function (e, t, n){const r=t.sizes, o=r && r[n] && r[n].length, i=r && !1===r[n], s=S(t), a=o && !i; return !!t.isOutOfPage || (w(a, s, e, t), o && !i && s);})(r, a, n) && (e[r]=freeze(a)), e );},{}) ), v=freeze(Object.keys(T)); const P=new (function (){defineReadOnlyProperties(this,{slug: e.slug, server: e.server, keywords: e.keywords, channel: e.channel || "misc", subChannel: e.subChannel, subSubChannel: e.subSubChannel, device: n, templateType: e.templateType, contentType: e.contentType, forChildren: e[f], slotNames: v, network: getNetwork(), brand: getBrandAdUnitId(), requestViewportRange: getViewportRange(s, n, "request_vp_range"), adUnit: getAdUnit(), isVerso: getVersoFlag(e), useRoadblock: getConfig().useRoadblock, lazyloadSettings: getViewportRange(s, n, "lazyload_settings"), pageRefresh: getPageRefreshTime(),}), freeze(this);})(); function E(t){const i=new RegExp(/cm/), s=T[t], a=i.test(s.suffix); function c(e, n){let i=arguments.length > 2 && void 0 !==arguments[2] ? arguments[2] :{}; e=void 0 !==e ? e : r.next(t); const s=`${t}_${e}`; n=void 0 !==n ? n : o.next(this.position); const a=this.position && slugify(this.position), c=`${a}_${n}`; defineReadOnlyProperties(this,{id: s, slotCount: e, positionCount: n, positionId: c, data: i,}), (this.getAdUnitPath=()=> getAdUnitPath(this, P)), freeze(this);}(this.getRenderBlock=()=> S(s)), (this.getSizes=()=> s.sizes[n]), (this.getSizesArray=()=> sizesToArray(s.sizes[n])), (this.getSizeMapping=()=>{const e=window.googletag.sizeMapping(); return ( e .addSize([1024, 0], sizesToArray(s.sizes.desktop)) .addSize([768, 0], sizesToArray(s.sizes.tablet)) .addSize([0, 0], sizesToArray(s.sizes.mobile)), e.build() );}), (this.shouldWaitUntilVisibleBeforeDisplay=()=>{const e=s[m]; return !a && !e;}), (this.getCustomData=()=> s.data), (c.prototype=this), (this.getSlotDefinition=function (){for ( var e=arguments.length, t=new Array(e), n=0; n < e; n++ ) t[n]=arguments[n]; return new c(...t);}), (this.getSlotDefinitionFromGPTSlot=(e)=>{const t=g("pos_instance"), n=g("ctx_slot_instance"), r=parseInt(e.getTargeting(t)[0], 10); return new c(parseInt(e.getTargeting(n)[0], 10), r);}), (this.getSlotRefreshTime=(e, t, n)=>{let r; return (r=void 0 !==t ? t : e), r && r[n] && (r=r[n]), r;}), defineReadOnlyProperties(this,{slotName: t, isCM: a, isOutOfPage: !!s.isOutOfPage, refresh: this.getSlotRefreshTime(P.pageRefresh, s.refresh, n), isSticky: isStickyDeviceEnabled(s[h], n), hasStaticRefreshSize: !!s[p], suffix: s.suffix, channel: e.channel, subChannel: e.subChannel, subSubChannel: e.subSubChannel, templateType: e.templateType, override: getPathOverride(), brand: getBrandAdUnitId(), network: getNetwork(), shouldUseLegacyPath: s.should_use_legacy_path, shouldWaitForOOP: s[$], shouldWaitForReact: !!s[y], requiredTargeting: s[b] || [], position: s.position, overrideRequestViewportRange: getOverrideVpRange(n, s),}), freeze(this);}(this.getSlotTypeDefinition=(e)=> new E(e)), (this.getSlotDefinitionFromGPTSlot=(e)=>{const t=e.getSlotElementId().split("_"); t.pop(); return new E(t.join("_")).getSlotDefinitionFromGPTSlot(e);}), (this.getSlotStateStore=()=> i), (this.getPageDefinition=()=> P), freeze(this);}const reactReadyEvent="react.ready"; function onReactReady(){set$2(window, "_cne.pageCreated", !0);}function enableCNE(e){if (e.history(reactReadyEvent).length) return onReactReady(); e.on(reactReadyEvent, onReactReady);}const eval2=eval; function getText(e){let t=""; const n=e.childNodes; for (let e=0; e < n.length; e++){let r=n[e]; 8 !==r.nodeType && (t +=1 !==r.nodeType ? r.nodeValue : getText(r));}return t;}function setMeta(e, t, n){const r=getText(n[t]); return{index: t, isOdd: !!(t % 2), isEven: !(t % 2), isFirst: 0===t, isLast: t===e - 1, characterCount: r.split("").length, wordCount: r.split(" ").length,};}function isValidComplexInjection(e){return ( "string"==typeof e.el && "number"==typeof e.every && (("object"==typeof e.in && "string"==typeof e.in.el) || "string"==typeof e.in) );}const insertionMethodMap={top: "prepend", bottom: "append", after: "after",}; function normalizeMethod(e){return insertionMethodMap[e] || e;}const insertionMethods={before: (e)=> e.previousSibling, above: (e)=> e.previousSibling, after: (e)=> e.nextSibling, below: (e)=> e.nextSibling, prepend: (e)=> e.firstElementChild, append: (e)=> e.lastElementChild,}; function getInsertionTarget(e, t){if (insertionMethods[t]) return insertionMethods[t](e);}function alreadyExists(e, t){const n=getInsertionTarget(e, t), r=n && n.classList && n.classList.contains("cns-ads-stage"), o=n && n.firstChild, i=o && o.classList && o.classList.contains("cns-ads-stage"); return !(!r && !i);}function checkEvery(e){let t=e.injectionBlock, n=e.index; return ( "number"==typeof t.every && !!t.every && "number"==typeof n );}function checkCustomCondition(e){return "function"==typeof e.customConditionFn;}const shouldAddSlotConditions=[{name: "every", check: checkEvery, fn: (e)=> (e.index + 1) % e.injectionBlock.every==0,},{name: "custom condition", check: checkCustomCondition, fn: (e)=> (0, e.customConditionFn)(e.domNode, e.meta),},]; function shouldAddSlot(e){for (let t=0; t < shouldAddSlotConditions.length; t++){const n=`shouldAddSlot.${shouldAddSlotConditions[t].name}`; if (shouldAddSlotConditions[t].check(e)){let r; try{r=shouldAddSlotConditions[t].fn(e);}catch (t){debug$1(`${n}.conditionThrew`,{ex: t, facts: e});}if (!r) return debug$1(`${n}.conditionNotMet`, e), r; debug$1(`${n}.conditionFalse`, e);}else debug$1(`${n}.checkFailed`, e);}return !0;}function getParentSelector(e){return "string"==typeof e ? e : e.el;}function getEvalResult(e){if (e) try{return eval2(`(${e})`);}catch (e){error$1("seriesInjection", e);}}function getDomNodesForInjectionBlock(e){let t=0, n=0; const r=find(getParentSelector(e.in)); if (!r) return []; const o=findAll(r, e.el), i=o.length, s=getEvalResult(e.when), a=[]; for (let r=0; r < i; r++){const c=o[r], l=setMeta(i, r, o); (t +=l.characterCount), (n +=l.wordCount), (l.accumulatedCharacterCount=t), (l.accumulatedWordCount=n), shouldAddSlot({index: r, domNode: c, meta: l, customConditionFn: s, injectionBlock: e,}) && a.push(c);}return a;}function getCandidateElementsFromRenderBlock(e){return Object.keys(e).reduce((t, n)=>{const r=e[n]; let o; return ( "string"==typeof r ? (o=findAll(r)) : isValidComplexInjection(r) ? (o=getDomNodesForInjectionBlock(r)) : ((o=[]), error$1("invalid", r)), (n=normalizeMethod(n)), (o=o.filter((e)=> !alreadyExists(e, n))), o && o.length && (t[n]=o), t );},{});}const PromiseLock=function (){let e; return function (t){return function (){for ( var n=arguments.length, r=new Array(n), o=0; o < n; o++ ) r[o]=arguments[o]; if (e){const n=e.then(()=> t(...r)); return (e=n.then(()=>{})), n;}return (e=t(...r)), e;};};}, cloneArray=(e)=> Array.prototype.slice.apply(e), debounce=(e, t)=>{let n; return function (){const r=this, o=arguments; clearTimeout(n), (n=setTimeout(()=> e.apply(r, o), t));};}, cumulativeArgumentDebounce=(e, t)=>{let n; const r=[]; return function (){const o=this; r.push(cloneArray(arguments)), clearTimeout(n), (n=setTimeout(()=>{e.apply(o, [cloneArray(r)]), (r.length=0);}, t));};}; function createContainerEl(e, t, n){const r=createElement$1("div",{id: `${e}_${t}`}); return ( addClasses(r, ["cns-ads-container"]), setStyle(r,{margin: "0px auto", boxSizing: "content-box"}), n && setElementData(r, n), r );}function createAdDivs(e, t, n, r){const o="cns-ads-slot-type-", i=e.replace(new RegExp("_", "g"), "-").toLowerCase(), s=createElement$1("div",{id: `${o}${i}-${t}`}); addClasses(s, ["cns-ads-stage", o + i, `${o + i}-${t}`]), setElementData(s,{name: `${e}_${t}`, "slot-type": e}), r || setStyle(s,{fontSize: 0, lineHeight: 0, overflow: "hidden"}), "_out_of_page"===e && addClasses(s, ["cns-ads-slot-type-out-of-page"]); const a=createElement$1("div"); return ( addClasses(a, ["cns-ads-flex-sizer"]), s.appendChild(a), s.appendChild(createContainerEl(e, t, n)), s );}function InjectRefreshDisplayInjectionStrategy(e, t, n, r){window.googletag=window.googletag ||{}; const o=window.googletag, i={after: (e, t)=> e.parentNode.insertBefore(t, e.nextSibling), prepend: (e, t)=> e.insertBefore(t, e.children[0]), append: (e, t)=> e.appendChild(t), before: (e, t)=> e.parentNode.insertBefore(t, e),}; this.insertSlot=function (s, a, c, l, u){fastdom.mutate(()=>{const d=createAdDivs( a.slotName, a.slotCount, _objectSpread2(_objectSpread2({}, a.getCustomData()), a.data), r ); !(function (e, t, n){i[t] ? i[t](e, n) : e[t](n);})(c, l, d), u(d, a, ()=>{((r, i)=>{const s=t.getSingleInstance().getPageDefinition(); e( ["refreshLC-serviceLT"],{pageDefinition: s}, (t)=> ( applyTargeting(o.pubads(), t), e( ["refresh"],{slotDefinition: i, slot: r, pageDefinition: s}, (e)=>{e ? (applyTargeting(r, e), n.reset(i), get$1( window, "cns.config.config.useRoadblock" ) || o .pubads() .refresh([r],{changeCorrelator: !1}), debug$1(`refreshing.${r.getSlotElementId()}`)) : error$1("slot targeting is missing", s, i);}) ) );})(s, a);});});};}const allowedIntersectionOptions=["threshold", "rootMargin"], defaultIntersectionObserverOptions={threshold: 0, rootMargin: "0px 0px",}, _EventEmitter=new EventEmitter("VisibilityObserver"), debug=_EventEmitter.debug, error=_EventEmitter.error; function isIntersecting(e){return any(e, (e)=> e.isIntersecting);}function hasHigherIntersectionRatio(e, t){return void 0===e || any(t, (t)=> t.intersectionRatio >=(e || 0));}function getIntersectionObserverOptions(e){return Object.assign({}, defaultIntersectionObserverOptions, pick(e, allowedIntersectionOptions) );}function observeEvents(e, t, n, r){fastdom.measure(()=>{try{const r=new IntersectionObserver((o)=>{hasHigherIntersectionRatio(t.intersectionRatio, o) && isIntersecting(o) ? (debug("visible",{el: e, entries: o}), n(!0, r)) : (debug("notVisible",{el: e, entries: o}), n(!1, r));}, getIntersectionObserverOptions(t)); r.observe(e);}catch (e){r(e);}});}function onIntersection(e, t, n){observeEvents( e, t, (e)=> n(e), (e)=> error("onIntersection", e) );}function onceVisible(e, t){return new Promise((n, r)=>{observeEvents( e, t, (e, t)=>{e && (n(), t.disconnect());}, r );});}function reactRule(e, t){return !e || t;}function targetingRule(){let e=arguments.length > 0 && void 0 !==arguments[0] ? arguments[0] : [], t=arguments.length > 1 ? arguments[1] : void 0, n=arguments.length > 2 ? arguments[2] : void 0; const r=Object.keys(n), o=Object.keys(t); return all( e, (e)=> find$1(r, (t)=> t===e) || find$1(o, (t)=> t===e) );}function canRequest(e){let t=e.slotTypeDefinition, n=e.pageTargeting, r=e.slotTargeting, o=e.reactReady, i=e.oopHasRendered, s=e.excludedPositions; const a=!!r, c=targetingRule(t.requiredTargeting, r, n), l=reactRule(t.shouldWaitForReact, o), u=t.shouldWaitForOOP, d=t.position, g=s.has(d); let f=a && c && l && !g && !(u && !i); return ( debug$1(`canRequest.${t.slotName}.${f}`,{slotTypeDefinition: t, pageTargeting: n, slotTargeting: r, reactReady: o, oopHasRendered: i, excludedPositions: s,}), f );}const handleMoatYieldIntelligenceReady=(e)=>{emitBoomPixel("moatLoad"); try{window.moatPrebidApi.setMoatTargetingForAllSlots();}catch (t){return e({moatYieldIntelligenceUnavailable: !0});}return e({moatYieldIntelligenceLoaded: !0});}, moatYieldIntelligence={load: ()=> new Promise((e)=>{window.moatYieldReady=()=>{handleMoatYieldIntelligenceReady(e);};}), slotDataAvailable(){try{return !!window.moatPrebidApi.slotDataAvailable();}catch (e){return !1;}}, setMoatTargetingForSlot(e){window.moatPrebidApi.setMoatTargetingForSlot(e);},}; function UnassumingInsert(e, t, n, r){window.googletag=window.googletag ||{}; const o=window.googletag, i=t.withTargeting, s=r.getSingleInstance().getPageDefinition().isVerso, a=new InjectRefreshDisplayInjectionStrategy(i, r, n, s), c=new Set(); let l=!1, u=!1; function d(e, t){let n; return ( r .getSingleInstance() .getSlotStateStore() .setSlotState(e.id,{nodeId: e.data && e.data["node-id"]}), (n=t ? o.defineOutOfPageSlot(e.getAdUnitPath(), e.id) : o .defineSlot(e.getAdUnitPath(), e.getSizesArray(), e.id) .defineSizeMapping(e.getSizeMapping())), n );}function g(e, t){return (n, r, i)=>{const s=(function (e){if (e.shouldWaitUntilVisibleBeforeDisplay()) return onceVisible;})(r), a=()=>{const e=r.id; debug$1("insert.display", e), o.display(e), i();}, c=e.requestViewportRange, l=t.overrideRequestViewportRange; if (s) return s(n,{rootMargin: `${void 0 !==l ? l : c}% 0%`}).then( a ); a();};}const f=new PromiseLock()((e)=>{const t=e.getSingleInstance().getPageDefinition(); return i(["service"],{pageDefinition: t}, (n)=>{if (n) return ( applyTargeting(o.pubads(), n), Promise.all( t.slotNames.map((r)=>{const o=e.getSingleInstance().getSlotTypeDefinition(r); return (function (e, t){let n; const r=e.getRenderBlock(); return ( (n=getCandidateElementsFromRenderBlock(r)), Promise.all( Object.keys(n).map( (r)=> ( debug$1("candidatesByMethod." + e.slotName,{method: r, els: n[r], definition: e,}), Promise.all(n[r].map((e)=> t(e, r))) ) ) ) );})(o, (e, r)=> i( ["slot"],{pageTargeting: n, slotTypeDefinition: o, reactReady: u, el: e,}, (s)=>{if (!s) return void error$1( "slot type targeting is missing", t, o ); if ( !canRequest({slotTypeDefinition: o, pageTargeting: n, slotTargeting: s, reactReady: u, oopHasRendered: l, excludedPositions: c,}) ) return void debug$1( `${o.slotName}.notRequestable`, o, u, n, s ); const f=e.dataset.nodeId, p=o.getSlotDefinition( void 0, void 0, _objectSpread2({}, f &&{"node-id": f}) ), m=p.isOutOfPage, y=d(p, m); if (!y) return void error$1( "the slot cannot be defined", p, y ); moatYieldIntelligence.slotDataAvailable() && moatYieldIntelligence.setMoatTargetingForSlot(y), y.addService(window.googletag.pubads()), m && y.addService(window.googletag.companionAds()); const h=_objectSpread2({}, s); y.updateTargetingFromMap(h), i(["define"],{slotDefinition: p}, (e)=>{applyTargeting(y, e);}), a.insertSlot(y, p, e, r, g(t, o));}) );}) ) ); error$1("page targeting is missing", t);}) .catch(handlePromiseError("insert error")) .then( ()=> new Promise((e)=> fastdom.mutate(()=> setTimeout(e, 1e3))) ) .catch(handlePromiseError("impossible mutate error"));}); var p; (p=()=>{u=!0;}), e.history("react.ready").length ? p() : e.on("react.ready", p), (function (){const t=e.on("#.slotRenderEnded.#", (n, r)=>{r.topic && r.topic.includes("out_of_page") && ((l=!0), t(), e.emit("ads.componentDidUpdate"));});})(), e.on("ads.excludePositions", (e)=>{e.forEach(c.add, c);}), (this.insert=(t)=>{!(function (t){o.pubadsReady ? t() : e.on("ads.pubadsReady", t);})(()=>{f(t), (function (t){e.on("react.ready", t), e.on("#.componentDidMount.#", t), e.on("#.componentDidUpdate.#", t);})(debounce(()=> f(t), 500));});});}const always=()=> !0; function LifecycleRegistrar(e){const t=new EventEmitter("LifecycleRegistrar").warn, n={}; function r(e){return e && "object"==typeof e && "function"==typeof e.then;}function o(e){const n={}; e.unshift({}); for (let r=0; r < e.length; r++){let o=e[r]; "object" !=typeof o && (t("Callback should return object, instead found " + typeof o), (o={})), Object.assign(n, o);}return n;}e.forEach((e)=>{n[e]=[];}), (this.register=function (t, r, o){if ((o || ((o=r), (r=always)), !e.includes(t))) throw new Error(`${t}not registered in LifeCycle`); n[t].push({when: r, fn: o});}), (this.apply=function (e){for ( var t=arguments.length, i=new Array(t > 1 ? t - 1 : 0), s=1; s < t; s++ ) i[s - 1]=arguments[s]; const a=[]; e.forEach((e)=>{n[e].forEach((e)=>{let t=e.when, n=e.fn; t(...i) && a.push(n);});}); let c=a.map((e)=> e(...i)); return any(c, r) ? Promise.all(c).then(o) : o(c);});}const market="a9", apstagConfig={pubID: "3035", adServer: "googletag", bidTimeout: 1e3, deals: !0, params:{},}; let isFirstAuction=!0, timeoutLength=1e3; function AmazonMatchBuy(){const e=new EventEmitter(market), t=e.debug, n=e.warn; function r(e){const t=e.getSlotElementId(), n=(function (e){return `${getPositionFromSlot(e)}/${getViewportTemplate()}`;})(e); return{slotID: t, slotName: n, sizes: getValidSizesFromSlot(e, validSizes).map((e)=> getSizeStringAsArray(e) ),};}function o(e, t){window.apstag._Q.push([e, t]);}(window.apstag=window.apstag ||{init: function (){o("i", arguments);}, fetchBids: function (){o("f", arguments);}, _Q: [],}), (apstagConfig.params.si_section=getPageContext(window).channel || ""), (apstagConfig.params.us_privacy=getPrivacyString()), window.apstag.init(apstagConfig), (this.startAuction=function (e){return ( t( "startAuction", e.map((e)=> e.getSlotElementId()) ), new Promise((o)=>{window.apstag.fetchBids({slots: e.map(r), bidTimeout: timeoutLength}, (r)=>{isFirstAuction && ((isFirstAuction=!1), (timeoutLength=2e3), emitBoomPixel("firstA9Auction")), t("complete", r); try{window.apstag.setDisplayBids(), o(e.map(()=> ({})));}catch (t){n("cannotHandleBidsBack", t), o(e.map(()=> ({})));}});}) );}), (this.isSlotEligible=isSlotEligible), (this.market=market);}function collectPromises(e, t){const n=cumulativeArgumentDebounce((t)=>{const n=[], r=[], o=[], i=(e)=> o.forEach((t)=> t(e)); t.forEach((e)=>{r.push(e[0]), o.push(e[1]), n.push(e[2]);}), e(n) .then((e)=> e ? e.length !==n.length ? i( new Error( "collectPromises: Number of results must equal number of original items" ) ) : e.forEach((e, t)=> r[t](e)) : r.forEach((e)=> e()) ) .catch(i);}, (t=t || 0)); return (e)=> new Promise((t, r)=> n( (e)=>{t(e);}, r, e ) );}function isHostWhitelisted(e){const t=get$1(e, "config.domain"); return window.location.host.indexOf(t) > -1;}function areAuctionsEnabled(e){return ( !!isHostWhitelisted(e) && !!hasConsentToAuction() && !featureFlags.ads_disable_auctions );}function createSlotAuctionEligible(e){return (t)=>{let n=t.slotDefinition, r=t.slot; const o=get$1(window, "cns.flags.shouldNotAuction"), i=e.market; return ( !("prebid"===i && !get$1(window, "pbjs.libLoaded")) && !("a9"===i && !window.apstagLOADED) && !o && !n.isOutOfPage && !n.isCM && e.isSlotEligible(r) );};}function createStartAuction(e){return collectPromises((t)=> e.startAuction(t.map((e)=> e.slot)));}var auctioneer={areAuctionsEnabled: areAuctionsEnabled, createSlotAuctionEligible: createSlotAuctionEligible, createStartAuction: createStartAuction,}; const cookieCacheName="cn_4dsgcache"; function gather4dValues(e, t){const n=(get$1(window, e) || []).map((e)=> e[t]); return (n.length && n) || "";}function get4Dsg(e){let t=[], n="0"; if (e){t=e; const n=new Date(); n.setTime(n.getTime() + 6048e5), (document.cookie=`${cookieCacheName}=${t.join( ":" )}; expires=${n.toGMTString()}; path=/;SameSite=Lax;Secure`);}else{const e=getCookie(cookieCacheName); e && ((t=e.split(":")), (n="1"));}return{sgData: t, isCached: n};}function get4DTargeting(){const e=window, t="_4d.context", n="_4d.user", r="name", o=`${t}.keywords.list`, i=`${t}.entities`, s="SparrowCache.event", a=get4Dsg(get$1(e, `${n}.sg`)); return{vnd_4d_sg: a.sgData, vnd_4d_cached: a.isCached, vnd_4d_ctx_sg: get$1(e, `${t}.sg`) || "", vnd_4d_ctx_topics: gather4dValues(i, r), vnd_4d_ctx_entities: gather4dValues(i, r), vnd_4d_ctx_keywords: gather4dValues(o, "keyword"), vnd_4d_sid: get$1(e, `${s}.sID`) || getCookie("sID"), vnd_4d_pid: get$1(e, `${s}.pID`) || getCookie("pID"), vnd_4d_usr_topics: gather4dValues(`${n}.topics`, r), vnd_4d_usr_wt: get$1(e, `${n}.wt`) || "", vnd_4d_xid: get$1(e, `${n}.xid`) || getCookie("CN_xid") || "",};}function getUserSegments(){let e=getCookie("CN_segments"); return{usr_segments: e ? e.split("|") : []};}function getReferrer(e){let t; try{t=new URL(e).hostname;}catch (e){t="none";}let n="none", r=sessionStorage.getItem("ctx_ses_soc") || "none"; const o={fb: "facebook.com", tw: "t.co", rd: "reddit.com", pn: "pinterest.com", ig: "instagram.com", glp: "plus.url.google.com", tbl: "t.umblr.com", qq: "qzone.qq.com", we: "weibo.com", hb: "habbo.com", vk: "vk.com", rr: "renren.com", or: "orkut.google.com", sn: "snapchat.com",}; return ( Object.keys(o).forEach((t)=>{const i=o[t]; e.includes(i) && ((n=t), (r=t), sessionStorage.setItem("ctx_ses_soc", t));}),{ctx_ses_soc: r, ctx_ref_soc: n, ctx_ref_url: t});}var crc32={}, exports, factory; function generateEva(e){if (!e) return 100; try{const t=crc32.str(e); return Math.abs(t % 100) + 1;}catch (e){return 100;}}function findOrCreateEva(e){let t=arguments.length > 1 && void 0 !==arguments[1] ? arguments[1] :{}; const n=t.storage.getItem("usr_bkt_eva"), r=generateEva(e).toString(); return ( n !==r && t.storage.setItem("usr_bkt_eva", r), parseInt(r, 10) );}function isStorageEnabled(){try{return ( window.localStorage.setItem("testKey", "1"), window.localStorage.removeItem("testKey"), !0 );}catch (e){return !1;}}function checkDate(e, t){return t > e;}function trimDate(e, t){if (!e) return []; return e .toString() .split(",") .filter((e)=>{const n=parseInt(e, 10); return checkDate(t, n);});}function timeTravel(e, t){const n=new Date(e).getDate() - t; return new Date(e).setDate(n);}function getSessionData(){const e=new Date().getTime(), t=timeTravel(e, 1), n=timeTravel(e, 30), r=parseInt(sessionStorage.getItem("session-visits"), 10) || 0; sessionStorage.setItem("session-visits", (r + 1).toString()); const o=sessionStorage.getItem("session-visits"); let i=localStorage.getItem("session-visit-dates"); const s=localStorage.getItem("total-visits"); r || (i=i ? `${i},${e}` : e); const a=s ? `${s},${e}` : e, c=trimDate(a, t), l=trimDate(a, n), u=trimDate(i, n); return ( localStorage.setItem("total-visits", l.join(",")), localStorage.setItem("session-visit-dates", u.join(",")),{usr_pvc_bs: o, usr_pvc_24hr: c.length, usr_pvc_30d: l.length, usr_svc_30d: u.length,});}function getUserBuckets(){let e=sessionStorage.getItem("usr_bkt_ses"); const t=findOrCreateEva(getCookie("CN_xid"),{storage: localStorage,}); return ( e || ((e=Math.floor(100 * Math.random()) + 1), sessionStorage.setItem("usr_bkt_ses", e)),{usr_bkt_eva: t, usr_bkt_ses: e, usr_bkt_pv: Math.floor(100 * Math.random()) + 1,});}function getMediaBuy(){return{mbid: (parse(document.location.search) ||{}).mbid};}function getUserAuth(){let e=["false"]; return ( (getCookie("CN_userAuth") || getCookie("CN_token_id")) && (e=["true", "authenticated"]), (getCookie("pay_ent_sub") || getCookie("pay_ent_pass")) && (e=["true", "entitled"]),{usr_auth: e});}let userData; function resetUserData(){userData=!1;}function getUserGid(){let e; const t=getCookie("_ga"); return ( new RegExp(/^GA1.2./).test(t) && (e=t.split("GA1.2.")[1]),{usr_gid: e});}function getUserDataPageTargeting(){if (!isStorageEnabled()) return{}; if (userData) return userData; const e=document.referrer; return ( (userData=_objectSpread2( _objectSpread2( _objectSpread2( _objectSpread2( _objectSpread2( _objectSpread2({}, getUserBuckets()), getSessionData() ), getReferrer(e) ), getMediaBuy() ), getUserAuth() ), getUserGid() )), userData );}(exports=crc32), (factory=function (e){e.version="1.2.0"; var t=(function (){for (var e=0, t=new Array(256), n=0; 256 !=n; ++n) (e=1 & (e=1 & (e=1 & (e=1 & (e=1 & (e=1 & (e=1 & (e=1 & (e=n) ? -306674912 ^ (e >>> 1) : e >>> 1) ? -306674912 ^ (e >>> 1) : e >>> 1) ? -306674912 ^ (e >>> 1) : e >>> 1) ? -306674912 ^ (e >>> 1) : e >>> 1) ? -306674912 ^ (e >>> 1) : e >>> 1) ? -306674912 ^ (e >>> 1) : e >>> 1) ? -306674912 ^ (e >>> 1) : e >>> 1) ? -306674912 ^ (e >>> 1) : e >>> 1), (t[n]=e); return "undefined" !=typeof Int32Array ? new Int32Array(t) : t;})(); (e.table=t), (e.bstr=function (e, n){for (var r=-1 ^ n, o=e.length - 1, i=0; i < o; ) r=((r=(r >>> 8) ^ t[255 & (r ^ e.charCodeAt(i++))]) >>> 8) ^ t[255 & (r ^ e.charCodeAt(i++))]; return ( i===o && (r=(r >>> 8) ^ t[255 & (r ^ e.charCodeAt(i))]), -1 ^ r );}), (e.buf=function (e, n){if (e.length > 1e4) return (function (e, n){for (var r=-1 ^ n, o=e.length - 7, i=0; i < o; ) r=((r=((r=((r=((r=((r=((r=((r=(r >>> 8) ^ t[255 & (r ^ e[i++])]) >>> 8) ^ t[255 & (r ^ e[i++])]) >>> 8) ^ t[255 & (r ^ e[i++])]) >>> 8) ^ t[255 & (r ^ e[i++])]) >>> 8) ^ t[255 & (r ^ e[i++])]) >>> 8) ^ t[255 & (r ^ e[i++])]) >>> 8) ^ t[255 & (r ^ e[i++])]) >>> 8) ^ t[255 & (r ^ e[i++])]; for (; i < o + 7; ) r=(r >>> 8) ^ t[255 & (r ^ e[i++])]; return -1 ^ r;})(e, n); for (var r=-1 ^ n, o=e.length - 3, i=0; i < o; ) r=((r=((r=((r=(r >>> 8) ^ t[255 & (r ^ e[i++])]) >>> 8) ^ t[255 & (r ^ e[i++])]) >>> 8) ^ t[255 & (r ^ e[i++])]) >>> 8) ^ t[255 & (r ^ e[i++])]; for (; i < o + 3; ) r=(r >>> 8) ^ t[255 & (r ^ e[i++])]; return -1 ^ r;}), (e.str=function (e, n){for (var r, o, i=-1 ^ n, s=0, a=e.length; s < a; ) (r=e.charCodeAt(s++)) < 128 ? (i=(i >>> 8) ^ t[255 & (i ^ r)]) : r < 2048 ? (i=((i=(i >>> 8) ^ t[255 & (i ^ (192 | ((r >> 6) & 31)))]) >>> 8) ^ t[255 & (i ^ (128 | (63 & r)))]) : r >=55296 && r < 57344 ? ((r=64 + (1023 & r)), (o=1023 & e.charCodeAt(s++)), (i=((i=((i=((i=(i >>> 8) ^ t[255 & (i ^ (240 | ((r >> 8) & 7)))]) >>> 8) ^ t[255 & (i ^ (128 | ((r >> 2) & 63)))]) >>> 8) ^ t[ 255 & (i ^ (128 | ((o >> 6) & 15) | ((3 & r) << 4)))]) >>> 8) ^ t[255 & (i ^ (128 | (63 & o)))])) : (i=((i=((i=(i >>> 8) ^ t[255 & (i ^ (224 | ((r >> 12) & 15)))]) >>> 8) ^ t[255 & (i ^ (128 | ((r >> 6) & 63)))]) >>> 8) ^ t[255 & (i ^ (128 | (63 & r)))]); return -1 ^ i;});}), "undefined"==typeof DO_NOT_EXPORT_CRC ? factory(exports) : factory({}); const isStickyEligible=function (e){return e.isSticky ? "sticky-eligible" : null;}, getFlagTargeting=function (e){let t=e.slotTypeDefinition; return{"feature-flags": [isStickyEligible(t)]};}, getGeoTargeting=()=>{const e=getCookie("CN_geo_country_code"); return e ?{fastly_geo: e}:{};}; function AdobeAudienceManager(){function e(e, t){const n=t[0], r=t[1], o="vnd_aam_" + n.toLowerCase(), i=e[o] || []; return i.push(r), (e[o]=i), e;}this.getTargeting=function (){const t=getCookie("aamconde"), n=getCookie("aam_uuid"), r=t && (function (t){return decodeURIComponent(t) .split(";") .map((e)=> e.split("=")) .reduce(e,{});})(t); return _objectSpread2( _objectSpread2({}, n &&{vnd_aam_uuid: [decodeURIComponent(n)]}), r );};}function Proximic(){let e={vnd_prx_segments: []}; const t=`https://segment-data.zqtk.net/condenast-amp?url=${encodeURIComponent( window.location.href )}`, n=new EventEmitter("Proximic").warn, r=new XMLHttpRequest(); r.addEventListener("load", function (){if (200===this.status){const t=JSON.parse(this.response); e=t && t.targeting;}else n("serverError", this.status);}), r.open("GET", t), r.send(), (this.getTargeting=function (){return e;});}function fromCamelToSnake(e){return e.replace(/([a-z])([A-Z])/g, "$1_$2").toLowerCase();}function set(e, t, n){void 0===e[t] && (e[t]=n);}function push(e, t, n){(e[t]=e[t] || []), e[t].push(n);}function contains(e, t){return -1 !==e.indexOf(t);}function startsWith(e, t){return e.slice(0, t.length)===t;}function getTargeting(e, t, n, r){let o=r.el; const i=e.length, s={}; let a=o; for (; a; ){if (1===a.nodeType){const r=a.dataset; Object.keys(r).forEach((o)=>{const a=r[o]; if (startsWith(o, e) && "string"==typeof a){const e=fromCamelToSnake(o.slice(i)), r=contains(t, e) ? a.split(",") : a; contains(n, e) ? push(s, e, r) : set(s, e, r);}});}a=a.parentNode;}return s;}const getOrSetCache=(e)=>{try{return caches.open(e);}catch (e){return Promise.reject(Error("IE does not support caching: ", e));}}, getCachedResponse=async (e)=>{let t=e.cacheName, n=e.requestPath, r=e.requestOptions; return (await getOrSetCache(t)).match(n, r);}, setCachedResponse=async (e)=>{let t=e.cacheName, n=e.requestPath, r=e.response; n && r.ok && (await getOrSetCache(t) .then((e)=>{e.put(n, r).catch(()=>{});}) .catch(()=>{}));}, SEGMENTATOR_API_URI="https://segmentator.condenast.ru/api", getGCNIDCookie=()=> getCookie("G_CNID") || "0", callSegmentatorAPI=async (e, t)=>{const n=t.origin, r=t.domain, o=t.identifier, i=`${SEGMENTATOR_API_URI}/${e}`, s={method: "POST", headers: new Headers({"x-g-cnid": getGCNIDCookie(), origin: n, "Content-Type": "application/json",}), body: JSON.stringify({domain: r, path: o}),}, a={cacheName: "segmentator-cache", requestPath: i}, c=(e)=> e.json().then((t)=>{if ("ok" !==t.status) throw new Error("Segmentator response status not OK"); const n=t.response_map; return n && Object.keys(n).length ? (setCachedResponse( _objectSpread2( _objectSpread2({}, a),{},{response: e}) ), n) :{};}); return getCachedResponse( _objectSpread2(_objectSpread2({}, a),{},{requestOptions: s}) ) .then((e)=> c(e)) .catch(()=> fetch(i, s).then((e)=> c(e)));}, API_VERSION="0.1", getSegmentatorTargeting=(e)=>{let t=e.pageDefinition; return t && t.segmentatorData && t.segmentatorData.origin ? callSegmentatorAPI( `get_segment_names/${API_VERSION}/`, t.segmentatorData ) .then((e)=>{const t=e.segment_names, n=t ?{interests: t}:{}; return Promise.resolve(n);}) .catch(()=> Promise.resolve({})) : Promise.resolve({});}, setEmailHashCookie=(e)=>{let t=e.hasha, n=e.hashb, r=e.hashc; const o=new Date(); o.setTime(o.getTime() + 2592e6), (document.cookie=`CN_nleh=${encodeURIComponent( JSON.stringify({md5: t, sha1: n, sha256: r}) )};expires=${o.toGMTString()};path=/;SameSite=Lax;Secure`);}; function getEmailHashesFromCookie(){const e=decodeURIComponent(getCookie("CN_nleh")); if (!e) return !1; try{return JSON.parse(e);}catch (e){return !1;}}function getEmailHashesFromSearch(){const e=getEmailHashesFromCookie(); if (e) return e; const t=queryParameters.hasha, n=queryParameters.hashb, r=queryParameters.hashc; return ( !!(t || n || r) && (setEmailHashCookie({hasha: t, hashb: n, hashc: r}),{md5: t, sha1: n, sha256: r}) );}function getEmailHashesFromLogin(){const e=decodeURIComponent(getCookie("CN_ipeh")); if (!e) return !1; try{return JSON.parse(e);}catch (e){return !1;}}function LiveRamp(e){function t(){const e=getCookie("idl_env"); if (e) return e.startsWith('{"') ? e : JSON.stringify({envelope: e});}function n(e){const t=getEmailHashesFromSearch() ? "newsletter" : getEmailHashesFromLogin() ? "login" : "unknown", n=new Date(); n.setTime(n.getTime() + 2592e6), (document.cookie=`idl_env=${JSON.stringify({envelope: e, origin: t,})};expires=${n.toGMTString()};path=/;SameSite=Lax;Secure`);}function r(){window.ats={retrieveEnvelope: t};}function o(e){const t="Ads -- live ramp envelope unavailable"; if (!e) return void warn(t); const o=JSON.parse(e).envelope; o ? (n(o), r()) : warn(t);}(this.getStatus=function (){const e=getEmailHashesFromSearch() || getEmailHashesFromLogin(), n=t(); let r="lr-0"; return ( e && !n && (r="lr-1"), !e && n && (r="lr-2"), e && n && (r="lr-3"), r );}), (this.getOriginFromCookie=function (){const e=getCookie("idl_env"); let t=""; if (!e) return t; if (!e.startsWith('{"')) return "thirdparty"; try{t=(JSON.parse(decodeURIComponent(e)) ||{}).origin || "thirdparty";}catch (e){warn("Ads -- unable to parse live ramp cookie");}return t;}); const i=getCookie("idl_env"); if ((i && r(), i && i.includes('"origin":'))) return; const s=getConsentString(), a=getEmailHashesFromSearch() || getEmailHashesFromLogin(); if ( !(function (e, t){return !(shouldApplyGDPR() && !e) && !!t;})(s, a) ) return; const c=(function (e, t, n){const r=["md5", "sha1", "sha256"]; let o=`https://api.rlcdn.com/api/identity/envelope?pid=${e}`; return ( Object.keys(n).forEach((e)=>{r.includes(e) && n[e] && (o +=`&it=4&iv=${n[e]}`);}), t && (o +=`&ct=4&cv=${t}`), o );})(e, s, a); !(function (e){window .fetch(e) .then((e)=> e.text()) .then(o) .catch((e)=>{error$1("Ads -- live ramp request error");});})(c);}function getMetrics(){const e=get$1(window, "cns.pageContext.content.ratio") || ""; if (e){return{cn_metrics: e >=200 ? "cmr_high" : "cmr_low"};}return{};}function getAllKeywordTargeting(){let e=arguments.length > 0 && void 0 !==arguments[0] ? arguments[0] :{}; const t={}; return ( Object.keys(e).forEach((n)=>{t[`cnt_${n}`]=e[n];}), t );}function getGeneralServiceTargeting(e){let t=e.pageDefinition; return _objectSpread2( _objectSpread2( _objectSpread2({env_device_type: t.device, ctx_template: t.templateType, content_type: t.contentType, ctx_page_channel: sanitizeWithDashes(t.channel), ctx_page_sub_channel: t.subChannel, sub_sub_channel: t.subSubChannel, env_server: t.server, ctx_cns_version: version$1, ctx_page_slug: t.slug,}, getAllKeywordTargeting(t.keywords) ), getGeoTargeting() ), t.clientPageTargeting );}function isPluginEnabled(e, t){return e && e.plugins && !!e.plugins[t];}function isPluginEnabledNew(e, t){return !!get$1(e, `plugins.${t}.enabled`);}function TargetingLifecycle(e, t){const n=new LifecycleRegistrar([ "service", "slot", "define", "refresh", "refreshLC-serviceLT",]), r=(get$1(e, "config") ||{}).useBlueprintTargeting, o=getTargetingObjectTranslator(void 0 !==r && r), i=(get$1(e, "plugins.lr") ||{}).pid; function s(e){if (!1===e) return e; const t=sanitize(e), n=t.errors, r=t.sanitized; return ( n && Object.keys(n).length && debug$1("targetingSanitizationErrors",{errors: n, sanitized: r,}), r );}if ( (i && new LiveRamp(i), n.register("service", getSegmentatorTargeting), n.register("service", getGeneralServiceTargeting), n.register("service", t.getTargeting), n.register("service", getUserDataPageTargeting), n.register("service", getUserSegments), n.register("service", getMetrics), isPluginEnabledNew(e, "aam")) ){const e=new AdobeAudienceManager(); n.register("service", e.getTargeting);}if (isPluginEnabledNew(e, "proximic")){const e=new Proximic(); n.register("service", e.getTargeting);}if ( (isPluginEnabled(e, "4d") && n.register("refreshLC-serviceLT", get4DTargeting), Object.keys(queryParameters).length && n.register("service", function (){const e=queryParameters.ao_test, t=queryParameters.service_targeting, n=queryParameters.adtest, r={}; if ( (e && (r.ao_test=e.split(",")), n && (r.adtest=n.split(",")), t) ){const e=JSON.parse(t); Object.keys(e).forEach((t)=>{r[t]=e[t];});}return r;}), n.register("slot", function (e){let t=e.slotTypeDefinition; return{pos: t.position, ctx_slot_type: t.slotName, ctx_slot_rn: 0,};}), n.register( "slot", getTargeting.bind(null, "ads", ["cnt_tags", "cnt_cm"], []) ), n.register("slot", getFlagTargeting), n.register("define", function (e){let t=e.slotDefinition; return{pos_instance: t.positionCount, ctx_slot_instance: t.slotCount, ctx_slot_name: t.id, slot_name: t.positionId,};}), auctioneer.areAuctionsEnabled(e)) ){if (isPluginEnabledNew(e, "amazon_match_buy")){const e=new AmazonMatchBuy(); n.register( "refresh", auctioneer.createSlotAuctionEligible(e), auctioneer.createStartAuction(e) );}if (isPluginEnabledNew(e, "prebid")){const t=new Prebid(e); n.register( "refresh", auctioneer.createSlotAuctionEligible(t), auctioneer.createStartAuction(t) );}}(this.register=n.register), (this.withTargeting=function (e, t, r){return Promise.resolve(n.apply(e, t)).then(s).then(o).then(r);});}function UniqueTimerStore(){const e={}; function t(t){const n=e[t]; n && (clearTimeout(n), (e[t]=null));}(this.startTimer=function (n, r, o){t(n), (e[n]=setTimeout(()=>{t(n), r();}, o));}), (this.endTimer=t);}function KeyCounter(){let e={}; (this.increment=(t)=>{e[t] || (e[t]=0), (e[t] +=1);}), (this.remove=(t)=>{e[t] && delete e[t];}), (this.getCount=(t)=> e[t] || 0);}function RefreshControl(e, t){const n=t.withTargeting, r=new EventEmitter("RefreshControl").debug, o=new KeyCounter(), i=new KeyCounter(), s=new Set(), a=new Set(), c=new Set(), l=new UniqueTimerStore(), u=[ ["aged", (e)=> s.has(e)], ["impressions", (e)=> i.getCount(e)], ["visible", (e)=> c.has(e)],], d=(e)=> `${e}.refresh_${o.getCount(e)}`, g=(t)=> e.getSingleInstance().getSlotDefinitionFromGPTSlot(t); function f(t){const i=e.getSingleInstance().getPageDefinition(), s=getSlotById(t), a=g(s); r(`setTargeting.${d(t)}`); const c=getConfig$1(window).config.useBlueprintTargeting, l=getTargetingKeyTranslator(void 0 !==c && c)("ctx_slot_rn"); return ( s.setTargeting(l, o.getCount(t)), n( ["refreshLC-serviceLT"],{pageDefinition: i}, (e)=> ( applyTargeting(window.googletag.pubads(), e), n( ["refresh"],{pageDefinition: i, slotDefinition: a, slot: s}, (e)=>{Object.keys(e).forEach((t)=> s.setTargeting(t, e[t]));}) ) ) );}function p(e){return void 0===e ? 3e4 : !Number.isNaN(parseInt(e, 10)) && e > 0 ? e : 0;}const m=cumulativeArgumentDebounce((e)=>{const t=uniq(e.map((e)=> e[0])); window.cns.flags.shouldNotRefresh ? r("window.cns.flags.shouldNotRefresh") : (r(`refreshing.${t.map((e)=> d(e)).join(",")}`), t.forEach((e)=> b(g(getSlotById(e)))), get$1(window, "cns.config.config.useRoadblock") || window.googletag .pubads() .refresh(t.map(getSlotById),{changeCorrelator: !1}));}, 100); function y(e){r( `onChange.${e}.(${u.map((t)=> t[0] + ":" + t[1](e)).join(",")})` ), all(u, (t)=> t[1](e)) && f(e).then(()=>{m(e);});}function h(e, t){0===(t=p(t)) ? y(e) : l.startTimer( e, ()=>{s.add(e), y(e);}, t ), r(`willRefreshIn.${e}.${t}`);}function b(e){const t=e.id; i.remove(t), s.delete(t), h(t, e.refresh);}function $(e){return ( !e.isCM && !e.isOutOfPage && !window.cns.flags.shouldNotRefresh && !1 !==e.refresh );}(this.reset=function (e){$(e) ? b(e) : r(`slotNotRefreshable.${e.id}`);}), (this.onSlotRenderEnded=function (e){const t=e.slot, n=g(t).id; o.increment(n);}), (this.onImpressionViewable=function (e){const t=e.slot.getSlotElementId(); i.increment(t), r(`${t}.impressionIncremented`), y(t), $(g(e.slot)) && (function (e){if (!a.has(e)){const t=getElementById(e); a.add(e), onIntersection(t,{}, (t)=>{t ? (c.add(e), y(e)) : c.delete(e);});}})(t);}), (this.disableRefresh=function (e){l.endTimer(e);}), (this.delayRefresh=h), (this.normalizeRefreshTimeout=p);}function ShareOfVoice(){let e=!1, t=""; (this.getTargeting=function (){const e={}; return t && (e.ctx_line_items=[t]), e;}), (this.onSlotRenderEnded=function (n){e || ((e=!0), (t=n.lineItemId));});}function setSheet(){const e=document.createElement("style"); return ( (e.id="cns_version"), e.appendChild(document.createTextNode("")), document.head.appendChild(e), e.sheet );}function addCSSRule(e, t, n){return ( (e.insertRule && e.insertRule(`${t}{${n}}`, 0)) || (e.addRule && e.addRule(t, n, 0)) );}function renderVersion(){const e=`content: "ADS V:${version$1}";color:#fff;background-color:#f00;position:fixed;top:0;right:0;padding:4px 8px;z-index:2147483647;`; addCSSRule(setSheet(), "body::after", e);}function cnsMetricsApi(){return (e)=>{e({emit: pixel});};}var updateRefresh=(e)=>{let t=e.refreshControl; return (e)=>{let n=e.slotName, r=e.refresh; "number"==typeof r && r > 0 ? t.delayRefresh(n, r) : t.disableRefresh(n);};}; function CNSAdsAPI(e, t, n, r){function o(e){let t=e.device, n=void 0===t ? "desktop" : t, r=e.server, o=void 0===r ? "staging" : r; return new Promise((e, t)=>{(o && n) || t(), e();});}function i(){return !0===get$1(window, "cns.pageContext.adBlock");}const s=updateRefresh({refreshControl: t}); function a(e, t){const n=e.frameElement.parentElement.parentElement.id; s({slotName: n, refresh: t});}function c(e){const t=window.cns.pageContext, o=new CompleteDefiner( Object.assign({}, t, e), null, getViewportTemplate() ); n.reset(()=> o), r.insert(n);}function l(){resetUserData(), window.googletag.cmd.push(()=>{window.googletag.pubads().clear(), window.googletag.destroySlots();}), fastdom.mutate(()=>{const e=document.querySelectorAll(".cns-ads-stage"); for (let t=0; t < e.length; t++){e[t].remove();}});}function u(e){r.insert(n);}this.executeCallback=function (e){e({environment: o, setRefreshFor: a, adBlock:{installed: deprecated(()=>{}, "adblock.installed"), blocked: deprecated(i, "adblock.blocked"),}, pages:{create: c, destroy: l, get: ()=> ({slots:{add: deprecated(u, "slots.add"), get: deprecated(()=>{}, "slots.get"), refresh: deprecated(()=>{}, "slots.refresh"), destroy: deprecated(()=>{}, "slots.destroy"),},}),},});};}function CNSShim(e, t, n, r){const o=new CNSAdsAPI(e, t, n, r); var i; (i={ads: o.executeCallback, metrics: cnsMetricsApi()}), (window.cns.async=function (e, t){i[e](t);}), window.cns.queue.forEach((e)=>{let t=e.service, n=e.callback; window.cns.async(t, n);}), delete window.cns.queue;}var spacerCreative=(e)=>{let t=e.definer; return (e)=>{let n=e.creativeId; const r=t.getSingleInstance().getSlotStateStore(); r.setSpacerCreativeId(n); const o=r.getStore(); window.cnBus && Array.from(o.values()).forEach((e)=>{let t=e.creativeId, r=e.nodeId; r && t && n===t && window.cnBus.emit(`ads.creative.${r}.spacer`,{});});};}; function SafeFrameMessageListener(e){const t=(function (t){const n=new Map(Object.keys(t).map((n)=> [n, t[n](e)])); return (e)=>{const t=e.data, r=e.origin, o=t.cnsAdEvent, i=t.payload; if ( /^https?:\/\/(.*?\.safeframe\.|tpc\.)?googlesyndication\.com/.test( r ) && "object"==typeof t && n.has(o) ){return n.get(o)(i, e);}};})({updateRefresh: updateRefresh, "ads.creative.spacer": spacerCreative,}); window.addEventListener("message", t);}function SourceOfTruth(e){let t; (this.getSingleInstance=function (){return t || (t=e()), t;}), (this.reset=function (n){t=n ? n() : e();});}function append(e){return new Promise((t, n)=>{const r=document.createElement("script"); ["src", "targ"].forEach( (t)=> !e[t] && n(new Error(`Missing required parameter: ${t}`)) ), ["src", "targ", "async", "defer"].forEach((t)=>{r[t]=e[t];}), (r.onload=function (){t();}), (r.onerror=function (e){n(e);}), e.targ.appendChild(r);});}var updatePermutiveConsent=()=>{if (!window.permutive) return; const e=shouldReadAndWriteCookies(), t=_objectSpread2({opt_in: e}, e &&{token: getCookie("OptanonConsent") || "CONSENT_CAPTURED"}); window.permutive && window.permutive.consent(t);}; const _window=window, cns=_window.cns, cnBus=_window.cnBus; function about(){return{buildDate: cns.buildDate, fastAdsHead: cns.fastAdsHead, fastAdsFooter: cns.fastAdsFooter,};}function notSetup(e){}function attachListeners(e, t){const n=getConfig$1(window), r=new ShareOfVoice(), o=new TargetingLifecycle(n, r), i=new RefreshControl(t, o), s=new UnassumingInsert(e, o, i, t); new CNSShim(e, i, t, s), new GPTRouter(t, i, r, e), new SafeFrameMessageListener({refreshControl: i, definer: t}), emitBoomPixel("adsReady"), (cns.addTargeting=o.register), AdBlockDetect(e), onConsent(updatePermutiveConsent); const a=()=> s.insert(t); window.permutive ? window.permutive.readyWithTimeout(a, "realtime", 1500) : a();}function initAdsLibrary(){sendBoomerangAdLibraryInformation(); const e=new SourceOfTruth(()=>{const e=getViewportTemplate(); return new CompleteDefiner(getPageContext(window), null, e);}); attachListeners(cnBus, e), enableCNE(cnBus);}function startFooter(){featureFlags.show_version && renderVersion(), addDefaultSubscriptions(cnBus, featureFlags.bus_log), "info"===queryParameters.ao_tools && append({src: `https://ad-tools.condenastdigital.com/ads-${queryParameters.ao_tools}/prod/index.js`, targ: document.head,}), queryParameters.ap_noads || (hasPII() ? onPIIDetected() : (moatYieldIntelligence.load().then(()=>{window.cnBus.emit("ads.moat.yield-ready");}), til( ()=> cns.pageContext, ()=>{shouldWaitForConsent() ? onConsent(initAdsLibrary) : initAdsLibrary();})));}set$2(window, "cns.buildDate", getConfig$1(window).buildDate), set$2(window, "cns.fastAdsFooter", version$1), set$2(window, "cns.about", about), set$2(window, "cns.timing.footerStart", Date.now()), set$2(window, "cns.addTargeting", notSetup("cns.addTargeting")), startFooter();})(); </script> <script src="./Nutty Umami Noodles With Scallion Brown Butter and Snow Peas Recipe _ Bon Appétit_files/pixelpropagate.js" async="" ></script> <script>(function userSegments(doc){const paymentForm=( window.__PRELOADED_STATE__.transformed.payment ||{}).form; const pageLocation=encodeURIComponent(window.location.href); function addScript(src){var s=document.createElement("script"); s.src=src; s.async=true; document.body.appendChild(s);}addScript( "/user-context?referrer=" + encodeURIComponent(document.referrer) + "&verso=true" + (typeof paymentForm !=="undefined" ? "&paymentForm=" + paymentForm : "") + "&location=" + pageLocation );})(document); </script> <script src="./Nutty Umami Noodles With Scallion Brown Butter and Snow Peas Recipe _ Bon Appétit_files/user-context" async="" ></script> <script></script> <script type="text/javascript" id="journey" src="./Nutty Umami Noodles With Scallion Brown Butter and Snow Peas Recipe _ Bon Appétit_files/build-bf2a45c220b5cf9fbd59621a94c4cf32.js" defer="" ></script> <div class="DrawerModalWrapper-bXwmMu kRRDNX"></div><iframe style=" display: none; opacity: 0; visibility: hidden; border: 0px; width: 0px; height: 0px; --darkreader-inline-border-top: initial; --darkreader-inline-border-right: initial; --darkreader-inline-border-bottom: initial; --darkreader-inline-border-left: initial; " name="__uspapiLocator" data-darkreader-inline-border-top="" data-darkreader-inline-border-right="" data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" src="./Nutty Umami Noodles With Scallion Brown Butter and Snow Peas Recipe _ Bon Appétit_files/saved_resource.html" ></iframe> <script id="parsely-script" src="./Nutty Umami Noodles With Scallion Brown Butter and Snow Peas Recipe _ Bon Appétit_files/p.js" ></script> <script id="sparrow-config" type="text/javascript" src="./Nutty Umami Noodles With Scallion Brown Butter and Snow Peas Recipe _ Bon Appétit_files/bon-appetit.config.js" ></script> <div id="onetrust-consent-sdk"> <div class="onetrust-pc-dark-filter ot-hide ot-fade-in"></div></div></body></html>