December 6, 2025
‘I was outraged’: Our restaurant bill was $35 each, but our friend paid $22 for a gluten-free dish. Who’s right?

‘I was outraged’: Our restaurant bill was $35 each, but our friend paid $22 for a gluten-free dish. Who’s right?

Our food bill was $35 each, but our friend paid $22 for a gluten-free dish – MarketWatch

Object.keys(e[t]||{}),executeQueue(e){try{t[e]&&t[e].forEach((e=>this.execute(…e))),delete t[e]}catch(e){console.error(e)}},execute(){var[t,i,r,n]=arguments,s=e[t][i],u=e=>e,c=[];return”function”!=typeof s?s:(r&&(“function”==typeof r?(u=r,n&&Array.isArray(n)&&(c=n)):Array.isArray(r)&&(c=r)),u(s.apply(null,c)))},__reset(){var i=e=>Object.keys(e).forEach((t=>delete e[t]));i(e),i(t)},hasSubscription(e){return this.getSubscribedElements().indexOf(e)>-1},hasSubscribedFunction(e,t){return this.getSubscribedFunctions(e).indexOf(t)>-1},uniqueFucntionsUnderSubscription(t,i){const{__ace:r=(()=>({}))}=window;let n={};return Object.keys(i).forEach((s=>{e[t][s]?r(“log”,”log”,[{type:”warning”,initiator:”page”,message:”You are trying to subscribe the function “+s+” under the “+t+” namespace again. Use another name.”}]):n[s]=i[s]})),n},addSubscription(t,i){if(this.hasSubscription(t)){const r=this.uniqueFucntionsUnderSubscription(t,i);e[t]={…e[t],…r}}else e[t]=i;return e},subscribe(t,i,r){if(r)return e[t]=i,e;if(!i||”object”!=typeof i)throw new Error(“Missing third parameter. You must provide an object.”);return this.addSubscription(t,i),this.executeQueue(t),e},globalMessaging(){var[e,t,…i]=arguments;if(!e&&!t)return this.getSubscribedElements();if(e&&”string”==typeof e&&!t)return this.getSubscribedFunctions(e);if(“string”!=typeof e||”string”!=typeof t)throw new Error(“First and second argument must be String types”);if(this.hasSubscribedFunction(e,t))return this.execute(e,t,…i);this.addToExecutionQueue(e,t,…i)}},window.__ace=i.globalMessaging.bind(i),window.__ace.subscribe=i.subscribe.bind(i)}();var googletag=googletag||{};googletag.cmd=googletag.cmd||[];function _typeof(e){return(_typeof=”function”==typeof Symbol&&”symbol”==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&”function”==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?”symbol”:typeof e})(e)}!function(){for(var e,t,n=[],r=window,o=r;o;){try{if(o.frames.__tcfapiLocator){e=o;break}}catch(e){}if(o===r.top)break;o=r.parent}e||(function e(){var t=r.document,n=!!r.frames.__tcfapiLocator;if(!n)if(t.body){var o=t.createElement(“iframe”);o.style.cssText=”display:none”,o.name=”__tcfapiLocator”,t.body.appendChild(o)}else setTimeout(e,5);return!n}(),r.__tcfapi=function(){for(var e=arguments.length,r=new Array(e),o=0;o3&&2===parseInt(r[1],10)&&”boolean”==typeof r[3]&&(t=r[3],”function”==typeof r[2]&&r[2](“set”,!0)):”ping”===r[0]?”function”==typeof r[2]&&r[2]({gdprApplies:t,cmpLoaded:!1,cmpStatus:”stub”}):n.push(r)},r.addEventListener(“message”,(function(e){var t=”string”==typeof e.data,n={};if(t)try{n=JSON.parse(e.data)}catch(e){}else n=e.data;var r=”object”===_typeof(n)?n.__tcfapiCall:null;r&&window.__tcfapi(r.command,r.version,(function(n,o){var a={__tcfapiReturn:{returnValue:n,success:o,callId:r.callId}};e&&e.source&&e.source.postMessage&&e.source.postMessage(t?JSON.stringify(a):a,”*”)}),r.parameter)}),!1))}(),function(){var e=!1,t=window,n=document;function r(e){var n=”string”==typeof e.data;try{var r=n?JSON.parse(e.data):e.data;if(r.__cmpCall){var o=r.__cmpCall;t.__uspapi(o.command,o.parameter,(function(t,r){var a={__cmpReturn:{returnValue:t,success:r,callId:o.callId}};e.source.postMessage(n?JSON.stringify(a):a,”*”)}))}}catch(r){}}!function e(){if(!t.frames.__uspapiLocator)if(n.body){var r=n.body,o=n.createElement(“iframe”);o.style.cssText=”display:none”,o.name=”__uspapiLocator”,r.appendChild(o)}else setTimeout(e,5)}(),”function”!=typeof __uspapi&&(t.__uspapi=function(){var t=arguments;if(__uspapi.a=__uspapi.a||[],!t.length)return __uspapi.a;”ping”===t[0]?t[2]({gdprAppliesGlobally:e,cmpLoaded:!1},!0):__uspapi.a.push([].slice.apply(t))},__uspapi.msgHandler=r,t.addEventListener(“message”,r,!1))}(),function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){“undefined”!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:”Module”}),Object.defineProperty(e,”__esModule”,{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&”object”==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,”default”,{enumerable:!0,value:e}),2&t&&”string”!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,”a”,t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=”/”,n(n.s=0)}([function(e,t,n){“use strict”;n.r(t);var r=function(){var e=window.djcmp,t=void 0===e?{}:e;if(!t._params){var n=document.querySelector(“#djcmp”),r=n&&n.getAttribute(“data-params”);t._params=r&&JSON.parse(r)}return t._params||{}},o=function(){return!(-1!==(document&&document.cookie||””).indexOf(“gdprApplies=false”))},a=function(){return window&&window.djcmp&&window.djcmp.tcData&&window.djcmp.tcData.gdprApplies},i=function(){var e=a();return”boolean”==typeof e?e:null},p=function(e,t){if(r().gdprApplies)return!0;switch(e){case”cookieOnly”:return o();case”serviceOnly”:return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){},t=r().geoServiceUrl;if(t){var n=””.concat(t,”/geolocation-services/gdpr”);fetch(n).then((function(e){return e.json()})).then((function(t){var n=t.applies;e(n)})).catch((function(){e(null)}))}else”function”==typeof e&&e(null)}(t);case”tcfapiOnly”:return”function”==typeof t?function(e){var t=a();return”boolean”==typeof t?e(t):window.__tcfapi(“getTCData”,2,(function(t){var n=”boolean”!=typeof t.gdprApplies||t.gdprApplies;e(n)}))}(t):i();case”cookieFirst”:return-1!==(document&&document.cookie||””).indexOf(“gdprApplies=”)?o():i();default:return function(){var e=a();return”boolean”==typeof e?e:o()}()}},c=function(e){return!!r().ccpaApplies};!function(){var e=[];function t(){e.push(arguments)}window.djcmp||(t.gdprApplies=p,t.ccpaApplies=c,t.queue=e,window.djcmp=t)}()}]); ]]]]]]]]>]]]]]]>]]]]>]]> {}),performance:d}=window,o=e=>{const d=(t(“page”)||[]).indexOf(“setPerfMark”)>-1?”page”:”ace”;t(d,”setPerfMark”,[e,{isNewRelicEnabled:!0,justNewRelic:!1}])};e.cmd.push((()=>{const s={gptSlotRequested:!1,gptSlotRenderEnded:!1,gptSlotOnload:!1};window.adslots=window.adslots||{},window.adslots.spaAdtechPerfObj=s,t(“dataLayer”,”setData”,[{spaAdtechPerfObj:s}]),e.pubads().addEventListener(“slotRequested”,(()=>{const{spaAdtechPerfObj:e={}}=window.adslots,{gptSlotRequested:t}=e;t||(d.clearMarks(“gpt-slotRequested”),o(“gpt-slotRequested”),window.adslots.spaAdtechPerfObj.gptSlotRequested=!0)})),e.pubads().addEventListener(“slotRenderEnded”,(()=>{const{spaAdtechPerfObj:e={}}=window.adslots,{gptSlotRenderEnded:t}=e;t||(d.clearMarks(“gpt-slotRenderEnded”),o(“gpt-slotRenderEnded”),window.adslots.spaAdtechPerfObj.gptSlotRenderEnded=!0)})),e.pubads().addEventListener(“slotOnload”,(()=>{const{spaAdtechPerfObj:e={}}=window.adslots,{gptSlotOnload:t}=e;t||(d.clearMarks(“gpt-slotOnload”),o(“gpt-slotOnload”),window.adslots.spaAdtechPerfObj.gptSlotOnload=!0)}))}))})(); ]]]]]]]]>]]]]]]>]]]]>]]> {const{moatEnabled:t,adId:o,slot:d,requestAd:m}=e,s=a[o]&&a[o].slot||d;if(n.getEntriesByName(“moat-ace-firstAdItem”).length||i(“ace”,”setPerfMark”,[“moat-ace-firstAdItem”,{isNewRelicEnabled:!0}]),t&&”function”==typeof r&&r(s),!s)throw new ReferenceError(`slot ${o} is not defined`);m(s,e)})),window.moatQueue=null};((t=e)=>{if(“function”!=typeof t)throw new TypeError(“moatYieldReady must be a function”);window.moatYieldReady=t})()}(); ]]]]]]]]>]]]]]]>]]]]>]]> {function a(a,e){window.apstag._Q.push([a,e])}window.apstag||(window.apstag={init(){a(“i”,arguments)},fetchBids(){a(“f”,arguments)},setDisplayBids(){},targetingKeys:()=>[],_Q:[]})})(); ]]]]]]]]>]]]]]]>]]]]>]]> {n.d(t,{P_:()=>f,Mt:()=>p,C5:()=>s,DL:()=>m,OP:()=>_,lF:()=>E,Yu:()=>y,Dg:()=>g,CX:()=>c,GE:()=>b,sU:()=>j});var r=n(8632),i=n(9567);const o={beacon:r.ce.beacon,errorBeacon:r.ce.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0},a={};function s(e){if(!e)throw new Error(“All info objects require an agent identifier!”);if(!a[e])throw new Error(“Info for “.concat(e,” was never set”));return a[e]}function c(e,t){if(!e)throw new Error(“All info objects require an agent identifier!”);a[e]=(0,i.D)(t,o),(0,r.Qy)(e,a[e],”info”)}var d=n(7056);const u=()=>{const e={blockSelector:”[data-nr-block]”,maskInputOptions:{password:!0}};return{allow_bfcache:!0,privacy:{cookies_enabled:!0},ajax:{deny_list:void 0,enabled:!0,harvestTimeSeconds:10},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},session:{domain:void 0,expiresMs:d.oD,inactiveMs:d.Hb},ssl:void 0,obfuscate:void 0,jserrors:{enabled:!0,harvestTimeSeconds:10},metrics:{enabled:!0},page_action:{enabled:!0,harvestTimeSeconds:30},page_view_event:{enabled:!0},page_view_timing:{enabled:!0,harvestTimeSeconds:30,long_task:!1},session_trace:{enabled:!0,harvestTimeSeconds:10},harvest:{tooManyRequestsDelay:60},session_replay:{enabled:!1,harvestTimeSeconds:60,sampleRate:.1,errorSampleRate:.1,maskTextSelector:”*”,maskAllInputs:!0,get blockClass(){return”nr-block”},get ignoreClass(){return”nr-ignore”},get maskTextClass(){return”nr-mask”},get blockSelector(){return e.blockSelector},set blockSelector(t){e.blockSelector+=”,”.concat(t)},get maskInputOptions(){return e.maskInputOptions},set maskInputOptions(t){e.maskInputOptions={…t,password:!0}}},spa:{enabled:!0,harvestTimeSeconds:10}}},l={};function f(e){if(!e)throw new Error(“All configuration objects require an agent identifier!”);if(!l[e])throw new Error(“Configuration for “.concat(e,” was never set”));return l[e]}function g(e,t){if(!e)throw new Error(“All configuration objects require an agent identifier!”);l[e]=(0,i.D)(t,u()),(0,r.Qy)(e,l[e],”config”)}function p(e,t){if(!e)throw new Error(“All configuration objects require an agent identifier!”);var n=f(e);if(n){for(var r=t.split(“.”),i=0;i{n.d(t,{D:()=>i});var r=n(50);function i(e,t){try{if(!e||”object”!=typeof e)return(0,r.Z)(“Setting a Configurable requires an object as input”);if(!t||”object”!=typeof t)return(0,r.Z)(“Setting a Configurable requires a model to set its initial properties”);const n=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),o=0===Object.keys(n).length?e:n;for(let a in o)if(void 0!==e[a])try{“object”==typeof e[a]&&”object”==typeof t[a]?n[a]=i(e[a],t[a]):n[a]=e[a]}catch(e){(0,r.Z)(“An error occurred while setting a property of a Configurable”,e)}return n}catch(e){(0,r.Z)(“An error occured while setting a Configurable”,e)}}},6818:(e,t,n)=>{n.d(t,{Re:()=>i,gF:()=>o,q4:()=>r});const r=”1.236.0″,i=”PROD”,o=”CDN”},385:(e,t,n)=>{n.d(t,{FN:()=>a,IF:()=>d,Nk:()=>l,Tt:()=>s,_A:()=>o,il:()=>r,pL:()=>c,v6:()=>i,w1:()=>u});const r=”undefined”!=typeof window&&!!window.document,i=”undefined”!=typeof WorkerGlobalScope&&(“undefined”!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||”undefined”!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),o=r?window:”undefined”!=typeof WorkerGlobalScope&&(“undefined”!=typeof self&&self instanceof WorkerGlobalScope&&self||”undefined”!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),a=””+o?.location,s=/iPad|iPhone|iPod/.test(navigator.userAgent),c=s&&”undefined”==typeof SharedWorker,d=(()=>{const e=navigator.userAgent.match(/Firefox[/s](d+.d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),u=Boolean(r&&window.document.documentMode),l=!!navigator.sendBeacon},1117:(e,t,n)=>{n.d(t,{w:()=>o});var r=n(50);const i={agentIdentifier:””,ee:void 0};class o{constructor(e){try{if(“object”!=typeof e)return(0,r.Z)(“shared context requires an object as input”);this.sharedContext={},Object.assign(this.sharedContext,i),Object.entries(e).forEach((e=>{let[t,n]=e;Object.keys(i).includes(t)&&(this.sharedContext[t]=n)}))}catch(e){(0,r.Z)(“An error occured while setting SharedContext”,e)}}}},8e3:(e,t,n)=>{n.d(t,{L:()=>u,R:()=>c});var r=n(2177),i=n(1284),o=n(4322),a=n(3325);const s={};function c(e,t){const n={staged:!1,priority:a.p[t]||0};d(e),s[e].get(t)||s[e].set(t,n)}function d(e){e&&(s[e]||(s[e]=new Map))}function u(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:””,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:”feature”;if(d(e),!e||!s[e].get(t))return a(t);s[e].get(t).staged=!0;const n=[…s[e]];function a(t){const n=e?r.ee.get(e):r.ee,a=o.X.handlers;if(n.backlog&&a){var s=n.backlog[t],c=a[t];if(c){for(var d=0;s&&d{let[t,n]=e;return n.staged}))&&(n.sort(((e,t)=>e[1].priority-t[1].priority)),n.forEach((e=>{let[t]=e;a(t)})))}function l(e,t){var n=e[1];(0,i.D)(t[n],(function(t,n){var r=e[0];if(n[0]===r){var i=n[1],o=e[3],a=e[2];i.apply(o,a)}}))}},2177:(e,t,n)=>{n.d(t,{ee:()=>d});var r=n(8632),i=n(2210),o=n(1284),a=n(5763),s=”nr@context”;let c=(0,r.fP)();var d;function u(){}function l(){return new u}function f(){d.aborted=!0,d.backlog={}}c.ee?d=c.ee:(d=function e(t,n){var r={},c={},g={},p=!1;try{p=16===n.length&&(0,a.OP)(n).isolatedBacklog}catch(e){}var h={on:b,addEventListener:b,removeEventListener:y,emit:m,get:A,listeners:w,context:v,buffer:x,abort:f,aborted:!1,isBuffering:D,debugId:n,backlog:p?{}:t&&”object”==typeof t.backlog?t.backlog:{}};return h;function v(e){return e&&e instanceof u?e:e?(0,i.X)(e,s,l):l()}function m(e,n,r,i,o){if(!1!==o&&(o=!0),!d.aborted||i){t&&o&&t.emit(e,n,r);for(var a=v(r),s=w(e),u=s.length,l=0;lr,p:()=>i});var r=n(2177).ee.get(“handle”);function i(e,t,n,i,o){o?(o.buffer([e],i),o.emit(e,t,n)):(r.buffer([e],i),r.emit(e,t,n))}},4322:(e,t,n)=>{n.d(t,{X:()=>o});var r=n(5546);o.on=a;var i=o.handlers={};function o(e,t,n,o){a(o||r.E,i,e,t,n)}function a(e,t,n,i,o){o||(o=”feature”),e||(e=r.E);var a=t[o]=t[o]||{};(a[n]=a[n]||[]).push([e,i])}},3239:(e,t,n)=>{n.d(t,{bP:()=>s,iz:()=>c,m$:()=>a});var r=n(385);let i=!1,o=!1;try{const e={get passive(){return i=!0,!1},get signal(){return o=!0,!1}};r._A.addEventListener(“test”,null,e),r._A.removeEventListener(“test”,null,e)}catch(e){}function a(e,t){return i||o?{capture:!!e,passive:i,signal:t}:!!e}function s(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3?arguments[3]:void 0;window.addEventListener(e,t,a(n,r))}function c(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3?arguments[3]:void 0;document.addEventListener(e,t,a(n,r))}},4402:(e,t,n)=>{n.d(t,{Rl:()=>a,ky:()=>s});var r=n(385);const i=”xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx”;function o(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=r._A?.crypto||r._A?.msCrypto;let t,n=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(31))),i.split(“”).map((e=>”x”===e?o(t,++n).toString(16):”y”===e?(3&o()|8).toString(16):e)).join(“”)}function s(e){const t=r._A?.crypto||r._A?.msCrypto;let n,i=0;t&&t.getRandomValues&&(n=t.getRandomValues(new Uint8Array(31)));const a=[];for(var s=0;s{n.d(t,{Bq:()=>r,Hb:()=>o,oD:()=>i});const r=”NRBA”,i=144e5,o=18e5},7894:(e,t,n)=>{function r(){return Math.round(performance.now())}n.d(t,{z:()=>r})},50:(e,t,n)=>{function r(e,t){“function”==typeof console.warn&&(console.warn(“New Relic: “.concat(e)),t&&console.warn(t))}n.d(t,{Z:()=>r})},2587:(e,t,n)=>{n.d(t,{N:()=>c,T:()=>d});var r=n(2177),i=n(5546),o=n(8e3),a=n(3325);const s={stn:[a.D.sessionTrace],err:[a.D.jserrors,a.D.metrics],ins:[a.D.pageAction],spa:[a.D.spa],sr:[a.D.sessionReplay,a.D.sessionTrace]};function c(e,t){const n=r.ee.get(t);e&&”object”==typeof e&&(Object.entries(e).forEach((e=>{let[t,r]=e;void 0===d[t]&&(s[t]?s[t].forEach((e=>{r?(0,i.p)(“feat-“+t,[],void 0,e,n):(0,i.p)(“block-“+t,[],void 0,e,n),(0,i.p)(“rumresp-“+t,[Boolean(r)],void 0,e,n)})):r&&(0,i.p)(“feat-“+t,[],void 0,void 0,n),d[t]=Boolean(r))})),Object.keys(s).forEach((e=>{void 0===d[e]&&(s[e]?.forEach((t=>(0,i.p)(“rumresp-“+e,[!1],void 0,t,n))),d[e]=!1)})),(0,o.L)(t,a.D.pageViewEvent))}const d={}},2210:(e,t,n)=>{n.d(t,{X:()=>i});var r=Object.prototype.hasOwnProperty;function i(e,t,n){if(r.call(e,t))return e[t];var i=n();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},1284:(e,t,n)=>{n.d(t,{D:()=>r});const r=(e,t)=>Object.entries(e||{}).map((e=>{let[n,r]=e;return t(n,r)}))},4351:(e,t,n)=>{n.d(t,{P:()=>o});var r=n(2177);const i=()=>{const e=new WeakSet;return(t,n)=>{if(“object”==typeof n&&null!==n){if(e.has(n))return;e.add(n)}return n}};function o(e){try{return JSON.stringify(e,i())}catch(e){try{r.ee.emit(“internal-error”,[e])}catch(e){}}}},3960:(e,t,n)=>{n.d(t,{K:()=>a,b:()=>o});var r=n(3239);function i(){return”undefined”==typeof document||”complete”===document.readyState}function o(e,t){if(i())return e();(0,r.bP)(“load”,e,t)}function a(e){if(i())return e();(0,r.iz)(“DOMContentLoaded”,e)}},8632:(e,t,n)=>{n.d(t,{EZ:()=>d,Qy:()=>c,ce:()=>o,fP:()=>a,gG:()=>u,mF:()=>s});var r=n(7894),i=n(385);const o={beacon:”bam.nr-data.net”,errorBeacon:”bam.nr-data.net”};function a(){return i._A.NREUM||(i._A.NREUM={}),void 0===i._A.newrelic&&(i._A.newrelic=i._A.NREUM),i._A.NREUM}function s(){let e=a();return e.o||(e.o={ST:i._A.setTimeout,SI:i._A.setImmediate,CT:i._A.clearTimeout,XHR:i._A.XMLHttpRequest,REQ:i._A.Request,EV:i._A.Event,PR:i._A.Promise,MO:i._A.MutationObserver,FETCH:i._A.fetch}),e}function c(e,t,n){let i=a();const o=i.initializedAgents||{},s=o[e]||{};return Object.keys(s).length||(s.initializedAt={ms:(0,r.z)(),date:new Date}),i.initializedAgents={…o,[e]:{…s,[n]:t}},i}function d(e,t){a()[e]=t}function u(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,…t}}(),function(){let e=a();const t=e.init||{};e.init={…t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={…t}}(),a()}},7956:(e,t,n)=>{n.d(t,{N:()=>i});var r=n(3239);function i(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0;return void(0,r.iz)(“visibilitychange”,(function(){if(t)return void(“hidden”==document.visibilityState&&e());e(document.visibilityState)}),n,i)}},3081:(e,t,n)=>{n.d(t,{gF:()=>o,mY:()=>i,t9:()=>r,vz:()=>s,xS:()=>a});const r=n(3325).D.metrics,i=”sm”,o=”cm”,a=”storeSupportabilityMetrics”,s=”storeEventMetrics”},7633:(e,t,n)=>{n.d(t,{Dz:()=>i,OJ:()=>a,qw:()=>o,t9:()=>r});const r=n(3325).D.pageViewEvent,i=”firstbyte”,o=”domcontent”,a=”windowload”},9251:(e,t,n)=>{n.d(t,{t:()=>r});const r=n(3325).D.pageViewTiming},5938:(e,t,n)=>{n.d(t,{W:()=>o});var r=n(5763),i=n(2177);class o{constructor(e,t,n){this.agentIdentifier=e,this.aggregator=t,this.ee=i.ee.get(e,(0,r.OP)(this.agentIdentifier).isolatedBacklog),this.featureName=n,this.blocked=!1}}},9144:(e,t,n)=>{n.d(t,{j:()=>v});var r=n(3325),i=n(5763),o=n(5546),a=n(2177),s=n(7894),c=n(8e3),d=n(3960),u=n(385),l=n(50),f=n(3081),g=n(8632);function p(){const e=(0,g.gG)();[“setErrorHandler”,”finished”,”addToTrace”,”inlineHit”,”addRelease”,”addPageAction”,”setCurrentRouteName”,”setPageViewName”,”setCustomAttribute”,”interaction”,”noticeError”,”setUserId”].forEach((t=>{e[t]=function(){for(var n=arguments.length,r=new Array(n),i=0;i1?n-1:0),i=1;i{e.exposed&&e.api[t]&&o.push(e.api[t](…r))})),o.length>1?o:o[0]}(t,…r)}}))}var h=n(2587);function v(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},v=arguments.length>2?arguments[2]:void 0,m=arguments.length>3?arguments[3]:void 0,{init:b,info:y,loader_config:w,runtime:A={loaderType:v},exposed:x=!0}=t;const D=(0,g.gG)();y||(b=D.init,y=D.info,w=D.loader_config),(0,i.Dg)(e,b||{}),(0,i.GE)(e,w||{}),(0,i.sU)(e,A),y.jsAttributes??={},u.v6&&(y.jsAttributes.isWorker=!0),(0,i.CX)(e,y),p();const _=function(e,t){t||(0,c.R)(e,”api”);const g={};var p=a.ee.get(e),h=p.get(“tracer”),v=”api-“,m=v+”ixn-“;function b(t,n,r,o){const a=(0,i.C5)(e);return null===n?delete a.jsAttributes[t]:(0,i.CX)(e,{…a,jsAttributes:{…a.jsAttributes,[t]:n}}),A(v,r,!0,o||null===n?”session”:void 0)(t,n)}function y(){}[“setErrorHandler”,”finished”,”addToTrace”,”inlineHit”,”addRelease”].forEach((e=>g[e]=A(v,e,!0,”api”))),g.addPageAction=A(v,”addPageAction”,!0,r.D.pageAction),g.setCurrentRouteName=A(v,”routeName”,!0,r.D.spa),g.setPageViewName=function(t,n){if(“string”==typeof t)return”/”!==t.charAt(0)&&(t=”/”+t),(0,i.OP)(e).customTransaction=(n||”http://custom.transaction”)+t,A(v,”setPageViewName”,!0)()},g.setCustomAttribute=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(“string”==typeof e){if([“string”,”number”].includes(typeof t)||null===t)return b(e,t,”setCustomAttribute”,n);(0,l.Z)(“Failed to execute setCustomAttribute.nNon-null value must be a string or number type, but a type of was provided.”))}else(0,l.Z)(“Failed to execute setCustomAttribute.nName must be a string type, but a type of was provided.”))},g.setUserId=function(e){if(“string”==typeof e||null===e)return b(“enduser.id”,e,”setUserId”,!0);(0,l.Z)(“Failed to execute setUserId.nNon-null value must be a string type, but a type of was provided.”))},g.interaction=function(){return(new y).get()};var w=y.prototype={createTracer:function(e,t){var n={},i=this,a=”function”==typeof t;return(0,o.p)(m+”tracer”,[(0,s.z)(),e,n],i,r.D.spa,p),function(){if(h.emit((a?””:”no-“)+”fn-start”,[(0,s.z)(),i,a],n),a)try{return t.apply(this,arguments)}catch(e){throw h.emit(“fn-err”,[arguments,this,”string”==typeof e?new Error(e):e],n),e}finally{h.emit(“fn-end”,[(0,s.z)()],n)}}}};function A(e,t,n,i){return function(){return(0,o.p)(f.xS,[“API/”+t+”/called”],void 0,r.D.metrics,p),i&&(0,o.p)(e+t,[(0,s.z)(),…arguments],n?null:this,i,p),n?void 0:this}}function x(){n.e(439).then(n.bind(n,7438)).then((t=>{let{setAPI:n}=t;n(e),(0,c.L)(e,”api”)})).catch((()=>(0,l.Z)(“Downloading runtime APIs failed…”)))}return[“actionText”,”setName”,”setAttribute”,”save”,”ignore”,”onEnd”,”getContext”,”end”,”get”].forEach((e=>{w[e]=A(m,e,void 0,r.D.spa)})),g.noticeError=function(e,t){“string”==typeof e&&(e=new Error(e)),(0,o.p)(f.xS,[“API/noticeError/called”],void 0,r.D.metrics,p),(0,o.p)(“err”,[e,(0,s.z)(),!1,t],void 0,r.D.jserrors,p)},u.il?(0,d.b)((()=>x()),!0):x(),g}(e,m);return(0,g.Qy)(e,_,”api”),(0,g.Qy)(e,x,”exposed”),(0,g.EZ)(“activatedFeatures”,h.T),_}},3325:(e,t,n)=>{n.d(t,{D:()=>r,p:()=>i});const r={ajax:”ajax”,jserrors:”jserrors”,metrics:”metrics”,pageAction:”page_action”,pageViewEvent:”page_view_event”,pageViewTiming:”page_view_timing”,sessionReplay:”session_replay”,sessionTrace:”session_trace”,spa:”spa”},i={[r.pageViewEvent]:1,[r.pageViewTiming]:2,[r.metrics]:3,[r.jserrors]:4,[r.ajax]:5,[r.sessionTrace]:6,[r.pageAction]:7,[r.spa]:8,[r.sessionReplay]:9}}},r={};function i(e){var t=r[e];if(void 0!==t)return t.exports;var o=r[e]={exports:{}};return n[e](o,o.exports,i),o.exports}i.m=n,i.d=(e,t)=>{for(var n in t)i.o(t,n)&&!i.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,n)=>(i.f[n](e,t),t)),[])),i.u=e=>(({78:”page_action-aggregate”,147:”metrics-aggregate”,242:”session-manager”,317:”jserrors-aggregate”,348:”page_view_timing-aggregate”,412:”lazy-feature-loader”,439:”async-api”,538:”recorder”,590:”session_replay-aggregate”,675:”compressor”,733:”session_trace-aggregate”,786:”page_view_event-aggregate”,873:”spa-aggregate”,898:”ajax-aggregate”}[e]||e)+”.”+{78:”ac76d497″,147:”3dc53903″,148:”1a20d5fe”,242:”2a64278a”,317:”49e41428″,348:”bd6de33a”,412:”2f55ce66″,439:”30bd804e”,538:”1b18459f”,590:”cf0efb30″,675:”ae9f91a8″,733:”83105561″,786:”06482edd”,860:”03a8b7a5″,873:”e6b09d52″,898:”998ef92b”}[e]+”-1.236.0.min.js”),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t=”NRBA:”,i.l=(n,r,o,a)=>{if(e[n])e[n].push(r);else{var s,c;if(void 0!==o)for(var d=document.getElementsByTagName(“script”),u=0;u{s.onerror=s.onload=null,clearTimeout(g);var i=e[n];if(delete e[n],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(r))),t)return t(r)},g=setTimeout(f.bind(null,void 0,{type:”timeout”,target:s}),12e4);s.onerror=f.bind(null,s.onerror),s.onload=f.bind(null,s.onload),c&&document.head.appendChild(s)}},i.r=e=>{“undefined”!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:”Module”}),Object.defineProperty(e,”__esModule”,{value:!0})},i.j=6,i.p=”https://js-agent.newrelic.com/”,(()=>{var e={6:0,352:0};i.f.j=(t,n)=>{var r=i.o(e,t)?e[t]:void 0;if(0!==r)if(r)n.push(r[2]);else{var o=new Promise(((n,i)=>r=e[t]=[n,i]));n.push(r[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(n=>{if(i.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var o=n&&(“load”===n.type?”missing”:n.type),a=n&&n.target&&n.target.src;s.message=”Loading chunk “+t+” failed.n(“+o+”: “+a+”)”,s.name=”ChunkLoadError”,s.type=o,s.request=a,r[1](s)}}),”chunk-“+t,t)}};var t=(t,n)=>{var r,o,[a,s,c]=n,d=0;if(a.some((t=>0!==e[t]))){for(r in s)i.o(s,r)&&(i.m[r]=s[r]);if(c)c(i)}for(t&&t(n);d{i.r(o);var e=i(3325),t=i(5763);const n=Object.values(e.D);function r(e){const r={};return n.forEach((n=>{r[n]=function(e,n){return!1!==(0,t.Mt)(n,””.concat(e,”.enabled”))}(n,e)})),r}var a=i(9144);var s=i(5546),c=i(385),d=i(8e3),u=i(5938),l=i(3960),f=i(50);class g extends u.W{constructor(e,t,n){let r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];super(e,t,n),this.auto=r,this.abortHandler,this.featAggregate,this.onAggregateImported,r&&(0,d.R)(e,n)}importAggregator(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(this.featAggregate||!this.auto)return;const n=c.il&&!0===(0,t.Mt)(this.agentIdentifier,”privacy.cookies_enabled”);let r;this.onAggregateImported=new Promise((e=>{r=e}));const o=async()=>{let t;try{if(n){const{setupAgentSession:e}=await Promise.all([i.e(860),i.e(242)]).then(i.bind(i,3228));t=e(this.agentIdentifier)}}catch(e){(0,f.Z)(“A problem occurred when starting up session manager. This page will not start or extend any session.”,e)}try{if(!this.shouldImportAgg(this.featureName,t))return void(0,d.L)(this.agentIdentifier,this.featureName);const{lazyFeatureLoader:n}=await i.e(412).then(i.bind(i,8582)),{Aggregate:o}=await n(this.featureName,”aggregate”);this.featAggregate=new o(this.agentIdentifier,this.aggregator,e),r(!0)}catch(e){(0,f.Z)(“Downloading and initializing “.concat(this.featureName,” failed…”),e),this.abortHandler?.(),r(!1)}};c.il?(0,l.b)((()=>o()),!0):o()}shouldImportAgg(n,r){return n!==e.D.sessionReplay||!1!==(0,t.Mt)(this.agentIdentifier,”session_trace.enabled”)&&(!!r?.isNew||!!r?.state.sessionReplay)}}var p=i(7633),h=i(7894);class v extends g{static featureName=p.t9;constructor(n,r){let i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(super(n,r,p.t9,i),(“undefined”==typeof PerformanceNavigationTiming||c.Tt)&&”undefined”!=typeof PerformanceTiming){const r=(0,t.OP)(n);r[p.Dz]=Math.max(Date.now()-r.offset,0),(0,l.K)((()=>r[p.qw]=Math.max((0,h.z)()-r[p.Dz],0))),(0,l.b)((()=>{const t=(0,h.z)();r[p.OJ]=Math.max(t-r[p.Dz],0),(0,s.p)(“timing”,[“load”,t],void 0,e.D.pageViewTiming,this.ee)}))}this.importAggregator()}}var m=i(1117),b=i(1284);class y extends m.w{constructor(e){super(e),this.aggregatedData={}}store(e,t,n,r,i){var o=this.getBucket(e,t,n,i);return o.metrics=function(e,t){t||(t={count:0});return t.count+=1,(0,b.D)(e,(function(e,n){t[e]=w(n,t[e])})),t}(r,o.metrics),o}merge(e,t,n,r,i){var o=this.getBucket(e,t,r,i);if(o.metrics){var a=o.metrics;a.count+=n.count,(0,b.D)(n,(function(e,t){if(“count”!==e){var r=a[e],i=n[e];i&&!i.c?a[e]=w(i.t,r):a[e]=function(e,t){if(!t)return e;t.c||(t=A(t.t));return t.min=Math.min(e.min,t.min),t.max=Math.max(e.max,t.max),t.t+=e.t,t.sos+=e.sos,t.c+=e.c,t}(i,a[e])}}))}else o.metrics=n}storeMetric(e,t,n,r){var i=this.getBucket(e,t,n);return i.stats=w(r,i.stats),i}getBucket(e,t,n,r){this.aggregatedData[e]||(this.aggregatedData[e]={});var i=this.aggregatedData[e][t];return i||(i=this.aggregatedData[e][t]={params:n||{}},r&&(i.custom=r)),i}get(e,t){return t?this.aggregatedData[e]&&this.aggregatedData[e][t]:this.aggregatedData[e]}take(e){for(var t={},n=””,r=!1,i=0;it.max&&(t.max=e),e2&&void 0!==arguments[2])||arguments[2];super(e,n,I.t,r),c.il&&((0,t.OP)(e).initHidden=Boolean(“hidden”===document.visibilityState),(0,k.N)((()=>(0,s.p)(“docHidden”,[(0,h.z)()],void 0,I.t,this.ee)),!0),(0,T.bP)(“pagehide”,(()=>(0,s.p)(“winPagehide”,[(0,h.z)()],void 0,I.t,this.ee))),this.importAggregator())}}var P=i(3081);class S extends g{static featureName=P.t9;constructor(e,t){let n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,t,P.t9,n),this.importAggregator()}}new class{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(0,j.ky)(16);c._A?(this.agentIdentifier=t,this.sharedAggregator=new y({agentIdentifier:this.agentIdentifier}),this.features={},this.desiredFeatures=new Set(e.features||[]),this.desiredFeatures.add(v),Object.assign(this,(0,a.j)(this.agentIdentifier,e,e.loaderType||”agent”)),this.start()):(0,f.Z)(“Failed to initial the agent. Could not determine the runtime environment.”)}get config(){return{info:(0,t.C5)(this.agentIdentifier),init:(0,t.P_)(this.agentIdentifier),loader_config:(0,t.DL)(this.agentIdentifier),runtime:(0,t.OP)(this.agentIdentifier)}}start(){const t=”features”;try{const n=r(this.agentIdentifier),i=[…this.desiredFeatures];i.sort(((t,n)=>e.p[t.featureName]-e.p[n.featureName])),i.forEach((t=>{if(n[t.featureName]||t.featureName===e.D.pageViewEvent){const r=function(t){switch(t){case e.D.ajax:return[e.D.jserrors];case e.D.sessionTrace:return[e.D.ajax,e.D.pageViewEvent];case e.D.sessionReplay:return[e.D.sessionTrace];case e.D.pageViewTiming:return[e.D.pageViewEvent];default:return[]}}(t.featureName);r.every((e=>n[e]))||(0,f.Z)(“”.concat(t.featureName,” is enabled but one or more dependent features has been disabled (“).concat((0,E.P)(r),”). This may cause unintended consequences or missing data…”)),this.features[t.featureName]=new t(this.agentIdentifier,this.sharedAggregator)}})),(0,_.Qy)(this.agentIdentifier,this.features,t)}catch(e){(0,f.Z)(“Failed to initialize all enabled instrument classes (agent aborted) -“,e);for(const e in this.features)this.features[e].abortHandler?.();const n=(0,_.fP)();return delete n.initializedAgents[this.agentIdentifier]?.api,delete n.initializedAgents[this.agentIdentifier]?.[t],delete this.sharedAggregator,n.ee?.abort(),delete n.ee?.get(this.agentIdentifier),!1}}}({features:[v,N,S],loaderType:”lite”})})(),window.NRBA=o})();]]]]]]]]>]]]]]]>]]]]>]]> [] { if ([‘subscriber’, ‘prosubscriber’].includes(window.utag_data.user_type)) { return; } const delayParam = parseInt(window.localStorage.getItem(‘swg-call-delay’), 10); if (delayParam && (delayParam > Date.now())) { return; } // If GaaMetering is initiated, it would initiate the subscriptions behind the scene // https://github.com/subscriptions-project/swg-js/blob/main/src/utils/gaa.js if (!this.hasInitGaaMetering) { subscriptions.init(productID); this.getEntitlements(subscriptions, productID); } }); }, getEntitlements(subscriptions, productId) { subscriptions.getEntitlements() .then(window.__googleEA?.handleSwGEntitlement(productId)) .catch((err) => { console.error(`[SWG Entitlements Failed]: ${err}`); }); }, getHandleLoginPromise() { return new Promise(() => { window.GaaMetering?.getLoginPromise() .then(() => { const LOGIN_URL = { WSJ: ‘www.wsj.com/client/login’, BOL: ‘www.barrons.com/client/login’, FN: ‘www.dowjones.com/client/login’, MW: ‘www.marketwatch.com/client/login’, MG: ‘www.dowjones.com/client/login’ }; const prefix = envGoogleEA === ‘prod’ ? ” : ‘int.’; const baseUrl = LOGIN_URL[window.utag_data.page_site_product]; const loginUrl = `https://${prefix}${baseUrl}`; const targetUrl = new URL(window.location.href); targetUrl.searchParams.set(‘isGaa’, true); window.location.href = `${loginUrl}?target=${encodeURIComponent(targetUrl)}`; }); }); }, getRegisterUserPromise() { return new Promise(() => { window.GaaMetering?.getGaaUserPromise() .then((credential) => { window.__googleEA?._registerUser(credential); }); }); }, showPaywall() { const SHOP_URL = { prod: { WSJ: ‘https://subscribe.wsj.com?target=’, BOL: ‘https://subscribe.barrons.com?target=’, FN: ‘https://partner.fnlondon.com/p/1140300052/eligibility?mod=subscribe-google-ea&targetURL=’, MW: ‘https://subscribe.marketwatch.com?target=’ }, dev: { WSJ: ‘https://subscribe.wsj.com?target=’, BOL: ‘https://subscribe.barrons.com?target=’, FN: ‘https://partner.s.dev.fnlondon.com/p/p_fnlondon/eligibility/?mod=subscribe-google-ea&targetURL=’, MW: ‘https://subscribe.marketwatch.com?target=’ } }; const product = window.utag_data.page_site_product; const targetUrl = new URL(window.location.href); targetUrl.searchParams.set(‘isGaa’, true); window.location.href = `${(SHOP_URL[envGoogleEA] || SHOP_URL.dev)[product]}${encodeURIComponent(targetUrl)}`; }, handleSwGEntitlement(productId) { return (entitlements) => { if (!entitlements || !Array.isArray(entitlements.entitlements) || !entitlements.entitlements.length) { window.localStorage.setItem(‘swg-call-delay’, Date.now() + (60 * 60 * 1000)); return; } let subscriptionToken; for (const entitlement of entitlements.entitlements) { if ((entitlement.source === ‘google’) && (entitlement.products.includes(productId))) { subscriptionToken = entitlement.subscriptionToken; } } if (!subscriptionToken) { return; } const isCxdjExist = window.setInterval(() => { if (window.cxdj?.meta?.topDomain && window.cxdj?.displaySwgScrim) { window.cxdj.displaySwgScrim(); clearInterval(isCxdjExist); } }, 100); }; }, getAllowedReferrers() { const PRODUCT_DOMAIN = { WSJ: ‘wsj.com’, BOL: ‘barrons.com’, FN: ‘fnlondon.com’, MW: ‘marketwatch.com’, MG: ‘mansionglobal.com’ }; const LOGIN_URL = { WSJ: ‘accounts.wsj.com’, BOL: ‘accounts.barrons.com’, FN: ‘accounts.dowjones.com’, MW: ‘accounts.marketwatch.com’, MG: ‘accounts.dowjones.com’ }; const SHOP_URL = { prod: { WSJ: ‘subscribe.wsj.com’, BOL: ‘subscribe.barrons.com’, FN: ‘partner.fnlondon.com’, MW: ‘subscribe.marketwatch.com’ }, dev: { WSJ: ‘subscribe.wsj.com’, BOL: ‘subscribe.barrons.com’, FN: ‘partner.s.dev.fnlondon.com’, MW: ‘subscribe.marketwatch.com’ } }; const product = window.utag_data.page_site_product; const productHostNamePrefix = envGoogleEA === ‘prod’ ? ” : ‘s.dev.’; const productHostName = `www.${productHostNamePrefix}${PRODUCT_DOMAIN[product]}`; return [productHostName, LOGIN_URL[product], `${(SHOP_URL[envGoogleEA] || SHOP_URL.dev)[product]}`]; }, _registerUser(credential) { const PRODUCT_DOMAIN = { WSJ: ‘wsj’, BOL: ‘barrons’, FN: ‘fnlondon’, MW: ‘marketwatch’, MG: ‘mansionglobal’ }; const EDITION_ID = { WSJ: ‘WSJ-EN_US’, BOL: ‘BARRONS-EN_US’, FN: ‘EFN-EN_US’, MW: ‘MARKETWATCH-EN_US’, MG: ‘MG-EN_US’ }; const REGISTRATION_SOURCE = { WSJ: ‘WSJ’, BOL: ‘BARRONS’, FN: ‘EFN’, MW: ‘MARKETWATCH’, MG: ‘MG’ }; const LOGIN_URL = { WSJ: ‘accounts.wsj.com/auth’, BOL: ‘accounts.barrons.com/auth’, FN: ‘accounts.dowjones.com/auth/fn’, MW: ‘accounts.marketwatch.com/auth’ }; const pageSiteProduct = window.utag_data.page_site_product; const registerUrlPrefix = envGoogleEA === ‘prod’ ? ” : ‘s.dev.’; const registerBasedUrl = `https://register.${registerUrlPrefix}${PRODUCT_DOMAIN[pageSiteProduct]}.com`; const registerEndpoint = `${registerBasedUrl}/api/createSocialConnectUser`; const loginUrlPrefix = envGoogleEA === ‘prod’ ? ” : ‘int.’; const loginBaseUrl = LOGIN_URL[pageSiteProduct]; const loginUrl = `https://${loginUrlPrefix}${loginBaseUrl}/google-login`; const targetUrl = new URL(window.location.href); targetUrl.searchParams.set(‘isGaa’, true); fetch(registerEndpoint, { method: ‘POST’, body: JSON.stringify({ id_token: credential?.credential, displayContextId: ‘SOCIAL_CONNECT’, returnUrl: window.location.href.split(‘?’)[0], editionId: `${EDITION_ID[pageSiteProduct]}`, registrationSource: `${REGISTRATION_SOURCE[pageSiteProduct]}` }), headers: { ‘content-type’: ‘application/json’, } }) .then((response) => { if (!response.ok) { console.error(‘GoogleEA: Social Connect Invalid Status Code’); return; } return response.json(); }) .then((userState) => { if (!userState) { console.error(‘GoogleEA: Social Connect No Data’); return; } window.location.href = `${loginUrl}?target=${encodeURIComponent(targetUrl)}`; }) .catch((err) => { console.error(`GoogleEA: Social Connect Err: ${err}`); }); } }; })() ]]]]]]]]>]]]]]]>]]]]>]]>

Skip to main content

The Moneyist

Last Updated: July 21, 2023 at 9:35 a.m. ET First Published: July 18, 2023 at 8:16 a.m. ET

‘I kicked my husband under the table, and said under my breath, “Can you believe that?”’

“Do you think he should have just paid the $35 instead of asking for a separate check?”

MarketWatch illustration

Dear Quentin,

[]I went for dinner with six friends last weekend, and we each ordered entrees and desserts, and some side orders. One of our group only eats gluten-free food, so he ordered two starters as one meal. We split the bill, and it worked out at $36 each. But our gluten-free friend cried foul, and asked for a separate check to pay $22 for his gluten-free dish. I was outraged — and almost felt physically sick. I kicked my husband under the table, and said under my breath, “Can you believe that?’

[]Can you believe it? Do you think he should have just paid the $35 instead of asking for a separate check? Adding insult to injury, he left the waiter a $10 tip. Why not just pay $35 like everyone else? I told my husband I was never going for dinner with him again. Don’t you think he should have just paid $35 like everyone else? It was a big crowd. If everyone did that, you’d need a forensic accountant to figure out how many breadsticks someone ate. 

[]We otherwise had a nice evening, and it was a bring-your-own-bottle restaurant. I work as a teacher and my husband works in tech. We own a home together and have three kids. Our gluten-free friend is a freelance consultant, and is divorced with two kids. He had a very privileged upbringing. I worked hard for everything I have. I’m not saying any of us are rich, but when we go out to eat, we like to share and share alike, and split the bill down the middle. 

[]When did eating out become so full of these cringeworthy moments?

[]Equal Bill Splitter

Dear Equal,

[]I’m sorry to say that the most cringeworthy moment here happened when you kicked your husband under the table. I’m not a big fan of under-table communication in a group, and while we could debate the pros and cons of asking for a separate check for a $13 difference, I don’t think there’s much of a gray area when it comes to calling someone out at the dinner table, especially when your eye-rolling and disapproval could be picked up by the other guests.

[]As far as your friend is concerned, $13 is a lot of money to pay when you did not eat all the food that was ordered by the table. Maybe it doesn’t seem like it to you or anyone reading this column, but your friend is divorced with two kids, and works as a freelancer — so let’s assume his income is not always stable. Could he have just split it down the middle and paid $35 and another 15% or 20% for a tip? Sure. But he has good financial boundaries. I applaud him.

[]The real issue here may go back to your respective upbringings, and could explain your dramatic — and I would argue disproportionate reaction — to your friend asking for a separate $22 check. You’ve worked hard, and maybe your friend had an easier start in life, but that doesn’t mean he’s not entitled to pay for what he ate, and watch every dollar. Divorce is like a recession. You can end up struggling to get back on your financial feet for years.

[]Perhaps your friend had always intended to pay $22 for his gluten-free dish, and tip the server 50%, or perhaps he has a well-trained side eye and caught your reaction to his paying for his own order, and he decided to pay closer to what everyone else had paid. But ordering separate checks, I suspect, will become more common as prices continue to rise, even at a slower pace, and people feel uncertain about spending money in restaurants. 

[]You believe in equality of bill splitting. I suggest you apply that equality to all dinner guests, regardless of upbringing and dietary restrictions, and allow them to make their own choices about what they pay for at dinner. People often have problems — financial or otherwise — that we are not aware of, so try to leave space for that. And if your friend did see your eye-rolling and under-the-table antics? I’d like to think he made space for your behavior too.

[]Readers write to me with all sorts of dilemmas. 

[]By emailing your questions, you agree to have them published anonymously on MarketWatch. By submitting your story to Dow Jones & Co., the publisher of MarketWatch, you understand and agree that we may use your story, or versions of it, in all media and platforms, including via third parties.

[]The Moneyist regrets he cannot reply to questions individually.

[]More from Quentin Fottrell:

[]I had a date with a great guy. I didn’t drink, but his wine added $36 to our bill. We split the check evenly. Should I have spoken up?

[]‘I’m living paycheck to paycheck and I feel drained’: My fiancé said he would pay half of the mortgage. Guess what happened next?

[]‘We live in purgatory’: My wife has a multimillion-dollar trust fund, but my mother-in-law controls it. We earn $400,000 and spend beyond our means.

My mother’s will leaves everything to her 3 children. My brother died suddenly — and his wife says she will receive her late husband’s share

[]’Our spouses are not mentioned in her will and she was not a popular member of our family’

[]Quentin Fottrell is MarketWatch’s Managing Editor-Personal Finance and The Moneyist columnist. You can follow him on Twitter @quantanamo.

--> More stuff could go in this aside column

No Recent Tickers

[]Visit a quote page and your recently viewed tickers will be displayed here.

[]

[] No results found

{ // If Dianomi is disabled by user, add ‘generic’ style hiding anything // with a j-dianomi-content class. Allows for cleanup of things like headers // on bottom of home/section pages and borders on MoreHeadlines of quote page const css = ‘.j-dianomi-content { display: none !important; }’; const styleEl = document.createElement(‘style’); styleEl.type = ‘text/css’; styleEl.appendChild(document.createTextNode(css)); document.head.appendChild(styleEl); } const checkDianomiVendor = () => { if (typeof __ace !== ‘undefined’) { // To get Dianomi Vendor Id (or any vendor Id) do following from Console of Marketwatch.com // console.table(__ace(‘djcmp’, ‘getAllVendors’, [])) __ace(‘djcmp’, ‘customVendorIsEnabled’, [‘5fdc7a2fa2286360b24ef388’, (isVendorEnabled) => { if (isVendorEnabled) { loadDianomiScript(); } else { addDianomiDisabledStyles(); } }]); } } // Wait for CMP to finish loading before checking if Dianomi is disabled if (typeof __ace !== ‘undefined’) { __ace(‘djcmp’, ‘executeOnCmpReady’, [{ cb: checkDianomiVendor }]); } }()); ]]]]]]]]>]]]]]]>]]]]>]]>


Source

Leave a Reply

Your email address will not be published. Required fields are marked *