Showing source for: https://my.liquidandgrit.com/
Duration: 1.025371s
Server: Apache
<!DOCTYPE html>
<!--[if IE 7]> <html class="no-js lt-ie8"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
<html class="no-js" lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">(window.NREUM||(NREUM={})).init={ajax:{deny_list:["bam.nr-data.net"]}};(window.NREUM||(NREUM={})).loader_config={licenseKey:"cea68d43c0",applicationID:"54644924",browserID:"254997677"};;/*! For license information please see nr-loader-rum-1.324.0.min.js.LICENSE.txt */
(()=>{var e={8122(e,t,r){"use strict";r.d(t,{a:()=>i});var n=r(944);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.R)(3);if(!t||"object"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),a=0===Object.keys(r).length?e:r;for(let s in a)if(void 0!==e[s])try{if(null===e[s]){r[s]=null;continue}Array.isArray(e[s])&&Array.isArray(t[s])?r[s]=Array.from(new Set([...e[s],...t[s]])):e[s]instanceof Map||e[s]instanceof Set||e[s]instanceof Date||e[s]instanceof RegExp?r[s]=e[s]:"object"==typeof e[s]&&null!==t[s]&&"object"==typeof t[s]?r[s]=i(e[s],t[s]):r[s]=e[s]}catch(e){r[s]||(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555(e,t,r){"use strict";r.d(t,{f:()=>s});var n=r(384),i=r(8122);const a={beacon:n.NT.beacon,errorBeacon:n.NT.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};function s(e){try{return!!e.licenseKey&&!!e.errorBeacon&&!!e.applicationID}catch(e){return!1}}r.d(t,["D",0,e=>(0,i.a)(e,a)])},7699(e,t,r){"use strict";var n=r(860);const i=1e6,a={[n.K7.logging]:!0,[n.K7.genericEvents]:!0,[n.K7.jserrors]:!0,[n.K7.ajax]:!0};r.d(t,["It",0,i,"KC",0,a,"qh",0,"SESSION_ERROR","zd",0,5e5])},9324(e,t,r){"use strict";r.d(t,["xv",0,"1.324.0"])},981(e,t,r){"use strict";r.d(t,["R",0,{AJAX:"AjaxRequest",PA:"PageAction",UA:"UserAction",BP:"BrowserPerformance",WS:"WebSocket",SPV:"SecurityPolicyViolation",JSE:"JavaScriptError",LOG:"Log",PVE:"PageView",PVT:"PageViewTiming",SR:"SessionReplay",ST:"SessionTrace",BI:"BrowserInteraction"}])},6154(e,t,r){"use strict";var n=r(1863);const i="undefined"!=typeof window&&!!window.document,a="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),s=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),o=Boolean("hidden"===s?.document?.visibilityState),c=""+s?.location,u=/iPad|iPhone|iPod/.test(s.navigator?.userAgent),d=u&&"undefined"==typeof SharedWorker,l=((()=>{const e=s.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);Array.isArray(e)&&e.length>=2&&e[1]})(),Date.now()-(0,n.t)());r.d(t,["OF",0,u,"RI",0,i,"WN",0,l,"bv",0,a,"gm",0,s,"m",0,c,"mw",0,o,"sb",0,d,"zk",0,()=>{const e=s?.performance?.getEntriesByType?.("navigation")?.[0];if(e&&e.responseStart>0&&e.responseStart<s.performance.now())return e}])},3241(e,t,r){"use strict";r.d(t,{W:()=>i});var n=r(6154);function i(e={}){try{n.gm.dispatchEvent(new CustomEvent("newrelic",{detail:e}))}catch(e){}}},1687(e,t,r){"use strict";r.d(t,{Ak:()=>o,Ze:()=>u,x3:()=>c});var n=r(3241),i=r(3606),a=r(860),s=r(2646);function o(e,t){if(!e)return;const r={staged:!1,priority:a.P3[t]||0};e.runtime.drainRegistry.get(t)||e.runtime.drainRegistry.set(t,r)}function c(e,t){if(!e)return;const r=e.runtime.drainRegistry;r&&(r.get(t)&&r.delete(t),l(e,t,!1),r.size&&d(e))}function u(e,t="feature",r=!1){if(e){if(!e.runtime.drainRegistry.get(t)||r)return l(e,t);e.runtime.drainRegistry.get(t).staged=!0,d(e)}}function d(e){if(!e)return;const t=Array.from(e.runtime.drainRegistry);t.every(([e,t])=>t.staged)&&(t.sort((e,t)=>e[1].priority-t[1].priority),t.forEach(([t])=>{e.runtime.drainRegistry.delete(t),l(e,t)}))}function l(e,t,r=!0){if(!e)return;const a=e.ee,o=i.i.handlers;if(a&&!a.aborted&&a.backlog&&o){if((0,n.W)({type:"lifecycle",name:"drain",feature:t}),r){const e=a.backlog[t],r=o[t];if(r){for(let t=0;e&&t<e.length;++t)f(e[t],r);Object.entries(r).forEach(([e,t])=>{Object.values(t||{}).forEach(t=>{t[0]?.on&&t[0].context()instanceof s.y&&!t[0].listeners(e).includes(t[1])&&t[0].on(e,t[1])})})}}a.isolatedBacklog||delete o[t],a.backlog[t]=null,a.emit("drain-"+t,[])}}function f(e,t){var r=e[1];Object.values(t[r]||{}).forEach(t=>{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],a=e[2];n.apply(i,a)}})}},7836(e,t,r){"use strict";var n=r(384),i=r(8990),a=r(2646),s=r(5607);const o="nr@context:".concat(s.W),c=function e(t,r){var n={},s={},d={},l=!1;try{l=16===r.length&&u.initializedAgents?.[r]?.runtime.isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,a){!1!==a&&(a=!0);if(c.aborted&&!i)return;t&&a&&t.emit(e,r,n);var o=g(n);m(e).forEach(e=>{e.apply(o,r)});var u=v()[s[e]];u&&u.push([f,e,r,o]);return o},get:h,listeners:m,context:g,buffer:function(e,t){const r=v();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach(([e,n])=>{s[n]=t,t in r||(r[t]=[])})},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach(e=>{delete f.backlog[e]})},isBuffering:function(e){return!!v()[s[e]]},debugId:r,backlog:l?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function g(e){return e&&e instanceof a.y?e:e?(0,i.I)(e,o,()=>new a.y(o)):new a.y(o)}function p(e,t){n[e]=m(e).concat(t)}function m(e){return n[e]||[]}function h(t){return d[t]=d[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),u=(0,n.Zm)();u.ee||(u.ee=c),r.d(t,["P",0,o,"ee",0,c])},2646(e,t,r){"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},9908(e,t,r){"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(7836).ee.get("handle");function i(e,t,r,i,a){a?(a.buffer([e],i),a.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606(e,t,r){"use strict";r.d(t,{i:()=>a});var n=r(9908);a.on=s;var i=a.handlers={};function a(e,t,r,a){s(a||n.d,i,e,t,r)}function s(e,t,r,i,a){a||(a="feature"),e||(e=n.d);var s=t[a]=t[a]||{};(s[r]=s[r]||[]).push([e,i])}},3878(e,t,r){"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function a(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>a,jT:()=>n,sp:()=>i})},5607(e,t,r){"use strict";const n=(0,r(9566).bz)();r.d(t,["W",0,n])},9566(e,t,r){"use strict";r.d(t,{LA:()=>s,bz:()=>a});var n=r(6154);function i(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".split("").map(e=>"x"===e?i(t,r++).toString(16):"y"===e?(3&i()|8).toString(16):e).join("")}function s(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,a=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const s=[];for(var o=0;o<e;o++)s.push(i(r,a++).toString(16));return s.join("")}},2614(e,t,r){"use strict";r.d(t,["BB",0,18e5,"Wt",0,"NRBA_SESSION::","iL",0,{SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},"tS",0,{STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},"wk",0,144e5])},1863(e,t,r){"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},944(e,t,r){"use strict";r.d(t,{R:()=>i});var n=r(3241);function i(e,t){"function"==typeof console.debug&&(console.debug("New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat(e),t),(0,n.W)({drained:null,type:"data",name:"warn",feature:"warn",data:{code:e,secondary:t}}))}},8990(e,t,r){"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},6389(e,t,r){"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout(()=>{i=clearTimeout(i)},t)),n||(clearTimeout(i),i=setTimeout(()=>{e.apply(this,r)},t))}}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=>i,s:()=>n})},1910(e,t,r){"use strict";r.d(t,{i:()=>a});var n=r(944);const i=new Map;function a(...e){return e.every(e=>{if(i.has(e))return i.get(e);const t="function"==typeof e?e.toString():"",r=t.includes("[native code]"),a=t.includes("nrWrapper");return r||a||(0,n.R)(64,e?.name||t),i.set(e,r),r})}},5289(e,t,r){"use strict";r.d(t,{GG:()=>s,Qr:()=>c,sB:()=>o});var n=r(3878),i=r(6389);function a(){return"undefined"==typeof document||"complete"===document.readyState}function s(e,t){if(a())return e();const r=(0,i.J)(e),s=setInterval(()=>{a()&&(clearInterval(s),r())},500);(0,n.sp)("load",r,t)}function o(e){if(a())return e();(0,n.DD)("DOMContentLoaded",e)}function c(e){if(a())return e();(0,n.sp)("popstate",e)}},384(e,t,r){"use strict";r.d(t,{Zm:()=>c,bQ:()=>d,dV:()=>u,pV:()=>l});var n=r(6154),i=r(1863),a=r(944),s=r(1910);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function c(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function u(){let e=c();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate||n.gm.setInterval,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket},(0,s.i)(...Object.values(e.o))),e}function d(e,t){let r=c();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t,2===Object.keys(r.initializedAgents).length&&(0,a.R)(69)}function l(){return function(){let e=c();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=c();const t=e.init||{};e.init={...t}}(),u(),function(){let e=c();const t=e.loader_config||{};e.loader_config={...t}}(),c()}r.d(t,["NT",0,o])},2843(e,t,r){"use strict";r.d(t,{G:()=>a,u:()=>i});var n=r(3878);function i(e,t=!1,r,i){(0,n.DD)("visibilitychange",function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)},r,i)}function a(e,t,r){(0,n.sp)("pagehide",e,t,r)}},9300(e,t,r){"use strict";r(860).K7.ajax;r.d(t,["mo",0,{NONE:"none",FAILURES:"failures",ALL:"all"}])},3969(e,t,r){"use strict";const n=r(860).K7.metrics;r.d(t,["TZ",0,n,"XG",0,"storeEventMetrics","xV",0,"storeSupportabilityMetrics"])},6630(e,t,r){"use strict";const n=r(860).K7.pageViewEvent;r.d(t,["T",0,n])},782(e,t,r){"use strict";const n=r(860).K7.pageViewTiming;r.d(t,["T",0,n])},4234(e,t,r){"use strict";r.d(t,{W:()=>i});var n=r(1687);class i{constructor(e,t){this.agentRef=e,this.ee=e?.ee,this.featureName=t,this.blocked=!1}deregisterDrain(){(0,n.x3)(this.agentRef,this.featureName)}}},7767(e,t,r){"use strict";var n=r(6154);r.d(t,["V",0,e=>n.RI&&!0===e?.privacy.cookies_enabled])},8362(e,t,r){"use strict";r.d(t,{d:()=>a});var n=r(9566),i=r(1741);class a extends i.W{agentIdentifier=(0,n.LA)(16)}},1741(e,t,r){"use strict";r.d(t,{W:()=>a});var n=r(944),i=r(4261);class a{#e(e,...t){if(this[e]!==a.prototype[e])return this[e](...t);(0,n.R)(35,e)}addPageAction(e,t){return this.#e(i.hG,e,t)}register(e){return this.#e(i.eY,e)}recordCustomEvent(e,t){return this.#e(i.fF,e,t)}setPageViewName(e,t){return this.#e(i.Fw,e,t)}setCustomAttribute(e,t,r){return this.#e(i.cD,e,t,r)}noticeError(e,t){return this.#e(i.o5,e,t)}setUserId(e,t=!1){return this.#e(i.Dl,e,t)}setApplicationVersion(e){return this.#e(i.nb,e)}setErrorHandler(e){return this.#e(i.bt,e)}addRelease(e,t){return this.#e(i.k6,e,t)}log(e,t){return this.#e("log",e,t)}start(){return this.#e("start")}finished(e){return this.#e(i.BL,e)}recordReplay(){return this.#e(i.CH)}pauseReplay(){return this.#e(i.Tb)}addToTrace(e){return this.#e(i.U2,e)}setCurrentRouteName(e){return this.#e(i.PA,e)}interaction(e){return this.#e(i.dT,e)}wrapLogger(e,t,r){return this.#e(i.Wb,e,t,r)}measure(e,t){return this.#e(i.V1,e,t)}consent(e){return this.#e(i.Pv,e)}}},4261(e,t,r){"use strict";r.d(t,["BL",0,"finished","CH",0,"recordReplay","Dl",0,"setUserId","Fw",0,"setPageViewName","PA",0,"setCurrentRouteName","Pv",0,"consent","Tb",0,"pauseReplay","U2",0,"addToTrace","V1",0,"measure","Wb",0,"wrapLogger","bt",0,"setErrorHandler","cD",0,"setCustomAttribute","dT",0,"interaction","eY",0,"register","fF",0,"recordCustomEvent","hG",0,"addPageAction","k6",0,"addRelease","nb",0,"setApplicationVersion","o5",0,"noticeError"])},1738(e,t,r){"use strict";r.d(t,{U:()=>l,Y:()=>d});var n=r(3241),i=r(9908),a=r(1863),s=r(944),o=r(3969),c=r(8362),u=r(860);function d(e,t,r,a){const d=a||r;!d||d[e]&&d[e]!==c.d.prototype[e]||(d[e]=function(){(0,i.p)(o.xV,["API/"+e+"/called"],void 0,u.K7.metrics,r.ee),(0,n.W)({drained:!!r.runtime?.activatedFeatures,type:"data",name:"api",feature:"api-"+e,data:{}});try{return t.apply(this,arguments)}catch(e){(0,s.R)(23,e)}})}function l(e,t,r,n,s){const o=e.info;null===r?delete o.jsAttributes[t]:o.jsAttributes[t]=r,(s||null===r)&&(0,i.p)("api-"+n,[(0,a.t)(),t,r],void 0,"session",e.ee)}},8374(e,t,r){r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860(e,t,r){"use strict";const n="events",i="jserrors",a="browser/blobs",s="browser/logs",o={ajax:"ajax",genericEvents:"generic_events",jserrors:i,logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations"},c={[o.pageViewEvent]:1,[o.pageViewTiming]:2,[o.metrics]:3,[o.jserrors]:4,[o.softNav]:5,[o.ajax]:6,[o.sessionTrace]:7,[o.sessionReplay]:8,[o.logging]:9,[o.genericEvents]:10},u={[o.pageViewEvent]:"rum",[o.pageViewTiming]:n,[o.ajax]:n,[o.softNav]:n,[o.metrics]:i,[o.jserrors]:i,[o.sessionTrace]:a,[o.sessionReplay]:a,[o.logging]:s,[o.genericEvents]:"ins"};r.d(t,["$J",0,u,"K7",0,o,"P3",0,c,"XX",0,i,"Yy",0,s,"df",0,a,"hg",0,"connect"])}};const t={};function r(n){const i=t[n];if(void 0!==i)return i.exports;const a=t[n]={exports:{}};return e[n](a,a.exports,r),a.exports}r.m=e,r.d=(e,t)=>{if(Array.isArray(t))for(var n=0;n<t.length;){var i=t[n++],a=t[n++];r.o(e,i)?0===a&&n++:0===a?Object.defineProperty(e,i,{enumerable:!0,value:t[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:a})}else for(var i in t)r.o(t,i)&&!r.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((t,n)=>(r.f[n](e,t),t),[])),r.u=e=>"nr-rum-1.324.0.min.js",r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{const e={},t="NRBA-1.324.0.PROD:";r.l=(n,i,a,s)=>{if(e[n])return void e[n].push(i);let o,c;if(void 0!==a){const e=document.getElementsByTagName("script");for(var u=0;u<e.length;u++){const r=e[u];if(r.getAttribute("src")==n||r.getAttribute("data-webpack")==t+a){o=r;break}}}if(!o){c=!0;var d={296:"sha512-Pjy0Jxmo6oAG6oGKLKrf8x8xyaSM1NuL7vLGv9xRLEw0hrpERDruLI5RxlCHNy0NpMyEPWhlC34zujXIR3qJPQ=="};o=document.createElement("script"),o.charset="utf-8",r.nc&&o.setAttribute("nonce",r.nc),o.setAttribute("data-webpack",t+a),o.src=n,0!==o.src.indexOf(window.location.origin+"/")&&(o.crossOrigin="anonymous"),d[s]&&(o.integrity=d[s])}e[n]=[i];const l=(t,r)=>{o.onerror=o.onload=null,clearTimeout(f);const i=e[n];if(delete e[n],o.parentNode?.removeChild(o),i?.forEach(e=>e(r)),t)return t(r)},f=setTimeout(l.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=l.bind(null,o.onerror),o.onload=l.bind(null,o.onload),c&&document.head.appendChild(o)}})(),r.r=e=>{Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="https://js-agent.newrelic.com/",(()=>{const e={374:0,840:0};r.f.j=(t,n)=>{let i=r.o(e,t)?e[t]:void 0;if(0!==i)if(i)n.push(i[2]);else{const a=new Promise((r,n)=>i=e[t]=[r,n]);n.push(i[2]=a);const s=r.p+r.u(t),o=new Error,c=n=>{if(r.o(e,t)&&(i=e[t],0!==i&&(e[t]=void 0),i)){const e=n&&("load"===n.type?"missing":n.type),r=n&&n.target&&n.target.src;o.message="Loading chunk "+t+" failed: ("+e+": "+r+")",o.name="ChunkLoadError",o.type=e,o.request=r,i[1](o)}};r.l(s,c,"chunk-"+t,t)}};const t=(t,n)=>{let[i,a,s]=n;var o,c,u=0;if(i.some(t=>0!==e[t])){for(o in a)r.o(a,o)&&(r.m[o]=a[o]);if(s)s(r)}for(t&&t(n);u<i.length;u++)c=i[u],r.o(e,c)&&e[c]&&e[c][0](),e[c]=0},n=self["webpackChunk:NRBA-1.324.0.PROD"]=self["webpackChunk:NRBA-1.324.0.PROD"]||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})(),(()=>{"use strict";r(8374);var e=r(8362),t=r(860);const n=Object.values(t.K7);var i=r(384),a=r(1741);var s=r(2555),o=r(981);t.K7.genericEvents,o.R.PA,o.R.UA,o.R.BP;const c={RESOURCES:"experimental.resources",REGISTER:"register"};var u=r(9300);const d=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var l=r(2614),f=r(944),g=r(8122);const p="[data-nr-mask]",m=e=>(0,g.a)(e,(()=>{const e={feature_flags:[],experimental:{register:!1,resources:!1,iframe_bridge:!1,iframe_domains:[]},mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,autoStart:!0,capture_payloads:u.mo.NONE},api:{register:{get enabled(){return e.feature_flags.includes(c.REGISTER)||e.experimental.register},set enabled(t){e.experimental.register=t},duplicate_data_to_container:!1,get allow_iframe_bridge(){return e.feature_flags.includes(c.IFRAME_BRIDGE)||e.experimental.iframe_bridge},set allow_iframe_bridge(t){e.experimental.iframe_bridge=t},get iframe_domains(){return e.experimental.iframe_domains},set iframe_domains(t){Array.isArray(t)?e.experimental.iframe_domains=t:(0,f.R)(1,t)}}},browser_consent_mode:{enabled:!1},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},get feature_flags(){return e.feature_flags},set feature_flags(t){e.feature_flags=t},generic_events:{enabled:!0,autoStart:!0},harvest:{interval:30},jserrors:{enabled:!0,autoStart:!0},logging:{enabled:!0,autoStart:!0},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,autoStart:!0},performance:{capture_marks:!1,capture_measures:!1,capture_detail:!0,resources:{get enabled(){return e.feature_flags.includes(c.RESOURCES)||e.experimental.resources},set enabled(t){e.experimental.resources=t},asset_types:[],first_party_domains:[],ignore_newrelic:!0}},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:l.wk,inactiveMs:l.BB},session_replay:{autoStart:!0,enabled:!1,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inline_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){d(t)?e.mask_selector="".concat(t,",").concat(p):""===t||null===t?e.mask_selector=p:(0,f.R)(5,t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){d(t)?e.block_selector+=",".concat(t):""!==t&&(0,f.R)(6,t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,f.R)(7,t)}},session_trace:{enabled:!0,autoStart:!0},soft_navigations:{enabled:!0,autoStart:!0},ssl:void 0,user_actions:{enabled:!0,elementAttributes:["id","className","tagName","type"]},web_sockets:{enabled:!1}}})());var h=r(6154),v=r(9324);let b=0;const y={buildEnv:"PROD",distMethod:"CDN",version:v.xv,originTime:h.WN},_={consented:!1},w={activatedFeatures:void 0,appMetadata:{},configured:!1,get consented(){return this.session?.state?.consent||_.consented},set consented(e){_.consented=e},customTransaction:void 0,denyList:[],disabled:!1,drainRegistry:new Map,connector:void 0,harvester:void 0,v2Target:void 0,isolatedBacklog:!1,isRecording:!1,loaderType:void 0,maxBytes:3e4,obfuscator:void 0,onerror:void 0,ptid:void 0,releaseIds:{},session:void 0,timeKeeper:void 0,registeredEntities:[],jsAttributesMetadata:{bytes:0},get harvestCount(){return++b},listeningForIframeMessages:!1},R="BA";var A=r(7836),x=r(3241);const E={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0};var S=r(9908);const k="newrelic-iframe-";function T(e,t={},n,o){let{init:c,info:u,loader_config:d,runtime:l={},exposed:f=!0}=t;if(!u){const e=(0,i.pV)();c=e.init,u=e.info,d=e.loader_config}var p;e.init=m(c||{}),e.loader_config=(p=d||{},(0,g.a)(p,E)),u.jsAttributes??={},h.bv&&(u.jsAttributes.isWorker=!0),e.info=(0,s.D)(u);const v=e.init;e.runtime??=(e=>{const t=(0,g.a)(e,w),r=Object.keys(y).reduce((e,t)=>(e[t]={value:y[t],writable:!1,configurable:!0,enumerable:!0},e),{});return Object.defineProperties(t,r)})(l),e.runtime.v2Target??={type:R,instance:e.agentIdentifier,get id(){return e.runtime.appMetadata?.agents?.[0]?.entityGuid},get attributes(){return{"entity.guid":this.id,appId:e.info.applicationID}}},v.proxy.assets&&(e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e})(v.proxy.assets),e.runtime.configured||(Object.defineProperty(e,"beacons",{get:()=>[e.info.beacon,e.info.errorBeacon,e.init.proxy.assets,e.init.proxy.beacon].filter(Boolean)}),Object.defineProperty(e.runtime,"denyList",{get:()=>[...e.init.ajax.deny_list||[],...e.init.ajax.block_internal?e.beacons:[]]}),e.runtime.ptid=e.agentIdentifier,function(e){const t=(0,i.pV)();Object.getOwnPropertyNames(a.W.prototype).forEach(r=>{const n=a.W.prototype[r];if("function"!=typeof n||"constructor"===n)return;let i=t[r];e[r]&&!1!==e.exposed&&"micro-agent"!==e.runtime?.loaderType&&(t[r]=(...t)=>{const n=e[r](...t);return i?i(...t):n})})}(e),e.runtime.loaderType=n,e.ee=A.ee.get(e.agentIdentifier),e.exposed=f,(0,x.W)({drained:!!e.runtime.activatedFeatures,type:"lifecycle",name:"initialize",feature:void 0,data:e.config}),e.init.api.register.allow_iframe_bridge&&h.gm.addEventListener("message",t=>{"string"==typeof t.data?.type&&t.data.type.startsWith(k)&&(0,S.p)("iframe-message",[t],void 0,"IFRAME",e.ee)}),e.runtime.configured=!0)}var j=r(1863),P=r(4261),N=r(1738);var O=r(1687),M=r(4234),I=r(5289),D=r(7767);function V(e){return!!(0,i.dV)().o.MO&&(0,D.V)(e)&&!0===e?.session_trace.enabled}var W=r(6389),B=r(7699);const C=new WeakSet,K=new WeakMap;class U extends M.W{constructor(e,t){super(e,t),this.abortHandler=void 0,this.featAggregate=void 0,this.loadedSuccessfully=void 0,this.onAggregateImported=new Promise(e=>{this.loadedSuccessfully=e}),this.deferred=Promise.resolve(),!1===e.init[this.featureName].autoStart?this.deferred=new Promise((t,r)=>{this.ee.on("manual-start-all",(0,W.J)(()=>{(0,O.Ak)(e,this.featureName),t()}))}):(0,O.Ak)(e,t)}importAggregator(e,t,n={}){if(this.featAggregate)return;const i=async()=>{if(await this.deferred,this.#t(e),!(0,s.f)(e.info))return(0,f.R)(43),e.ee.abort(),void this.loadedSuccessfully(!1);try{await async function(e,t,n){if(K.has(e))return K.get(e);const i=(async()=>{if((0,D.V)(e.init))try{const{setupAgentSession:t}=await r.e(296).then(r.bind(r,1768));t(e)}catch(e){(0,f.R)(20,e),t.emit("internal-error",[e]),(0,S.p)(B.qh,[e],void 0,n,t)}if(e.init.api.register.allow_iframe_bridge)try{const{setupIframeMFEMessageListener:t}=await Promise.resolve().then(function(){const e=new Error("Cannot find module '../../loaders/configure/iframe-message-handler'");throw e.code="MODULE_NOT_FOUND",e});t(e)}catch(e){(0,f.R)(23,e)}const[{Connector:i},{Harvester:a}]=await Promise.all([r.e(296).then(r.bind(r,6589)),r.e(296).then(r.bind(r,5237))]);e.runtime.connector=new i(e),e.runtime.harvester=new a(e);const s=Object.values(e.features).filter(t=>e.runtime.drainRegistry.has(t.featureName));Promise.all(s.map(e=>e.onAggregateImported)).then(()=>e.runtime.harvester.startTimer())})();K.set(e,i),await i}(e,this.ee,this.featureName)}catch(e){return(0,f.R)(79,e),this.ee.abort(),void this.loadedSuccessfully(!1)}try{if(!this.#r(this.featureName,e.runtime.session,e.init))return this.abortHandler?.(),(0,O.Ze)(this.agentRef,this.featureName),void this.loadedSuccessfully(!1);const{Aggregate:r}=await t();this.featAggregate=new r(e,n),e.runtime.harvester.initializedAggregates.push(this.featAggregate),this.loadedSuccessfully(!0)}catch(e){(0,f.R)(34,e),this.abortHandler?.(),(0,O.Ze)(this.agentRef,this.featureName,!0),this.loadedSuccessfully(!1)}};h.RI?(0,I.GG)(()=>i(),!0):i()}#r(e,r,n){if(this.blocked)return!1;switch(e){case t.K7.sessionReplay:return V(n)&&!!r;case t.K7.sessionTrace:return!!r;default:return!0}}#t(e){if(!C.has(e)&&(C.add(e),!(0,s.f)(e.info))){const t=(0,i.pV)();let r={...t.info?.jsAttributes};try{r={...r,...e.info?.jsAttributes}}catch(e){}T(e,{...t,info:{...t.info,jsAttributes:r},runtime:e.runtime},e.runtime.loaderType)}}}var L=r(6630);class F extends U{static featureName=L.T;constructor(e){var t;super(e,L.T),this.setupInspectionEvents(),t=e,(0,N.Y)(P.Fw,function(e,r){"string"==typeof e&&("/"!==e.charAt(0)&&(e="/"+e),t.runtime.customTransaction=(r||"http://custom.transaction")+e,(0,S.p)("api-"+P.Fw,[(0,j.t)()],void 0,void 0,t.ee))},t),this.importAggregator(e,()=>e.init.feature_flags.includes("rum_v2")?r.e(296).then(r.bind(r,908)):r.e(296).then(r.bind(r,7927)))}setupInspectionEvents(){const e=(e,t)=>{e&&(0,x.W)({timeStamp:e.timeStamp,loaded:"complete"===e.target.readyState,type:"window",name:t,data:e.target.location+""})};(0,I.sB)(t=>{e(t,"DOMContentLoaded")}),(0,I.GG)(t=>{e(t,"load")}),(0,I.Qr)(t=>{e(t,"navigate")}),this.ee.on(l.tS.UPDATE,(e,t)=>{(0,x.W)({type:"lifecycle",name:"session",data:t})})}}class G extends e.d{constructor(e){var t;(super(),h.gm)?(this.features={},(0,i.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(e.features||[]),this.desiredFeatures.add(F),T(this,e,e.loaderType||"agent"),t=this,(0,N.Y)(P.cD,function(e,r,n=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof r)||null===r)return(0,N.U)(t,e,r,P.cD,n);(0,f.R)(40,typeof r)}else(0,f.R)(39,typeof e)},t),function(e){(0,N.Y)(P.Dl,function(t,r=!1){if("string"!=typeof t&&null!==t)return void(0,f.R)(41,typeof t);const n=e.info.jsAttributes["enduser.id"];r&&null!=n&&n!==t?(0,S.p)("api-setUserIdAndResetSession",[t],void 0,"session",e.ee):(0,N.U)(e,"enduser.id",t,P.Dl,!0)},e)}(this),function(e){(0,N.Y)(P.nb,function(t){if("string"==typeof t||null===t)return(0,N.U)(e,"application.version",t,P.nb,!1);(0,f.R)(42,typeof t)},e)}(this),function(e){(0,N.Y)("start",function(){e.ee.emit("manual-start-all")},e)}(this),function(e){(0,N.Y)(P.Pv,function(t=!0){if("boolean"==typeof t){if((0,S.p)("api-"+P.Pv,[t],void 0,"session",e.ee),e.runtime.consented=t,t){const t=e.features.page_view_event;t.onAggregateImported.then(e=>{const r=t.featAggregate;e&&!r.sentRum&&r.sendRum?.()})}}else(0,f.R)(65,typeof t)},e)}(this),this.run()):(0,f.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}get api(){return this}run(){try{const e=function(e){const t={};return n.forEach(r=>{t[r]=!!e[r]?.enabled}),t}(this.init),r=[...this.desiredFeatures],i=this.init.feature_flags.includes("rum_v2");r.sort((e,r)=>t.P3[e.featureName]-t.P3[r.featureName]),r.forEach(r=>{if(!e[r.featureName]&&(i||r.featureName!==t.K7.pageViewEvent))return;const n=function(e){switch(e){case t.K7.ajax:return[t.K7.jserrors];case t.K7.sessionTrace:return[t.K7.ajax,t.K7.pageViewEvent];case t.K7.sessionReplay:return[t.K7.sessionTrace];case t.K7.pageViewTiming:return[t.K7.pageViewEvent];default:return[]}}(r.featureName).filter(e=>!(e in this.features));n.length>0&&(0,f.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)})}catch(e){(0,f.R)(22,e);for(const e in this.features)this.features[e].abortHandler?.();const t=(0,i.Zm)();delete t.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return t.ee.get(this.agentIdentifier).abort(),!1}}}var H=r(2843),z=r(782);class Y extends U{static featureName=z.T;constructor(e){super(e,z.T),h.RI&&((0,H.u)(()=>(0,S.p)("docHidden",[(0,j.t)()],void 0,z.T,this.ee),!0),(0,H.G)(()=>(0,S.p)("winPagehide",[(0,j.t)()],void 0,z.T,this.ee)),this.importAggregator(e,()=>r.e(296).then(r.bind(r,9981))))}}var Z=r(3969);class q extends U{static featureName=Z.TZ;constructor(e){super(e,Z.TZ),this.importAggregator(e,()=>r.e(296).then(r.bind(r,9623)))}}new G({features:[F,Y,q],loaderType:"lite"})})()})();</script>
<title>Premium Access - Liquid and Grit</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name = "format-detection" content = "telephone=no" />
<meta name="google-site-verification" content="rO94SQCBnXixA8EoQyKn3LDI21nfFF06m11rPSNoT00" />
<script>
var csrfHash = '3980174c18d0168bc6dc6ff9dae01a66';
</script>
<script type="text/javascript">
function inIframe () {
// return true;
try {
return window.self !== window.top;
} catch (e) {
return true;
}
}
</script>
<script src="/theme/lib/js/jquery-2.1.4.min.1787178010.js" data-cfasync="false"></script>
<script src="/theme/lib/js/jquery-migrate-1.2.1.min.1787178010.js" data-cfasync="false"></script>
<script src="/theme/lib/js/jquery-ui-1.10.1.min.1787178010.js" data-cfasync="false"></script>
<script src="/theme/lib/js/sabramedia-v4.1788454062.js" data-cfasync="false"></script>
<link href="https://my.liquidandgrit.com/theme/pigeon/ui/css/fonts.1787178011.css" rel="stylesheet" type="text/css" media="screen" />
<link href="/theme/lib/css/pigeon.1792181466.css" rel="stylesheet" type="text/css" media="screen" />
<link href="/theme/lib/css/jquery.dropdown.1787178010.css" rel="stylesheet" type="text/css" media="screen" />
<link href="https://my.liquidandgrit.com/theme/pigeon/ui/css/site-specific/gen-myliquidandgritcom.1791998615.css" rel="stylesheet" type="text/css" media="screen" />
<link rel="icon" type="image/x-icon" href="https://myliquidandgritcom.s3.us-east-va.io.cloud.ovh.us/33fa79d62d9cc5374d82c4c4cd2dd6c2.ico" />
<link href="https://my.liquidandgrit.com/theme/pigeon/ui/css/site-specific/liquid-grit.1787178011.css" rel="stylesheet" type="text/css" media="screen" />
<link href="https://my.liquidandgrit.com/theme/pigeon/ui/css/print.1787178011.css" rel="stylesheet" type="text/css" media="print" />
<script src="/theme/lib/js/modernizr-2.6.1-respond-1.1.0.min.1787178010.js" data-cfasync="false"></script>
<!-- <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.10.1/jquery-ui.min.js"></script>-->
<script>
jQuery.voLocale = {
confirmationRequired: 'Confirmation Required',
okay: 'Ok',
cancel: 'Cancel'
};
</script>
<script src="/theme/lib/js/cmn-form.1790695446.js" data-cfasync="false"></script>
<script src="/theme/lib/js/cmc-cart.1787178010.js" data-cfasync="false"></script>
<script src="/theme/lib/js/jquery.kinetic.min.1787178010.js" data-cfasync="false"></script>
<script src="/theme/lib/js/vo-pigeon-login.1787233205.js" data-cfasync="false"></script>
<script type="text/javascript">
function voScrollToBlock( element )
{
var scrollToBlock = $(element);
var scrollTop = scrollToBlock.length ? scrollToBlock.offset().top - 15 : 0;
if( navigator.userAgent.match(/(iPod|iPhone|iPad)/) && !window.MSStream){
window.top.postMessage($.toJSON({'action':'scrollPigeon','scrollTop':scrollTop}),'*');
}else{
// $('html,body').animate({scrollTop:scrollTop},500);
$('html,body').scrollTop(scrollTop);
}
}
function voShowLogin()
{
var voLoginBlock = $('.vo-login,.section.login');
if( ! voLoginBlock.length ){
document.location.href = '/';
return;
}
$('.vo-lead-message,.vo-access-options,.vo-more-access-options,.modal-on-demand,.section.plans,.vo-subscribe,.vo-freemium,.vo-combo-card,.vo-combo-brand-chooser,.vo-combo-brand-summary').hide();
$('.vo-sign-in-prompt').show();
voLoginBlock.fadeIn('fast', function(){
voScrollToBlock('#login');
if( $.voPasskey ){
$.voPasskey.init();
}
});
}
function voFreemiumLeads()
{
return $('.vo-freemium:not(.vo-freemium--off):not(.vo-freemium--set-aside)').length > 0;
}
function voShowAccessOptions()
{
if( voFreemiumLeads() ){
voShowFreemium();
return;
}
var voLogin = $('.vo-login,.section.login');
if( voLogin.length ){
voLogin.hide();
$('.vo-lead-message,.vo-access-options,.vo-more-access-options,.modal-on-demand,.section.plans,.vo-subscribe,.vo-combo-card,.vo-combo-brand-chooser,.vo-combo-brand-summary').fadeIn('fast', function(){
voScrollToBlock('.homepage .main-content:first');
});
}else{
$('.vo-lead-message,.vo-access-options,.vo-more-access-options,.modal-on-demand,.section.plans,.vo-subscribe,.vo-combo-card,.vo-combo-brand-chooser,.vo-combo-brand-summary').fadeIn('fast', function(){
voScrollToBlock('.homepage .main-content:first');
});
}
}
function voShowPlanOptions()
{
$('.vo-login,.section.login,.vo-freemium').hide();
$('.vo-sign-in-prompt').show();
$('.vo-freemium-return').show();
$('.vo-lead-message,.vo-access-options,.vo-more-access-options,.modal-on-demand,.section.plans,.vo-subscribe,.vo-combo-card,.vo-combo-brand-chooser,.vo-combo-brand-summary').fadeIn('fast');
voScrollToBlock( $('#sections,.vo-sign-in-prompt:visible,.main-content:visible').first() );
}
function voShowFreemium()
{
$('.vo-login,.section.login,.vo-lead-message,.vo-access-options,.vo-more-access-options,.modal-on-demand,.section.plans,.vo-subscribe,.vo-combo-card,.vo-combo-brand-chooser,.vo-combo-brand-summary,.vo-freemium-return,.vo-sign-in-prompt').hide();
$('.vo-freemium').fadeIn('fast');
voScrollToBlock('.vo-freemium');
}
var voReopenPlans = window.location.hash === '#vo-plans';
if( voReopenPlans && window.history.replaceState ){
window.history.replaceState(null, '', window.location.pathname + window.location.search);
}
function voReloadOnPlans()
{
if( window.history.replaceState ){
window.history.replaceState(null, '', window.location.pathname + window.location.search + '#vo-plans');
}
window.location.reload();
}
function voJumpTo( block )
{
if( voReopenPlans && block === 'subscriptions' ){
voReopenPlans = false;
block = 'plans';
}
switch( block ){
case 'login': voShowLogin(); break;
case 'subscriptions': voShowAccessOptions(); break;
case 'plans':
if( voFreemiumLeads() ) voShowPlanOptions();
else voShowAccessOptions();
break;
}
}
var setParentSizes=false;
if(inIframe()){
var callingOrigin = '';
// The embedding page's origin is otherwise only learned in receiveMessage() below, from
// the first message pigeon.js posts in on load. Two cases never deliver one: an embed on
// our own origin, where the MetaMask guard returns before the assignment, and any load
// where that message doesn't arrive. Everything that reports back to the parent then
// throws on an empty targetOrigin, so seed it from the referrer, which for a framed
// document is the page doing the framing. Not '*' — the payloads carry checkout detail.
if( !callingOrigin && document.referrer ){
try{
callingOrigin = new URL(document.referrer).origin;
}catch(referrerError){
// Leave it empty; the senders all treat that as "no parent to tell".
}
}
$(document).ready(function(){
var $html = $('html');
$html.css('background','none').addClass('in-iframe');
if( $html.hasClass('modal') ){
$('body')
.css('cssText','background: none repeat scroll 0 0 rgba(18, 20, 22, 0) !important')
.css({
'-webkit-overflow-scrolling':'touch',
'overflow':'auto'
});
}else{
$('body')
.css('cssText','background: none repeat scroll 0 0 rgba(255, 255, 255, 1) !important')
.css({
'-webkit-overflow-scrolling':'touch',
'overflow':'auto'
});
}
$('#header').hide();
$('#footer').hide();
// Hide main content blocks so the plugin can determine which ones to show
$('.vo-login,.vo-lead-message,.vo-access-options,.vo-more-access-options').hide();
$('.vo-hide-in-modal').hide();
$('.vo-show-in-modal').show();
window.addEventListener("message", receiveMessage, false);
window.paiPromise = new $.Deferred();
function receiveMessage(e)
{
// Don't receive postMessages from same Pigeon subdomain. This is the hack to fix the metaMask issue
// (its injected script posts within this window). The exception is our own parent: a publisher
// on Pigeon CMS (pharmadispatch.com) opens this dialog from the same origin, and dropping
// its jumpTo left every block hidden -- an empty dark overlay.
if( e.origin == 'https://my.liquidandgrit.com' && !( window.parent !== window && e.source === window.parent ) ){
return true;
}
if(e.origin == 'https://js.stripe.com'){
return true;
}
try{
var input = $.parseJSON(e.data);
}catch(tryEvent){
$.log('Pigeon: Improperly formatted data object.');
$.log(e);
return true;
}
// Only a message that speaks our protocol may name the origin we reply to.
// This used to adopt the origin of the first message that merely PARSED as
// JSON, and on a page with Stripe Elements that is a js.stripe.com frame
// long before pigeon.js gets a word in. Once poisoned, every
// parent.postMessage(..., callingOrigin) on the page throws
// "target origin ... does not match the recipient window's origin" --
// silently for the getSizes reply, which is caught, and fatally for the
// combo-checkout notifications, which are on the money path.
// Reproduced on my.gtreview.com; invisible locally, where no Stripe frame
// is on the page to win the race.
if( ! callingOrigin && input && typeof input.action === 'string' )
callingOrigin = e.origin;
// Check origin for security
//if (e.origin !== "//" || ! input.action )
// return;
switch( input.action ){
case 'getSizes':
try {
setParentSizes = {
'action': 'childSizes',
'iframeId': typeof (input.iframeId) != 'undefined' ? input.iframeId : '',
'window': {'height': $(window).height()},
'document': {'height': $(document).height()}
};
parent.postMessage($.toJSON(setParentSizes), callingOrigin);
}catch(e){
//
}
break;
case 'resize':
break;
case 'jumpTo':
voJumpTo(input.block);
break;
case 'paiAuth':
window.paiPromise = $.voAjax({
actionController:'/action/some-auth-endpoint',
dataObject:{'token':input.token},
success:[function(data){
}]
});
break;
}
}
$('a').not('.check-delivery-rules,.close-iframe,.vo-close-iframe-and-reload,.ignore').on('click tap touchstart',function(e){
e.preventDefault();
window.top.postMessage($.toJSON({'action':'link', 'url':$(this).get(0).href}),'*');
});
// An Image block linked to a promotion (.ignore, so neither branch above touches
// it). The 'link' action would send the publisher's whole page there, and the
// 'modal' action can't carry a query string — pigeon.js appends
// "?access_method=iframe" to the path, which mangles a combo's ?promo=<hash>. So
// the frame follows the link itself, taking the params pigeon.js opened it with:
// access_method keeps it a modal page, _pipses keeps the reader's session pin.
$(document).on('click', 'a.vo-image-promo-link', function(e){
e.preventDefault();
var target = new URL($(this).prop('href')),
current = new URLSearchParams(window.location.search);
$.each(['access_method', 'modalControl', '_pipses', 'content_id', 'content_title'], function(i, key){
if( current.has(key) ) target.searchParams.set(key, current.get(key));
});
window.location.href = target.href;
});
$('body').click(function(e){
// "Clicked the backdrop, so close" — and .main-content is how the card is
// recognised. The sign-in prompt is page content that deliberately sits
// OUTSIDE the card (a collapsed line above it, not a card of its own), so
// without naming it here, clicking "Already have an account? Sign in" inside
// a modal closed the modal instead of opening the login.
if( $(e.target).closest('.main-content, .vo-sign-in-prompt').length == 0 ){
if( $('#cmc_subscribe-complete').length){
window.top.postMessage($.toJSON({'action':'reload'}),'*');
}else{
window.top.postMessage($.toJSON({'action':'closePigeon'}),'*');
}
}
});
window.voLoginComplete = function(){
parent.postMessage($.toJSON({'action':'reload'}),callingOrigin);
};
$(document).ajaxSuccess(function(e,xhr,settings){
if( settings.url == '/action/public/vo/login-limited' || settings.url == '/action/public/cmc/register' ){
var data = $.parseJSON(xhr.responseText);
// mfa_required means the PASSWORD was right and nothing more. Treating it
// as success tore the popup down before the code could be entered, and
// reloaded the parent to a still-logged-out page — making login through
// the SDK impossible for any tenant with multi-factor switched on.
// vo-mfa.js calls voLoginComplete() once the challenge really is done.
if( ! data.error_message && ! data.login_limit && ! data.mfa_required ){
window.voLoginComplete();
}
}
});
$('.voForm.use-credit').data('ajaxSuccess',function(data){
if( ! data.error_message ){
parent.postMessage($.toJSON({'action':'link','url':data.reload_link}),callingOrigin);
}
});
$('.close-iframe').on('click tap touchstart',function(e){
e.preventDefault();
window.top.postMessage($.toJSON({'action':'closePigeon'}),'*');
});
$('.vo-close-iframe-and-reload').on('click tap touchstart',function(e){
e.preventDefault();
parent.postMessage($.toJSON({'action':'reload'}),callingOrigin);
});
// For OTC
$('button.vo-allow-all').on('click tap touchstart',function(){
// Accept all cookies and close dialog
parent.postMessage($.toJSON({'action':'closePigeon','otc':0}),callingOrigin);
});
// FOR OTC
$('.vo-link-to-out').on('click tap touchstart',function(e){
e.preventDefault();
// Accept all cookies and close dialog
parent.postMessage($.toJSON({'action':'link','url':$(this).get(0).href}),callingOrigin);
});
$('.vo-close-iframe-and-reload').on('click tap touchstart',function(e){
e.preventDefault();
window.top.postMessage($.toJSON({'action':'reload'}),'*');
});
$('a.scroll-to-login').on('click tap touchstart',function(e){
e.preventDefault();
voScrollToBlock('#login');
});
$('a.scroll-to-options').on('click tap touchstart',function(e){
e.preventDefault();
voScrollToBlock('.homepage .subscription-options');
});
});
}
$(document).ready(function(){
$('a.vo-show-login').on('click tap touchstart',function(e){
e.preventDefault();
$('.vo-hide-in-modal').hide();
$('.vo-show-in-modal').show();
voShowLogin();
});
$('a.vo-show-options').on('click tap touchstart',function(e){
e.preventDefault();
$('.vo-hide-in-modal').hide();
$('.vo-show-in-modal').show();
voShowAccessOptions();
});
$('a.vo-show-freemium').on('click tap touchstart',function(e){
e.preventDefault();
$('.vo-hide-in-modal').hide();
$('.vo-show-in-modal').show();
voShowFreemium();
});
if( $('.vo-freemium--set-aside').length ){
$('.vo-freemium-return').show().closest('.login-banner-prompt').show();
}
// The optional button under an Image & Text block. Delegated on document, unlike the
// two above: a layout block can be redrawn by the editor after this runs, and a
// handler bound to the element itself would not survive that.
//
// A scroll rather than an href to an id: the plan options block has no id of its own,
// and giving it one would leave "#plans" in the reader's history for a page they
// never left. voScrollToBlock also handles iOS, where the page is usually inside the
// pigeon.js frame and only the top window can scroll.
$(document).on('click tap', 'a.vo-cta-plans', function(e){
e.preventDefault();
// TWO classes, because the Plan Options block renders differently per layout
// type. A single plan's page wraps cmc/form-subscriptions.tpl in
// .vo-plan-options; a combo page hands off to cmc/form-combo-options.tpl, which
// brings its own .vo-combo-options and gets no wrapper at all (see
// layoutBlockPlanOptions). Targeting only the first meant the button did nothing
// useful on every combo page — which is where it is most wanted.
var planBlock = $('.vo-plan-options, .vo-combo-options').first();
// Nothing to scroll to — a layout with the block removed, or a page that never
// had one. Do nothing, rather than let voScrollToBlock's 0 fallback throw the
// reader to the top of the page for no reason.
if( ! planBlock.length ) return;
voScrollToBlock(planBlock);
});
});
</script>
<script>
$(document).ready(function(){
// Add a class to the body if the user is on Windows
if (navigator.platform.indexOf('Win') > -1) {
document.documentElement.classList.add('windows-os');
}
// Menu button on mobile
$('#menu-trigger').click(function(e) {
$('#account-header').toggleClass('open');
$(this).toggleClass('open');
$(this).text($(this).text() === 'Open Menu' ? 'Close Menu' : 'Open Menu');
});
// Filters button on mobile
$('#sidebar-trigger').click(function(e) {
$('#sidebar').addClass('open');
$('body').addClass('body-no-scroll');
});
$('#sidebar-close, #show-results').click(function(e) {
$('#sidebar').removeClass('open');
$('body').removeClass('body-no-scroll');
});
});
</script>
<!-- Google tag (gtag.js) --><script async src='https://www.googletagmanager.com/gtag/js?id=G-9PVJ6TK0V7'></script><script>window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);}gtag('js', new Date());gtag('config', 'G-9PVJ6TK0V7');
</script>
</head>
<body id="cms_static_home" class="index catalog-show-filters blog-show-filters logged-out">
<div id="skip-to">
<a href="#content">Skip to main content</a>
</div>
<header id="header" class="dark" role="banner">
<div class="container">
<h1><a href="https://my.liquidandgrit.com/library/gallery">Liquid and Grit</a></h1>
<span class="powered-by-liquid">Powered by Liquid and Grit</span>
<ul id="account-header" role="navigation">
<li id="shopping-cart">
<button class="cart" aria-controls="cart-popup" aria-haspopup="dialog" aria-expanded="false">
<span class="checkout">Cart</span>
<span class="quantity-link" style="display:none">
<span class="sr-only">, </span>
<span class="quantity">0</span>
<span class="sr-only"> items</span>
</span>
</button>
<div id="cart-popup" class ="totals" role="dialog" aria-hidden="true" style="display:none" aria-labelledby="cart-popup-heading">
<button class="button close">Close</button>
<h2 id="cart-popup-heading">Your Cart</h2>
<p>You have <strong><span class="quantity">0 Items</span></strong> in your cart.</p>
<p class="subtotal">Subtotal: <span class="amount">$0.00</span></p>
<div><span class="shipping-total-not-free" style="display:none;"><span class="amount"></span></span></div>
<div><span class="shipping-total-free" style="display:none;"><span class="amount"></span></span></div>
<button class="button view-cart">View Cart</button>
<a class="button checkout" href="/cmc/checkout-one">Checkout</a>
<button class="continue">Continue Shopping</button>
</div>
<div class="cart-block dialog" style="display:none" title="Your Shopping Cart">
<a class="button close" role="button">Close</a>
<table cellspacing="0" class="cart list">
<caption style="position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden;">Your shopping cart</caption>
<colgroup>
<col class="image" style="width: 125px" />
<col class="name" />
<col class="quantity" />
<col class="price" />
<col class="total" />
</colgroup>
<thead>
<tr>
<th scope="col">Preview</th>
<th scope="col">Cart Items</th>
<th scope="col">Price</th>
<th scope="col">Quantity</th>
<th scope="col">Total</th>
</tr>
</thead>
<tbody>
<!-- Template: Cart Items
<tr>
<td class="preview"><img class="thumbnail" src="" style="height: 60px"/></td>
<td class="title"><span class="name"></span><span class="delete" role="button" tabindex="0">(remove)</span></td>
<td class="subtotal"><span class="price"></span> <span class="original" style="display:none"></span></td>
<td class="quantity">
<label for="input-cart-quantity" style="position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden;">Quantity</label>
<input id="input-cart-quantity" type="number" name="qty"/>
</td>
<td class="total last"><span class="price"></span></td>
</tr>
-->
</tbody>
</table>
<div class="no-cart-results">Your cart is empty.</div>
<div class="totals">
<span class="subtotal">Subtotal <span class="amount">$0.00</span></span>
<div><span class="savings-total" style="display:none;">Discount: -<span class="amount">$0.00</span></span></div>
<div><span class="shipping-total" style="display:none;">Shipping: <span class="amount">$0.00</span></span></div>
<div><span class="shipping-total-not-free" style="display:none;"></span></div>
<div><span class="shipping-total-free" style="display:none;"></span></div>
<span class="savings-total" style="display:none;">You save <span class="amount">$0.00</span></span>
</div>
<div class="buttons">
<button class="button continue">Continue Shopping</button>
<a class="button checkout" href="/cmc/checkout-one">Checkout</a>
</div>
</div> </li>
</ul><!-- #account-header -->
<div id="menu-trigger">Open Menu</div>
</div><!-- .container -->
</header>
<div id="content"><!-- closing tag in footer.tpl -->
<script type="text/javascript">
$(document).ready(function(){
$('div.zip-check input[type="radio"]').change(function(){
$(this).closest('div.zip-check').find('a.route-item-selection').attr('href',$(this).val());
});
$('a.check-delivery-rules').click(function(e){
e.preventDefault();
var divContainer = $(this).closest('div.zip-check');
var divSignupContainer = $(this).closest('div.signup');
var optionsAvailable = false;
var otherOptionsAvailable = false;
$('div.item-options', divSignupContainer).each(function(i,el){
if( $.inArray($('[name="zip"]',divContainer).val(), $(this).data('deliveryRules').zip) != -1 ){
optionsAvailable = true;
$(this).show();
}else{
$(this).hide();
}
}).each(function(i,el){
// Loop over again and check for an asterisk meaning any other location
if( ! optionsAvailable && $.inArray('*', $(this).data('deliveryRules').zip) != -1 ){
otherOptionsAvailable = true;
$(this).show();
}
});
if( !optionsAvailable && !otherOptionsAvailable ){
$('.no-item-matches',divContainer).show();
}else{
$('div.item-options:visible input[type="radio"]:eq(0)', divSignupContainer).prop('checked',true).trigger('change');
$('.zip-check-form').hide();
$('a.route-item-selection',divContainer).show();
$('.no-item-matches',divContainer).hide();
}
});
});
</script>
<div id="pigeon-home" class="homepage">
<div class="main-content landing-image"></div>
<div class="main-content vo-login">
<div id="login">
<div class="option-heading dark">
<h2 data-bind="header">Sign in</h2>
<p class="vo-hide-in-modal" data-bind="header_sub">To continue reading, sign in or <strong>choose an access option below</strong>.</p>
<p class="vo-show-in-modal" style="display:none;"><a href="#" class="vo-show-options ignore" style="color:white;">Click here if you don't have an account</a></p>
<div class="login-close close-iframe">Close</div>
</div>
<div class="login-block">
<form class="voForm pigeon-ui-login">
<div class="message"></div>
<input name="email" id="email" class="input" type="text" autocomplete="email" inputmode="email" autocapitalize="off" autocorrect="off" spellcheck="false" aria-label="Email Address" placeholder="Your Email" />
<div class="password-field">
<input name="password" id="password" class="input" type="password" aria-label="Password" placeholder="Your Password" />
<button type="button" class="password-toggle" aria-label="Show password" aria-pressed="false"></button>
</div>
<input type="submit" id="action-login" class="button green" value="Sign in" />
<div class="waiting-for-results" style="display:none;"></div>
</form>
<div class="vo-passkey-mount"></div>
<div class="register-facebook" style="display: none;">
<button id="facebook-login" class="button" data-reroute="1" >Sign in with Facebook</button>
</div>
<a href="https://my.liquidandgrit.com/password-reset?request=1" class="forgot">Forgot your password?</a>
</div>
</div>
</div><!-- .main-content -->
<script>
// Reveal password toggle. Guarded so pigeon-home.tpl (which has several login copies) can
// include the same handler without stacking clicks.
if (!window.voPasswordToggleBound) {
window.voPasswordToggleBound = true;
$(document).on('click', '.password-toggle', function() {
const $button = $(this);
const $pwdInput = $button.closest('.password-field').find('input');
const isRevealed = $button.attr('aria-pressed') === 'true';
const nextRevealed = !isRevealed;
$pwdInput.prop('type', nextRevealed ? 'text' : 'password');
$button
.toggleClass('is-revealed', nextRevealed)
.attr('aria-pressed', String(nextRevealed))
.attr('aria-label', nextRevealed ? 'Hide password' : 'Show password');
});
}
</script>
<div class="main-content vo-access-options" id="qJfsN9">
<div class="subscription-options" id="pigeon-buy-access">
<div class="option-heading dark">
<h2>The #1 Mobile Gaming Research Report</h2>
<p class="vo-hide-in-modal"></p>
<div class="login-close close-iframe">Close</div>
</div>
<div class="login-banner-prompt signup vo-show-in-modal" style="display: none;">
Already have an account? <a href="#" class="vo-show-login ignore">Sign in</a>
</div>
<div class="global-access-message">
<p>Interested in getting access? <a href='https://www.liquidandgrit.com/contact/'>Contact us to learn how</a>.</p> </div>
</div>
</div><!-- .main-content -->
<div class="main-content">
<div class="option-heading dark">
<h2>Enterprise Solutions</h2>
<p><a href="mailto:[email protected]?subject=I would like access">Contact us and we will get you setup.</a></p>
</div>
</div>
</div>
</div><!-- .homepage -->
</div><!-- #content - opening tag in header.tpl -->
<div id="footer" class="light" role="contentinfo">
<div class="container">
<p class="left">
©
2026 liquidandgrit.com.
All rights reserved.
</p>
<p class="right">
<a href="/privacy-policy" target="_blank" aria-label="Privacy Policy - link opens in a new tab">Privacy Policy</a>
<a href="/terms-of-service" target="_blank" aria-label="Terms of Use - link opens in a new tab">Terms of Use</a>
Powered by <a href="https://pigeon.io" target="_blank" aria-label="Pigeon - link opens in a new tab">Pigeon</a>
</p>
</div>
</div>
<!-- This is a reusable reference element for screen readers. -->
<span id="new-tab-warning" class="sr-only">Opens in a new tab</span>
<!-- Text can be dynamically added to this element to make action announcements for screen readers -->
<span id="announcement" aria-live="polite" aria-atomic="true" class="sr-only"></span>
<script>
var APP_ID = "hd9fhos2";
window.intercomSettings = {
app_id: APP_ID
};
(function(){var w=window;var ic=w.Intercom;if(typeof ic==="function"){ic('reattach_activator');ic('update',w.intercomSettings);}else{var d=document;var i=function(){i.c(arguments);};i.q=[];i.c=function(args){i.q.push(args);};w.Intercom=i;var l=function(){var s=d.createElement('script');s.type='text/javascript';s.async=true;s.src='https://widget.intercom.io/widget/' + APP_ID;var x=d.getElementsByTagName('script')[0];x.parentNode.insertBefore(s, x);};if(document.readyState==='complete'){l();}else if(w.attachEvent){w.attachEvent('onload',l);}else{w.addEventListener('load',l,false);}}})();
</script>
<script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","licenseKey":"cea68d43c0","applicationID":"54644924","transactionName":"ZlwHZhRXWUZWVBEIW18WMEAPGUVaQkMAExpBURU=","queueTime":0,"applicationTime":86,"atts":"ShsEEFxNSkg=","errorBeacon":"bam.nr-data.net","agent":""}</script></body>
</html>
| # |
Url |
Url |
Source |
Date |
| 1 |
https://my.liquidandgrit.com/ |
|
2026-10-19 22:22:19 |
| 2 |
https://nivus.ru/%22/services/drug… |
|
2026-10-19 22:22:19 |
| 3 |
https://www.panram.ru/anti-ddos/ch… |
|
2026-10-19 22:22:17 |
| 4 |
https://www.texarkanatwins.com/%25… |
|
2026-10-19 22:22:16 |
| 5 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-19 22:22:16 |
| 6 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-19 22:22:16 |
| 7 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-19 22:22:14 |
| 8 |
https://www.texarkanatwins.com/%25… |
|
2026-10-19 22:22:14 |
| 9 |
https://www.texarkanatwins.com/%25… |
|
2026-10-19 22:22:13 |
| 10 |
https://auth.acog.org/OAuth/SignIn… |
|
2026-10-19 22:22:13 |
| 11 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-19 22:22:12 |
| 12 |
https://www.texarkanatwins.com/%25… |
|
2026-10-19 22:22:12 |
| 13 |
https://www.texarkanatwins.com/%25… |
|
2026-10-19 22:22:11 |
| 14 |
https://www.texarkanatwins.com/%25… |
|
2026-10-19 22:22:11 |
| 15 |
https://hack.allmende.io/s/7u7Vh8Z… |
|
2026-10-19 22:22:10 |
| 16 |
https://www.texarkanatwins.com/%25… |
|
2026-10-19 22:22:10 |
| 17 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-19 22:22:09 |
| 18 |
https://macgregor-buus.thoughtlane… |
|
2026-10-19 22:22:08 |
| 19 |
https://www.texarkanatwins.com/%25… |
|
2026-10-19 22:22:07 |
| 20 |
https://auth.acog.org/OAuth/SignIn… |
|
2026-10-19 22:22:06 |