PageSourceSearch

https://www.wakemakers.com/products/wakemakers-rear-lbs-ballast-bag

html wakemakers.com collected 2026-09-25 08:19:56 UTC 691,582 bytes, 8,352 lines download raw bytes

1<!doctype html>
2  <html class="no-js" lang="en">
3    <head>
3<script data-source-attribution="shopify.event_observer.bootstrap">
4(function(){let e=navigator,t=`prototype`,n=`sendBeacon`,r=e[n],i=fetch,a=XMLHttpRequest[t],{open:o,send:s}=a,c=`EventListener`,l=`add${c}`,u=`remove${c}`,d=EventTarget[t],f=d[l],p=d[u],m=e=>Error((e=document.currentScript)&&[e?.src,e?.id||e?.dataset?.sourceAttribution]),h=(e=[],t=0)=>(e.p=n=>e[t++%1e3]=n,[e,t=>(e.forEach(e.p=t),e.length=0)]),[g,_]=h(),[v,y]=h(),b,x=new WeakMap,S=e=>e&&g.p([e,b||[m()]]);d[l]=function(e,t,n){let r=this,i=t?.handleEvent||t,a=x.get(t),o=m();i?.call&&!a&&x.set(t,a=function(e){b=[o,e.type];try{i.call(t==i?this:t,e)}finally{b=null}}),v.p([e,o,a,r?.tagName||r+``,r?.id]),f.call(r,e,a||t,n)},d[u]=function(e,t,n){p.call(this,e,x.get(t)||t,n)},a.open=function(e,t){x.set(this,[t+``,e]),o.apply(this,arguments)},a.send=function(e){S(x.get(this)),s.call(this,e)},fetch=(e,t)=>(S([(e?.url||e)+``,t?.method]),i(e,t)),e[n]=(t,n)=>(S([t+``,``]),r.call(e,t,n)),setTimeout(()=>import("//www.wakemakers.com/cdn/shopifycloud/storefront/assets/storefront/event_observer_reporter-ed358274.js").then(e=>e.$(_,y,f,i,`49088856229`)))})();
5//# sourceURL=event-observer-collector.js
6</script>
6
7
8<!-- Start of Shoplift scripts -->
9<!-- 2026-09-10T04:00:04.6868431Z -->
10<style>.shoplift-hide { opacity: 0 !important; }</style>
11<style id="sl-preview-bar-hide">#preview-bar-iframe, #PBarNextFrameWrapper { display: none !important; }</style>
12<script type="text/javascript">(function(rootPath, template, themeRole, themeId, isThemePreview){ /* Generated on 2026-09-25T08:00:04.4503479Z */(function(){"use strict";var te=document.createElement("style");te.textContent=`#shoplift-preview-control{position:fixed;max-width:332px;height:56px;background-color:#141414;z-index:9999;bottom:20px;display:flex;border-radius:8px;box-shadow:13px 22px 7px #0000,9px 14px 7px #00000003,5px 8px 6px #0000000d,2px 4px 4px #00000017,1px 1px 2px #0000001a,0 0 #0000001a;align-items:center;margin:0 auto;left:16px;right:16px;opacity:0;transform:translateY(20px);visibility:hidden;transition:opacity .4s ease-in-out,transform .4s ease-in-out,visibility 0s .4s}#shoplift-preview-control.visible{opacity:1;transform:translateY(0);visibility:visible;transition:opacity .4s ease-in-out,transform .4s ease-in-out,visibility 0s 0s}#shoplift-preview-control *{font-family:Inter,sans-serif;color:#fff;box-sizing:border-box;font-size:16px}#shoplift-preview-variant-title{font-weight:400;line-height:140%;font-size:16px;text-align:start;letter-spacing:-.16px;flex-grow:1;text-wrap:nowrap;overflow:hidden;text-overflow:ellipsis}#shoplift-preview-variant-selector{position:relative;display:block;padding:6px 0;height:100%;min-width:0;flex:1 1 auto}#shoplift-preview-variant-menu-trigger{border:none;cursor:pointer;width:100%;background-color:transparent;padding:0 16px;border-left:1px solid #333;border-right:1px solid #333;height:100%;display:flex;align-items:center;justify-content:start;gap:8px}#shoplift-preview-variant-selector .menu-variant-label{width:24px;height:24px;border-radius:50%;padding:6px;display:flex;justify-content:center;align-items:center;font-size:12px;font-style:normal;font-weight:600;line-height:100%;letter-spacing:-.12px;flex-shrink:0}#shoplift-preview-variant-selector .preview-variant-menu{position:absolute;bottom:110%;transform:translate3d(0,20px,0);visibility:hidden;pointer-events:none;opacity:0;cursor:pointer;background-color:#141414;border:1px solid #141414;border-radius:6px;width:100%;max-height:156px;overflow-y:auto;box-shadow:0 8px 16px #0003;z-index:1;transition:opacity .3s ease-in-out,transform .3s ease-in-out,visibility 0s .3s}#shoplift-preview-variant-selector .preview-variant-menu.preview-variant-menu__visible{visibility:visible;pointer-events:auto;opacity:100;transform:translateZ(0);transition:opacity .3s ease-in-out,transform .3s ease-in-out,visibility 0s 0s}@media screen and (max-width:400px){#shoplift-preview-variant-selector .preview-variant-menu{position:fixed;left:0;right:0;width:auto;bottom:110%}}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item{padding:12px 16px;display:flex;overflow:hidden}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item .menu-variant-label{margin-right:6px}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item span{overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap;white-space:nowrap;color:#f6f6f6;font-size:14px;font-style:normal;font-weight:500}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item:hover{background-color:#545454}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item:last-of-type{border-bottom-left-radius:6px;border-bottom-right-radius:6px}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item:first-of-type{border-top-left-radius:6px;border-top-right-radius:6px}#shoplift-preview-control div:has(#shoplift-exit-preview-button){padding:0 16px}#shoplift-exit-preview-button{padding:6px 8px;font-weight:500;line-height:75%;border-radius:4px;background-color:transparent;border:none;text-decoration:none}#shoplift-exit-preview-button:hover{cursor:pointer;background-color:#333}#shoplift-preview-subscription-warning{position:relative;display:flex;align-items:center;gap:6px;padding:6px 10px;margin:0 4px;border-left:1px solid #333;cursor:help;outline:none}#shoplift-preview-subscription-warning__icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background-color:#f59e0b;color:#141414!important;font-weight:700;font-size:12px!important;line-height:1;flex-shrink:0}#shoplift-preview-subscription-warning__label{font-size:13px!important;font-weight:500;color:#fbbf24!important;text-wrap:nowrap;white-space:nowrap}#shoplift-preview-subscription-warning__tooltip{position:absolute;bottom:calc(100% + 8px);right:0;max-width:320px;width:max-content;padding:10px 12px;border-radius:6px;background-color:#1f1f1f;color:#fff!important;font-size:12px!important;line-height:1.4!important;box-shadow:0 8px 16px #0000004d;z-index:10000;opacity:0;visibility:hidden;transform:translateY(4px);transition:opacity .2s ease-in-out,transform .2s ease-in-out,visibility 0s .2s;pointer-events:none}#shoplift-preview-subscription-warning__tooltip.shoplift-preview-subscription-warning__tooltip--visible{opacity:1;visibility:visible;transform:translateY(0);transition:opacity .2s ease-in-out,transform .2s ease-in-out,visibility 0s 0s}#shoplift-preview-subscription-warning:focus-visible{box-shadow:inset 0 0 0 2px #f59e0b;border-radius:4px}#shoplift-preview-control:has(#shoplift-preview-subscription-warning){max-width:480px}/*$vite$:1*/`,document.head.appendChild(te);var fe=" daum[ /]| deusu/|(?:^|[^g])news(?!sapphire)|(?<! channel/|google/)google(?!(?:wv|app|/google| pixel))|(?<! cu)bots?(?:\\b|_)|(?<!cam)scan|(?<!lib)http|24x
127|;\\s\\w+;$|@[a-z][\\w-]+\\.|\\(\\)|\\.com\\b|\\b\\w+/1\\.0;|\\bbw/|\\bdlc\\b|\\bort/|\\bperl\\b|\\btime/|\\||^[<\\(;]|^[\\w \\.\\-\\(?:\\):%]+(?:/v?\\d+(?:\\.\\d+)?(?:\\.\\d{1,10})*?)?(?:,|$)|^[\\w\\-]+/[\\w]+$|^[^ ]{50,}$|^\\d+\\b|^\\w*search\\b|^\\w+/[\\w\\(\\)]*$|^\\w+/\\d\\.\\d\\s\\([\\w@]+\\)$|^active|^ad muncher|^amaya|^apache/|^avsdevicesdk/|^azure|^biglotron|^blackbox exporter|^bot|^clamav[ /]|^claude-code/|^client/|^cobweb/|^custom|^ddg[_-]android|^discourse|^dispatch/\\d|^downcast/|^duckduckgo|^email|^exodusmovement|^facebook|^getright/|^gozilla/|^hobbit|^hotzonu|^hwcdn/|^igetter/|^jeode/|^jetty/|^jigsaw|^microsoft bits|^movabletype|^mozilla/\\d\\.\\d\\s[\\w\\.-]+$|^mozilla/\\d\\.\\d\\s\\((?:compatible;)?(?:\\s?[\\w\\d-.]+\\/\\d+\\.\\d+)?\\)$|^navermailapp|^netsurf|^offline|^openai/|^owler|^php|^postman|^ps_daily/|^python|^rank|^read|^reed|^remove\\.bg/|^rest|^rss|^snapchat|^sora |^space bison|^stape/|^svn|^swcd |^taringa|^thumbor/|^track|^w3c|^webbandit/|^webcopier|^wget|^whatsapp|^wordpress|^xenu link sleuth|^yahoo|^yandex|^zdm/\\d|^zoom marketplace/|abuse|advisor|agent\\b|analyzer|archive|ask jeeves/teoma|attracta|audit|bluecoat drtr|browsex|burpcollaborator|capture|catch|check\\b|checker|chrome-lighthouse|chromeframe|classifier|cloudflare|collapsify\\b|convertify|cookiehubverify/|crawl|cursor/|cypress/|dareboost|datanyze|dejaclick|detect|discovery|dmbrowser|download|exaleadcloudview|feed|firephp|foregenix|functionize|grab|hardenize\\b|headless|hotjar|httrack|hubspot marketing grader|ibisbrowser|infrawatch|insight|inspect|iplabel|java(?!;)|library|linkcheck|linktiger|mail\\.ru/|manager|manus-user/|marketgoo/|measure|monitor\\b|neustar wpm|node\\b|nutch|offbyone|openvas|optimize|pageburst|pagespeed|parser|phantomjs|pingdom|playwright|powermarks|preview|productfinder|prospectingstudio|proxy|ptst[ /]\\d|radar|readable/|retriever|rexx;|rigor|rss\\b|scrape|securityheaders|selenium|server|silktide|sindup/|sogou|sparkler/|speedcurve|spider|splash|statuscake|supercleaner|synapse|synthetic|testlocally|tools|torrent|transcoder|url|validator|virtuoso|wappalyzer|watchtowr|webglance|webkit2png|whatcms/|xtate/",ge=/bot|crawl|http|lighthouse|scan|search|spider/i,z;function me(){if(z instanceof RegExp)return z;try{z=new RegExp(fe,"i")}catch{z=ge}return z}var ye=a=>typeof a=="string"&&a!=="";function ve(a){return ye(a)&&me().test(a)}var we=ve;class X{timestamp;constructor(){this.timestamp=new Date}}class be extends X{type;testId;hypothesisId;constructor(e,t,i){super(),this.type=3,this.testId=e,this.hypothesisId=t,this.timestamp=i}}class Se extends X{type;path;constructor(e){super(),this.type=4,this.path=e}}class Ce extends X{type;cart;constructor(e){super(),this.type=5,this.cart=e}}class ie extends Error{isBot;constructor(){super(),this.isBot=!0}}function Te(a,e,t){for(const i of e.selectors){const s=a.querySelectorAll(i.cssSelector);for(let r=0;r<s.length;r++)t(e.testId,e.hypothesisId)}re(a,e,(i,s,r,o,n)=>n(s,r),t)}function U(a,e,t){for(const i of e.selectors)ne(a,e.testId,e.hypothesisId,i,t??(()=>{}));re(a,e,ne,t??(()=>{}))}function se(a){return a.urlPatterns.reduce((e,t)=>{switch(t.operator){case"contains":return e+`.*${t}.*`;case"endsWith":return e+`.*${t}`;case"startsWith":return e+`${t}.*`}},"")}function re(a,e,t,i){new MutationObserver(()=>{for(const r of e.selectors)t(a,e.testId,e.hypothesisId,r,i)}).observe(a.documentElement,{childList:!0,subtree:!0})}function ne(a,e,t,i,s){const r=a.querySelectorAll(i.cssSelector);for(let o=0;o<r.length;o++){let n=r.item(o);if(n instanceof HTMLElement&&n.dataset.shoplift!==""){n.dataset.shoplift="";for(const l of i.actions.sort(Re))n=Ie(a,i.cssSelector,n,l)}}return r.length>0&&s?(s(e,t),!0):!1}function Ie(a,e,t,i){switch(i.type){case"innerHtml":t.innerHTML=i.value;break;case"attribute":Pe(t,i.scope,i.value);break;case"css":Ae(a,e,i.value);break;case"js":ke(a,t,i);break;case"copy":return Ee(t);case"remove":xe(t);break;case"move":_e(t,parseInt(i.value));break}return t}function Pe(a,e,t){a.setAttribute(e,t)}function Ae(a,e,t){const i=a.createElement("style");i.innerHTML=`${e} { ${t} }`,a.getElementsByTagName("head")[0]?.appendChild(i)}function ke(a,e,t){Function("document","element",`"use strict"; ${t.value}`)(a,e)}function Ee(a){const e=a.cloneNode(!0);if(!a.parentNode)throw"Can't copy node outside of DOM";return a.parentNode.insertBefore(e,a.nextSibling),e}function xe(a){a.remove()}function _e(a,e){if(e===0)return;const t=Array.prototype.slice.call(a.parentElement.children).indexOf(a),i=Math.min(Math.max(t+e,0),a.parentElement.children.length-1);a.parentElement.children.item(i).insertAdjacentElement(e>0?"afterend":"beforebegin",a)}function Re(a,e){return oe(a)-oe(e)}function oe(a){return a.type==="copy"||a.type==="remove"?0:1}
12const M={Template:0,UrlRedirect:2,Script:3,Price:5},De="data:image/svg+xml,%3csvg%20width='12'%20height='12'%20viewBox='0%200%2012%2012'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M9.96001%207.90004C9.86501%207.90004%209.77001%207.86504%209.69501%207.79004L6.43501%204.53004C6.19501%204.29004%205.80501%204.29004%205.56501%204.53004L2.30501%207.79004C2.16001%207.93504%201.92001%207.93504%201.77501%207.79004C1.63001%207.64504%201.63001%207.40504%201.77501%207.26004L5.03501%204.00004C5.56501%203.47004%206.43001%203.47004%206.96501%204.00004L10.225%207.26004C10.37%207.40504%2010.37%207.64504%2010.225%207.79004C10.15%207.86004%2010.055%207.90004%209.96001%207.90004Z'%20fill='white'/%3e%3c/svg%3e",Ve="data:image/svg+xml,%3csvg%20width='14'%20height='24'%20viewBox='0%200%2014%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M12.3976%2014.5255C12.2833%2013.8788%2012.0498%2013.3024%2011.6952%2012.7961C11.3416%2012.2898%2010.9209%2011.8353%2010.4353%2011.4317C9.94868%2011.0291%209.43546%2010.6488%208.89565%2010.292C8.48487%2010.049%208.09577%209.78565%207.72637%209.50402C7.35697%209.2224%207.08016%208.89503%206.89694%208.51987C6.71273%208.14471%206.67826%207.69533%206.79055%207.1697C6.86345%206.83216%206.97476%206.54647%207.12351%206.31162C7.27324%206.07778%207.47124%205.89986%207.7175%205.77684C7.96377%205.65483%208.21989%205.59383%208.48389%205.59383C8.88087%205.59383%209.17639%205.7016%209.3734%205.91714C9.56943%206.13268%209.68271%206.42345%209.71424%206.78946C9.74576%207.15547%209.72015%207.55401%209.63839%207.98509C9.55663%208.41617%209.43645%208.84724%209.27687%209.27934L13.5127%208.80149C13.9638%207.52656%2014.1017%206.42447%2013.9264%205.49725C13.751%204.56901%2013.2664%203.85122%2012.4724%203.34491C12.239%203.19648%2011.9779%203.07041%2011.6893%202.96569L12.0026%201.50979L9.86397%200L7.3875%201.50979L7.11169%202.78878C6.65166%202.8874%206.21724%203.01957%205.8114%203.19038C4.85292%203.594%204.06684%204.15115%203.45117%204.86385C2.83452%205.57655%202.42571%206.40108%202.22378%207.33847C2.06616%208.06947%202.04942%208.70796%202.17551%209.25087C2.30061%209.7948%202.52028%2010.2828%202.8355%2010.7139C3.14974%2011.145%203.51816%2011.5344%203.93977%2011.881C4.36039%2012.2288%204.782%2012.5521%205.20164%2012.851C5.68334%2013.1702%206.13844%2013.5169%206.56497%2013.8921C6.99052%2014.2672%207.31954%2014.7125%207.55004%2015.228C7.78055%2015.7445%207.81502%2016.3769%207.65347%2017.1262C7.56482%2017.5389%207.43676%2017.8765%207.27028%2018.1388C7.10381%2018.4011%206.89596%2018.5983%206.64772%2018.7295C6.3985%2018.8606%206.12071%2018.9267%205.8114%2018.9267C5.21641%2018.9267%204.79776%2018.6034%204.62833%2018.1632C4.4589%2017.7229%204.47367%2017.2583%204.60075%2016.5639C4.72782%2015.8705%205.05092%2015.1395%205.37107%2014.3699H1.17665C1.17665%2014.3699%200.207341%2016.1115%200.0310135%2017.6762C-0.0655232%2018.5302%200.0635208%2019.2653%200.41519%2019.8844C0.76686%2020.5036%201.33032%2020.9814%202.10655%2021.319C2.39222%2021.443%202.7104%2021.5447%203.05813%2021.623L2.54589%2024H7.17473L7.7047%2021.5386C8.08493%2021.442%208.43857%2021.3231%208.76562%2021.1787C9.73985%2020.7476%2010.52%2020.1427%2011.1071%2019.3649C11.6932%2018.5871%2012.0873%2017.7291%2012.2892%2016.7917C12.4744%2015.9295%2012.5099%2015.1741%2012.3966%2014.5275L12.3976%2014.5255Z'%20fill='white'/%3e%3c/svg%3e";async function Oe(a){let e=a.replace(/-/g,"+").replace(/_/g,"/");for(;e.length%4;)e+="=";const t=atob(e),i=Uint8Array.from(t,o=>
12o.charCodeAt(0)),s=new Blob([i]).stream().pipeThrough(new DecompressionStream("gzip")),r=await new Response(s).text();return JSON.parse(r)}function F(a,e){return typeof e=="string"&&/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d+(?:Z|[+-]\d+)/.test(e)?new Date(e):e}function ee(a,e){return e}function q(a,e=!1,t=!1,i=","){const s=a/100;if(t){const o=Math.round(s).toLocaleString("en-US");return i!==","?o.replace(/,/g,i):o}else{const r=e?",":".",o=s.toFixed(2).split("."),n=parseInt(o[0],10),l=o[1]??"00",c=n.toLocaleString("en-US");return i!==","?`${c.replace(/,/g,i)}${r}${l}`:e?`${c.replace(/,/g,".")}${r}${l}`:`${c}${r}${l}`}}function H(a,e,t,i){const s=e.replace("{{amount}}",q(a,!1,!1)).replace("{{amount_no_decimals}}",q(a,!1,!0)).replace("{{amount_with_comma_separator}}",q(a,!0,!1)).replace("{{amount_no_decimals_with_comma_separator}}",q(a,!0,!0)).replace("{{amount_with_space_separator}}",q(a,!1,!1," ")).replace("{{amount_no_decimals_with_space_separator}}",q(a,!1,!0," ")).replace("{{amount_with_apostrophe_separator}}",q(a,!1,!1,"'")).replace("{{amount_no_decimals_with_apostrophe_separator}}",q(a,!1,!0,"'")).replace("{{amount_with_period_and_space_separator}}",q(a,!1,!1,". ")).replace("{{amount_no_decimals_with_period_and_space_separator}}",q(a,!1,!0,". "));return i?`${s} ${t}`:s}function ae(a){return a.replace(/[^\d.,\s-]/g,"").trim()}function j(a){const e=new Map;for(const[t,i,s]of a.variants)e.set(t,{priceInCents:i,compareAtPriceInCents:s});return e}function Le(a,e,t,i){const{priceInCents:s,compareAtPriceInCents:r}=t,{moneyFormat:o,currency:n,currencyCodeEnabled:l}=i;if(a.getAttribute("data-sl-attribute-p")===e)a.innerHTML=H(s,o,n,l);else if(a.getAttribute("data-sl-attribute-cap")===e)r<=0||r<=s?a.remove():a.innerHTML=H(r,o,n,l);else if(a.getAttribute("data-sl-attribute-discount")===e&&!(r<=0||r<=s)){const d=Math.round((r-s)/r*100),u=ae(H(r-s,o,n,!1)),h=a.getAttribute("data-sl-format")||"percent";h==="percent"?a.textContent=`-${d}%`:h==="amount"?a.textContent=`-${u}`:h==="both"&&(a.textContent=`-${d}% (-${u})`)}}function $e(a){const e=[],t={id:"url-pattern",operator:"contains",value:"/"};for(const[i,s,r]of a.variants){e.push({id:`p-${i}`,cssSelector:`[data-sl-attribute-p="${i}"]`,urlPatterns:[t],actions:[{id:`p-action-${i}`,type:"innerHtml",scope:"price",value:H(s,a.moneyFormat,a.currency,a.currencyCodeEnabled)}]});const o=r<=0||r<=s;if(e.push({id:`cap-${i}`,cssSelector:`[data-sl-attribute-cap="${i}"]`,urlPatterns:[t],actions:[{id:`cap-action-${i}`,type:o?"remove":"innerHtml",scope:"compare-at-price",value:o?"":H(r,a.moneyFormat,a.currency,a.currencyCodeEnabled)}]}),!o&&r>s){const n=Math.round((r-s)/r*100),l=ae(H(r-s,a.moneyFormat,a.currency,!1));e.push({id:`d-${i}`,cssSelector:`[data-sl-attribute-discount="${i}"]`,urlPatterns:[t],actions:[{id:`d-action-${i}`,type:"js",scope:null,value:`var format = element.getAttribute('data-sl-format') || 'percent';                    if (format === 'percent') {                      element.textContent = '-${n}%';                    } else if (format === 'amount') {                      element.textContent = '-${l}';                    } else if (format === 'both') {                      element.textContent = '-${n}% (-${l})';                    }`}]})}}return e}const Me=a=>{let e=5381;for(let t=0;t<a.length;t++)e=(e*33^a.charCodeAt(t))>>>0;return e.toString(36)},qe=()=>Math.random().toString(36).slice(2,10)+Date.now().toString(36).slice(-4),He=a=>btoa(JSON.stringify(a)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),K=a=>a.replace(/#slr-[a-z0-9]+$/,""),tt="modulepreload",it=function(a){return"/"+a},st={},Ne=function(e,t,i){let s=Promise.resolve();function r(o){const n=new Event("vite:preloadError",{cancelable:!0});if(n.payload=o,window.dispatchEvent(n),!n.defaultPrevented)throw o}return s.then(o=>{for(const n of o||[])n.status==="rejected"&&r(n.reason);return e().catch(r)})};function le(a,e,t){const i=t?a.plans.filter(c=>!c.variantId||c.variantId===t):a.plans,s=[],r=[];for(const c of i)c.direction==="decrease"?(s.push(c.existingShopifyPlanId),r.push(c.createdShopifyPlanId)):(s.push(c.createdShopifyPlanId),r.push(c.existingShopifyPlanId));const o=e?s:r,n=e?r:s;if(t)for(const c of a.plans)for(const d of[c.existingShopifyPlanId,c.createdShopifyPlanId])d&&!o.includes(d)&&!n.includes(d)&&n.push(d);const l={};for(let c=0;c<n.length;c++){const d=n[c],u=o[c];d&&u&&(l[d]=u)}return{showPlanIds:o,hidePlanIds:n,swapMap:l}}function ce(a,e,t){const i=e?a.plans.find(r=>r.variantId===e):void 0;if(i)return i.direction;if(t){const r=a.plans.find(o=>o.productId===t);if(r)return r.direction}return a.plans.find(r=>!r.variantId)?.direction??null}function J(a,e){const t=e?a.plans.filter(r=>!r.productId||r.productId===e):a.plans,i={};for(const r of t)i[r.existingShopifyPlanId]=r.existingDiscountAmount,i[r.createdShopifyPlanId]=r.existingDiscountAmount;
12const s=Math.max(...Object.values(i),0);return{discountMap:i,maxDiscount:s}}function W(a){const e=document.querySelector('form[action*="/cart/add"] input[name="product-id"]')?.value;if(e)return e;if(a){for(const r of Array.from(document.querySelectorAll("[data-sl-attribute-p]"))){const o=r.getAttribute("data-sl-attribute-p");if(!o)continue;const n=a.variants.find(l=>l[0]===o);if(n?.[3])return n[3]}const s=document.querySelector('form[action*="/cart/add"] input[name="id"]')?.value;if(s){const r=a.variants.find(o=>o[0]===s);if(r?.[3])return r[3]}}const t=window,i=t.ShopifyAnalytics?.meta?.product?.id??t.meta?.product?.id;return i!=null?String(i):null}function D(a,e){return a.widget.selectors[e]??[]}function N(a,e){return a.replace(/[\d.]+%/,`${e}%`)}function $(a,e){const t=document.createTreeWalker(a,NodeFilter.SHOW_TEXT);let i=t.nextNode();for(;i;){if(i.nodeValue!==null){const s=e(i.nodeValue);if(s!==i.nodeValue){i.nodeValue=s;return}}i=t.nextNode()}}function de(a,e){return a===null?!1:a==="decrease"?!e:e}async function Ue(a){if(a.subscriptionSwapDone)return;const e=a.getActiveAssignment();if(!e)return;const t=a.getHypothesis(e.hypothesisId);if(!t?.subscriptionData)return;a.subscriptionSwapDone=!0;const i=t.subscriptionData,s=t.isControl,r=[...new Set(i.plans.map(d=>d.direction))].join(",");a.log(`[SUB-SWAP] ${s?"A":"B"} side, directions=${r}`);const o=i.plans.some(d=>d.variantId);let n=!1,l=!1;function c(){if(!l){l=!0;try{const d=o?document.querySelector("select[name='id'], input[name='id']")?.value:void 0,{showPlanIds:u,hidePlanIds:h,swapMap:p}=le(i,s,d);a.swapMap=p;const b=D(i,"widgetParent"),E=D(i,"subscriptionPlans"),S=D(i,"subscriptionInput");if(!b.length||!E.length||!S.length)return;const C=document.querySelector(b[0].selector);if(!C?.shadowRoot)return;const _=C.shadowRoot.querySelector(E[0].selector);if(!_?.shadowRoot)return;const T=S[0].selector;let m=null;if(i.widget.widgetType==="buttons"||i.widget.widgetType==="radio"){const y=Array.from(_.shadowRoot.querySelectorAll(T));if(!y.length)return;for(const v of y){const g=v.closest("label");g&&(u.includes(v.value)?g.style.display="":h.includes(v.value)&&(g.style.display="none"))}const w=y.some(v=>u.includes(v.value)&&v.checked),I=y.some(v=>h.includes(v.value)&&v.checked);if((w||I)&&(n=!1),!w&&!n){n=!0;for(const v of y)if(u.includes(v.value)){v.closest("label")?.click(),v.dispatchEvent(new Event("change",{bubbles:!0}));break}}const f=y.find(v=>v.checked);m=f&&u.includes(f.value)?f.value:u[0]??null}else if(i.widget.widgetType==="dropdown"){const y=_.shadowRoot.querySelector("select");if(!y)return;for(const w of Array.from(y.options))h.includes(w.value)&&(w.style.display="none",w.disabled=!0);if(h.includes(y.value)){const w=Array.from(y.options).find(I=>u.includes(I.value));w&&(y.value=w.value,y.dispatchEvent(new Event("change",{bubbles:!0})))}m=u.includes(y.value)?y.value:u[0]??null}if(m){const y=Array.from(document.querySelectorAll('input[name="selling_plan"]'));for(const w of y)w.value!==m&&(w.value=m)}}finally{l=!1}}}if(a.subscriptionHideWrongPlans=c,a.swapMap=le(i,s).swapMap,c(),o){const d=document.querySelector("select[name='id'], input[name='id']");d&&d.addEventListener("change",c)}}function B(a){const e=D(a,"widgetParent");return e.length?document.querySelector(e[0].selector)?.shadowRoot??null:null}function Y(a,e){const t=D(a,"subscriptionPlans");return t.length?e.querySelector(t[0].selector)?.shadowRoot??null:null}function Z(a,e){const t=new URLSearchParams(window.location.search).get("variant");if(t)return t;{const i=document.querySelector('form[action*="/cart/add"] input[name="id"]')?.value;if(i)return i}return a.size>0?[...a.keys()][0]:void 0}function G(a,e){return H(a,e.moneyFormat,e.currency,e.currencyCodeEnabled)}function Fe({originalFetch:a,swapMap:e,slptValue:t,getSelectedPlanId:i,log:s}){if(window.fetch.__shoplift_intercepted)return s("[SUB-INTERCEPT] already installed — skipping"),()=>{};function r(n){if(i){const l=i();if(l)return e[l]??l}return e[n]??n}const o=function(n,l){if((typeof n=="string"?n:n instanceof URL?n.href:n.url).includes("/cart/add")&&l?.body)try{if(l.body instanceof FormData){const d=l.body.get("selling_plan");d?l.body.set("selling_plan",r(String(d))):(!d||d==="")&&t&&l.body.set("properties[_slpt]",t)}
12else if(typeof l.body=="string"){const d=JSON.parse(l.body);if(d.items)for(const u of d.items){const h=String(u.selling_plan??"");h?u.selling_plan=r(h):!u.selling_plan&&t&&(u.properties||(u.properties={}),u.properties._slpt=t)}else if(d.id){const u=String(d.selling_plan??"");u?d.selling_plan=r(u):!d.selling_plan&&t&&(d.properties||(d.properties={}),d.properties._slpt=t)}l.body=JSON.stringify(d)}}catch(d){s("[SUB-INTERCEPT] body parse failed; cart-add proceeds with un-swapped plan",d)}return a.call(window,n,l)};return o.__shoplift_intercepted=!0,window.fetch=o,function(){window.fetch===o&&(window.fetch=a)}}function Be({log:a}){if(window.fetch.__shoplift_intercepted)return a("[SUB-PREVIEW-BLOCK] already installed — skipping"),()=>{};const e=window.fetch,t=function(i,s){const r=typeof i=="string"?i:i instanceof URL?i.href:i.url;return r.includes("/cart/add")?(a("[SUB-PREVIEW-BLOCK] cart-add blocked in preview mode",{url:r}),Promise.resolve(new Response(JSON.stringify({id:0,properties:{},quantity:0,variant_id:0,key:"preview",title:"Preview — cart-add blocked",price:0,original_price:0,line_price:0,original_line_price:0,total_discount:0,discounts:[],preview:!0}),{status:200,headers:{"Content-Type":"application/json"}}))):e.call(window,i,s)};return t.__shoplift_intercepted=!0,window.fetch=t,function(){window.fetch===t&&(window.fetch=e)}}function pe({data:a,runUpdates:e,debounceMs:t=150}){let i=null;function s(){i&&clearTimeout(i),e(),i=setTimeout(e,t)}let r=null;const o=[],n={childList:!0,subtree:!0,characterData:!0,attributes:!0};function l(h){for(const p of o)p.disconnect();o.length=0;for(const p of Array.from(h.querySelectorAll("*")))if(p.shadowRoot){const b=new MutationObserver(s);b.observe(p.shadowRoot,n),o.push(b)}}function c(){const h=B(a);return h?(r&&r.disconnect(),l(h),r=new MutationObserver(p=>{p.some(b=>b.type==="childList"&&b.addedNodes.length>0)&&l(h),s()}),r.observe(h,n),!0):!1}const d=document.body||document.documentElement,u=new MutationObserver(()=>{c()&&s()});return u.observe(d,{childList:!0,subtree:!0}),c()&&s(),e(),function(){i&&(clearTimeout(i),i=null),u.disconnect(),r&&(r.disconnect(),r=null);for(const p of o)p.disconnect();o.length=0}}async function ze(a){if(a.subscriptionPriceDone)return;const e=a.getActiveAssignment(),t=e?a.getHypothesis(e.hypothesisId):void 0,i=t?.subscriptionData?null:a.findActiveSubscriptionTestControl(),s=t?.subscriptionData?t:i?.hypothesis;if(!s?.subscriptionData)return;const r=t?.subscriptionData?e.testId:i.testId;a.subscriptionPriceDone=!0;const o=s.subscriptionData,n=s.isControl,l=s.priceData,c=o.widget.widgetType;let d=W(l),u=J(o,d),h=u.discountMap,p=u.maxDiscount;function b(){const g=W(l);g!==d&&(d=g,u=J(o,d),h=u.discountMap,p=u.maxDiscount,a.log(`[SUB-PRICE] scope refreshed side=${n?"A":"B"}, currentProductId=${d??"n/a"}, maxDiscount=${p}`))}a.log(`[SUB-PRICE] side=${n?"A":"B"}, currentProductId=${d??"n/a"}, maxDiscount=${p}`),a.updatePriceTestHiddenInputs(r,n?"control":"variant",!1);function E(){if(!l)return null;const g=j(l),P=Z(g),A=ce(o,P,d);if(!de(A,n))return null;const k=P?g.get(P):void 0;return k?{formattedVariantPrice:G(k.priceInCents,l),formattedDiscounted:G(k.priceInCents*(1-p/100),l)}:null}Fe({originalFetch:a.fetch,swapMap:a.swapMap??{},slptValue:a.slptValue??void 0,log:a.log,getSelectedPlanId:()=>{const g=B(o);if(!g)return null;const P=Y(o,g);if(!P)return null;const A=D(o,"subscriptionInput"),k=A.length?A[0].selector:'input[name="rc_plan"]';return P.querySelector(`${k}:checked`)?.value??null}});function S(g){const P=D(o,"subscriptionDiscount");for(const A of P)if(A.selector.includes("badge")||A.selector.includes("__badge")){const k=g.querySelector(A.selector);k?.textContent&&!k.textContent.includes(`${p}%`)&&$(k,x=>N(x,p))}}function C(g){const P=E();if(!P)return;const A=D(o,"subscriptionCompareAt");for(const k of A){const x=g.querySelector(k.selector)||g.querySelector(`[part~="${k.selector}"]`);x?.textContent&&!x.textContent.includes(P.formattedVariantPrice)&&$(x,R=>/\d/.test(R)?P.formattedVariantPrice:R)}}function _(g,P){const A=D(o,"subscriptionCompareAt"),k=P===0?"none":"";for(const x of A){const R=g.querySelector(x.selector)||g.querySelector(`[part~="${x.selector}"]`);R&&(k==="none"?R.style.display!=="none"&&(R.style.display="none"):R.style.display==="none"&&(R.style.display=""))}}function T(g){const P=D(o,"subscriptionInput"),A=P.length?P[0].selector:'input[name="rc_plan"]',k=D(o,"subscriptionPlanDiscount"),x=k.length?k[0].selector:".rc-plans-button__discount";for(const R of Array.from(g.querySelectorAll("label"))){const O=R.querySelector(A),V=R.querySelector(x);
12if(O&&V){const L=h[O.value];if(L!==void 0){if(L===0)V.style.display!=="none"&&(V.style.display="none");else if(V.style.display==="none"&&(V.style.display=""),V.textContent){const Q=V.textContent.match(/[\d.]+%/)?.[0];Q&&Q!==`${L}%`&&$(V,et=>N(et,L))}}}}}function m(g){const P=g.querySelector("select");if(P)for(const A of Array.from(P.options)){const k=h[A.value];if(k!==void 0&&A.textContent){const x=A.textContent.match(/[\d.]+%/)?.[0];x&&x!==`${k}%`&&(A.textContent=N(A.textContent,k))}}}function y(g,P){const k=D(o,"subscriptionDiscount").filter(x=>x.selector.includes("benefit")||x.selector==="rc-benefits");for(const x of k){const R=g.querySelector(x.selector);if(R?.shadowRoot){for(const O of Array.from(R.shadowRoot.querySelectorAll("li")))if(O.textContent?.includes("Save")){const V=O;if(P===0)V.style.display!=="none"&&(V.style.display="none");else{V.style.display==="none"&&(V.style.display="");const L=O.textContent.match(/[\d.]+%/)?.[0];L&&L!==`${P}%`&&$(O,Q=>N(Q,P))}}}}}let w=!1;function I(){if(!w){w=!0;try{if(b(),d!==null&&Object.keys(h).length===0)return;const g=B(o);if(!g)return;S(g),l&&C(g);const P=Y(o,g);let A=p;if(P){const k=D(o,"subscriptionInput"),x=k.length?k[0].selector:'input[name="rc_plan"]',R=P.querySelector(`${x}:checked`);if(R){const O=h[R.value];O!==void 0&&(A=O)}c==="buttons"||c==="radio"?T(P):m(P)}_(g,A),y(g,A)}finally{w=!1}}}function f(){const g=E();if(!g)return;const P=B(o);if(!P)return;const A=D(o,"onetimeToggle"),k=A.length?A[0].selector:'input[value="onetime"]';if(!P.querySelector(k)?.checked)return;const R=D(o,"subscriptionPrice");for(const O of R){const V=P.querySelector(O.selector)||P.querySelector(`[part~="${O.selector}"]`);V?.textContent&&!V.textContent.includes(g.formattedDiscounted)&&$(V,L=>/\d/.test(L)?g.formattedDiscounted:L)}}function v(){a.subscriptionHideWrongPlans&&a.subscriptionHideWrongPlans(),I(),a.subscriptionUpdateOneTime&&a.subscriptionUpdateOneTime(),f()}pe({data:o,runUpdates:v})}async function We(a){if(a.subscriptionOneTimeDone)return;const e=a.getActiveAssignment(),t=e?a.getHypothesis(e.hypothesisId):void 0,i=!!(t?.subscriptionData&&t.priceData),s=i?null:a.findActiveSubscriptionTestControl(),r=i?t:s?.hypothesis;if(!r?.subscriptionData||!r.priceData)return;const o=i?e.testId:s.testId;a.subscriptionOneTimeDone=!0;const n=r.subscriptionData,l=r.priceData,c=j(l),d=r.isControl,u=d?"control":"variant";a.slptValue=`${o}:${u}:f`,a.updatePriceTestHiddenInputs(o,u,!1);function h(){const p=B(n);if(!p)return;const b=Z(c);if(!b)return;const E=W(l),S=ce(n,b,E);if(!de(S,d))return;const C=c.get(b);if(!C)return;const _=H(C.priceInCents,l.moneyFormat,l.currency,l.currencyCodeEnabled),T=D(n,"onetimePrice");if(!T.length)return;const m=D(n,"onetimeContainer"),y=m.length?m[0].selector:'[part~="rc-purchase-option__onetime"]',I=p.querySelector(y)??p;for(const f of T){let v=null;try{v=I.querySelector(f.selector)}catch{v=null}v??=I.querySelector(`[part~="${f.selector}"]`),v&&v.textContent&&!v.textContent.includes(_)&&$(v,g=>/\d/.test(g)?_:g)}}a.subscriptionUpdateOneTime=h,h()}async function Ge(a,e){const{subscriptionPreviewRender:t}=await Ne(async()=>{const{subscriptionPreviewRender:i}=await Promise.resolve().then(()=>Xe);return{subscriptionPreviewRender:i}},void 0);return t(a.subscriptionData,a.priceData,a.isControl,e)}function je(a,e){const t=a.widget.selectors.widgetParent??[],i=a.widget.selectors.subscriptionPlans??[],s=a.widget.selectors.subscriptionInput??[];if(!t.length||!i.length||!s.length){e("[SUB-GLOBAL-HIDE] Missing required selectors — skipping");return}const r=t[0].selector,o=i[0].selector,n=s[0].selector;let l=!1,c=null,d=!1;function u(){if(!d){d=!0;try{h()}finally{d=!1}}}function h(){const C=document.querySelector(r);if(!C?.shadowRoot)return;const _=C.shadowRoot.querySelector(o);if(!_?.shadowRoot)return;_.shadowRoot!==c&&(c=_.shadowRoot,l=!1);let T=0;if(a.widget.widgetType==="buttons"||a.widget.widgetType==="radio"){const m=Array.from(_.shadowRoot.querySelectorAll(n));for(const f of m)if(a.planIds.includes(f.value)){f.disabled||(f.disabled=!0);const v=f.closest("label");v&&v.style.display!=="none"&&(v.style.display="none",T++)}const y=m.filter(f=>!a.planIds.includes(f.value));if(!y.some(f=>f.checked)&&!l&&y.length>0){l=!0;const f=y[0];f.closest("label")?.click(),f.dispatchEvent(new Event("change",{bubbles:!0})),e(`[SUB-GLOBAL-HIDE] Preselected first visible plan input=${f.value}`)}const I=y.find(f=>f.checked)??y[0];
12if(I){const f=Array.from(document.querySelectorAll('input[name="selling_plan"]'));for(const v of f)v.value!==I.value&&(v.value=I.value,e(`[SUB-GLOBAL-HIDE] Mirrored plan id ${I.value} to form selling_plan input`))}}else if(a.widget.widgetType==="dropdown"){const m=_.shadowRoot.querySelector("select");if(!m)return;for(const I of Array.from(m.options))a.planIds.includes(I.value)&&(I.style.display!=="none"&&(I.style.display="none"),I.disabled||(I.disabled=!0),T++);const y=Array.from(m.options).filter(I=>!a.planIds.includes(I.value)),w=y.some(I=>I.value===m.value);y.length>0&&!w&&!l&&(l=!0,m.value=y[0].value,m.dispatchEvent(new Event("change",{bubbles:!0})),e(`[SUB-GLOBAL-HIDE] Preselected first visible option=${y[0].value}`))}T>0&&e(`[SUB-GLOBAL-HIDE] Hidden ${T} B-side plan buttons`)}const p={childList:!0,subtree:!0,characterData:!0};let b=null;function E(C){b?.disconnect(),b=new MutationObserver(()=>u()),b.observe(C,p)}function S(){const C=document.querySelector(r);if(!C?.shadowRoot)return!1;u(),new MutationObserver(()=>{u();const m=C.shadowRoot.querySelector(o);m?.shadowRoot&&E(m.shadowRoot)}).observe(C.shadowRoot,p);const T=C.shadowRoot.querySelector(o);return T?.shadowRoot&&E(T.shadowRoot),!0}if(!S()){e("[SUB-GLOBAL-HIDE] Widget not in DOM yet — waiting via MutationObserver");const C=new MutationObserver(()=>{S()&&C.disconnect()});C.observe(document.body??document.documentElement,{childList:!0,subtree:!0})}}const ue="Limited preview",Ke="Add-to-cart and checkout prices won't reflect this test until it launches — test selling plans are not created in your subscription app until after a test is launched.",Je=5e3;function Ye(){const a=document.createElement("div");a.id="shoplift-preview-subscription-warning";const e=document.createElement("span");e.id="shoplift-preview-subscription-warning__icon",e.setAttribute("aria-hidden","true"),e.textContent="!";const t=document.createElement("span");t.id="shoplift-preview-subscription-warning__label",t.textContent=ue;const i=document.createElement("div");i.id="shoplift-preview-subscription-warning__tooltip",i.setAttribute("role","tooltip"),i.textContent=Ke,a.appendChild(e),a.appendChild(t),a.appendChild(i),a.setAttribute("tabindex","0"),a.setAttribute("aria-describedby",i.id),a.setAttribute("aria-label",ue);let s=null;function r(){s!==null&&(clearTimeout(s),s=null)}function o(){i.classList.add("shoplift-preview-subscription-warning__tooltip--visible")}function n(){i.classList.remove("shoplift-preview-subscription-warning__tooltip--visible")}function l(){o(),r(),s=setTimeout(()=>{n(),s=null},Je)}function c(){r(),o()}function d(){s===null&&n()}a.addEventListener("mouseenter",c),a.addEventListener("mouseleave",d),a.addEventListener("focus",c),a.addEventListener("blur",d);function u(p){try{const b=p.target;if(!(b instanceof Element))return;(b.closest('form[action*="/cart/add"] button[type="submit"], form[action*="/cart/add"] input[type="submit"]')!==null||b.closest('[name="add"], button[name="add"], [data-add-to-cart], button[data-add-to-cart]')!==null)&&l()}catch{}}document.addEventListener("click",u,!0);function h(){r(),document.removeEventListener("click",u,!0),a.removeEventListener("mouseenter",c),a.removeEventListener("mouseleave",d),a.removeEventListener("focus",c),a.removeEventListener("blur",d),a.remove()}return{root:a,tooltip:i,cleanup:h}}let he=!1;class Ze{DATA_SL_ATTRIBUTE_P="data-sl-attribute-p";DATA_SL_TEST_ID="data-sl-test-id";VIEWPORT_TRACK_THRESHOLD=.5;temporarySessionKey="Shoplift_Session";essentialSessionKey="Shoplift_Essential";analyticsSessionKey="Shoplift_Analytics";priceSelectorsSessionKey="Shoplift_PriceSelectors_v2";shop;host;eventHost;disableReferrerOverride;legacySessionKey;cssHideClass;testConfigs;inactiveTestConfigs;hiddenSubscriptionPlans;testsFilteredByAudience;sendPageView;shopliftDebug;gaConfig;telemetryEnabled;getCountryTimeout;geoViaShopify;resolvedRegion=null;state;subscriptionPreviewWarningCleanup=null;shopifyAnalyticsId;cookie=document.cookie;isSyncing=!1;isSyncingGA=!1;fetch;localStorageSet;localStorageGet;sessionStorageSet=window.sessionStorage.setItem.bind(window.sessionStorage);sessionStorageGet=window.sessionStorage.getItem.bind(window.sessionStorage);
12urlParams=new URLSearchParams(window.location.search);device;logHistory;activeViewportObservers=new Map;clientIdRetryCount=0;constructor(e,t,i,s,r,o,n,l,c,d,u,h,p,b=!1){this.shop=e,this.host=t,this.eventHost=i,this.disableReferrerOverride=l,this.logHistory=[],this.legacySessionKey=`SHOPLIFT_SESSION_${this.shop}`,this.cssHideClass=s?"shoplift-hide":"",this.testConfigs=u.map(S=>({...S,startAt:new Date(S.startAt),statusHistory:S.statusHistory.map(C=>({...C,createdAt:new Date(C.createdAt)}))})),this.inactiveTestConfigs=h,this.hiddenSubscriptionPlans=p,this.sendPageView=!!r,this.shopliftDebug=o===!0,this.telemetryEnabled=c===!0,this.geoViaShopify=b===!0,this.gaConfig=n!=={"sendEvents":false,"mode":"gtag"}?n:{sendEvents:!1},this.fetch=window.fetch.bind(window),this.localStorageSet=window.localStorage.setItem.bind(window.localStorage),this.localStorageGet=window.localStorage.getItem.bind(window.localStorage);const E=this.getDeviceType();this.device=E!=="tablet"?E:"mobile",this.state=this.loadState(),this.shopifyAnalyticsId=this.getShopifyAnalyticsId(),this.testsFilteredByAudience=u.filter(S=>
12S.status=="active"),this.getCountryTimeout=d===1000?1e3:d,window.__slReadCookie=S=>{const C=this.getCookie(S);if(C===null)return null;try{return decodeURIComponent(C)}catch{return C}},this.log("State Loaded",JSON.stringify(this.state))}deriveCategoryFromExistingTests(){if(!this.state.temporary.testCategory&&this.state.essential.visitorTests.length>0){const e=this.state.essential.visitorTests.some(t=>{if(!t.hypothesisId)return!1;const i=this.getHypothesis(t.hypothesisId);return i&&["theme","basicScript","price"].includes(i.type)});this.state.temporary.testCategory=e?"global":"conditional",this.persistTemporaryState(),this.log("Derived test category from existing visitorTests: %s",this.state.temporary.testCategory)}}async init(){try{if(this.log("Shoplift script initializing"),window.Shopify&&window.Shopify.designMode){this.log("Skipping script for design mode");return}if(window.location.href.includes("slScreenshot=true")){this.log("Skipping script for screenshot");return}if(window.location.hostname.endsWith(".edgemesh.com")){this.log("Skipping script for preview");return}if(window.location.href.includes("isShopliftMerchant")){const o=this.urlParams.get("isShopliftMerchant")==="true";this.log("Setting merchant session to %s",o),this.state.temporary.isMerchant=o,this.persistTemporaryState()}if(this.state.temporary.isMerchant){this.log("Setting up preview for merchant"),typeof window.shoplift!="object"&&this.setShopliftStub(),this.state.temporary.previewConfig||this.hidePage(),await this.initPreview(),document.querySelector("#sl-preview-bar-hide")?.remove();return}if(this.state.temporary.previewConfig=void 0,we(navigator.userAgent))return;const e=Date.now(),t=!this.state.temporary.lastSeen||e-this.state.temporary.lastSeen>1800*1e3;(!this.state.temporary.entryPage||t)&&(this.state.temporary.entryPage=K(window.location.href)),this.state.temporary.lastSeen=e,this.persistTemporaryState(),window.__slEntryPage=this.state.temporary.entryPage??"";const i=this.state.essential.visitorTests.filter(o=>o.hypothesisId&&+o.createdAt>Date.now()-6e4);if(i.length===0)this.sendDiagnosticTelemetry("page-landed",null);else for(const o of i)this.sendDiagnosticTelemetry("page-landed",o.testId,{hypothesisId:o.hypothesisId,isControl:o.assignedTo==="control",testType:o.testType??"unknown"});if(navigator.userAgent.includes("Chrome/118")){this.log("Random: %o",[Math.random(),Math.random(),Math.random()]);const o=await this.makeRequest({url:`${this.eventHost}/api/v0/events/ip`,method:"get"}).then(n=>n?.json());this.log(`IP: ${o}`),this.makeRequest({url:`${this.eventHost}/api/v0/logs`,method:"post",data:JSON.stringify(this.debugState(),ee)}).catch()}if(this.shopifyAnalyticsId=this.getShopifyAnalyticsId(),this.monitorConsentChange(),this.checkForThemePreview())return;if(!this.disableReferrerOverride&&this.state.temporary.originalReferrer!=null){this.log(`Overriding referrer from '${document.referrer}' to '${this.state.temporary.originalReferrer}'`);const o=this.state.temporary.originalReferrer;delete this.state.temporary.originalReferrer,this.persistTemporaryState(),Object.defineProperty(document,"referrer",{get:()=>o,enumerable:!0,configurable:!0})}if(await this.refreshVisitor(this.shopifyAnalyticsId),await this.handleVisitorTest()){this.log("Redirecting for visitor test");return}this.setShoplift(),this.showPage(),this.ensureCartAttributesForExistingPriceTests(!1);const r=this.state.essential.visitorTests.some(o=>(o.hypothesisId?this.getHypothesis(o.hypothesisId):void 0)?.subscriptionData!=null)||Object.values(this.state.temporary.testReservations??{}).some(o=>this.getHypothesis(o.hypothesisId)?.subscriptionData!=null);this.hiddenSubscriptionPlans&&!r&&(this.log(`[SUB-GLOBAL] Visitor not in subscription test — hiding ${this.hiddenSubscriptionPlans.planIds.length} B-side plans`),je(this.hiddenSubscriptionPlans,o=>this.log(o))),await this.subscriptionSwap(),await this.subscriptionOneTimePrice(),await this.subscriptionPriceChange(),await this.finalize(),console.log("SHOPLIFT SCRIPT INITIALIZED!")}catch(e){if(e instanceof ie)return;throw e}finally{typeof window.shoplift!="object"&&this.setShopliftStub()}}getVariantColor(e){switch(e){case"a":return{text:"#141414",bg:"#E2E2E2"};case"b":return{text:"rgba(255, 255, 255, 1)",bg:"rgba(37, 99, 235, 1)"}}}getDefaultVariantTitle(e){return e.title?e.title:e.type==="price"?e.isControl?"Original prices":"Variant prices":e.isControl?"Original":"Untitled variant "+e.label.toUpperCase()}
12async initPreview(){const e=this.urlParams.get("previewConfig");if(e){this.state.temporary.previewConfig=void 0,this.log("Setting up the preview"),this.log("Found preview config, writing to temporary state");const t=await Oe(e);if(this.state.temporary.previewConfig=t,this.state.temporary.previewConfig.testTypeCategory===M.Price){this.hidePage(!0);const s=this.state.temporary.previewConfig;let r=`${this.host}/api/dom-selectors/${s.storeId}/${s.testId}/${s.isDraft||!1}`;s.shopifyProductId&&(r+=`?productId=${s.shopifyProductId}`);const o=await this.makeJsonRequest({method:"get",url:r}).catch(n=>(this.log("Error getting domSelectors",n),null));if(s.variants.forEach(n=>n.domSelectors=o[n.id]?.domSelectors),s.isDraft){const n=`${this.host}/api/dom-selectors/${s.storeId}/${s.testId}/subscription-preview`,l=await this.makeJsonRequest({method:"get",url:n}).catch(c=>(this.log("No subscription preview data for draft (test may not have a subscription widget)",c),null));l?.subscriptionData&&s.variants.forEach(c=>{c.subscriptionData=l.subscriptionData,c.priceData=l.priceData})}}this.persistTemporaryState();const i=new URL(window.location.toString());i.searchParams.delete("previewConfig"),this.queueRedirect(i)}else if(this.state.temporary.previewConfig){this.showPage();const t=this.state.temporary.previewConfig;if(t.testTypeCategory===M.Template&&this.handleTemplatePreview(t)&&this.initPreviewControls(t),t.testTypeCategory===M.UrlRedirect&&this.handleUrlPreview(t)&&this.initPreviewControls(t),t.testTypeCategory===M.Script&&this.handleScriptPreview(t)&&this.initPreviewControls(t),t.testTypeCategory===M.Price){const i=await this.handlePricePreview(t);t.isDraft?await this.handleSubscriptionPricePreview(t):await this.handleSubscriptionLivePreview(t),i&&this.initPreviewControls(t)}}}initPreviewControls(e){document.addEventListener("DOMContentLoaded",()=>{const t=e.variants.find(b=>b.id===e.currentVariant),i=t?.label||"a",s=e.variants,r=document.createElement("div");r.id="shoplift-preview-control";const o=document.createElement("div"),n=document.createElement("img");n.src=Ve,n.height=24,n.width=14,o.style.padding="0 16px",o.style.lineHeight="100%",o.appendChild(n),r.appendChild(o);const l=document.createElement("div");l.id="shoplift-preview-variant-selector";const c=document.createElement("button");c.id="shoplift-preview-variant-menu-trigger";const d=document.createElement("div");d.className="menu-variant-label",d.style.backgroundColor=this.getVariantColor(i).bg,d.style.color=this.getVariantColor(i).text,d.innerText=i.toUpperCase(),c.appendChild(d);const u=document.createElement("span");if(u.id="shoplift-preview-variant-title",u.innerText=t?this.getDefaultVariantTitle(t):"Untitled variant "+i.toUpperCase(),c.appendChild(u),s.length>1){const b=document.createElement("img");b.src=De,b.width=12,b.height=12,b.style.height="12px",b.style.width="12px",c.appendChild(b);const E=document.createElement("div");E.className="preview-variant-menu";for(const S of e.variants.filter(C=>C.id!==e.currentVariant)){const C=document.createElement("div");C.className="preview-variant-menu--item";const _=document.createElement("div");_.className="menu-variant-label",_.style.backgroundColor=this.getVariantColor(S.label).bg,_.style.color=this.getVariantColor(S.label).text,_.style.flexShrink="0",_.innerText=S.label.toUpperCase(),C.appendChild(_);const T=document.createElement("span");T.innerText=this.getDefaultVariantTitle(S),C.appendChild(T),C.addEventListener("click",()=>{this.pickVariant(S.id)}),E.appendChild(C)}l.appendChild(E),c.addEventListener("click",()=>{E.className!=="preview-variant-menu preview-variant-menu__visible"?E.classList.add("preview-variant-menu__visible"):E.classList.remove("preview-variant-menu__visible")}),document.addEventListener("click",S=>{S.target instanceof Element&&!c.contains(S.target)&&E.className==="preview-variant-menu preview-variant-menu__visible"&&E.classList.remove("preview-variant-menu__visible")})}else c.style.pointerEvents="none",d.style.margin="0";if(l.appendChild(c),r.appendChild(l),e.hasSubscription){this.subscriptionPreviewWarningCleanup?.();const b=Ye();r.appendChild(b.root),this.subscriptionPreviewWarningCleanup=b.cleanup}const h=document.createElement("div"),p=document.createElement("button");p.id="shoplift-exit-preview-button",p.innerText="Exit",h.appendChild(p),p.addEventListener("click",()=>{this.exitPreview()}),r.appendChild(h),document.body.appendChild(r),requestAnimationFrame(()=>{r.classList.add("visible")})}),this.ensureCartAttributesForExistingPriceTests(!0)}pickVariant(e){if(this.state.temporary.previewConfig){const t=this.state.temporary.previewConfig,i=new URL(window.location.toString());if(t.testTypeCategory===M.UrlRedirect){const s=t.variants.find(r=>r.id===t.currentVariant)?.redirectUrl;if(i.pathname===s){const r=t.variants.find(o=>o.id===e)?.redirectUrl;r&&(i.pathname=r)}}if(t.testTypeCategory===M.Template){const s=t.variants.find(r=>r.id===t.currentVariant)?.pathName;if(s&&i.pathname===s){const r=t.variants.find(o=>o.id===e)?.pathName;r&&r!==s&&(i.pathname=r)}}t.currentVariant=e,this.persistTemporaryState(),this.queueRedirect(i)}}exitPreview(){const e=new URL(window.location.toString());if(this.state.temporary.previewConfig?.testTypeCategory===M.Template&&e.searchParams.delete("view"),this.state.temporary.previewConfig?.testTypeCategory===M.Script&&e.searchParams.delete("slVariant"),this.state.temporary.previewConfig?.testTypeCategory===M.UrlRedirect){const i=this.state.temporary.previewConfig.variants.filter(r=>!r.isControl&&r.redirectUrl!==null).map(r=>r.redirectUrl),s=this.state.temporary.previewConfig.variants.find(r=>r.label==="a")?.redirectUrl;i.includes(e.pathname)&&s&&(e.pathname=s)}this.state.temporary.isMerchant=!1,e.searchParams.delete("isShopliftMerchant"),this.state.temporary.previewConfig=void 0,this.persistTemporaryState(),this.subscriptionPreviewWarningCleanup?.(),this.subscriptionPreviewWarningCleanup=null,this.hidePage(),this.queueRedirect(e)}handleTemplatePreview(e){const t=e.currentVariant,i=e.variants.find(l=>l.id===t);if(!i)return!1;const s=e.variants.find(l=>l.isControl);if(!s)return!1;this.log("Setting up template preview for type",s.type);
12const r=new URL(window.location.toString()),o=r.searchParams.get("view"),n=i.type===s.type;return!n&&!i.isControl&&template.suffix===s.affix&&this.typeFromTemplate()===s.type&&i.pathName!==null?(this.log("Hit control template type, redirecting to the variant url"),this.hidePage(),r.pathname=i.pathName,this.queueRedirect(r),!0):(!i.isControl&&this.typeFromTemplate()==i.type&&template.suffix===s.affix&&n&&o!==(i.affix||"__DEFAULT__")&&(this.log("Template type and affix match control, updating the view param"),r.searchParams.delete("view"),this.log("Setting the new viewParam to",i.affix||"__DEFAULT__"),this.hidePage(),r.searchParams.set("view",i.affix||"__DEFAULT__"),this.queueRedirect(r)),o!==null&&o!==(i.affix||"__DEFAULT__")&&(r.searchParams.delete("view"),this.hidePage(),this.queueRedirect(r)),!0)}handleUrlPreview(e){const t=e.currentVariant,i=e.variants.find(o=>o.id===t),s=e.variants.find(o=>o.isControl)?.redirectUrl;if(!i)return!1;this.log("Setting up URL redirect preview");const r=new URL(window.location.toString());return r.pathname===s&&!i.isControl&&i.redirectUrl!==null&&(this.log("Url matches control, redirecting"),this.hidePage(),r.pathname=i.redirectUrl,this.queueRedirect(r)),!0}handleScriptPreview(e){const t=e.currentVariant,i=e.variants.find(o=>o.id===t);if(!i)return!1;this.log("Setting up script preview");const s=new URL(window.location.toString());return s.searchParams.get("slVariant")!==i.id&&(this.log("current id doesn't match the variant, redirecting"),s.searchParams.delete("slVariant"),this.log("Setting the new slVariantParam"),this.hidePage(),s.searchParams.set("slVariant",i.id),this.queueRedirect(s)),!0}async handlePricePreview(e){const t=e.currentVariant,i=e.variants.find(s=>s.id===t);return i?(this.log("Setting up price preview"),i.domSelectors&&i.domSelectors.length>0&&(U(document,{testId:e.testId,hypothesisId:i.id,selectors:i.domSelectors}),this.ensureCartAttributesForExistingPriceTests(!0)),!0):!1}async handleSubscriptionPricePreview(e){const t=e.variants.find(i=>i.id===e.currentVariant);t?.subscriptionData&&(this.log("Setting up subscription price preview"),await Ge({id:t.id,isControl:t.isControl,subscriptionData:t.subscriptionData,priceData:t.priceData},(i,...s)=>this.log(i,...s)))}async handleSubscriptionLivePreview(e){this.testConfigs.find(s=>s.id===e.testId)?.hypotheses.find(s=>s.id===e.currentVariant)?.subscriptionData&&(this.log("Setting up subscription live preview"),this.subscriptionSwapDone=!1,this.subscriptionOneTimeDone=!1,this.subscriptionPriceDone=!1,await this.subscriptionSwap(),await this.subscriptionOneTimePrice(),await this.subscriptionPriceChange())}async finalize(){const e=await this.getCartState();e!==null&&this.queueCartUpdate(e),this.pruneStateAndSave(),await this.syncAllEvents()}setShoplift(){this.log("Setting up public API");const t=this.urlParams.get("slVariant")==="true",i=t?null:this.urlParams.get("slVariant");window.shoplift={isHypothesisActive:async s=>{if(this.log("Script checking variant for hypothesis '%s'",s),t)return this.log("Forcing variant for hypothesis '%s'",s),!0;if(i!==null)return this.log("Forcing hypothesis '%s'",i),s===i;const r=this.testConfigs.find(n=>n.hypotheses.some(l=>l.id===s));if(!r)return this.log("No test found for hypothesis '%s'",s),!1;const o=this.state.essential.visitorTests.find(n=>n.testId===r.id);return o?(this.log("Active visitor test found",s),o.hypothesisId===s):(await this.manuallySplitVisitor(r),this.testConfigs.some(n=>n.hypotheses.some(l=>l.id===s&&this.state.essential.visitorTests.some(c=>c.hypothesisId===l.id))))},setAnalyticsConsent:async s=>{await this.onConsentChange(s,!0)},getVisitorData:()=>({visitor:this.state.analytics.visitor,visitorTests:this.state.essential.visitorTests.filter(s=>!s.isInvalid).map(s=>{const{shouldSendToGa:r,savedAt:o,...n}=s;return n})})}}setShopliftStub(){this.log("Setting up stubbed public API");const t=this.urlParams.get("slVariant")==="true",i=t?null:this.urlParams.get("slVariant");window.shoplift={isHypothesisActive:s=>Promise.resolve(t||s===i),setAnalyticsConsent:()=>Promise.resolve(),getVisitorData:()=>({visitor:null,visitorTests:[]})}}async manuallySplitVisitor(e){this.log("Starting manual split for test '%s'",e.id),await this.handleVisitorTest([e]);const t=this.getReservationForTest(e.id);t&&!t.isRealized&&t.entryCriteriaKey&&(this.log("Realizing manual API reservation for test '%s'",e.id),this.realizeReservationForCriteria(t.entryCriteriaKey)),this.saveState(),this.syncAllEvents()}async handleVisitorTest(e){await this.filterTestsByAudience(this.testConfigs,this.state.analytics.visitor??this.buildBaseVisitor(),this.state.essential.visitorTests),this.pruneStaleVisitorTests(),this.deriveC
12ategoryFromExistingTests(),this.clearStaleReservations();let t=e?e.filter(i=>this.testsFilteredByAudience.some(s=>s.id===i.id)):[...this.testsForUrl(this.testsFilteredByAudience),...this.domTestsForUrl(this.testsFilteredByAudience)];try{if(t.length===0)return this.log("No tests found"),!1;this.log("Checking for existing visitor test on page");const i=this.getCurrentVisitorHypothesis(t);if(i){this.log("Found current visitor test");const l=this.considerRedirect(i);return l&&(this.log("Redirecting for current visitor test"),this.redirect(i)),l}const s=this.getReservationForCurrentPage();if(s){this.log("Found matching reservation for current page: %s",s.testId);const l=this.getHypothesis(s.hypothesisId);if(l){l.type!=="price"&&this.realizeReservationForCriteria(s.entryCriteriaKey);const c=this.considerRedirect(l);return c&&this.redirect(l),c}}this.log("No active test relation for test page");const r=this.testsForUrl(this.inactiveTestConfigs.filter(l=>this.testIsPaused(l)&&l.hypotheses.some(c=>this.state.essential.visitorTests.some(d=>d.hypothesisId===c.id)))).map(l=>l.id);if(r.length>0)return this.log("Visitor has paused tests for test page, skipping test assignment: %o",r),!1;if(!this.state.temporary.testCategory){const l=this.testsFilteredByAudience.filter(d=>this.isGlobalEntryCriteria(this.getEntryCriteriaKey(d))),c=this.testsFilteredByAudience.filter(d=>!this.isGlobalEntryCriteria(this.getEntryCriteriaKey(d)));if(this.log("Category dice roll - global tests: %o, conditional tests: %o",l.map(d=>({id:d.id,title:d.title,criteria:this.getEntryCriteriaKey(d)})),c.map(d=>({id:d.id,title:d.title,criteria:this.getEntryCriteriaKey(d)}))),l.length>0&&c.length>0){const d=l.length,u=c.length,h=d+u,p=Math.random()*h;this.state.temporary.testCategory=p<d?"global":"conditional",this.log("Category dice roll: rolled %.2f of %d (global weight: %d, conditional weight: %d), selected '%s'",p,h,d,u,this.state.temporary.testCategory)}else l.length>0?(this.state.temporary.testCategory="global",this.log("Only global tests available, setting category to global")):(this.state.temporary.testCategory="conditional",this.log("Only conditional tests available, setting category to conditional"));this.persistTemporaryState()}const o=this.state.temporary.testCategory;if(this.log("Visitor test category: %s",o),o==="global"){const l=this.testsFilteredByAudience.filter(c=>!this.isGlobalEntryCriteria(this.getEntryCriteriaKey(c)));for(const c of l)this.markTestAsBlocked(c,"category:global");t=t.filter(c=>this.isGlobalEntryCriteria(this.getEntryCriteriaKey(c)))}else{const l=this.testsFilteredByAudience.filter(c=>this.isGlobalEntryCriteria(this.getEntryCriteriaKey(c)));for(const c of l)this.markTestAsBlocked(c,"category:conditional");t=t.filter(c=>!this.isGlobalEntryCriteria(this.getEntryCriteriaKey(c)))}if(t.length===0)return this.log("No tests remaining after category filter"),!1;this.createReservations(t);const n=this.getReservationForCurrentPage();if(n&&!n.isRealized){const l=this.getHypothesis(n.hypothesisId);if(l){l.type!=="price"&&this.realizeReservationForCriteria(n.entryCriteriaKey);const c=this.considerRedirect(l);return c&&(this.log("Redirecting for new test"),this.redirect(l)),c}}return!1}finally{this.includeInDomTests(),this.saveState()}}includeInDomTests(){this.applyControlForAudienceFilteredPriceTests();const e=this.getDomTestsForCurrentUrl(),t=this.getVisitorDomHypothesis(e);for(const i of e){this.log("Evaluating dom test '%s'",i.id);const s=i.hypotheses.some(p=>p.type==="price");if(this.state.essential.visitorTests.find(p=>p.testId===i.id&&p.isInvalid&&!p.hypothesisId)){if(this.log("Visitor is blocked from test '%s', applying control prices if price test",i.id),s){const p=i.hypotheses.find(b=>b.isControl);p?.priceData&&(this.applyPriceTestWithMapLookup(i.id,p,[p],()=>{this.log("Control prices applied for blocked visitor, no metrics tracked")}),this.updatePriceTestHiddenInputs(i.id,"control",!1))}continue}const o=this.getReservationForTest(i.id);let n=null,l=!1;const c=t.find(p=>i.hypotheses.some(b=>p.id===b.id));if(o)n=this.getHypothesis(o.hypothesisId)??null,this.log("Using reserved hypothesis '%s' for test '%s'",o.hypothesisId,i.id);else if(c)n=c,this.log("Using existing hypothesis assignment for test '%s'",i.id);else if(s){const p=this.visitorActiveTestTypeWithReservations();p?(l=!0,this.log("Visitor already in test type '%s', treating as non-test for price test '%s'",p,i.id)):n=this.pickHypothesis(i)}else n=this.pickHypothesis(i);if(l&&s){const p=i.hypotheses.find(b=>b.isControl);p?.priceData&&(this.log("Applying control prices for non-test visitor on price test '%s' (Map-based)",i.id),this.applyPriceTestWithMapLookup(i.id,p,[p],()=>{this.log("Control prices applied for non-test visitor, no metrics tracked")}
12),this.updatePriceTestHiddenInputs(i.id,"control",!1));continue}if(!n){this.log("Failed to pick hypothesis for test");continue}this.sendDiagnosticTelemetry("assignment",i.id,{hypothesisId:n.id,isControl:n.isControl,testType:n.type});const d=i.bayesianRevision??4,u=n.type==="price",h=d>=5;if(u&&h){if(this.log(`Price test with Map-based lookup (v${d}): ${i.id}`),!n.priceData){this.log("No price data for hypothesis '%s', skipping",n.id);continue}const p=n.isControl?"control":"variant";this.log(`Setting up Map-based price test for ${p} (test: ${i.id})`),this.applyPriceTestWithMapLookup(i.id,n,i.hypotheses,b=>{const E=this.getReservationForTest(b);E&&!E.isRealized&&E.entryCriteriaKey?this.realizeReservationForCriteria(E.entryCriteriaKey):this.queueAddVisitorToTest(b,n),this.saveState(),this.queuePageView(window.location.pathname),this.syncAllEvents()});continue}if(u&&!h){this.log(`Price test without viewport tracking (v${d}): ${i.id}`);const p=this.getDomSelectorsForHypothesis(n);if(p.length===0)continue;U(document,{testId:i.id,hypothesisId:n.id,selectors:p},b=>{this.queueAddVisitorToTest(b,n),this.saveState(),this.queuePageView(window.location.pathname),this.syncAllEvents()});continue}if(!n.domSelectors||n.domSelectors.length===0){this.log("No selectors found, skipping hypothesis");continue}U(document,{testId:i.id,hypothesisId:n.id,selectors:n.domSelectors},p=>{this.queueAddVisitorToTest(p,n),this.saveState(),this.queuePageView(window.location.pathname),this.syncAllEvents()})}}considerRedirect(e){if(this.log("Considering redirect for hypothesis '%s'",e.id),e.isControl)return this.log("Skipping redirect for control"),!1;if(e.type==="basicScript"||e.type==="manualScript")return this.log("Skipping redirect for script test"),!1;const t=this.state.essential.visitorTests.find(o=>o.hypothesisId===e.id),i=new URL(window.location.toString()),r=new URLSearchParams(window.location.search).get("view");if(e.type==="theme"){if(!(e.themeId===themeId)){if(this.log("Theme id '%s' is not hypothesis theme ID '%s'",e.themeId,themeId),this.isAppProxyPath())return this.log("On App Proxy path, skipping theme redirect to avoid infinite loop"),!1;if(t&&t.themeId!==e.themeId&&(t.themeId===themeId||!this.isThemePreview()))this.log("On old theme, redirecting and updating local visitor"),t.themeId=e.themeId;else if(this.isThemePreview())return this.log("On non-test theme, skipping redirect"),!1;return this.log("Hiding page to redirect for theme test"),this.hidePage(),!0}return!1}else if(e.type!=="dom"&&e.type!=="price"&&e.affix!==template.suffix&&e.affix!==r||e.redirectPath&&!i.pathname.endsWith(e.redirectPath))return this.log("Hiding page to redirect for template test"),this.hidePage(),!0;return this.log("Not redirecting"),!1}redirect(e){if(this.log("Redirecting to hypothesis '%s'",e.id),e.isControl)return;const t=new URL(window.location.toString());if(t.searchParams.delete("view"),e.redirectPath){const n=RegExp("^(/w{2}-w{2})/").exec(t.pathname);if(n&&n.length>1){const l=n[1];t.pathname=`${l}${e.redirectPath}`}else t.pathname=e.redirectPath}else e.type==="theme"?(t.searchParams.set("_ab","0"),t.searchParams.set("_fd","0"),t.searchParams.set("_sc","1"),t.searchParams.set("preview_theme_id",e.themeId.toString())):e.type!=="urlRedirect"&&t.searchParams.set("view",e.affix);const i=this.state.essential.visitorTests.find(n=>n.hypothesisId===e.id)?.testId,s=t.pathname+t.search,r=window.location.pathname+window.location.search,o=K(t.hash);if(i&&s!==r&&!o){const n=qe(),l=He({v:2,t:i,n,fh:Me(window.location.pathname+window.location.search)});t.hash=`slr-${n}`;const c=new Date(Date.now()+3e4).toUTCString();document.cookie=`shoplift_redirect=${l};domain=.${window.location.hostname};path=/;SameSite=Strict;expires=${c}`}s===r&&this.showPage(),this.queueRedirect(t)}async refreshVisitor(e){if(e===null||!this.state.essential.isFirstLoad||!this.testConfigs.some(i=>i.visitorOption!=="all"))return;this.log("Refreshing visitor"),this.hidePage();const t=await this.getVisitor(e);t&&t.id&&this.updateLocalVisitor(t)}buildBaseVisitor(){return{shopifyAnalyticsId:this.shopifyAnalyticsId,device:this.device,country:null,...this.state.essential.initialState}}getInitialState(){const e=this.getUTMValue("utm_source")??"",t=this.getUTMValue("utm_medium")??"",i=this.getUTMValue("utm_campaign")??"",s=this.getUTMValue("utm_content")??"",r=window.document.referrer,o=this.device;return{createdAt:new Date,utmSource:e,utmMedium:t,utmCampaign:i,utmContent:s,referrer:r,device:o}}checkForThemePreview(){return this.log("Checking for theme preview"),window.location.hostname.endsWith(".shopifypreview.com")?(this.log("on shopify preview domain"),this.clearThemeBar(!0,!1,this.state),document.querySelector("#sl-preview-bar-hide")?.remove(),!1):this.isThemePreview()?this.state.essential.visitorTests.some(e=>e.isThemeTest&&e.hypothesisId!=null&&this.getHypothesis(e.hypothesisId)&&e.themeId===themeId)?(this.log("On active theme test, remov
12ing theme bar"),this.clearThemeBar(!1,!0,this.state),!1):this.state.essential.visitorTests.some(e=>e.isThemeTest&&e.hypothesisId!=null&&!this.getHypothesis(e.hypothesisId)&&e.themeId===themeId)?(this.log("Visitor is on an inactive theme test, redirecting to main theme"),this.redirectToMainTheme(),!0):this.state.essential.isFirstLoad?(this.log("No visitor found on theme preview, redirecting to main theme"),this.redirectToMainTheme(),!0):this.inactiveTestConfigs.some(e=>e.hypotheses.some(t=>t.themeId===themeId))?(this.log("Current theme is an inactive theme test, redirecting to main theme"),this.redirectToMainTheme(),!0):this.testConfigs.some(e=>e.hypotheses.some(t=>t.themeId===themeId))?(this.log("Falling back to clearing theme bar"),this.clearThemeBar(!1,!0,this.state),!1):(this.log("No tests on current theme, skipping script"),this.clearThemeBar(!0,!1,this.state),document.querySelector("#sl-preview-bar-hide")?.remove(),!0):(this.log("Not on theme preview"),this.clearThemeBar(!0,!1,this.state),!1)}redirectToMainTheme(){this.hidePage();const e=new URL(window.location.toString());e.searchParams.set("preview_theme_id",""),this.queueRedirect(e)}testsForUrl(e){const t=new URL(window.location.href),i=this.typeFromTemplate();return e.filter(s=>s.hypotheses.some(r=>r.type!=="dom"&&r.type!=="price"&&(r.isControl&&r.type===i&&r.affix===template.suffix||r.type==="theme"||r.isControl&&r.type==="urlRedirect"&&r.redirectPath&&t.pathname.endsWith(r.redirectPath)||r.type==="basicScript"))&&(s.ignoreTestViewParameterEnforcement||!t.searchParams.has("view")||s.hypotheses.map(r=>r.affix).includes(t.searchParams.get("view")??"")))}domTestsForUrl(e){const t=new URL(window.location.href);return e.filter(i=>i.hypotheses.some(s=>s.type!=="dom"&&s.type!=="price"?!1:s.type==="price"&&s.priceData&&s.priceData.variants.length>0?!0:s.domSelectors&&s.domSelectors.some(r=>new RegExp(se(r)).test(K(t.toString())))))}async filterTestsByAudience(e,t,i){const s=[],r=e.some(n=>(n.requiresRegion||this.geoViaShopify&&n.requiresCountry)&&!i.some(l=>l.testId===n.id));this.resolvedRegion===null&&r&&(this.log("Hiding page to wait for Shopify region resolution"),this.hidePage(),await this.waitForResolvedRegion()),window.__slRegion=this.resolvedRegion??"";let o=t.country;this.geoViaShopify?o=this.resolvedRegion?this.resolvedRegion.slice(0,2):o:!o&&e.some(n=>n.requiresCountry&&!i.some(l=>l.testId===n.id))&&(this.log("Hiding page to check geoip"),this.hidePage(),o=await this.makeJsonRequest({method:"get",url:`${this.eventHost}/api/v0/visitors/get-country`,signal:AbortSignal.timeout(this.getCountryTimeout)}).catch(n=>(this.log("Error getting country",n),null)));for(const n of e){if(this.log("Checking audience for test '%s'",n.id),this.state.essential.visitorTests.some(d=>d.testId===n.id&&d.hypothesisId==null)){console.log(`Skipping blocked test '${n.id}'`);continue}const l=this.visitorCreatedDuringTestActive(n.statusHistory);(i.some(d=>d.testId===n.id&&(n.device==="all"||n.device===t.device&&n.device===this.device))||this.isTargetAudience(n,t,l,o))&&(this.log("Visitor is in audience for test '%s'",n.id),s.push(n))}this.testsFilteredByAudience=s}async waitForResolvedRegion(e=1500,t=50){const i=Date.now();for(;this.resolvedRegion===null&&Date.now()-i<e;)await new Promise(s=>window.setTimeout(s,t))}isTargetAudience(e,t,i,s){const r=this.getChannel(t);return(e.device==="all"||e.device===t.device&&e.device===this.device)&&(e.visitorOption==="all"||e.visitorOption==="new"&&i||e.visitorOption==="returning"&&!i)&&(e.targetAudiences.length===0||e.targetAudiences.reduce((o,n)=>o||n.reduce((l,c)=>l&&c(t,i,r,s),!0),!1))}visitorCreatedDuringTestActive(e){let t="";for(const i of e){if(this.state.analytics.visitor!==null&&this.state.analytics.visitor.createdAt<i.createdAt||this.state.essential.initialState.createdAt<i.createdAt)break;t=i.status}return t==="active"}getDomTestsForCurrentUrl(){return this.domTestsForUrl(this.testsFilteredByAudience)}getCurrentVisitorHypothesis(e){return e.flatMap(t=>t.hypotheses).find(t=>t.type!=="dom"&&t.type!=="price"&&this.state.essential.visitorTests.some(i=>i.hypothesisId===t.id))}getVisitorDomHypothesis(e){return e.flatMap(t=>t.hypotheses).filter(t=>(t.type==="dom"||t.type==="price")&&this.state.essential.visitorTests.some(i=>i.hypothesisId===t.id))}getHypothesis(e){return this.testConfigs.filter(t=>t.hypotheses.some(i=>i.id===e)).map(t=>t.hypotheses.find(i=>i.id===e))[0]}getActiveAssignment(){if(this.state.temporary.isMerchant&&this.state.temporary.previewConfig){const t=this.state.temporary.previewConfig;return t.currentVariant&&t.testId?{testId:t.testId,hypothesisId:t.currentVariant}:null}const e=this.state.essential.visitorTests.find(t=>t.hypothesisId);return e?.hypothesisId?{testId:e.testId,hypothesisId:e.hypothesisId}:null}findActiveSubscriptionTestControl(){for(const e of this.testConfigs){const t=e.hypotheses.find(i=>i.isControl);if(t?.subscriptionData)return{testId:e.id,hypothesis:t}}return null}getDomSelectorsForHypothesis(e){if(!e)return[];if(e.domSelectors&&e.domSelectors.length>0)return e.domSelectors;if(e.priceData){const t=`${this.priceSelectorsSessionKey}_${e.id}`;try{const s=sessionStorage.getItem(t);if(s){const r=JSON.parse(s);return e.domSelectors=r,this.log("Loaded %d price selectors from cache for hypothesis '%s'",r.length,e.id),r}}catch{}const i=$e(e.priceData);e.domSelectors=i;try{sessionStorage.setItem(t,JSON.stringify(i)),this.log("Generated and cached %d price selectors for hypothesis '%s'",i.length,e.id)}catch{this.log("Generated %d price selectors for hypothesis '%s' (cache unavailable)",i.length,e.id)}return i}return[]}hasThemeTest(e){return e.some(t=>t.hypotheses.some(i=>i.type==="theme"))}hasTestThatIsNotThemeTest(e){return e.some(t=>t.hypotheses.some(i=>i.type!=="theme"&&i.type!=="dom"&&i.type!=="price"))}hasThemeAndOtherTestTypes(e){return this.hasThemeTest(e)&&this.hasTestThatIsNotThemeTest(e)}testIsPaused(e){return e.status==="paused"||e.status==="incompatible"||e.status==="suspended"}visitorActiveTestType(){const e=this.state.essential.visitorTests.filter(t=>this.testConfigs.some(i=>i.hypotheses.some(s=>s.id==t.hypothesisId)));return e.length===0?null:e.some(t=>t.isThemeTest)?"theme":"templateOrUrlRedirect"}getReservationType(e){return e==="price"||this.isTemplateTestType(e)?"deferred":"immediate"}isTemplateTestType(e){return["product","collection","landing","index","cart","search","blog","article","collectionList"].includes(e)}getEntryCriteriaKey(e){const t=e.hypotheses.find(i=>i.isControl);if(!t)return`unknown:${e.id}`;switch(t.type){case"theme":return"global:theme";case"basicScript":return"global:autoApi";case"price":return"global:price";case"manualScript":return`conditional:manualApi:${e.id}`;case"urlRedirect":return`conditional:url:${t.redirectPath||"unknown"}`;default:return`conditional:template:${t.type}`}}isGlobalEntryCriteria(e){return e.startsWith("global:")}groupTestsByEntryCriteria(e){const t=new Map;for(const i of e){const s=this.getEntryCriteriaKey(i),r=t.get(s)||[];r.push(i),t.set(s,r)}return t}doesCurrentPageMatchEntryCriteria(e){if(this.isGlobalEntryCriteria(e))return!0;
12if(e==="conditional:manualApi")return!1;if(e.startsWith("conditional:url:")){const t=e.replace("conditional:url:","");return window.location.pathname.endsWith(t)}if(e.startsWith("conditional:template:")){const t=e.replace("conditional:template:","");return this.typeFromTemplate()===t}return!1}hasActiveReservation(){const e=this.getActiveReservations();return Object.values(e).some(t=>!t.isRealized)}getActiveReservation(){const e=this.getActiveReservations();return Object.values(e).find(t=>!t.isRealized)??null}clearStaleReservations(){const e=this.state.temporary.testReservations;if(!e)return;let t=!1;for(const[i,s]of Object.entries(e)){const r=this.testConfigs.find(n=>n.id===s.testId);if(!r){this.log("Test '%s' no longer in config, clearing reservation for criteria '%s'",s.testId,i),delete e[i],t=!0;continue}if(r.status!=="active"){this.log("Test '%s' status is '%s', clearing reservation for criteria '%s'",s.testId,r.status,i),delete e[i],t=!0;continue}this.testsFilteredByAudience.some(n=>n.id===s.testId)||(this.log("Visitor no longer passes audience for test '%s', clearing reservation for criteria '%s'",s.testId,i),delete e[i],t=!0)}t&&this.persistTemporaryState()}createReservations(e){if(this.state.temporary.testReservations||(this.state.temporary.testReservations={}),this.state.temporary.rolledEntryCriteria||(this.state.temporary.rolledEntryCriteria=[]),this.state.temporary.testCategory==="global"){this.createSingleReservation(e,"global");return}const i=e.filter(n=>this.doesCurrentPageMatchEntryCriteria(this.getEntryCriteriaKey(n))),s=e.filter(n=>!this.doesCurrentPageMatchEntryCriteria(this.getEntryCriteriaKey(n)));this.log("Conditional tests split - matching current page: %d, not matching: %d",i.length,s.length),i.length>0&&this.log("Tests matching current page (same pool): %o",i.map(n=>({id:n.id,title:n.title,criteria:this.getEntryCriteriaKey(n)})));const r=`conditional:current-page:${this.typeFromTemplate()}`;if(i.length>0&&!this.state.temporary.rolledEntryCriteria.includes(r)){this.createSingleReservation(i,r);for(const n of i){const l=this.getEntryCriteriaKey(n);this.state.temporary.rolledEntryCriteria.includes(l)||this.state.temporary.rolledEntryCriteria.push(l)}}const o=this.groupTestsByEntryCriteria(s);for(const[n,l]of o){if(this.state.temporary.rolledEntryCriteria.includes(n)){this.log("Already rolled for criteria '%s', skipping",n);continue}if(l.some(S=>this.state.essential.visitorTests.some(C=>C.testId===S.id))){this.log("Visitor already has VT for criteria '%s', skipping",n),this.state.temporary.rolledEntryCriteria.push(n);continue}const d=[...l].sort((S,C)=>S.id.localeCompare(C.id));this.log("Test dice roll for criteria '%s' - available tests: %o",n,d.map(S=>({id:S.id,title:S.title})));const u=Math.floor(Math.random()*d.length),h=d[u];this.log("Test dice roll: picked index %d of %d, selected test '%s' (%s)",u+1,l.length,h.id,h.title);const p=this.pickHypothesis(h);if(!p){this.log("No hypothesis picked for test '%s'",h.id);continue}this.sendDiagnosticTelemetry("assignment",h.id,{hypothesisId:p.id,isControl:p.isControl,testType:p.type});const b=this.getReservationType(p.type),E={testId:h.id,hypothesisId:p.id,testType:p.type,reservationType:b,isThemeTest:p.type==="theme",themeId:p.themeId,createdAt:new Date,isRealized:!1,entryCriteriaKey:n};this.state.temporary.testReservations[n]=E,this.state.temporary.rolledEntryCriteria.push(n),this.log("Created %s reservation for test '%s' (criteria: %s)",b,h.id,n);for(const S of l)S.id!==h.id&&this.markTestAsBlocked(S,n)}this.persistTemporaryState()}createSingleReservation(e,t){if(this.state.temporary.rolledEntryCriteria.includes(t)){this.log("Already rolled for pool '%s', skipping",t);return}if(e.some(u=>this.state.essential.visitorTests.some(h=>h.testId===u.id&&!h.isInvalid))){this.log("Visitor already has VT for pool '%s', skipping",t),this.state.temporary.rolledEntryCriteria.push(t);return}if(e.length===0){this.log("No tests in pool '%s'",t);return}const s=[...e].sort((u,h)=>u.id.localeCompare(h.id));this.log("Test dice roll for pool '%s' - available tests: %o",t,s.map(u=>({id:u.id,title:u.title,criteria:this.getEntryCriteriaKey(u)})));const r=Math.floor(Math.random()*s.length),o=s[r];this.log("Test dice roll: picked index %d of %d, selected test '%s' (%s)",r,e.length,o.id,o.title);const n=this.pickHypothesis(o);if(!n){this.log("No hypothesis picked for test '%s'",o.id);return}this.sendDiagnosticTelemetry("assignment",o.id,{hypothesisId:n.id,isControl:n.isControl,testType:n.type});const l=this.getReservationType(n.type),c=this.getEntryCriteriaKey(o),d={testId:o.id,hypothesisId:n.id,testType:n.type,reservationType:l,isThemeTest:n.type==="theme",themeId:n.themeId,createdAt:new Date,isRealized:!1,entryCriteriaKey:c};this.state.temporary.testReservations[c]=d,this.state.temporary.rolledEntryCriteria.push(t),this.log("Created %s reservation for test '%s' from pool '%s' (criteria: %s)",l,o.id,t,c);for(const u of e)u.id!==o.id&&this.markTestAsBlocked(u,`pool:${t}`);this.persistTemporaryState()}markTestAsBlocked(e,t){this.state.essential.visitorTests.some(i=>i.testId===e.id)||(this.log("Blocking visitor from test '%s' (reason: %s)",e.id,t),this.state.essential.visitorTests.push({createdAt:new Date,testId:e.id,hypothesisId:null,isThemeTest:e.hypotheses.some(i=>
12i.type==="theme"),shouldSendToGa:!1,isSaved:!0,isInvalid:!0,themeId:void 0}))}realizeReservationForCriteria(e){const t=this.state.temporary.testReservations?.[e];if(!t)return this.log("No reservation found for criteria '%s'",e),!1;if(t.isRealized)return this.log("Reservation already realized for criteria '%s'",e),!1;if(this.state.essential.visitorTests.some(s=>s.testId===t.testId&&!s.isInvalid))return this.log("Visitor already assigned to test '%s'",t.testId),!1;const i=this.getHypothesis(t.hypothesisId);return i?(t.isRealized=!0,this.persistTemporaryState(),this.queueAddVisitorToTest(t.testId,i),this.saveState(),this.log("Realized reservation for test '%s' (criteria: %s)",t.testId,e),!0):(this.log("Hypothesis '%s' not found",t.hypothesisId),!1)}getActiveReservations(){return this.state.temporary.testReservations??{}}getReservationForCurrentPage(){const e=this.getActiveReservations();for(const[t,i]of Object.entries(e)){if(i.isRealized)continue;const s=this.testConfigs.find(r=>r.id===i.testId);if(!(!s||s.status!=="active")&&this.doesCurrentPageMatchEntryCriteria(t))return i}return null}getReservationForTest(e){const t=this.getActiveReservations();return Object.values(t).find(i=>i.testId===e)??null}getReservationTestType(){const e=this.getActiveReservations(),t=Object.values(e);if(t.length===0)return null;for(const i of t)if(i.isThemeTest)return"theme";for(const i of t)if(i.testType==="price")return"price";return t.some(i=>!i.isRealized)?"templateOrUrlRedirect":null}hasPriceTests(e){return e.some(t=>t.hypotheses.some(i=>i.type==="price"))}_priceTestProductIds=null;getPriceTestProductIds(){if(this._priceTestProductIds)return this._priceTestProductIds;const e=new Set;for(const t of this.testConfigs)for(const i of t.hypotheses)if(i.type==="price"){for(const s of i.domSelectors||[]){const r=s.cssSelector.match(/data-sl-attribute-(?:p|cap)="(\d+)"/);r?.[1]&&e.add(r[1])}if(i.priceData?.variants)for(const[s]of i.priceData.variants)e.add(s)}return this._priceTestProductIds=e,this.log("Built price test product ID cache with %d products",e.size),e}isProductInAnyPriceTest(e){return this.getPriceTestProductIds().has(e)}visitorActiveTestTypeWithReservations(){const e=this.getActiveReservations();for(const r of Object.values(e)){if(r.isThemeTest)return"theme";if(r.testType==="price")return"price"}if(Object.values(e).some(r=>!r.isRealized)){if(this.state.temporary.testCategory==="global")for(const o of Object.values(e)){if(o.testType==="theme")return"theme";if(o.testType==="price")return"price";if(o.testType==="basicScript")return"theme"}return"templateOrUrlRedirect"}const i=this.state.essential.visitorTests.filter(r=>!r.isInvalid&&this.testConfigs.some(o=>o.hypotheses.some(n=>n.id===r.hypothesisId)));return i.length===0?null:i.some(r=>this.getHypothesis(r.hypothesisId)?.type==="price")?"price":i.some(r=>r.isThemeTest)?"theme":"templateOrUrlRedirect"}applyControlForAudienceFilteredPriceTests(){const e=this.testConfigs.filter(s=>s.status==="active"&&s.hypotheses.some(r=>r.type==="price"));if(e.length===0)return;const t=this.testsFilteredByAudience.filter(s=>s.hypotheses.some(r=>r.type==="price")),i=e.filter(s=>!t.some(r=>r.id===s.id));if(i.length!==0){this.log("Found %d price tests filtered by audience, applying control selectors",i.length);for(const s of i){const r=s.hypotheses.find(c=>c.isControl),o=this.getDomSelectorsForHypothesis(r);if(o.length===0){this.log("No control selectors for audience-filtered price test '%s'",s.id);continue}const n=new URL(window.location.href);o.some(c=>{try{return new RegExp(se(c)).test(K(n.toString()))}catch{return!1}})&&(this.log("Applying control selectors for audience-filtered price test '%s'",s.id),U(document,{testId:s.id,hypothesisId:r.id,selectors:o},()=>{}),this.updatePriceTestHiddenInputs(s.id,"control",!1))}}}pickHypothesis(e){let t=Math.random();const i=e.hypotheses.reduce((r,o)=>r+o.visitorCount,0);return e.hypotheses.sort((r,o)=>r.isControl?o.isControl?0:-1:o.isControl?1:0).reduce((r,o)=>{if(r!==null)return r;const l=e.hypotheses.reduce((c,d)=>c&&d.visitorCount>20,!0)?o.visitorCount/i-o.trafficPercentage:0;return t<=o.trafficPercentage-l?o:(t-=o.trafficPercentage-l,null)},null)}typeFromTemplate(){switch(template.type){case"list-collections":return"collectionList";case"page":return"landing";case"article":case"blog":case"cart":case"collection":case"index":case"product":case"search":return template.type;default:return null}}queueRedirect(e){this.saveState(),this.disableReferrerOverride||(this.log(`Saving temporary referrer override '${document.referrer}'`),this.state.temporary.originalReferrer=document.referrer,this.persistTemporaryState()),window.setTimeout(()=>window.location.assign(e),0),window.setTimeout(()=>{this.syncAllEvents()},2e3)}scheduleRetrySync(){this.clientIdRetryCount>=5||(this.clientIdRetryCount++,window.setTimeout(()=>{this.syncAllEvents()},500))}async syncAllEvents(){const e=async()=>
12{if(this.isSyncing){window.setTimeout(()=>{(async()=>await e())()},500);return}try{if(this.isSyncing=!0,this.syncGAEvents(),this.shopifyAnalyticsId||(this.shopifyAnalyticsId=this.getShopifyAnalyticsId()),!this.shopifyAnalyticsId){this.scheduleRetrySync();return}await this.syncEvents()}finally{this.isSyncing=!1}};await e()}async syncEvents(){if(!this.state.essential.consentApproved||!this.shopifyAnalyticsId||this.state.analytics.queue.length===0)return;const e=this.state.analytics.queue.length,t=this.state.analytics.queue.splice(0,e);this.log("Syncing %s events",e);try{const i={shop:this.shop,visitorDetails:{shopifyAnalyticsId:this.shopifyAnalyticsId,device:this.state.analytics.visitor?.device??this.device,country:this.state.analytics.visitor?.country??null,...this.state.essential.initialState},events:this.state.essential.visitorTests.filter(r=>!r.isInvalid&&!r.isSaved&&r.hypothesisId!=null).map(r=>new be(r.testId,r.hypothesisId,r.createdAt)).concat(t)};await this.sendEvents(i);for(const r of this.state.essential.visitorTests.filter(o=>!o.isInvalid&&!o.isSaved&&o.hypothesisId!=null))this.sendDiagnosticTelemetry("event-delivered",r.testId,{hypothesisId:r.hypothesisId,isControl:r.assignedTo==="control",testType:r.testType??"unknown"});const s=await this.getVisitor(this.shopifyAnalyticsId);s!==null&&this.updateLocalVisitor(s);for(const r of this.state.essential.visitorTests.filter(o=>!o.isInvalid&&!o.isSaved))r.isSaved=!0,r.savedAt=Date.now()}catch{this.state.analytics.queue.splice(0,0,...t)}finally{this.saveState()}}syncGAEvents(){if(!this.gaConfig.sendEvents){if(he)return;he=!0,this.log("UseGtag is false — skipping GA Events");return}if(this.isSyncingGA){this.log("Already syncing GA - skipping GA events");return}const e=this.state.essential.visitorTests.filter(t=>t.shouldSendToGa);e.length!==0&&(this.isSyncingGA=!0,this.log("Syncing %s GA Events",e.length),Promise.allSettled(e.map(t=>this.sendGAEvent(t))).then(()=>this.log("All gtag events sent")).finally(()=>this.isSyncingGA=!1))}sendGAEvent(e){return new Promise(t=>{this.log("Sending GA Event for test %s, hypothesis %s",e.testId,e.hypothesisId);const i=()=>{this.log("GA acknowledged event for hypothesis %s",e.hypothesisId),e.shouldSendToGa=!1,this.persistEssentialState(),t()},s={exp_variant_string:`SL-${e.testId}-${e.hypothesisId}`};
12this.shopliftDebug&&Object.assign(s,{debug_mode:!0});function r(o,n,l){window.dataLayer=window.dataLayer||[],window.dataLayer.push(arguments)}this.gaConfig.mode==="gtag"?r("event","experience_impression",{...s,event_callback:i}):(window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"experience_impression",...s,eventCallback:i}))})}updateLocalVisitor(e){let t;({visitorTests:t,...this.state.analytics.visitor}=e),this.log("updateLocalVisitor - server returned %d tests: %o",t.length,t.map(s=>({testId:s.testId,hypothesisId:s.hypothesisId,isInvalid:s.isInvalid}))),this.log("updateLocalVisitor - local has %d tests: %o",this.state.essential.visitorTests.length,this.state.essential.visitorTests.map(s=>({testId:s.testId,hypothesisId:s.hypothesisId,isSaved:s.isSaved,isInvalid:s.isInvalid})));const i=300*1e3;for(const s of this.state.essential.visitorTests.filter(r=>r.isSaved&&(!r.savedAt||Date.now()-r.savedAt>i)&&!t.some(o=>o.testId===r.testId)))this.log("updateLocalVisitor - marking LOCAL test as INVALID (isSaved && not in server): testId=%s, hypothesisId=%s",s.testId,s.hypothesisId),s.isInvalid=!0;for(const s of t){const r=this.state.essential.visitorTests.findIndex(n=>n.testId===s.testId);if(!(r!==-1))this.log("updateLocalVisitor - ADDING server test (not found locally): testId=%s, hypothesisId=%s",s.testId,s.hypothesisId),this.state.essential.visitorTests.push(s);else{const n=this.state.essential.visitorTests.at(r);this.log("updateLocalVisitor - REPLACING local test with server test: testId=%s, local hypothesisId=%s -> server hypothesisId=%s, local isInvalid=%s -> false",s.testId,n?.hypothesisId,s.hypothesisId,n?.isInvalid),s.isInvalid=!1,s.shouldSendToGa=n?.shouldSe
12ndToGa??!1,s.testType=n?.testType,s.assignedTo=n?.assignedTo,s.testTitle=n?.testTitle,this.state.essential.visitorTests.splice(r,1,s)}}this.log("updateLocalVisitor - FINAL local tests: %o",this.state.essential.visitorTests.map(s=>({testId:s.testId,hypothesisId:s.hypothesisId,isSaved:s.isSaved,isInvalid:s.isInvalid}))),this.state.analytics.visitor.storedAt=new Date}async getVisitor(e){try{return await this.makeJsonRequest({method:"get",url:`${this.eventHost}/api/v0/visitors/by-key/${this.shop}/${e}`})}catch{return null}}async sendEvents(e){await this.makeRequest({method:"post",url:`${this.eventHost}/api/v0/events`,data:JSON.stringify(e)})}sendDiagnosticTelemetry(e,t,i){if(!this.telemetryEnabled||!navigator.sendBeacon)return;const s=this.state.essential.consentApproved,r=JSON.stringify({shop:this.shop,testId:t,checkpoint:e,device:this.device,...s?{visitorId:this.shopifyAnalyticsId??"unknown"}:{},clientTimestamp:Date.now(),consentApproved:s,hasConsentInteraction:this.state.essential.hasConsentInteraction,...i});navigator.sendBeacon(`${this.eventHost}/api/v0/telemetry`,new Blob([r],{type:"text/plain"}))}getUTMValue(e){const i=decodeURIComponent(window.location.search.substring(1)).split("&");for(let s=0;s<i.length;s++){const r=i[s].split("=");if(r[0]===e)return r[1]||null}return null}hidePage(e){this.log("Hiding page"),this.cssHideClass&&!window.document.documentElement.classList.contains(this.cssHideClass)&&(window.document.documentElement.classList.add(this.cssHideClass),e||setTimeout(this.removeAsyncHide(this.cssHideClass),2e3))}showPage(){this.cssHideClass&&this.removeAsyncHide(this.cssHideClass)()}getDeviceType(){function e(){let i=!1;return(function(s){(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(s)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(s.substr(0,4)))&&(i=!0)})(navigator.userAgent||navigator.vendor),i}function t(){let i=!1;return(function(s){(/android|ipad|playbook|silk/i.test(s)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|
12sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(s.substr(0,4)))&&(i=!0)})(navigator.userAgent||navigator.vendor),i}return e()?"mobile":t()?"tablet":"desktop"}removeAsyncHide(e){return()=>{e&&window.document.documentElement.classList.remove(e)}}async getCartState(){try{let e=await this.makeJsonRequest({method:"get",url:`${window.location.origin}/cart.js`});return e===null||(e.note===null&&(e=await this.makeJsonRequest({method:"post",url:`${window.location.origin}/cart/update.js`,data:JSON.stringify({note:""})})),e==null)?null:{token:e.token,total_price:e.total_price,total_discount:e.total_discount,currency:e.currency,items_subtotal_price:e.items_subtotal_price,items:e.items.map(t=>({quantity:t.quantity,variant_id:t.variant_id,key:t.key,price:t.price,final_line_price:t.final_line_price,sku:t.sku,product_id:t.product_id}))}}catch(e){return this.log("Error sending cart info",e),null}}ensureCartAttributesForExistingPriceTests(e){try{if(this.log("Checking visitor assignments for active price tests"),e&&this.state.temporary.previewConfig){const t=this.state.temporary.previewConfig;this.log("Using preview config for merchant:",t.testId);let i="variant";if(t.variants&&t.variants.length>0){const s=t.variants.find(r=>r.id===t.currentVariant);s&&s.isControl&&(i="control")}this.log("Merchant preview - updating hidden inputs:",t.testId,i),this.updatePriceTestHiddenInputs(t.testId,i,!0);return}for(const t of this.state.essential.visitorTests){const i=this.testConfigs.find(o=>o.id===t.testId);if(!i){this.log("Test config not found:",t.testId);continue}const s=i.hypotheses.find(o=>o.id===t.hypothesisId);if(!s||s.type!=="price")continue;const r=s.isControl?"control":"variant";this.log("Updating hidden inputs for price test:",t.testId,r),this.updatePriceTestHiddenInputs(t.testId,r,e)}}catch(t){this.log("Error ensuring cart attributes for existing price tests:",t)}}subscriptionSwapDone=!1;subscriptionHideWrongPlans=null;subscriptionPriceDone=!1;subscriptionUpdateOneTime=null;subscriptionOneTimeDone=!1;swapMap=null;slptValue=null;async subscriptionSwap(){await Ue(this)}async subscriptionPriceChange(){await ze(this)}async subscriptionOneTimePrice(){await We(this)}updatePriceTestHiddenInputs(e,t,i){try{this.cleanupPriceTestObservers();const s=`${e}:${t}:${i?"t":"f"}`,r=T=>{const m=T.getAttribute("data-sl-pid");if(!m)return!0;if(i&&this.state.temporary.previewConfig){const w=this.state.temporary.previewConfig,I=t==="control"?"a":"b",f=w.variants.find(v=>v.label===I);if(!f)return!1;for(const v of f.domSelectors||[]){const g=v.cssSelector.match(/data-sl-attribute-(?:p|cap)="(\d+)"/);if(g){const P=g[1];if(this.log(`Extracted ID from selector: ${P}, comparing to: ${m}`),P===m)return this.log("Product ID match found in preview config:",m,"variant:",f.label),!0}else this.log(`Could not extract ID from selector: ${v.cssSelector}`)}return this.log("No product ID match in preview config for:",m,"variant:",I),!1}const y=this.testConfigs.find(w=>w.id===e);if(!y)return this.log("Test config not found for testId:",e),!1;for(const w of y.hypotheses||[]){for(const I of w.domSelectors||[]){const f=I.cssSelector.match(/data-sl-attribute-(?:p|cap)="(\d+)"/);if(f&&f[1]===m)return this.log("Product ID match found in domSelectors:",m,"for test:",e),!0}if(w.priceData?.variants){for(const I of w.priceData.variants)if(I[0]===m)return this.log("Product ID match found in priceData:",m,"for test:",e),!0}}return this.log("No product ID match for:",m,"in test:",e),!1},o=new Set;let n=!1,l=null;const c=(T,m)=>{if(document.querySelectorAll("[data-sl-attribute-p]").forEach(w=>{if(w instanceof Element&&w.nodeType===Node.ELEMENT_NODE&&w.isConnected&&document.contains(w))try{T.observe(w,{childList:!0,subtree:!0,characterData:!0,characterDataOldValue:!0,attributes:!1})}catch(I){this.log(`Failed to observe element (${m}):`,I)}}),document.body&&document.body.isConnected)try{T.observe(document.body,{childList:!0,subtree:!0,characterData:!0,characterDataOldValue:!0,attributes:!1})}catch(w){this.log(`Failed to observe document.body (${m}):`,w)}},d=(T,m,y,w)=>{const I=T.filter(f=>{const v=f.cssSelector.match(/data-sl-attribute-(?:p|cap)="(\d+)"/);return v&&v[1]===w});this.log(`Applying ${y} DOM selectors, total: ${T.length}, filtered: ${I.length}`),I.length>0&&U(document,{testId:e,hypothesisId:m,selectors:I})},u=(T,m)=>{this.log(`Applying DOM selector changes for product ID: ${T}`),m.disconnect(),n=!0;try{if(i&&this.state.temporary.previewConfig){const y=t==="control"?"a":"b",w=this.state.temporary.previewConfig.variants.find(I=>I.label===y);if(!w?.domSelectors){this.log(`No DOM selectors found for preview variant: ${y}`);return}d(w.domSelectors,w.id,"preview config",T)}else{const y=this.testConfigs.find(I=>I.id===e);if(!y){this.log(`No test config found for testId: ${e}`);return}const w=y.hypotheses.find(I=>t==="control"?I.isControl:!I.isControl);if(!w?.domSelectors){this.log(`No DOM selectors found for assignment: ${t}`);return}d(w.domSelectors,w.id,"live config",T)}}finally{l!==null&&clearTimeout(l),l=window.setTimeout(()=>{n=!1,l=null,c(m,"reconnection"),this.log("Re-established innerHTML observer after DOM changes")}
12,50)}},h=new MutationObserver(T=>{if(!n)for(const m of T){if(m.type!=="childList"&&m.type!=="characterData")continue;let y=m.target;m.type==="characterData"&&(y=m.target.parentElement||m.target.parentNode);let w=y,I=w.getAttribute("data-sl-attribute-p");for(;!I&&w.parentElement;)w=w.parentElement,I=w.getAttribute("data-sl-attribute-p");if(!I)continue;const f=w.innerHTML||w.textContent||"";let v="";m.type==="characterData"&&m.oldValue!==null&&(v=m.oldValue),this.log(`innerHTML changed on element with data-sl-attribute-p="${I}"`),v&&this.log(`Previous content: "${v}"`),this.log(`Current content: "${f}"`),u(I,h)}});c(h,"initial setup"),o.add(h);const p=new MutationObserver(T=>{T.forEach(m=>{m.addedNodes.forEach(y=>{if(y.nodeType===Node.ELEMENT_NODE){const w=y;E(w);const I=w.matches('input[name="properties[_slpt]"]')?[w]:w.querySelectorAll('input[name="properties[_slpt]"]');I.length>0&&this.log(`MutationObserver found ${I.length} new hidden input(s)`),I.forEach(f=>{const v=f.getAttribute("data-sl-pid");if(this.log(`MutationObserver checking new input with data-sl-pid="${v}"`),r(f))f.value!==s&&(f.value=s,this.log("Updated newly added hidden input:",s)),S(f);else{const g=f.getAttribute("data-sl-pid");g&&this.isProductInAnyPriceTest(g)?this.log("Preserving hidden input for product ID '%s' - belongs to a different price test",g):(f.remove(),this.log("Removed newly added non-matching hidden input for product ID:",g))}})}})})});o.add(p);const b=new MutationObserver(T=>{T.forEach(m=>{if(m.type==="attributes"&&m.attributeName==="data-sl-pid"){const y=m.target;if(this.log("AttributeObserver detected data-sl-pid attribute change on:",y.tagName),y.matches('input[name="properties[_slpt]"]')){const w=y,I=m.oldValue,f=w.getAttribute("data-sl-pid");this.log(`data-sl-pid changed from "${I}" to "${f}" - triggering payment placement updates`),r(w)?(w.value!==s&&(w.value=s,this.log("Updated hidden input after data-sl-pid change:",s)),f&&u(f,h),this.log("Re-running payment placement updates after variant change"),E(document.body)):f&&this.isProductInAnyPriceTest(f)?this.log("Preserving hidden input for product ID '%s' - belongs to a different price test",f):(w.remove(),this.log("Removed non-matching hidden input after data-sl-pid change:",f))}}})});o.add(b);const E=T=>{T.tagName==="SHOPIFY-PAYMENT-TERMS"&&(this.log("MutationObserver found new shopify-payment-terms element"),this.updateShopifyPaymentTerms(e,t));const m=T.querySelectorAll("shopify-payment-terms");m.length>0&&(this.log(`MutationObserver found ${m.length} shopify-payment-terms in added node`),this.updateShopifyPaymentTerms(e,t)),T.tagName==="AFTERPAY-PLACEMENT"&&(this.log("MutationObserver found new afterpay-placement element"),this.updateAfterpayPlacements(e,t,"afterpay"));const y=T.querySelectorAll("afterpay-placement");y.length>0&&(this.log(`MutationObserver found ${y.length} afterpay-placement in added node`),this.updateAfterpayPlacements(e,t,"afterpay")),T.tagName==="SQUARE-PLACEMENT"&&(this.log("MutationObserver found new square-placement element"),this.updateAfterpayPlacements(e,t,"square"));const w=T.querySelectorAll("square-placement");w.length>0&&(this.log(`MutationObserver found ${w.length} square-placement in added node`),this.updateAfterpayPlacements(e,t,"square")),T.tagName==="KLARNA-PLACEMENT"&&(this.log("MutationObserver found new klarna-placement element"),this.updateKlarnaPlacements(e,t));const I=T.querySelectorAll("klarna-placement");I.length>0&&(this.log(`MutationObserver found ${I.length} klarna-placement in added node`),this.updateKlarnaPlacements(e,t))},S=T=>{b.observe(T,{attributes:!0,attributeFilter:["data-sl-pid"],attributeOldValue:!0,subtree:!1});const m=T.getAttribute("data-sl-pid");this.log(`Started AttributeObserver on specific input with data-sl-pid="${m}"`)},C=()=>{const T=document.querySelectorAll('input[name="properties[_slpt]"]');this.log(`Found ${T.length} existing hidden inputs to check`),T.forEach(m=>{const y=m.getAttribute("data-sl-pid");this.log(`Checking existing input with data-sl-pid="${y}"`),r(m)?(m.value=s,this.log("Updated existing hidden input:",s),y&&(this.log("Applying initial DOM selector changes for existing product"),u(y,h)),S(m)):y&&this.isProductInAnyPriceTest(y)?this.log("Preserving hidden input for product ID '%s' - belongs to a different price test",
12y):(m.remove(),this.log("Removed non-matching hidden input for product ID:",y))})},_=()=>{document.body?(p.observe(document.body,{childList:!0,subtree:!0}),this.log("Started MutationObserver on document.body"),C(),E(document.body)):document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{document.body&&(p.observe(document.body,{childList:!0,subtree:!0}),this.log("Started MutationObserver after DOMContentLoaded"),C(),E(document.body))}):(this.log("Set timeout on observer"),setTimeout(_,10))};_(),window.__shopliftPriceTestObservers=o,window.__shopliftPriceTestValue=s,this.log("Set up DOM observer for price test hidden inputs")}catch(s){this.log("Error updating price test hidden inputs:",s)}}updateKlarnaPlacements(e,t){this.updatePlacementElements(e,t,"klarna-placement",(i,s)=>{i.setAttribute("data-purchase-amount",s.toString())})}cleanupPriceTestObservers(){const e=window.__shopliftPriceTestObservers;e&&(e.forEach(t=>{t.disconnect()}),e.clear(),this.log("Cleaned up existing price test observers")),delete window.__shopliftPriceTestObservers,delete window.__shopliftPriceTestValue}updateAfterpayPlacements(e,t,i="afterpay"){const s=i==="square"?"square-placement":"afterpay-placement";if(document.querySelectorAll(s).length===0){this.log(`No ${s} elements found on page - early return`);return}this.updatePlacementElements(e,t,s,(o,n)=>{if(i==="afterpay"){const l=(n/100).toFixed(2);o.setAttribute("data-amount",l)}else o.setAttribute("data-amount",n.toString())}),this.log("updateAfterpayPlacements completed")}updatePlacementElements(e,t,i,s){const r=document.querySelectorAll(i);if(r.length===0){this.log(`No ${i} elements found - early return`);return}let o;if(this.state.temporary.isMerchant&&this.state.temporary.previewConfig){const l=t==="control"?"a":"b",c=this.state.temporary.previewConfig.variants.find(d=>d.label===l);if(!c?.domSelectors){this.log(`No variant found for label ${l} in preview config for ${i}`);return}o=c.domSelectors,this.log(`Using preview config for ${i} in merchant mode, variant: ${l}`)}else{const l=this.testConfigs.find(d=>d.id===e);if(!l){this.log(`No testConfig found for id: ${e} - early return`);return}
12const c=l.hypotheses.find(d=>t==="control"?d.isControl:!d.isControl);if(!c?.domSelectors){this.log(`No hypothesis or domSelectors found for assignment: ${t} - early return`);return}o=c.domSelectors}const n=new RegExp(`${this.DATA_SL_ATTRIBUTE_P}=["'](\\d+)["']`);r.forEach(l=>{let c=null;const d=l.parentElement;if(d&&(c=d.querySelector('input[name="properties[_slpt]"]')),c||(c=l.querySelector('input[name="properties[_slpt]"]')),!c){this.log(`No hidden input found for ${i} element`);return}const u=c.getAttribute("data-sl-pid");if(!u){this.log("Hidden input has no data-sl-pid attribute - skipping");return}const h=o.find(S=>{const C=S.cssSelector.match(n);return C&&C[1]===u});if(!h){this.log(`No matching selector found for productId: ${u} - skipping element`);return}const p=h.actions.find(S=>S.scope==="price");if(!p?.value){this.log("No price action or value found - skipping element");return}const b=parseFloat(p.value.replace(/[^0-9.]/g,""));if(Number.isNaN(b)){this.log(`Invalid price "${p.value}" for product ${u} - skipping`);return}const E=Math.round(b*100);s(l,E)}),this.log(`updatePlacementElements completed for ${i}`)}updateShopifyPaymentTerms(e,t){const i=document.querySelectorAll("shopify-payment-terms");if(i.length===0)return;this.log("Store using shopify payments");let s;if(this.state.temporary.isMerchant&&this.state.temporary.previewConfig){const o=t==="control"?"a":"b",n=this.state.temporary.previewConfig.variants.find(l=>l.label===o);if(!n||!n.domSelectors){this.log(`No variant found for label ${o} in preview config`);return}s=n.domSelectors,this.log(`Using preview config for shopify-payment-terms in merchant mode, variant: ${o}`)}else{const o=this.testConfigs.find(l=>l.id===e);if(!o)return;const n=o.hypotheses.find(l=>t==="control"?l.isControl===!0:l.isControl===!1);if(!n||!n.domSelectors)return;s=n.domSelectors}const r=new RegExp(`${this.DATA_SL_ATTRIBUTE_P}=["'](\\d+)["']`);i.forEach(o=>{const n=o.getAttribute("variant-id");if(!n)return;const l=s.find(c=>{const d=c.cssSelector.match(r);return d&&d[1]===n});if(l){const c=l.actions.find(d=>d.scope==="price");if(c&&c.value){const d=o.getAttribute("shopify-meta");if(d)try{const u=JSON.parse(d);if(u.variants&&Array.isArray(u.variants)){const h=u.variants.find(p=>p.id?.toString()===n);if(h){h.full_price=c.value;const p=parseFloat(c.value.replace(/[^0-9.]/g,""));if(h.number_of_payment_terms&&h.number_of_payment_terms>1){const b=p/h.number_of_payment_terms;h.price_per_term=`$${b.toFixed(2)}`}o.setAttribute("shopify-meta",JSON.stringify(u))}}}catch(u){this.log("Error parsing/updating shoplift-meta:",u)}}}})}async makeJsonRequest(e){const t=await this.makeRequest(e);return t===null?null:JSON.parse(await t.text(),F)}async makeRequest(e){const{url:t,method:i,headers:s,data:r,signal:o}=e,n=new Headers;if(s)for(const c in s)n.append(c,s[c]);(!s||!s.Accept)&&n.append("Accept","application/json"),(!s||!s["Content-Type"])&&n.append("Content-Type","application/json"),(this.eventHost.includes("ngrok.io")||this.eventHost.includes("ngrok-free.app"))&&n.append("ngrok-skip-browser-warning","1234");const l=await this.fetch(t,{method:i,headers:n,body:r,signal:o});if(!l.ok){if(l.status===204)return null;if(l.status===422){const c=await l.json();if(typeof c<"u"&&c.isBot)throw new ie}throw new Error(`Error sending shoplift request ${l.status}`)}return l}queueAddVisitorToTest(e,t){if(this.state.essential.visitorTests.some(s=>s.testId===e))return;const i=this.testConfigs.find(s=>s.id===e);if(this.state.essential.visitorTests.push({createdAt:new Date,testId:e,hypothesisId:t.id,isThemeTest:t.type==="theme",themeId:t.themeId,isSaved:!1,isInvalid:!1,shouldSendToGa:!0,testType:t.type,assignedTo:t.isControl?"control":"variant",testTitle:i?.title}),t.type==="price"){const s=t.isControl?"control":"variant";this.log("Price test assignment detected, updating cart attributes:",e,s),this.updatePriceTestHiddenInputs(e,s,!1)}}queueCartUpdate(e){this.queueEvent(new Ce(e))}queuePageView(e){this.queueEvent(new Se(e))}queueEvent(e){!this.state.essential.consentApproved&&this.state.essential.hasConsentInteraction||this.state.analytics.queue.length>10||this.state.analytics.queue.push(e)}legacyGetLocalStorageVisitor(){const e=this.localStorageGet(this.legacySessionKey);if(e)try{return JSON.parse(e,F)}catch{}return null}pruneStaleVisitorTests(){this.state.essential.visitorTests=this.state.essential.visitorTests.filter(e=>this.testConfigs.some(t=>t.id==e.testId)||this.inactiveTestConfigs.filter(t=>this.testIsPaused(t)).some(t=>t.id===e.testId))}pruneStateAndSave(){this.pruneStaleVisitorTests(),this.saveState()}saveState(){this.persistEssentialState(),this.persistAnalyticsState()}loadState(){const e=this.loadAnalyticsState(),t={analytics:e,essential:this.loadEssentialState(e),temporary:this.loadTemporaryState()},i=this.legacyGetLocalStorageVisitor(),s=this.legacyGetCookieVisitor(),r=[i,s].filter(o=>o!==null).sort((o,n)=>+n.storedAt-+o.storedAt)[0];return t.analytics.visitor===null&&r&&({visitorTests:t.essential.visitorTests,...t.analytics.visitor}=r,t.essential.isFirstLoad=!1,t.essential.initialState={createdAt:r.createdAt,referrer:r.referrer,utmCampaign:r.utmCampaign,utmContent:r.utmContent,utmMedium:r.utmMedium,utmSource:r.utmSource,device:r.device},this.deleteCookie("SHOPLIFT"),this.deleteLocalStorage(this.legacySessionKey)),!t.essential.consentApproved&&t.essential.hasConsentInteraction&&this.deleteLocalStorage(this.analyticsSessionKey),t}loadEssentialState(e){const t=this.loadLocalStorage(this.essentialSessionKey),i=this.loadCookie(this.essentialSessionKey),s=this.getInitialState();e.visitor?.device&&(s.device=e.visitor.device);const r={timestamp:new Date,consentApproved:!1,hasConsentInteraction:!1,debugMode:!1,initialState:s,visitorTests:[],isFirstLoad:!0},o=[t,i].filter(n=>n!==null).sort((n,l)=>+l.timestamp-+n.timestamp)[0]??r;return o.initialState||(e.visitor!==null?o.initialState=e.visitor:(o.initialState=s,o.initialState.createdAt=o.timestamp)),o}loadAnalyticsState(){const e=this.loadLocalStorage(this.analyticsSessionKey),t=this.loadCookie(this.analyticsSessionKey),i={timestamp:new Date,visitor:null,queue:[]},s=[e,t].filter(r=>r!==null).sort((r,o)=>+o.timestamp-+r.timestamp)[0]??i;return s.queue.length===0&&e&&e.queue.length>1&&(s.queue=e.queue),s}loadTemporaryState(){const e=this.sessionStorageGet(this.temporarySessionKey),t=e?JSON.parse(e,F):null,i=this.loadCookie(this.temporarySessionKey);return t??i??{isMerchant:!1,timestamp:new Date}}persistEssentialState(){this.log("Persisting essential state"),this.state.essential.isFirstLoad=!1,this.state.essential.timestamp=new Date,this.persistLocalStorageState(this.essentialSessionKey,this.state.essential),this.persist
12CookieState(this.essentialSessionKey,this.state.essential)}persistAnalyticsState(){this.log("Persisting analytics state"),this.state.essential.consentApproved&&(this.state.analytics.timestamp=new Date,this.persistLocalStorageState(this.analyticsSessionKey,this.state.analytics),this.persistCookieState(this.analyticsSessionKey,{...this.state.analytics,queue:[]}))}persistTemporaryState(){this.log("Setting temporary session state"),this.state.temporary.timestamp=new Date,this.sessionStorageSet(this.temporarySessionKey,JSON.stringify(this.state.temporary)),this.persistCookieState(this.temporarySessionKey,this.state.temporary,!0)}loadLocalStorage(e){const t=this.localStorageGet(e);if(t===null)return null;try{return JSON.parse(t,F)}catch{return null}}loadCookie(e){const t=this.getCookie(e);if(t===null)return null;try{return JSON.parse(t,F)}catch{return null}}persistLocalStorageState(e,t){this.localStorageSet(e,JSON.stringify(t))}persistCookieState(e,t,i=!1){const s=JSON.stringify(t),r=i?"":`expires=${new Date(new Date().getTime()+864e5*365).toUTCString()};`;document.cookie=`${e}=${s};domain=.${window.location.hostname};path=/;SameSite=Strict;${r}`}deleteCookie(e){const t=new Date(0).toUTCString();document.cookie=`${e}=;domain=.${window.location.hostname};path=/;expires=${t};`}deleteLocalStorage(e){window.localStorage.removeItem(e)}getChannel(e){return[{"name":"cross-network","test":(v) => new RegExp(".*cross-network.*", "i").test(v.utmCampaign)},{"name":"direct","test":(v) => v.utmSource === "" && v.utmMedium === ""},{"name":"paid-shopping","test":(v) => (new RegExp("^(?:Google|IGShopping|aax-us-east\.amazon-adsystem\.com|aax\.amazon-adsystem\.com|alibaba|alibaba\.com|amazon|amazon\.co\.uk|amazon\.com|apps\.shopify\.com|checkout\.shopify\.com|checkout\.stripe\.com|cr\.shopping\.naver\.com|cr2\.shopping\.naver\.com|ebay|ebay\.co\.uk|ebay\.com|ebay\.com\.au|ebay\.de|etsy|etsy\.com|m\.alibaba\.com|m\.shopping\.naver\.com|mercadolibre|mercadolibre\.com|mercadolibre\.com\.ar|mercadolibre\.com\.mx|message\.alibaba\.com|msearch\.shopping\.naver\.com|nl\.shopping\.net|no\.shopping\.net|offer\.alibaba\.com|one\.walmart\.com|order\.shopping\.yahoo\.co\.jp|partners\.shopify\.com|s3\.amazonaws\.com|se\.shopping\.net|shop\.app|shopify|shopify\.com|shopping\.naver\.com|shopping\.yahoo\.co\.jp|shopping\.yahoo\.com|shopzilla|shopzilla\.com|simplycodes\.com|store\.shopping\.yahoo\.co\.jp|stripe|stripe\.com|uk\.shopping\.net|walmart|walmart\.com)$", "i").test(v.utmSource) || new RegExp("^(.*(([^a-df-z]|^)shop|shopping).*)$", "i").test(v.utmCampaign)) && new RegExp("^(.*cp.*|ppc|retargeting|paid.*)$", "i").test(v.utmMedium)},{"name":"paid-search","test":(v) => new RegExp("^(?:360\.cn|alice|aol|ar\.search\.yahoo\.com|ask|at\.search\.yahoo\.com|au\.search\.yahoo\.com|auone|avg|babylon|baidu|biglobe|biglobe\.co\.jp|biglobe\.ne\.jp|bing|br\.search\.yahoo\.com|ca\.search\.yahoo\.com|centrum\.cz|ch\.search\.yahoo\.com|cl\.search\.yahoo\.com|cn\.bing\.com|cnn|co\.search\.yahoo\.com|comcast|conduit|daum|daum\.net|de\.search\.yahoo\.com|dk\.search\.yahoo\.com|dogpile|dogpile\.com|duckduckgo|ecosia\.org|email\.seznam\.cz|eniro|es\.search\.yahoo\.com|espanol\.search\.yahoo\.com|exalead\.com|excite\.com|fi\.search\.yahoo\.com|firmy\.cz|fr\.search\.yahoo\.com|globo|go\.mail\.ru|google|google-play|hk\.search\.yahoo\.com|id\.search\.yahoo\.com|in\.search\.yahoo\.com|incredimail|it\.search\.yahoo\.com|kvasir|lens\.google\.com|lite\.qwant\.com|lycos|m\.baidu\.com|m\.naver\.com|m\.search\.naver\.com|m\.sogou\.com|mail\.rambler\.ru|mail\.yandex\.ru|malaysia\.search\.yahoo\.com|msn|msn\.com|mx\.search\.yahoo\.com|najdi|naver|naver\.com|news\.google\.com|nl\.search\.yahoo\.com|no\.search\.yahoo\.com|ntp\.msn\.com|nz\.search\.yahoo\.com|onet|onet\.pl|pe\.search\.yahoo\.com|ph\.search\.yahoo\.com|pl\.search\.yahoo\.com|play\.google\.com|qwant|qwant\.com|rakuten|rakuten\.co\.jp|rambler|rambler\.ru|se\.search\.yahoo\.com|search-results|search\.aol\.co\.uk|search\.aol\.com|search\.google\.com|search\.smt\.docomo\.ne\.jp|search\.ukr\.net|secureurl\.ukr\.net|seznam|seznam\.cz|sg\.search\.yahoo\.com|so\.com|sogou|sogou\.com|sp-web\.search\.auone\.jp|startsiden|startsiden\.no|suche\.aol\.de|terra|th\.search\.yahoo\.com|tr\.search\.yahoo\.com|tut\.by|tw\.search\.yahoo\.com|uk\.search\.yahoo\.com|ukr|us\.search\.yahoo\.com|virgilio|vn\.search\.yahoo\.com|wap\.sogou\.com|webmaster\.yandex\.ru|websearch\.rakuten\.co\.jp|yahoo|yahoo\.co\.jp|yahoo\.com|yandex|yandex\.by|yandex\.com|yandex\.com\.tr|yandex\.fr|yandex\.kz|yandex\.ru|yandex\.ua|y
12andex\.uz|zen\.yandex\.ru)$", "i").test(v.utmSource) && new RegExp("^(.*cp.*|ppc|retargeting|paid.*)$", "i").test(v.utmMedium)},{"name":"paid-social","test":(v) => new RegExp("^(?:43things|43things\.com|51\.com|5ch\.net|Hatena|ImageShack|academia\.edu|activerain|activerain\.com|activeworlds|activeworlds\.com|addthis|addthis\.com|airg\.ca|allnurses\.com|allrecipes\.com|alumniclass|alumniclass\.com|ameba\.jp|ameblo\.jp|americantowns|americantowns\.com|amp\.reddit\.com|ancestry\.com|anobii|anobii\.com|answerbag|answerbag\.com|answers\.yahoo\.com|aolanswers|aolanswers\.com|apps\.facebook\.com|ar\.pinterest\.com|artstation\.com|askubuntu|askubuntu\.com|asmallworld\.com|athlinks|athlinks\.com|away\.vk\.com|awe\.sm|b\.hatena\.ne\.jp|baby-gaga|baby-gaga\.com|babyblog\.ru|badoo|badoo\.com|bebo|bebo\.com|beforeitsnews|beforeitsnews\.com|bharatstudent|bharatstudent\.com|biip\.no|biswap\.org|bit\.ly|blackcareernetwork\.com|blackplanet|blackplanet\.com|blip\.fm|blog\.com|blog\.feedspot\.com|blog\.goo\.ne\.jp|blog\.naver\.com|blog\.yahoo\.co\.jp|blogg\.no|bloggang\.com|blogger|blogger\.com|blogher|blogher\.com|bloglines|bloglines\.com|blogs\.com|blogsome|blogsome\.com|blogspot|blogspot\.com|blogster|blogster\.com|blurtit|blurtit\.com|bookmarks\.yahoo\.co\.jp|bookmarks\.yahoo\.com|br\.pinterest\.com|brightkite|brightkite\.com|brizzly|brizzly\.com|business\.facebook\.com|buzzfeed|buzzfeed\.com|buzznet|buzznet\.com|cafe\.naver\.com|cafemom|cafemom\.com|camospace|camospace\.com|canalblog\.com|care\.com|care2|care2\.com|caringbridge\.org|catster|catster\.com|cbnt\.io|cellufun|cellufun\.com|centerblog\.net|chat\.zalo\.me|chegg\.com|chicagonow|chicagonow\.com|chiebukuro\.yahoo\.co\.jp|classmates|classmates\.com|classquest|classquest\.com|co\.pinterest\.com|cocolog-nifty|cocolog-nifty\.com|copainsdavant\.linternaute\.com|couchsurfing\.org|cozycot|cozycot\.com|cross\.tv|crunchyroll|crunchyroll\.com|cyworld|cyworld\.com|cz\.pinterest\.com|d\.hatena\.ne\.jp|dailystrength\.org|deluxe\.com|deviantart|deviantart\.com|dianping|dianping\.com|digg|digg\.com|diigo|diigo\.com|discover\.hubpages\.com|disqus|disqus\.com|dogster|dogster\.com|dol2day|dol2day\.com|doostang|doostang\.com|dopplr|dopplr\.com|douban|douban\.com|draft\.blogger\.com|draugiem\.lv|drugs-forum|drugs-forum\.com|dzone|dzone\.com|edublogs\.org|elftown|elftown\.com|epicurious\.com|everforo\.com|exblog\.jp|extole|extole\.com|facebook|facebook\.com|faceparty|faceparty\.com|fandom\.com|fanpop|fanpop\.com|fark|fark\.com|fb|fb\.me|fc2|fc2\.com|feedspot|feministing|feministing\.com|filmaffinity|filmaffinity\.com|flickr|flickr\.com|flipboard|flipboard\.com|folkdirect|folkdirect\.com|foodservice|foodservice\.com|forums\.androidcentral\.com|forums\.crackberry\.com|forums\.imore\.com|forums\.nexopia\.com|forums\.webosnation\.com|forums\.wpcentral\.com|fotki|fotki\.com|fotolog|fotolog\.com|foursquare|foursquare\.com|free\.facebook\.com|friendfeed|friendfeed\.com|fruehstueckstreff\.org|fubar|fubar\.com|gaiaonline|gaiaonline\.com|gamerdna|gamerdna\.com|gather\.com|geni\.com|getpocket\.com|glassboard|glassboard\.com|glassdoor|glassdoor\.com|godtube|godtube\.com|goldenline\.pl|goldstar|goldstar\.com|goo\.gl|gooblog|goodreads|goodreads\.com|google\+|googlegroups\.com|googleplus|govloop|govloop\.com|gowalla|gowalla\.com|gree\.jp|groups\.google\.com|gulli\.com|gutefrage\.net|habbo|habbo\.com|hi5|hi5\.com|hootsuite|hootsuite\.com|houzz|houzz\.com|hoverspot|hoverspot\.com|hr\.com|hu\.pinterest\.com|hubculture|hubculture\.com|hubpages\.com|hyves\.net|hyves\.nl|ibibo|ibibo\.com|id\.pinterest\.com|identi\.ca|ig|imageshack\.com|imageshack\.us|imvu|imvu\.com|in\.pinterest\.com|insanejournal|insanejournal\.com|instagram|instagram\.com|instapaper|instapaper\.com|internations\.org|interpals\.net|intherooms|intherooms\.com|irc-galleria\.net|is\.gd|italki|italki\.com|jammerdirect|jammerdirect\.com|jappy\.com|jappy\.de|kaboodle\.com|kakao|kakao\.com|kakaocorp\.com|kaneva|kaneva\.com|kin\.naver\.com|l\.facebook\.com|l\.instagram\.com|l\.messenger\.com|last\.fm|librarything|librarything\.com|lifestream\.aol\.com|line|line\.me|linkedin|linkedin\.com|listal|listal\.com|listography|listography\.com|livedoor\.com|livedoorblog|livejournal|livejournal\.com|lm\.facebook\.com|lnkd\.in|m\.blog\.naver\.com|m\.cafe\.naver\.com|m\.facebook\.com|m\.kin\.naver\.com|m\.vk\.com|m\.yelp\.com|mbga\.jp|medium\.com|meetin\.org|meetup|meetup\.com|meinvz\.net|meneame\.net|menuism\.com|messages\.google\.com|messages\.yahoo\.co\.jp|messenger|messenger\.com|mix\.com|mixi\.jp|mobile\.facebook\.com|mocospace|mocospace\.com|mouthshut|mouthshut\.com|movabletype|movabletype\.com|mubi|mubi\.com|my\.o
12pera\.com|myanimelist\.net|myheritage|myheritage\.com|mylife|mylife\.com|mymodernmet|mymodernmet\.com|myspace|myspace\.com|netvibes|netvibes\.com|news\.ycombinator\.com|newsshowcase|nexopia|ngopost\.org|niconico|nicovideo\.jp|nightlifelink|nightlifelink\.com|ning|ning\.com|nl\.pinterest\.com|odnoklassniki\.ru|odnoklassniki\.ua|okwave\.jp|old\.reddit\.com|oneworldgroup\.org|onstartups|onstartups\.com|opendiary|opendiary\.com|oshiete\.goo\.ne\.jp|out\.reddit\.com|over-blog\.com|overblog\.com|paper\.li|partyflock\.nl|photobucket|photobucket\.com|pinboard|pinboard\.in|pingsta|pingsta\.com|pinterest|pinterest\.at|pinterest\.ca|pinterest\.ch|pinterest\.cl|pinterest\.co\.kr|pinterest\.co\.uk|pinterest\.com|pinterest\.com\.au|pinterest\.com\.mx|pinterest\.de|pinterest\.es|pinterest\.fr|pinterest\.it|pinterest\.jp|pinterest\.nz|pinterest\.ph|pinterest\.pt|pinterest\.ru|pinterest\.se|pixiv\.net|pl\.pinterest\.com|playahead\.se|plurk|plurk\.com|plus\.google\.com|plus\.url\.google\.com|pocket\.co|posterous|posterous\.com|pro\.homeadvisor\.com|pulse\.yahoo\.com|qapacity|qapacity\.com|quechup|quechup\.com|quora|quora\.com|qzone\.qq\.com|ravelry|ravelry\.com|reddit|reddit\.com|redux|redux\.com|renren|renren\.com|researchgate\.net|reunion|reunion\.com|reverbnation|reverbnation\.com|rtl\.de|ryze|ryze\.com|salespider|salespider\.com|scoop\.it|screenrant|screenrant\.com|scribd|scribd\.com|scvngr|scvngr\.com|secondlife|secondlife\.com|serverfault|serverfault\.com|shareit|sharethis|sharethis\.com|shvoong\.com|sites\.google\.com|skype|skyrock|skyrock\.com|slashdot\.org|slideshare\.net|smartnews\.com|snapchat|snapchat\.com|social|sociallife\.com\.br|socialvibe|socialvibe\.com|spaces\.live\.com|spoke|spoke\.com|spruz|spruz\.com|ssense\.com|stackapps|stackapps\.com|stackexchange|stackexchange\.com|stackoverflow|stackoverflow\.com|stardoll\.com|stickam|stickam\.com|studivz\.net|suomi24\.fi|superuser|superuser\.com|sweeva|sweeva\.com|t\.co|t\.me|tagged|tagged\.com|taggedmail|taggedmail\.com|talkbiznow|talkbiznow\.com|taringa\.net|techmeme|techmeme\.com|tencent|tencent\.com|tiktok|tiktok\.com|tinyurl|tinyurl\.com|toolbox|toolbox\.com|touch\.facebook\.com|tr\.pinterest\.com|travellerspoint|travellerspoint\.com|tripadvisor|tripadvisor\.com|trombi|trombi\.com|trustpilot|tudou|tudou\.com|tuenti|tuenti\.com|tumblr|tumblr\.com|tweetdeck|tweetdeck\.com|twitter|twitter\.com|twoo\.com|typepad|typepad\.com|unblog\.fr|urbanspoon\.com|ushareit\.com|ushi\.cn|vampirefreaks|vampirefreaks\.com|vampirerave|vampirerave\.com|vg\.no|video\.ibm\.com|vk\.com|vkontakte\.ru|wakoopa|wakoopa\.com|wattpad|wattpad\.com|web\.facebook\.com|web\.skype\.com|webshots|webshots\.com|wechat|wechat\.com|weebly|weebly\.com|weibo|weibo\.com|wer-weiss-was\.de|weread|weread\.com|whatsapp|whatsapp\.com|wiki\.answers\.com|wikihow\.com|wikitravel\.org|woot\.com|wordpress|wordpress\.com|wordpress\.org|xanga|xanga\.com|xing|xing\.com|yahoo-mbga\.jp|yammer|yammer\.com|yelp|yelp\.co\.uk|yelp\.com|youroom\.in|za\.pinterest\.com|zalo|zoo\.gr|zooppa|zooppa\.com)$", "i").test(v.utmSource) && new RegExp("^(.*cp.*|ppc|retargeting|paid.*)$", "i").test(v.utmMedium)},{"name":"paid-video","test":(v) => new RegExp("^(?:blog\.twitch\.tv|crackle|crackle\.com|curiositystream|curiositystream\.com|d\.tube|dailymotion|dailymotion\.com|dashboard\.twitch\.tv|disneyplus|disneyplus\.com|fast\.wistia\.net|help\.hulu\.com|help\.netflix\.com|hulu|hulu\.com|id\.twitch\.tv|iq\.com|iqiyi|iqiyi\.com|jobs\.netflix\.com|justin\.tv|m\.twitch\.tv|m\.youtube\.com|music\.youtube\.com|netflix|netflix\.com|player\.twitch\.tv|player\.vimeo\.com|ted|ted\.com|twitch|twitch\.tv|utreon|utreon\.com|veoh|veoh\.com|viadeo\.journaldunet\.com|vimeo|vimeo\.com|wistia|wistia\.com|youku|youku\.com|youtube|youtube\.com)$", "i").test(v.utmSource) && new RegExp("^(.*cp.*|ppc|retargeting|paid.*)$", "i").test(v.utmMedium)},{"name":"display","test":(v) => new RegExp("^(?:display|banner|expandable|interstitial|cpm)$", "i").test(v.utmMedium)},{"name":"paid-other","test":(v) => new RegExp("^(.*cp.*|ppc|retargeting|paid.*)$", "i").test(v.utmMedium)}
12,{"name":"organic-shopping","test":(v) => new RegExp("^(?:360\.cn|alice|aol|ar\.search\.yahoo\.com|ask|at\.search\.yahoo\.com|au\.search\.yahoo\.com|auone|avg|babylon|baidu|biglobe|biglobe\.co\.jp|biglobe\.ne\.jp|bing|br\.search\.yahoo\.com|ca\.search\.yahoo\.com|centrum\.cz|ch\.search\.yahoo\.com|cl\.search\.yahoo\.com|cn\.bing\.com|cnn|co\.search\.yahoo\.com|comcast|conduit|daum|daum\.net|de\.search\.yahoo\.com|dk\.search\.yahoo\.com|dogpile|dogpile\.com|duckduckgo|ecosia\.org|email\.seznam\.cz|eniro|es\.search\.yahoo\.com|espanol\.search\.yahoo\.com|exalead\.com|excite\.com|fi\.search\.yahoo\.com|firmy\.cz|fr\.search\.yahoo\.com|globo|go\.mail\.ru|google|google-play|hk\.search\.yahoo\.com|id\.search\.yahoo\.com|in\.search\.yahoo\.com|incredimail|it\.search\.yahoo\.com|kvasir|lens\.google\.com|lite\.qwant\.com|lycos|m\.baidu\.com|m\.naver\.com|m\.search\.naver\.com|m\.sogou\.com|mail\.rambler\.ru|mail\.yandex\.ru|malaysia\.search\.yahoo\.com|msn|msn\.com|mx\.search\.yahoo\.com|najdi|naver|naver\.com|news\.google\.com|nl\.search\.yahoo\.com|no\.search\.yahoo\.com|ntp\.msn\.com|nz\.search\.yahoo\.com|onet|onet\.pl|pe\.search\.yahoo\.com|ph\.search\.yahoo\.com|pl\.search\.yahoo\.com|play\.google\.com|qwant|qwant\.com|rakuten|rakuten\.co\.jp|rambler|rambler\.ru|se\.search\.yahoo\.com|search-results|search\.aol\.co\.uk|search\.aol\.com|search\.google\.com|search\.smt\.docomo\.ne\.jp|search\.ukr\.net|secureurl\.ukr\.net|seznam|seznam\.cz|sg\.search\.yahoo\.com|so\.com|sogou|sogou\.com|sp-web\.search\.auone\.jp|startsiden|startsiden\.no|suche\.aol\.de|terra|th\.search\.yahoo\.com|tr\.search\.yahoo\.com|tut\.by|tw\.search\.yahoo\.com|uk\.search\.yahoo\.com|ukr|us\.search\.yahoo\.com|virgilio|vn\.search\.yahoo\.com|wap\.sogou\.com|webmaster\.yandex\.ru|websearch\.rakuten\.co\.jp|yahoo|yahoo\.co\.jp|yahoo\.com|yandex|yandex\.by|yandex\.com|yandex\.com\.tr|yandex\.fr|yandex\.kz|yandex\.ru|yandex\.ua|yandex\.uz|zen\.yandex\.ru)$", "i").test(v.utmSource) || new RegExp("^(.*(([^a-df-z]|^)shop|shopping).*)$", "i").test(v.utmCampaign)},{"name":"organic-social","test":(v) => new RegExp("^(?:43things|43things\.com|51\.com|5ch\.net|Hatena|ImageShack|academia\.edu|activerain|activerain\.com|activeworlds|activeworlds\.com|addthis|addthis\.com|airg\.ca|allnurses\.com|allrecipes\.com|alumniclass|alumniclass\.com|ameba\.jp|ameblo\.jp|americantowns|americantowns\.com|amp\.reddit\.com|ancestry\.com|anobii|anobii\.com|answerbag|answerbag\.com|answers\.yahoo\.com|aolanswers|aolanswers\.com|apps\.facebook\.com|ar\.pinterest\.com|artstation\.com|askubuntu|askubuntu\.com|asmallworld\.com|athlinks|athlinks\.com|away\.vk\.com|awe\.sm|b\.hatena\.ne\.jp|baby-gaga|baby-gaga\.com|babyblog\.ru|badoo|badoo\.com|bebo|bebo\.com|beforeitsnews|beforeitsnews\.com|bharatstudent|bharatstudent\.com|biip\.no|biswap\.org|bit\.ly|blackcareernetwork\.com|blackplanet|blackplanet\.com|blip\.fm|blog\.com|blog\.feedspot\.com|blog\.goo\.ne\.jp|blog\.naver\.com|blog\.yahoo\.co\.jp|blogg\.no|bloggang\.com|blogger|blogger\.com|blogher|blogher\.com|bloglines|bloglines\.com|blogs\.com|blogsome|blogsome\.com|blogspot|blogspot\.com|blogster|blogster\.com|blurtit|blurtit\.com|bookmarks\.yahoo\.co\.jp|bookmarks\.yahoo\.com|br\.pinterest\.com|brightkite|brightkite\.com|brizzly|brizzly\.com|business\.facebook\.com|buzzfeed|buzzfeed\.com|buzznet|buzznet\.com|cafe\.naver\.com|cafemom|cafemom\.com|camospace|camospace\.com|canalblog\.com|care\.com|care2|care2\.com|caringbridge\.org|catster|catster\.com|cbnt\.io|cellufun|cellufun\.com|centerblog\.net|chat\.zalo\.me|chegg\.com|chicagonow|chicagonow\.com|chiebukuro\.yahoo\.co\.jp|classmates|classmates\.com|classquest|classquest\.com|co\.pinterest\.com|cocolog-nifty|cocolog-nifty\.com|copainsdavant\.linternaute\.com|couchsurfing\.org|cozycot|cozycot\.com|cross\.tv|crunchyroll|crunchyroll\.com|cyworld|cyworld\.com|cz\.pinterest\.com|d\.hatena\.ne\.jp|dailystrength\.org|deluxe\.com|deviantart|deviantart\.com|dianping|dianping\.com|digg|digg\.com|diigo|diigo\.com|discover\.hubpages\.com|disqus|disqus\.com|dogster|dogster\.com|dol2day|dol2day\.com|doostang|doostang\.com|dopplr|dopplr\.com|douban|douban\.com|draft\.blogger\.com|draugiem\.lv|drugs-forum|drugs-forum\.com|dzone|dzone\.com|edublogs\.org|elftown|elftown\.com|epicurious\.com|everforo\.com|exblog\.jp|extole|extole\.com|facebook|facebook\.com|faceparty|faceparty\.com|fandom\.com|fanpop|fanpop\.com|fark|fark\.com|fb|fb\.me|fc2|fc2\.com|feedspot|feministing|feministing\.com|filmaffinity|filmaffinity\.com|flickr|flickr\.com|flipboard|flipboard\.com|folkdirect|folkdirect\.com|foodservice|foodservice\.com|forums\.androidcentral\.com|forums\.crackberry\.com|forums\.imore\.com|forums\.nexopia\.com|forums\.webosnation\.com|forums\.wpcentral\.com|fotki|fotki\.com|fotolog|fotolog\.com|foursquare|foursquare\.com|free\.facebook\.com|friendfeed|friendfeed\.com|fruehstueckstreff\.org|fubar|fubar\.com|gaiaonline|gaiaonline\.com|gamerdna|gamerdna\.com|gather\.com|geni\.com|getpocket\.com|glassboard|glassboard\.com|glassdoor|glassdoor\.com|godtube|godtube\.com|goldenline\.pl|goldstar|goldstar\.com|goo\.gl|gooblog|goodreads|goodreads\.com|google\+|googlegroups\.com|googleplus|govloop|govloop\.com|gowalla|gowalla\.com|gree\.jp|groups\.google\.com|gulli\.com|gutefrage\.net|habbo|habbo\.com|hi5|hi5\.com|hootsuite|hootsuite\.com|houzz|houzz\.com|hoverspot|hoverspot\.com|hr\.com|hu\.pinterest\.com|hubculture|hubculture\.com|hubpages\.com|hyves\.net|hyves\.nl|ibibo|ibibo\.com|id\.pinterest\.com|identi\.ca|ig|imageshack\.com|imageshack\.us|imvu|imvu\.com|in\.pinterest\.com|insanejournal|insanejournal\.com|instagram|instagram\.com|instapaper|instapaper\.com|internations\.org|interpals\.net|intherooms|intherooms\.com|irc-galleria\.net|is\.gd|italki|italki\.com|jammerdirect|jammerdirect\.com|jappy\.com|jappy\.de|kaboodle\.com|k
12akao|kakao\.com|kakaocorp\.com|kaneva|kaneva\.com|kin\.naver\.com|l\.facebook\.com|l\.instagram\.com|l\.messenger\.com|last\.fm|librarything|librarything\.com|lifestream\.aol\.com|line|line\.me|linkedin|linkedin\.com|listal|listal\.com|listography|listography\.com|livedoor\.com|livedoorblog|livejournal|livejournal\.com|lm\.facebook\.com|lnkd\.in|m\.blog\.naver\.com|m\.cafe\.naver\.com|m\.facebook\.com|m\.kin\.naver\.com|m\.vk\.com|m\.yelp\.com|mbga\.jp|medium\.com|meetin\.org|meetup|meetup\.com|meinvz\.net|meneame\.net|menuism\.com|messages\.google\.com|messages\.yahoo\.co\.jp|messenger|messenger\.com|mix\.com|mixi\.jp|mobile\.facebook\.com|mocospace|mocospace\.com|mouthshut|mouthshut\.com|movabletype|movabletype\.com|mubi|mubi\.com|my\.opera\.com|myanimelist\.net|myheritage|myheritage\.com|mylife|mylife\.com|mymodernmet|mymodernmet\.com|myspace|myspace\.com|netvibes|netvibes\.com|news\.ycombinator\.com|newsshowcase|nexopia|ngopost\.org|niconico|nicovideo\.jp|nightlifelink|nightlifelink\.com|ning|ning\.com|nl\.pinterest\.com|odnoklassniki\.ru|odnoklassniki\.ua|okwave\.jp|old\.reddit\.com|oneworldgroup\.org|onstartups|onstartups\.com|opendiary|opendiary\.com|oshiete\.goo\.ne\.jp|out\.reddit\.com|over-blog\.com|overblog\.com|paper\.li|partyflock\.nl|photobucket|photobucket\.com|pinboard|pinboard\.in|pingsta|pingsta\.com|pinterest|pinterest\.at|pinterest\.ca|pinterest\.ch|pinterest\.cl|pinterest\.co\.kr|pinterest\.co\.uk|pinterest\.com|pinterest\.com\.au|pinterest\.com\.mx|pinterest\.de|pinterest\.es|pinterest\.fr|pinterest\.it|pinterest\.jp|pinterest\.nz|pinterest\.ph|pinterest\.pt|pinterest\.ru|pinterest\.se|pixiv\.net|pl\.pinterest\.com|playahead\.se|plurk|plurk\.com|plus\.google\.com|plus\.url\.google\.com|pocket\.co|posterous|posterous\.com|pro\.homeadvisor\.com|pulse\.yahoo\.com|qapacity|qapacity\.com|quechup|quechup\.com|quora|quora\.com|qzone\.qq\.com|ravelry|ravelry\.com|reddit|reddit\.com|redux|redux\.com|renren|renren\.com|researchgate\.net|reunion|reunion\.com|reverbnation|reverbnation\.com|rtl\.de|ryze|ryze\.com|salespider|salespider\.com|scoop\.it|screenrant|screenrant\.com|scribd|scribd\.com|scvngr|scvngr\.com|secondlife|secondlife\.com|serverfault|serverfault\.com|shareit|sharethis|sharethis\.com|shvoong\.com|sites\.google\.com|skype|skyrock|skyrock\.com|slashdot\.org|slideshare\.net|smartnews\.com|snapchat|snapchat\.com|social|sociallife\.com\.br|socialvibe|socialvibe\.com|spaces\.live\.com|spoke|spoke\.com|spruz|spruz\.com|ssense\.com|stackapps|stackapps\.com|stackexchange|stackexchange\.com|stackoverflow|stackoverflow\.com|stardoll\.com|stickam|stickam\.com|studivz\.net|suomi24\.fi|superuser|superuser\.com|sweeva|sweeva\.com|t\.co|t\.me|tagged|tagged\.com|taggedmail|taggedmail\.com|talkbiznow|talkbiznow\.com|taringa\.net|techmeme|techmeme\.com|tencent|tencent\.com|tiktok|tiktok\.com|tinyurl|tinyurl\.com|toolbox|toolbox\.com|touch\.facebook\.com|tr\.pinterest\.com|travellerspoint|travellerspoint\.com|tripadvisor|tripadvisor\.com|trombi|trombi\.com|trustpilot|tudou|tudou\.com|tuenti|tuenti\.com|tumblr|tumblr\.com|tweetdeck|tweetdeck\.com|twitter|twitter\.com|twoo\.com|typepad|typepad\.com|unblog\.fr|urbanspoon\.com|ushareit\.com|ushi\.cn|vampirefreaks|vampirefreaks\.com|vampirerave|vampirerave\.com|vg\.no|video\.ibm\.com|vk\.com|vkontakte\.ru|wakoopa|wakoopa\.com|wattpad|wattpad\.com|web\.facebook\.com|web\.skype\.com|webshots|webshots\.com|wechat|wechat\.com|weebly|weebly\.com|weibo|weibo\.com|wer-weiss-was\.de|weread|weread\.com|whatsapp|whatsapp\.com|wiki\.answers\.com|wikihow\.com|wikitravel\.org|woot\.com|wordpress|wordpress\.com|wordpress\.org|xanga|xanga\.com|xing|xing\.com|yahoo-mbga\.jp|yammer|yammer\.com|yelp|yelp\.co\.uk|yelp\.com|youroom\.in|za\.pinterest\.com|zalo|zoo\.gr|zooppa|zooppa\.com)$", "i").test(v.utmSource) || new RegExp("^(?:social|social-network|social-media|sm|social network|social media)$", "i").test(v.utmMedium)},{"name":"organic-video","test":(v) => new RegExp("^(?:blog\.twitch\.tv|crackle|crackle\.com|curiositystream|curiositystream\.com|d\.tube|dailymotion|dailymotion\.com|dashboard\.twitch\.tv|disneyplus|disneyplus\.com|fast\.wistia\.net|help\.hulu\.com|help\.netflix\.com|hulu|hulu\.com|id\.twitch\.tv|iq\.com|iqiyi|iqiyi\.com|jobs\.netflix\.com|justin\.tv|m\.twitch\.tv|m\.youtube\.com|music\.youtube\.com|netflix|netflix\.com|player\.twitch\.tv|player\.vimeo\.com|ted|ted\.com|twitch|twitch\.tv|utreon|utreon\.com|veoh|veoh\.com|viadeo\.journaldunet\.com|vimeo|vimeo\.com|wistia|wistia\.com|youku|youku\.com|youtube|youtube\.com)$", "i").test(v.utmSource) || new RegExp("^(.*video.*)$", "i").test(v.utmMedium)},{"name":"organic-search","test":(v) => new RegExp("^(?:360\.cn|alice|aol|ar\.search\.yahoo\.com|ask|at\.search\.yahoo\.com|au\.search\.yahoo\.com|auone|avg|babylon|baidu|biglobe|biglobe\.co\.jp|biglobe\.ne\.jp|bing|br\.search\.yahoo\.com|ca\.search\.yahoo\.com|centrum\.cz|ch\.search\.yahoo\.com|cl\.search\.yahoo\.com|cn\.bing\.com|cnn|co\.search\.yahoo\.com|comcast|conduit|daum|daum\.net|de\.search\.yahoo\.com|dk\.search\.yahoo\.com|dogpile|dogpile\.com|duckduckgo|ecosia\.org|email\.seznam\.cz|eniro|es\.search\.yahoo\.com|espanol\.search\.yahoo\.com|exalead\.com|excite\.com|fi\.search\.yahoo\.com|firmy\.cz|fr\.search\.yahoo\.com|globo|go\.mail\.ru|google|google-play|hk\.search\.yahoo\.com|id\.search\.yahoo\.com|in\.search\.yahoo\.com|incredimail|it\.search\.yahoo\.com|kvasir|lens\.google\.com|lite\.qwant\.com|lycos|m\.baidu\.com|m\.naver\.com|m\.search\.naver\.com|m\.sogou\.com|mail\.rambler\.ru|mail\.yandex\.ru|malaysia\.search\.yahoo\.com|msn|msn\.com|mx\.search\.yahoo\.com|najdi|naver|naver\.com|news\.google\.com|nl\.search\.yahoo\.com|no\.search\.yahoo\.com|ntp\.msn\.com|nz\.search\.yahoo\.com|onet|onet\.pl|pe\.search\.yahoo\.com|ph\.search\.yahoo\.com|pl\.search\.yahoo\.com|play\.google\.com|qwant|qwant\.com|rakuten|rakuten\.co\.jp|rambler|rambler\.ru|se\.search\.yahoo\.com|search-results|search\.aol\.co\.uk|search\.aol\.com|search\.google\.com|search\.smt\.docomo\.ne\.jp|search\.ukr\.net|secureurl\.ukr\.net|seznam|seznam\.cz|sg\.search\.yahoo\.com|so\.com|sogou|sogou\.com|sp-web\.search\.auone\.jp|startsiden|startsiden\.no|suche\.aol\.de|terra|th\.search\.yahoo\.com|tr\.search\.yahoo\.com|tut\.by|tw\.search\.yahoo\.com|uk\.search\.yahoo\.com|ukr|us\.search\.yahoo\.com|virgilio|vn\.search\.yahoo\.com|wap\.sogou\.com|webmaster\.yandex\.ru|websearch\.rakuten\.co\.jp|yahoo|yahoo\.co\.jp|yahoo\.com|yandex|yandex\.by|yandex\.com|yandex\.com\.tr|yandex\.fr|yandex\.kz|yandex\.ru|yandex\.ua|y
12andex\.uz|zen\.yandex\.ru)$", "i").test(v.utmSource) || v.utmMedium.toLowerCase() === "organic"},{"name":"referral","test":(v) => new RegExp("^(?:referral|app|link)$", "i").test(v.utmMedium)},{"name":"email","test":(v) => new RegExp("^(?:email|e-mail|e_mail|e mail)$", "i").test(v.utmMedium) || new RegExp("^(?:email|e-mail|e_mail|e mail)$", "i").test(v.utmSource)},{"name":"affiliate","test":(v) => v.utmMedium.toLowerCase() === "affiliate"},{"name":"audio","test":(v) => v.utmMedium.toLowerCase() === "audio"},{"name":"sms","test":(v) => v.utmSource.toLowerCase() === "sms" || v.utmMedium.toLowerCase() === "sms"},{"name":"mobile-push-notification","test":(v) => v.utmSource.toLowerCase() === "firebase" || new RegExp("(?:.*mobile.*|.*notification.*|push$)", "i").test(v.utmMedium)}].find(i=>i.test(e))?.name??"other"}getShopifyAnalyticsId(){const e=this.getCookie("_shopify_y");if(e)return e;try{const t=this.localStorageGet("Shoplift_ClientId");if(t)return t}catch{}return null}legacyGetCookieVisitor(){const e=this.getCookie("SHOPLIFT");return e===null?null:JSON.parse(e,F)}getCookie(e){const t=this.cookie.split("; ").filter(i=>i.split("=").at(0)===e).at(0);return t===void 0?null:t.split("=").slice(1).join("=")}monitorConsentChange(){document.addEventListener("visitorConsentCollected",e=>{(async()=>await this.onConsentChange(e.detail.analyticsAllowed,!0))()}),document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>this.loadShopifyConsentApiWithRetry()):this.loadShopifyConsentApiWithRetry()}loadShopifyConsentApiWithRetry(){let e=0;const t=()=>{this.loadShopifyConsentApi()||e++<10&&window.setTimeout(t,100)};t()}loadShopifyConsentApi(){if(window.Shopify){this.log("Loading Shopify features");const e=async()=>{if(!window.Shopify){this.log("Shopify object missing... suddenly?");return}if(window.Shopify.customerPrivacy===void 0){this.log("Shopify CustomerPrivacy api still missing, trying again in 1000ms"),t=window.setTimeout(()=>{(async()=>await e())()},1e3);return}if(this.geoViaShopify){const s=window.Shopify.customerPrivacy.getRegion?.();this.resolvedRegion=typeof s=="string"?s.replace(/-/g,""):""}const i=window.Shopify.customerPrivacy.getTrackingConsent();await this.onConsentChange(window.Shopify.customerPrivacy.analyticsProcessingAllowed(),i==="yes")};let t=window.setTimeout(()=>{(async()=>await e())()},5e3);return window.Shopify.loadFeatures([{name:"consent-tracking-api",version:"0.1"}],i=>{(async()=>{if(window.clearTimeout(t),i){this.log("Error loading consent tracking",i);return}await e()})()}),!0}return!1}async onConsentChange(e,t){try{if(this.log("Consent change detected",e,t),this.state.essential.consentApproved=e,this.state.essential.hasConsentInteraction=t,!this.state.essential.consentApproved){this.state.essential.hasConsentInteraction&&(this.state.analytics.queue.length=0),this.saveState();return}this.cookie=document.cookie,this.shopifyAnalyticsId=this.getShopifyAnalyticsId(),this.saveState(),await this.syncAllEvents()}catch(i){this.log("Error syncing on consent change",i)}}isThemePreview(){return isThemePreview||themeRole!=="main"}isAppProxyPath(){const e=["/apps/","/tools/","/a/"],t=window.location.pathname;return e.some(i=>t.startsWith(i))}clearThemeBar(e,t,i){const s=structuredClone(i);this.log("Looking for theme bar"),this.waitForElement(null,"body").then(r=>this.waitForElement(r,"#preview-bar-iframe, #PBarNextFrameWrapper").then(o=>(this.log("Found theme bar"),t&&(this.log("Removing theme bar"),o.remove()),e?this.makeRequest({url:`${this.eventHost}/api/v0/logs`,method:"post",data:JSON.stringify({...this.debugState(),stateAtEvaluation:s},ee)}):Promise.resolve(null)))).catch(r=>console.error(r))}waitForElement(e,t){return new Promise(i=>{const s=document.querySelector(t);if(s){i(s);return}const r=new MutationObserver(o=>{const n=document.querySelector(t);if(n){r.disconnect(),i(n);return}});r.observe(e??document.documentElement,{childList:!0})})}setDebug(e){this.state.essential.debugMode=e,this.saveState()}log(e,...t){let i=0;const s=e.replace(/%[sdoOfF]/g,r=>{if(i>=t.length)return r;const o=t[i++];return r==="%o"||r==="%O"?JSON.stringify(o):String(o)});this.logHistory.push(`[${new Date().toISOString()}][SL] ${s}`),!(!this.state.essential.debugMode&&!this.shopliftDebug)&&console.debug(`[SL] ${e}`,...t)}debugState(){return{state:this.state,storage:{essential:this.loadLocalStorage(this.essentialSessionKey),analytics:this.loadLocalStorage(this.analyticsSessionKey)},params:{shop:this.shop,host:this.host,eventHost:this.eventHost,cssHideClass:this.cssHideClass,testConfigs:this.testConfigs,inactiveTestConfigs:this.inactiveTestConfigs,sendPageView:this.sendPageView,isShopifyMerchantCookie
12:this.getCookie("is_shopify_merchant"),themeId,url:window.location.href,isThemePreview,themeRole,gaConfig:this.gaConfig},logHistory:this.logHistory}}createViewportObserver(e,t={}){const{threshold:i=this.VIEWPORT_TRACK_THRESHOLD,triggerOnce:s=!0}=t,r=new Set;return new IntersectionObserver(o=>{o.forEach(n=>{if(n.isIntersecting&&!r.has(n.target)){const l=n.target,c=l.getAttribute(this.DATA_SL_TEST_ID);c&&(e(c,l),s&&r.add(l))}})},{threshold:i})}applyChangesWithViewport(e,t,i,s){const r=t.selectorsForViewportTracking??t.selectors,o=n=>{if(this.state.essential.visitorTests.some(h=>h.testId===n)||this.activeViewportObservers.has(n))return;const l=[];if(r.forEach(h=>{e.querySelectorAll(h.cssSelector).forEach(b=>l.push(b))}),l.length===0)return;let c=!1;const d=()=>{c||(c=!0,i(n),u.disconnect(),this.activeViewportObservers.delete(n))},u=this.createViewportObserver(()=>{d()},{triggerOnce:!0,...s});this.activeViewportObservers.set(n,u),this.log(`Created viewport observer for test ${n}, observing ${l.length} elements`),l.forEach(h=>{h.setAttribute(this.DATA_SL_TEST_ID,String(n)),u.observe(h)}),setTimeout(()=>{c||l.forEach(h=>{const p=h.getBoundingClientRect(),b=s?.threshold??this.VIEWPORT_TRACK_THRESHOLD,E=Math.min(p.bottom,window.innerHeight)-Math.max(p.top,0),S=Math.min(p.right,window.innerWidth)-Math.max(p.left,0);p.top<window.innerHeight&&p.bottom>0&&p.left<window.innerWidth&&p.right>0&&E>0&&S>0&&E>=p.height*b&&(this.log(`Price element already visible in viewport for test ${n}:`,h),d())})},100)};t.selectors.length>0&&U(e,t,()=>{}),Te(e,{testId:t.testId,hypothesisId:t.hypothesisId,selectors:r},n=>{o(n)})}applyPriceTestWithMapLookup(e,t,i,s){if(!t.priceData){this.log("No price data for hypothesis '%s'",t.id);return}this.log("Hypothesis '%s' isControl=%s, priceData has %d variants",t.id,t.isControl,t.priceData.variants.length);const r=t.priceData.variants.slice(0,3);for(const[S,C,_]of r)this.log("  Sample priceData: variant=%s, price=%d, compareAt=%d",S,C,_);const o=j(t.priceData),n=new Set;for(const S of i)if(S.priceData)for(const[C]of S.priceData.variants)n.add(C);this.log("Price test Map lookup: %d products in hypothesis, %d total products to track",o.size,n.size);const l=t.priceData,c=new WeakSet;let d=!1;const u="[data-sl-attribute-p], [data-sl-attribute-cap], [data-sl-attribute-discount]",h=S=>{if(c.has(S))return;const C=S.getAttribute("data-sl-attribute-p"),_=S.getAttribute("data-sl-attribute-cap"),T=S.getAttribute("data-sl-attribute-discount"),m=C||_||T;if(!m||!n.has(m))return;c.add(S);const y=o.get(m);y&&(this.log("Applying price for product %s: %d cents (compare at: %d cents)",m,y.priceInCents,y.compareAtPriceInCents),Le(S,m,y,l),this.log("Applied price to element for product %s",m)),!d&&!this.state.essential.visitorTests.some(w=>w.testId===e)&&(S.setAttribute(this.DATA_SL_TEST_ID,String(e)),this.setupElementViewportTracking(S,e,()=>{d||(d=!0,s(e))}))},p=()=>{const S=document.querySelectorAll(u);this.log("Scanning for price elements, found: %d",S.length),S.forEach(h)},b=new MutationObserver(S=>{for(const C of S)C.type==="childList"&&C.addedNodes.forEach(_=>{if(_.nodeType===Node.ELEMENT_NODE){const T=_;(T.hasAttribute("data-sl-attribute-p")||T.hasAttribute("data-sl-attribute-cap")||T.hasAttribute("data-sl-attribute-discount"))&&h(T),T.querySelectorAll(u).forEach(h)}}),C.type==="attributes"&&C.target instanceof Element&&h(C.target)}),E=document.body||document.documentElement;b.observe(E,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["data-sl-attribute-p","data-sl-attribute-cap","data-sl-attribute-discount"]}),this.log("MutationObserver started for price elements"),p(),document.readyState==="loading"&&document.addEventListener("DOMContentLoaded",()=>{this.log("DOMContentLoaded - rescanning for price elements"),p()}),setTimeout(()=>{this.log("Delayed rescan for price elements"),p()},100),setTimeout(()=>{this.log("Final rescan for price elements"),p()},500)}setupElementViewportTracking(e,t,i){const s=this.VIEWPORT_TRACK_THRESHOLD,r=e.getBoundingClientRect(),o=Math.min(r.bottom,window.innerHeight)-Math.max(r.top,0),n=Math.min(r.right,window.innerWidth)-Math.max(r.left,0);if(r.top<window.innerHeight&&r.bottom>0&&r.left<window.innerWidth&&r.right>0&&o>0&&n>0&&o>=r.height*s){this.log("Price element already visible for test %s",t),i();return}const c=new IntersectionObserver(d=>{for(const u of d)if(u.isIntersecting&&u.intersectionRatio>=s){this.log("Price element entered viewport for test %s",t),c.disconnect(),i();break}},{threshold:s});c.observe(e)}debug(){const e=this.debugState();console.log(JSON.stringify(e,ee,2))}}(async function(){window.shopliftInstance||(window.shopliftInstance=new Ze("wakemakers-prod.myshopify.com","https://app.shoplift.ai","https://events.shoplift.ai",true,false,false,{"sendEvents":false,"mode":"gtag"},false,false,1000,[{"id":"01a087a3-1609-7de7-88bf-a0839f8741ad","startAt":"2026-09-09T19:26:47.272245Z","requiresCountry":false,"requiresRegion":false,"bayesianRevision":5,"device":"all","status":"active","visitorOption":"all","ignoreTestViewParameterEnforcement":false,"statusHistory":[{"status":"active","createdAt":"2026-09-09T19:26:47.402692Z"}],"hypotheses":[{"visitorCount":43,"trafficPercentage":0.4235073777340126,"title":"Original","domSelectors":[],"id":"01a087a0-fcf2-7932-9b63-e9081780123b","type":"product","themeId":158076305573,"affix":"ballast-control","isControl":true},{"visitorCount":58,"trafficPercentage":0.5764926222659874,"title":"Premium Product Page v1.0","domSelectors":[],"id":"01a087a1-4c65-7b75-ac70-d2b8904d0e9a","type":"product","themeId":158076305573,"affix":"ballast-system","isControl":false}],"targetAudiences":[],"title":"Complete Ballast System PDP"}
12],[],null,false),await window.shopliftInstance.init())})();async function Qe(a,e,t,i){const s=Be({log:i});if(t)return i("[SUB-PREVIEW] A side — no overlay applied; widget renders naturally"),s;const r=a.widget.widgetType,o=e?j(e):null;let n=W(e),l=J(a,n),c=l.discountMap,d=l.maxDiscount;function u(){const f=W(e);f!==n&&(n=f,l=J(a,n),c=l.discountMap,d=l.maxDiscount,i(`[SUB-PREVIEW] scope refreshed currentProductId=${n??"n/a"}, maxDiscount=${d}`))}i(`[SUB-PREVIEW] side=B, currentProductId=${n??"n/a"}, maxDiscount=${d}`);function h(f){if(!e||!o)return null;const v=Z(o),g=v?o.get(v):void 0;return g?{formattedVariantPrice:G(g.priceInCents,e),formattedDiscounted:G(g.priceInCents*(1-f/100),e)}:null}function p(f){const v=Y(a,f);if(!v)return d;const g=D(a,"subscriptionInput"),P=g.length?g[0].selector:'input[name="rc_plan"]',A=v.querySelector(`${P}:checked`);if(A){const k=c[A.value];if(k!==void 0)return k}return d}function b(f){const v=D(a,"subscriptionDiscount");for(const g of v)if(g.selector.includes("badge")||g.selector.includes("__badge")){const P=f.querySelector(g.selector);P?.textContent&&!P.textContent.includes(`${d}%`)&&$(P,A=>N(A,d))}}function E(f,v){const g=h(v);if(!g)return;const P=D(a,"subscriptionCompareAt");for(const A of P){const k=f.querySelector(A.selector)||f.querySelector(`[part~="${A.selector}"]`);k?.textContent&&!k.textContent.includes(g.formattedVariantPrice)&&$(k,x=>/\d/.test(x)?g.formattedVariantPrice:x)}}function S(f,v){const g=h(v);if(!g)return;const P=D(a,"subscriptionPrice");for(const A of P){const k=f.querySelector(A.selector)||f.querySelector(`[part~="${A.selector}"]`);k?.textContent&&!k.textContent.includes(g.formattedDiscounted)&&$(k,x=>/\d/.test(x)?g.formattedDiscounted:x)}}function C(f){const v=D(a,"subscriptionInput"),g=v.length?v[0].selector:'input[name="rc_plan"]',P=D(a,"subscriptionPlanDiscount"),A=P.length?P[0].selector:".rc-plans-button__discount";for(const k of Array.from(f.querySelectorAll("label"))){const x=k.querySelector(g),R=k.querySelector(A);if(x&&R?.textContent){const O=c[x.value];if(O!==void 0){const V=R.textContent.match(/[\d.]+%/)?.[0];V&&V!==`${O}%`&&$(R,L=>N(L,O))}}}}function _(f){const v=f.querySelector("select");if(v)for(const g of Array.from(v.options)){const P=c[g.value];if(P!==void 0&&g.textContent){const A=g.textContent.match(/[\d.]+%/)?.[0];A&&A!==`${P}%`&&(g.textContent=N(g.textContent,P))}}}function T(f){const v=D(a,"onetimePrice");if(!v.length||!e||!o)return;const g=Z(o),P=g?o.get(g):void 0;if(!P)return;const A=G(P.priceInCents,e),k=D(a,"onetimeContainer"),x=k.length?k[0].selector:'[part~="rc-purchase-option__onetime"]',R=f.querySelector(x);if(R)for(const O of v){const V=R.querySelector(`[part~="${O.selector}"]`);V?.textContent&&!V.textContent.includes(A)&&$(V,L=>/\d/.test(L)?A:L)}}function m(f,v){const P=D(a,"subscriptionDiscount").filter(A=>A.selector.includes("benefit")||A.selector==="rc-benefits");for(const A of P){const k=f.querySelector(A.selector);if(k?.shadowRoot){for(const x of Array.from(k.shadowRoot.querySelectorAll("li")))if(x.textContent?.includes("Save")){const R=x.textContent.match(/[\d.]+%/)?.[0];R&&R!==`${v}%`&&$(x,O=>N(O,v))}}}}let y=!1;function w(){if(!y){y=!0;try{u();const f=B(a);if(!f)return;const v=p(f);b(f),E(f,v),S(f,v),T(f);const g=Y(a,f);g&&(r==="buttons"||r==="radio"?C(g):_(g)),m(f,v)}finally{y=!1}}}const I=pe({data:a,runUpdates:w});return function(){I(),s()}}const Xe=Object.freeze(Object.defineProperty({__proto__:null,subscriptionPreviewRender:Qe},Symbol.toStringTag,{value:"Module"}))})(); })("/", { suffix: "", type: "product" }, "main", 158076305573, false)</script>
12
13<!-- End of Shoplift scripts -->
14
15
16<!-- Hyperspeed:262606 -->
17<!-- hs-shared_id:03ccf8fb -->
18
19
20
21<script>window.HS_JS_OVERRIDES = [{"load_method":"ON_ACTION","match":"static.klaviyo.com","pages":null,"match_type":"SMART_DEFER_JS","extension_id":null,"file_name":null},{"load_method":"ON_ACTION","match":"codeblackbelt","pages":null,"match_type":"SMART_DEFER_JS","extension_id":null,"file_name":null},{"load_method":"ON_ACTION","match":"chatra","pages":null,"match_type":"SMART_DEFER_JS","extension_id":null,"file_name":null},{"load_method":"ON_ACTION","match":"gorgias","pages":null,"match_type":"SMART_DEFER_JS","extension_id":null,"file_name":null},{"load_method":"ON_ACTION","match":"zdassets","pages":null,"match_type":"SMART_DEFER_JS","extension_id":null,"file_name":null},{"load_method":"ON_ACTION","match":"omappapi","pages":null,"match_type":"SMART_DEFER_JS","extension_id":null,"file_name":null},{"load_method":"ON_ACTION","match":"foursixty","pages":null,"match_type":"SMART_DEFER_JS","extension_id":null,"file_name":null},{"load_method":"ON_ACTION","match":"shopifycloud\/shopify\/assets\/shopify_pay","pages":null,"match_type":"SMART_DEFER_JS","extension_id":null,"file_name":null},{"load_method":"ON_ACTION","match":"shopifycloud\/shopify\/assets\/storefront\/features","pages":null,"match_type":"SMART_DEFER_JS","extension_id":null,"file_name":null},{"load_method":"ON_ACTION","match":"shopifycloud\/shopify\/assets\/storefront\/load_feature","pages":null,"match_type":"SMART_DEFER_JS","extension_id":null,"file_name":null},{"load_method":"ON_ACTION","match":"shopifycloud\/storefront-recaptch","pages":null,"match_type":"SMART_DEFER_JS","extension_id":null,"file_name":null},{"load_method":"ON_ACTION","match":"01a08a21-5062-724b-a3f6-05b9f88f68da\/2ab921a.js","pages":["HOME","COLLECTIONS","PRODUCT","CART","OTHER"],"match_type":"APP_EMBED_JS","extension_id":"01a08a21-5062-724b-a3f6-05b9f88f68da","file_name":"2ab921a.js"},{"load_method":"DEFER","match":"01a08a21-5062-724b-a3f6-05b9f88f68da\/scripts-v2.min.js","pages":["HOME","COLLECTIONS","PRODUCT","CART","OTHER"],"match_type":"APP_EMBED_JS","extension_id":"01a08a21-5062-724b-a3f6-05b9f88f68da","file_name":"scripts-v2.min.js"},{"load_method":"ON_ACTION","match":"01a08a21-5062-724b-a3f6-05b9f88f68da\/scripts.min.js","pages":["HOME","COLLECTIONS","PRODUCT","CART","OTHER"],"match_type":"APP_EMBED_JS","extension_id":"01a08a21-5062-724b-a3f6-05b9f88f68da","file_name":"scripts.min.js"},{"load_method":"DEFER","match":"01a0cdf8-b2d2-7ccd-a251-5cf8c66ad2ca\/loader.js","pages":["HOME","COLLECTIONS","PRODUCT","CART","OTHER"],"match_type":"APP_EMBED_JS","extension_id":"01a0cdf8-b2d2-7ccd-a251-5cf8c66ad2ca","file_name":"loader.js"},{"load_method":"ON_ACTION","match":"c1eb4680-ad4e-49c3-898d-493ebb06e626\/affirm-cart-drawer-embed-handler.js","pages":["HOME","COLLECTIONS","PRODUCT","CART","OTHER"],"match_type":"APP_EMBED_JS","extension_id":"c1eb4680-ad4e-49c3-898d-493ebb06e626","file_name":"affirm-cart-drawer-embed-handler.js"},{"load_method":"DEFER","match":"01a0d4e7-ec80-7a83-9d0e-4fd71fdcdb60\/rebuy-extensions.js","pages":["HOME","COLLECTIONS","PRODUCT","CART","OTHER"],"match_type":"APP_EMBED_JS","extension_id":"01a0d4e7-ec80-7a83-9d0e-4fd71fdcdb60","file_name":"rebuy-extensions.js"},{"load_method":"DEFER","match":"01a0d61e-3051-7383-be09-dc10c7351f79\/pagefly-product.js","pages":["HOME","COLLECTIONS","PRODUCT","CART","OTHER"],"match_type":"APP_EMBED_JS","extension_id":"01a0d61e-3051-7383-be09-dc10c7351f79","file_name":"pagefly-product.js"},{"load_method":"DEFER","match":"01a0d61e-3051-7383-be09-dc10c7351f79\/pagefly-product-media.js","pages":["HOME","COLLECTIONS","PRODUCT","CART","OTHER"],"match_type":"APP_EMBED_JS","extension_id":"01a0d61e-3051-7383-be09-dc10c7351f79","file_name":"pagefly-product-media.js"},{"load_method":"DEFER","match":"01a0d61e-3051-7383-be09-dc10c7351f79\/pagefly-general-helper.js","pages":["HOME","COLLECTIONS","PRODUCT","CART","OTHER"],"match_type":"APP_EMBED_JS","extension_id":"01a0d61e-3051-7383-be09-dc10c7351f79","file_name":"pagefly-general-helper.js"},{"load_method":"DEFER","match":"01a0d61e-3051-7383-be09-dc10c7351f79\/pagefly-slideshow-v1-v2.js","pages":["HOME","COLLECTIONS","PRODUCT","CART","OTHER"],"match_type":"APP_EMBED_JS","extension_
21id":"01a0d61e-3051-7383-be09-dc10c7351f79","file_name":"pagefly-slideshow-v1-v2.js"},{"load_method":"DEFER","match":"01a0d61e-3051-7383-be09-dc10c7351f79\/pagefly-slideshow-v4.js","pages":["HOME","COLLECTIONS","PRODUCT","CART","OTHER"],"match_type":"APP_EMBED_JS","extension_id":"01a0d61e-3051-7383-be09-dc10c7351f79","file_name":"pagefly-slideshow-v4.js"},{"load_method":"DEFER","match":"01a0d61e-3051-7383-be09-dc10c7351f79\/pagefly-snap-slider.js","pages":["HOME","COLLECTIONS","PRODUCT","CART","OTHER"],"match_type":"APP_EMBED_JS","extension_id":"01a0d61e-3051-7383-be09-dc10c7351f79","file_name":"pagefly-snap-slider.js"},{"load_method":"DEFER","match":"01a0d61e-3051-7383-be09-dc10c7351f79\/pagefly-glider.js","pages":["HOME","COLLECTIONS","PRODUCT","CART","OTHER"],"match_type":"APP_EMBED_JS","extension_id":"01a0d61e-3051-7383-be09-dc10c7351f79","file_name":"pagefly-glider.js"},{"load_method":"DEFER","match":"01a0d61e-3051-7383-be09-dc10c7351f79\/pagefly-slideshow-v3.js","pages":["HOME","COLLECTIONS","PRODUCT","CART","OTHER"],"match_type":"APP_EMBED_JS","extension_id":"01a0d61e-3051-7383-be09-dc10c7351f79","file_name":"pagefly-slideshow-v3.js"},{"load_method":"DEFER","match":"01a0d61e-3051-7383-be09-dc10c7351f79\/pagefly-helper.js","pages":["HOME","COLLECTIONS","PRODUCT","CART","OTHER"],"match_type":"APP_EMBED_JS","extension_id":"01a0d61e-3051-7383-be09-dc10c7351f79","file_name":"pagefly-helper.js"}];</script>
vendor: 1 bytes, line 21
21
22<script>!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var r in n)("object"==typeof exports?exports:e)[r]=n[r]}}(self,(()=>(()=>{"use strict";var e={};(e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})})(e);const t="hyperscript/defer-load",n="ON_ACTION",r=window.HS_JS_OVERRIDES||[];function o(e,t){const n=!e||"string"!=typeof e,o=t&&t.hasAttribute("hs-ignore");if(!t&&n||o)return null;{const n=r.find((n=>e&&e.includes(n.match)||t&&t.innerHTML&&t.innerHTML.includes(n.match)&&!t.innerHTML.includes("asyncLoad")));return n?function(e,t){let n=t;if(e.cdn){n=`https://cdn.hyperspeed.me/script/${t.replace(/^(http:\/\/|https:\/\/|\/\/)/,"")}`}return{load_method:e.load_method||"default",src:n}}(n,e):null}}window.HS_LOAD_ON_ACTION_SCRIPTS=window.HS_LOAD_ON_ACTION_SCRIPTS||[];const c=document.createElement,s={src:Object.getOwnPropertyDescriptor(HTMLScriptElement.prototype,"src"),t
22ype:Object.getOwnPropertyDescriptor(HTMLScriptElement.prototype,"type")};function i(e,n){window.HS_LOAD_ON_ACTION_SCRIPTS.push([e,n]),e.type=t;const r=function(n){e.getAttribute("type")===t&&n.preventDefault(),e.removeEventListener("beforescriptexecute",r)};e.addEventListener("beforescriptexecute",r)}return document.createElement=function(...e){if("script"!==e[0].toLowerCase()||window.hsUnblocked)return c.bind(document)(...e);const r=c.bind(document)(...e);try{Object.defineProperties(r,{src:{...s.src,set(e){const r=o(e,null),c=r&&r.load_method===n,i=r?r.src:e;c&&s.type.set.call(this,t),s.src.set.call(this,i)}},type:{...s.type,set(e){const c=o(r.src,null);c&&c.load_method===n?s.type.set.call(this,t):s.type.set.call(this,e)}}}),r.setAttribute=function(e,t){"type"===e||"src"===e?r[e]=t:HTMLScriptElement.prototype.setAttribute.call(r,e,t)}}catch(e){console.warn("HyperScripts: unable to prevent script execution for script src ",r.src,".\n",'A likely cause would be because you are using a third-party browser extension that monkey patches the "document.createElement" function.')}return r},window.hsScriptObserver=new MutationObserver((e=>{for(let r=0;r<e.length;r++){const{addedNodes:c}=e[r];for(let e=0;e<c.length;e++){const r=c[e];if(1===r.nodeType&&"SCRIPT"===r.tagName)if(r.type===t)i(r,null);else{const e=o(r.src,r);e&&e.load_method===n&&i(r,r.type===t?null:r.type)}}}})),window.hsScriptObserver.observe(document.documentElement,{childList:!0,subtree:!0}),e})()));</script>
22
23
24<!-- Lazyload + Responsive Images-->
25<script defer src="//www.wakemakers.com/cdn/shop/t/336/assets/hs-lazysizes.min.js?v=123530508129183618731788387212"></script>
25
26
27<link rel="stylesheet" href="//www.wakemakers.com/cdn/shop/t/336/assets/hs-image-blur.css?v=157208600979694062561788387211" media="print" onload="this.media='all'; this.onload = null">
28<!-- Third party app optimization -->
29<!-- Is an app not updating? Just click Rebuild Cache in Hyperspeed. -->
30<!-- Or, stop deferring the app by clicking View Details on App Optimization in your Theme Optimization settings. -->
31<script hs-ignore>(function(){var hsUrls=[{"load_method":"ASYNC","original_url":"https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=wakemakers-prod.myshopify.com","pages":["HOME","COLLECTIONS","PRODUCT","CART","OTHER"]},{"load_method":"ON_ACTION","original_url":"https:\/\/cdn.shopify.com\/s\/files\/1\/0490\/8885\/6229\/t\/300\/assets\/affirmShopify.js?v=1730246387\u0026shop=wakemakers-prod.myshopify.com","pages":["HOME","COLLECTIONS","PRODUCT","CART","OTHER"]},{"load_method":"ON_ACTION","original_url":"\/\/cdn.shopify.com\/proxy\/75e88df025523c7a6023f81f4d4701140eee3002e5a89ee806e9f246185e723c\/api.kimonix.com\/kimonix_void_script.js?shop=wakemakers-prod.myshopify.com\u0026sp-cache-control=cHVibGljLCBtYXgtYWdlPTkwMA","pages":["HOME","COLLECTIONS","PRODUCT","CART","OTHER"]},{"load_method":"ON_ACTION","original_url":"https:\/\/d3hw6dc1ow8pp2.cloudfront.net\/reviewsWidget.min.js?shop=wakemakers-prod.myshopify.com","pages":["HOME","COLLECTIONS","PRODUCT","CART","OTHER"]},{"load_method":"ON_ACTION","original_url":"https:\/\/strn.rise-ai.com\/?shop=wakemakers-prod.myshopify.com","pages":["HOME","COLLECTIONS","PRODUCT","CART","OTHER"]},{"load_method":"ON_ACTION","original_url":"https:\/\/str.rise-ai.com\/?shop=wakemakers-prod.myshopify.com","pages":["HOME","COLLECTIONS","PRODUCT","CART","OTHER"]}];var insertBeforeBackup=Node.prototype.insertBefore;var currentPageType=getPageType();function getPageType(){var currentPage="product";if(currentPage==='index'){return'HOME';}else if(currentPage==='collection'){return'COLLECTIONS';}else if(currentPage==='product'){return'PRODUCT';}else if(currentPage==='cart'){return'CART';}else{return'OTHER';}}
32function isWhitelistedPage(script){return script.pages.includes(currentPageType);}
33function getCachedScriptUrl(url){var result=(hsUrls||[]).find(function(el){var compareUrl=el.original_url;if(url.substring(0,6)==="https:"&&el.original_url.substring(0,2)==="//"){compareUrl="https:"+el.original_url;}
34return url==compareUrl;});return result;}
35function loadScript(scriptInfo){if(isWhitelistedPage(scriptInfo)){var s=document.createElement('script');s.type='text/javascript';s.async=true;s.src=scriptInfo.original_url;var x=document.getElementsByTagName('script')[0];insertBeforeBackup.apply(x.parentNode,[s,x]);}}
36var userEvents={touch:["touchmove","touchend"],mouse:["mousemove","click","keydown","scroll"]};function isTouch(){var touchIdentifiers=" -webkit- -moz- -o- -ms- ".split(" ");if("ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch){return true;}
37var query=["(",touchIdentifiers.join("touch-enabled),("),"hsterminal",")"].join("");return window.matchMedia(query).matches;}
38var actionEvents=isTouch()?userEvents.touch:userEvents.mouse;function loadOnUserAction(){(hsUrls||[]).filter(function(url){return url.load_method==='ON_ACTION';}).forEach(function(scriptInfo){loadScript(scriptInfo)})
39actionEvents.forEach(function(userEvent){document.removeEventListener(userEvent,loadOnUserAction);});}
40Node.prototype.insertBefore=function(newNode,refNode){if(newNode.type!=="text/javascript"&&newNode.type!=="application/javascript"&&newNode.type!=="application/ecmascript"){return insertBeforeBackup.apply(this,arguments);}
41var scriptInfo=getCachedScriptUrl(newNode.src);if(!scriptInfo){return insertBeforeBackup.apply(this,arguments);}
42if(isWhitelistedPage(scriptInfo)&&scriptInfo.load_method!=='ON_ACTION'){var s=document.createElement('script');s.type='text/javascript';s.async=true;s.src=scriptInfo.original_url;insertBeforeBackup.apply(this,[s,refNode]);}}
43actionEvents.forEach(function(userEvent){document.addEventListener(userEvent,loadOnUserAction);});})();</script>
43
44
45<!-- instant.load -->
46<script defer src="//www.wakemakers.com/cdn/shop/t/336/assets/hs-instantload.min.js?v=106803949153345037901788387212"></script>
46
47
48<!-- defer JS until action -->
49<script async src="//www.wakemakers.com/cdn/shop/t/336/assets/hs-script-loader.min.js?v=24912448706018637961788387213"></script>
49
50
51
52
53
54<style id='hs-critical-css'>@font-face{font-family:Source Sans Pro;font-style:normal;font-weight:300;src:url(https://www.wakemakers.com/cdn/shop/t/298/assets/SourceSansPro-Light.woff2) format("woff2"),url(https://www.wakemakers.com/cdn/shop/t/298/assets/SourceSansPro-Light.woff) format("woff"),url(https://www.wakemakers.com/cdn/shop/t/298/assets/SourceSansPro-Light.svg#SourceSansPro-Light) format("svg")}@font-face{font-family:Source Sans Pro;font-style:normal;font-weight:400;src:url(https://www.wakemakers.com/cdn/shop/t/298/assets/SourceSansPro-Regular.woff2) format("woff2"),url(https://www.wakemakers.com/cdn/shop/t/298/assets/SourceSansPro-Regular.woff) format("woff"),url(https://www.wakemakers.com/cdn/shop/t/298/assets/SourceSansPro-Regular.svg#SourceSansPro-Regular) format("svg")}@font-face{font-family:Source Sans Pro;font-style:normal;font-weight:700;src:url(https://www.wakemakers.com/cdn/shop/t/298/assets/SourceSansPro-Bold.woff2) format("woff2"),url(https://www.wakemakers.com/cdn/shop/t/298/assets/SourceSansPro-Bold.woff) format("woff"),url(https://www.wakemakers.com/cdn/shop/t/298/assets/SourceSansPro-Bold.svg#SourceSansPro-Bold) format("svg")}@font-face{font-family:Source Sans Pro;font-style:normal;font-weight:600;src:url(https://www.wakemakers.com/cdn/shop/t/298/assets/SourceSansPro-SemiBold.woff2) format("woff2"),url(https://www.wakemakers.com/cdn/shop/t/298/assets/SourceSansPro-SemiBold.woff) format("woff"),url(https://www.wakemakers.com/cdn/shop/t/298/assets/SourceSansPro-SemiBold.svg#SourceSansPro-SemiBold) format("svg")}@font-face{font-family:icomoon-custom;font-style:normal;font-weight:400;src:url(https://www.wakemakers.com/cdn/shop/t/298/assets/icomoon-custom.eot) format("embedded-opentype"),url(https://www.wakemakers.com/cdn/shop/t/298/assets/icomoon-custom.woff2) format("woff2"),url(https://www.wakemakers.com/cdn/shop/t/298/assets/icomoon-custom.ttf) format("truetype"),url(https://www.wakemakers.com/cdn/shop/t/298/assets/icomoon-custom.woff) format("woff"),url(https://www.wakemakers.com/cdn/shop/t/298/assets/icomoon-custom.svg#icomoon-custom) format("svg")}.rotate-\[-90deg\]{transform:var(--tw-transform)}[type=submit],button{-webkit-appearance:button}h1,h2,h3,p{margin:0}.flickity-enabled{position:relative}.flickity-viewport{height:100%;overflow:hidden;position:relative}.flickity-slider{height:100%;position:absolute;width:100%}*,:after,:before{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-transform:translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));--tw-ring-inset:var(--tw-empty,);--tw-ring-offset-width:0;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-blur:var(--tw-empty,);--tw-brightness:var(--tw-empty,);--tw-contrast:var(--tw-empty,);--tw-grayscale:var(--tw-empty,);--tw-hue-rotate:var(--tw-empty,);--tw-invert:var(--tw-empty,);--tw-saturate:var(--tw-empty,);--tw-sepia:var(--tw-empty,);--tw-drop-shadow:var(--tw-empty,);--tw-filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);border:0 solid;border-color:currentColor}@media screen and (min-width:48rem){:root{--footer-height:30.3125rem}}@media screen and (min-width:64rem){:root{--footer-height:23.5625rem}}@media screen and (min-width:68.125rem){:root{--footer-height:22.0625rem}}:focus{outline:transparent solid .125rem;outline-offset:.125rem}.no-js:not(html){display:none!important}.visually-hidden:not(:focus):not(:active){clip:rect(0 0 0 0);height:0!important;height:.0625rem;overflow:hidden!important;position:absolute!important;white-space:nowrap!important;width:0!important;width:.0625rem}.icon{display:inline-block;width:100%}.icon:not(.icon--full-color){fill:currentColor}body{font-family:Source Sans Pro,Helvetica,sans-serif}h1{font-size:1.75rem;font-weight:400}.btn{--tw-text-opacity:1;border-color:transparent;border-radius:.125rem;color:rgba(255,255,255,var(--tw-text-opacity));display:inline-block;font-weight:600;padding:.5rem 1.75rem;white-space:nowrap}.btn--green{--tw-bg-opacity:1;background-color:rgba(37,213,136,var(--tw-bg-opacity))}.btn--orange{--tw-bg-opacity:1;background-color:rgba(255,106,30,var(--tw-bg-opacity))}.btn--gray{--tw-bg-opacity:1;background-color:rgba(186,186,186,var(--tw-bg-opacity))}input[type=search]::-ms-clear,input[type=search]::-ms-reveal{display:none;height:0;width:0}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration,input[type=search]::-webkit-search-results-button,input[type=search]::-webkit-search-results-decoration{dis
54play:none}.form__label{font-size:.875rem;font-weight:600;text-transform:uppercase}.z-\[2\]{z-index:2}.z-\[3\]{z-index:3}.z-\[6\]{z-index:6}.h-\[22px\]{height:1.375rem}.h-\[60px\]{height:3.75rem}.max-h-\[calc\(100vh-var\(--header-height\)\)\]{max-height:calc(100vh - var(--header-height))}.max-h-\[10px\]{max-height:.625rem}.\!max-h-\[60vh\]{max-height:60vh!important}.w-\[36px\]{width:2.25rem}.w-\[30px\]{width:1.875rem}.w-\[146px\]{width:9.125rem}.w-\[35px\]{width:2.1875rem}.w-\[22px\]{width:1.375rem}.w-\[388px\]{width:24.25rem}.w-\[40px\]{width:2.5rem}.w-\[180px\]{width:11.25rem}.w-\[20px\]{width:1.25rem}.max-w-\[1140px\]{max-width:71.25rem}.max-w-\[100vw\]{max-width:100vw}.\!max-w-\[80vh\]{max-width:80vh!important}.-translate-y-1\/2{--tw-translate-y:-50%;transform:var(--tw-transform)}.translate-x-\[25\%\]{--tw-translate-x:25%;transform:var(--tw-transform)}.translate-y-\[-25\%\]{--tw-translate-y:-25%;transform:var(--tw-transform)}.translate-y-full{--tw-translate-y:100%;transform:var(--tw-transform)}.rotate-180{transform:var(--tw-transform)}.rotate-\[-90deg\]{--tw-rotate:-90deg}.rotate-\[-90deg\],.transform{transform:var(--tw-transform)}.\!list-none{list-style-type:none!important}.rounded-\[50\%\]{border-radius:50%}.rounded-none{border-radius:0}.bg-\[\#eff1f3\]{--tw-bg-opacity:1;background-color:rgba(239,241,243,var(--tw-bg-opacity))}.fill-\[\#0199FF\]{fill:#0199ff}.fill-\[\#ECEFF1\]{fill:#eceff1}.fill-\[\#D4D9DD\]{fill:#d4d9dd}.fill-\[\#7B8084\]{fill:#7b8084}.fill-\[\#787D81\]{fill:#787d81}.fill-\[\#B3B3B3\]{fill:#b3b3b3}.fill-\[\#BBC4CB\]{fill:#bbc4cb}.fill-\[\#1395ED\]{fill:#1395ed}.fill-\[\#E1F3F5\]{fill:#e1f3f5}.stroke-\[\#BBC4CB\]{stroke:#bbc4cb}.py-\[5px\]{padding-bottom:.3125rem;padding-top:.3125rem}.pb-\[1px\]{padding-bottom:.0625rem}.text-\[24px\]{font-size:1.5rem}.text-\[20px\]{font-size:1.25rem}.text-\[18px\]{font-size:1.125rem}.text-\[0px\]{font-size:0}.text-\[32px\]{font-size:2rem}.text-\[\#39f\]{--tw-text-opacity:1;color:rgba(51,153,255,var(--tw-text-opacity))}.lazypicture img{aspect-ratio:var(--ar-mobile)}s-drawer{--tw-bg-opacity:1;background-color:rgba(255,255,255,var(--tw-bg-opacity));display:none;max-width:20rem;overflow:hidden;position:fixed;transform:var(--tw-transform);width:100%;z-index:3}s-drawer[position=left],s-drawer[position=right]{bottom:0;top:0}s-drawer[position=right]{--tw-translate-x:100%;right:0;transform:var(--tw-transform)}s-drawer[position=left]{--tw-translate-x:-100%;left:0;transform:var(--tw-transform)}.drawer-background:after{--tw-bg-opacity:1;--tw-bg-opacity:.6;background-color:rgba(0,0,0,var(--tw-bg-opacity));bottom:0;content:"";height:100%;left:0;opacity:0;position:fixed;right:0;top:0;visibility:hidden;width:100%;z-index:2}s-modal{--tw-translate-y:-50%;--tw-translate-x:-50%;--tw-bg-opacity:1;background-color:rgba(255,255,255,var(--tw-bg-opacity));display:none;left:50%;margin:auto;max-height:75vh;opacity:0;overflow:auto;position:fixed;top:50%;transform:var(--tw-transform);z-index:3}.modal-background:after{--tw-bg-opacity:1;--tw-bg-opacity:.6;background-color:rgba(0,0,0,var(--tw-bg-opacity));bottom:0;content:"";height:100%;left:0;opacity:0;position:fixed;right:0;top:0;visibility:hidden;width:100%;z-index:2}#shopify-section-header{z-index:5}.announcement__slide a{--tw-text-opacity:1;color:rgba(51,153,255,var(--tw-text-opacity))}.accordion{display:block}.accordion-header{position:relative;text-align:left;width:100%}.accordion-content[aria-hidden=true]{max-height:0}.accordion-header:after{font-size:1.5rem;position:absolute;right:0;top:50%;transform:translateY(-50%)}.accordion-header[aria-expanded=true]{opacity:.7}.accordion-header[aria-expanded=true]:after{background:url(https://www.wakemakers.com/cdn/shop/t/298/assets/accordion-arrow.png) 50% no-repeat;content:"";height:1.3125rem;position:absolute;right:.9375rem;top:50%;width:1.5625rem}.accordion-header[aria-expanded=true]:after{transform:translateY(-50%) rotate(-90deg)}.accordion-content{background-color:#fff;overflow:hidden}html{-webkit-text-size-adjust:100%;line-height:1.15;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;margin:0}button,input,select{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}[type=button],[type=submit],button{-webkit-appearance:button}::-moz-focus-inner{border-style:none;padding:0}:-moz-focusring{outline:ButtonText dotted .0625rem}:-moz-ui-invalid{box-shadow:none}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-.125rem}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}dd,dl,h1,h2,h3,p{margin:0}button{background-color:transparent;background-image:none}ul{margin:0;padding:0}ul{list-style:none}html{font-family:Source Sans Pro,Helvetica,sans-serif;line-height:1.5}body{font-family:inherit;line-height:inherit}*,:after,:before{border-style:solid;border-width:0;box-sizing:border-box}img{border-style:solid}input::-moz-placeholder{color:#a1a1aa;opacity:1}input:-ms-input-placeholder{color:#a1a1aa;opacity:1}:-moz-focusring{outline:auto}h1,h2,h3{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}button,input,select{color:inherit;line-height:inherit;padding:0}iframe,img,svg{display:block;vertical-align:middle}img{height:auto;max-width:100%}[hidden]{display:none}*,:after,:before{border-color:currentColor}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:-webkit-sticky;position:sticky}.top-0{top:0}.top-8{top:.5rem}.top-12{top:.75rem}.top-16{top:1rem}.top-1\/2{top:50%}.right-0{right:0}.right-8{right:.5rem}.right-12{right:.75rem}.right-16{right:1rem}.bottom-0{bottom:0}.bottom-8{bottom:.5rem}.bottom-12{bottom:.75rem}.left-0{left:0}.col-span-2{grid-column:span 2/span 2}.m-16{margin:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-32{margin-bottom:2rem;margin-top:2rem}.mt-8{margin-top:.5rem}.mt-16{margin-top:1rem}.mr-8{margin-right:.5rem}.mr-12{margin-right:.75rem}.mr-16{margin-right:1rem}.mb-4{margin-bottom:.25rem}.mb-8{margin-bottom:.5rem}.mb-16{margin-bottom:1rem}.mb-32{margin-bottom:2rem}.ml-8{margin-left:.5rem}.ml-16{margin-left:1rem}.ml-auto{margin-left:auto}.block{display:block}.inline-block{display:inline-block}
54.flex{display:flex}.grid{display:grid}.hidden{display:none}.h-12{height:.75rem}.h-16{height:1rem}.h-32{height:2rem}.h-64{height:4rem}.h-auto{height:auto}.h-full{height:100%}.min-h-header{min-height:calc(100vh - var(--header-height))}.w-12{width:.75rem}.w-16{width:1rem}.w-20{width:1.25rem}.w-24{width:1.5rem}.w-32{width:2rem}.w-64{width:4rem}.w-72{width:4.5rem}.w-2\/3{width:66.666667%}.w-3\/4{width:75%}.w-full{width:100%}.flex-grow{flex-grow:1}.transform{transform:translate(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1}.translate-y-full{--tw-translate-y:100%}.-translate-y-1\/2{--tw-translate-y:-50%}.rotate-180{--tw-rotate:180deg}@-webkit-keyframes pulse{50%{opacity:.5}}@keyframes pulse{50%{opacity:.5}}.animate-pulse{-webkit-animation:2s cubic-bezier(.4,0,.6,1) infinite pulse;animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.overflow-hidden{overflow:hidden}.overflow-scroll{overflow:scroll}.overflow-y-auto{overflow-y:auto}.rounded-br-2{border-bottom-right-radius:.125rem}.rounded-bl-2{border-bottom-left-radius:.125rem}.border-2{border-width:.125rem}.border{border-width:.0625rem}.border-t-0{border-top-width:0}.border-t{border-top-width:.0625rem}.border-b{border-bottom-width:.0625rem}.border-solid{border-style:solid}.border-transparent{border-color:transparent}.border-gray{--tw-border-opacity:1;border-color:rgba(186,186,186,var(--tw-border-opacity))}.border-gray-light{--tw-border-opacity:1;border-color:rgba(240,241,243,var(--tw-border-opacity))}.border-blue-dark{--tw-border-opacity:1;border-color:rgba(33,114,195,var(--tw-border-opacity))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity:1;background-color:rgba(255,255,255,var(--tw-bg-opacity))}.bg-black{--tw-bg-opacity:1;background-color:rgba(39,39,39,var(--tw-bg-opacity))}.bg-gray-dark{--tw-bg-opacity:1;background-color:rgba(65,65,65,var(--tw-bg-opacity))}.bg-gray-light{--tw-bg-opacity:1;background-color:rgba(240,241,243,var(--tw-bg-opacity))}.bg-blue-dark{--tw-bg-opacity:1;background-color:rgba(33,114,195,var(--tw-bg-opacity))}.bg-blue{--tw-bg-opacity:1;background-color:rgba(51,153,255,var(--tw-bg-opacity))}.p-0{padding:0}.p-8{padding:.5rem}.p-16{padding:1rem}.p-32{padding:2rem}.px-12{padding-left:.75rem;padding-right:.75rem}.px-16{padding-left:1rem;padding-right:1rem}.py-8{padding-bottom:.5rem;padding-top:.5rem}.py-12{padding-bottom:.75rem;padding-top:.75rem}.py-16{padding-bottom:1rem;padding-top:1rem}.pr-16{padding-right:1rem}.pr-40{padding-right:2.5rem}.pb-32{padding-bottom:2rem}.pl-16{padding-left:1rem}.pl-32{padding-left:2rem}.text-center{text-align:center}.text-14{font-size:.875rem}.text-16{font-size:1rem}.text-20{font-size:1.25rem}.text-28{font-size:1.75rem}.font-300{font-weight:300}.font-400{font-weight:400}.font-500{font-weight:500}.font-600{font-weight:600}.font-700{font-weight:700}.uppercase{text-transform:uppercase}.italic{font-style:italic}.text-white{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.text-black{--tw-text-opacity:1;color:rgba(39,39,39,var(--tw-text-opacity))}.text-gray-dark{--tw-text-opacity:1;color:rgba(65,65,65,var(--tw-text-opacity))}.text-gray{--tw-text-opacity:1;color:rgba(186,186,186,var(--tw-text-opacity))}.text-blue{--tw-text-opacity:1;color:rgba(51,153,255,var(--tw-text-opacity))}.text-green{--tw-text-opacity:1;color:rgba(37,213,136,var(--tw-text-opacity))}.placeholder-current::-moz-placeholder{color:currentColor}.placeholder-current:-ms-input-placeholder{color:currentColor}.opacity-0{opacity:0}
54.opacity-5{opacity:.05}*,:after,:before{--tw-shadow:0 0 transparent}*,:after,:before{--tw-ring-inset:var(--tw-empty,);--tw-ring-offset-width:0;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 transparent;--tw-ring-shadow:0 0 transparent}@media (min-width:64rem){.tabletl\:block{display:block}.tabletl\:flex{display:flex}.tabletl\:hidden{display:none}.tabletl\:border-white{--tw-border-opacity:1;border-color:rgba(255,255,255,var(--tw-border-opacity))}.tabletl\:bg-white{--tw-bg-opacity:1;background-color:rgba(255,255,255,var(--tw-bg-opacity))}}@media (min-width:64.0625rem){.desktop\:sticky{position:-webkit-sticky;position:sticky}.desktop\:m-0{margin:0}.desktop\:my-0{margin-bottom:0;margin-top:0}.desktop\:mt-12{margin-top:.75rem}.desktop\:mb-0{margin-bottom:0}.desktop\:mb-16{margin-bottom:1rem}.desktop\:block{display:block}.desktop\:grid{display:grid}.desktop\:hidden{display:none}.desktop\:items-start{align-items:flex-start}.desktop\:justify-start{justify-content:flex-start}.desktop\:gap-24{gap:1.5rem}.desktop\:border-t-0{border-top-width:0}.desktop\:p-0{padding:0}.desktop\:p-32{padding:2rem}.desktop\:px-16{padding-left:1rem;padding-right:1rem}.desktop\:px-32{padding-left:2rem;padding-right:2rem}.desktop\:pt-44{padding-top:2.75rem}.desktop\:text-left{text-align:left}}#MobileNavDrawer{max-height:calc(100% - env(safe-area-inset-bottom))}.mobile-drawer__accordion{height:calc(100% - 9.8125rem - env(safe-area-inset-bottom));overflow:scroll}.mobile-drawer__footer{padding-bottom:calc(1.875rem + env(safe-area-inset-bottom))}.search__input::-moz-placeholder{--tw-text-opacity:1;--webkit-appearance:none;border-radius:0;color:rgba(255,255,255,var(--tw-text-opacity))}.search__input:-ms-input-placeholder{--tw-text-opacity:1;--webkit-appearance:none;border-radius:0;color:rgba(255,255,255,var(--tw-text-opacity))}.product input::-webkit-inner-spin-button,.product input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.product input[type=number]{-moz-appearance:textfield}.product__tabs{top:var(--header-height)}.product__tab.active{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(39,39,39,var(--tw-bg-opacity));color:rgba(255,255,255,var(--tw-text-opacity))}.accordion-header.product-description-content__header:after{content:none}.product-description-content__header[aria-expanded=true] .product-description-content__icon-carat{--tw-rotate:180deg;transform:var(--tw-transform)}s-modal.product-features__modal{left:0;top:calc(5vh + var(--header-height));transform:none}.product-features__modal h3{--tw-border-opacity:1;border-bottom:.0625rem;border-color:rgba(186,186,186,var(--tw-border-opacity));border-style:solid;font-size:.875rem;font-weight:700;padding-bottom:1rem;text-transform:uppercase}.product-features__modal p{font-size:.875rem;padding-bottom:1rem;padding-top:1rem}.product-features__modal p+p{padding-top:0}.product-features__modal ul{list-style-type:disc;padding-left:1rem}.product-features__modal li{font-size:.875rem}.product-features__modal li:not(:last-child){padding-bottom:1rem}.icon-custom{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:icomoon-custom!important;font-style:normal;font-weight:400;line-height:1;text-transform:none}.icon-custom:before{font-size:1.5rem}.icon-custom-price:before{content:"\e901"}.icon-custom-return:before{content:"\e908"}.icon-custom-headset:before{content:"\e902"}.icon-custom-truck:before{content:"\e900"}.icon-custom-warning:before{content:"\e90a"}.icon-custom-phone:before{content:"\e906"}.icon-custom-mail:before{content:"\e904"}.icon-custom-boat:before{content:"\e903"}.icon-custom-prop:before{content:"\e907"}.icon-custom-surf:before{content:"\e909"}@media screen and (min-width:64.0625rem){.product__information-container{top:var(--header-height)}}@media (min-width:48rem){.lazypicture img{aspect-ratio:var(--ar-desktop,var(--ar-mobile))}.tabletp\:min-h-header-footer{min-height:calc(100vh - var(--header-height) - var(--footer-height))}.tabletp\:max-w-\[500px\]{max-width:31.25rem}}@media (min-width:64rem){.tabletl\:block{display:block}.tabletl\:flex{display:flex}.tabletl\:hidden{display:none}.tabletl\:w-\[194px\]{width:12.125rem}.tabletl\:border-white{--tw-border-opacity:1;border-color:rgba(255,255,255,var(--tw-border-opacity))}.tabletl\:bg-white{--tw-bg-opacity:1;background-color:rgba(255,255,255,var(--tw-bg-opacity))}}@media (min-width:64.0625rem){s-modal.product-features__modal{left:50%;
54top:60%;transform:var(--tw-transform)}.desktop\:sticky{position:-webkit-sticky;position:sticky}.desktop\:m-0{margin:0}.desktop\:my-0{margin-bottom:0;margin-top:0}.desktop\:mb-0{margin-bottom:0}.desktop\:mt-12{margin-top:.75rem}.desktop\:mb-16{margin-bottom:1rem}.desktop\:mt-\[-203px\]{margin-top:-12.6875rem}.desktop\:mt-\[-68px\]{margin-top:-4.25rem}.desktop\:block{display:block}.desktop\:grid{display:grid}.desktop\:hidden{display:none}.desktop\:grid-cols-\[auto\,388px\]{grid-template-columns:auto 24.25rem}.desktop\:grid-cols-\[56px\,1fr\]{grid-template-columns:3.5rem 1fr}.desktop\:items-start{align-items:flex-start}.desktop\:justify-start{justify-content:flex-start}.desktop\:gap-24{gap:1.5rem}.desktop\:border-t-0{border-top-width:0}.desktop\:p-0{padding:0}.desktop\:p-32{padding:2rem}.desktop\:px-16{padding-left:1rem;padding-right:1rem}.desktop\:px-32{padding-left:2rem;padding-right:2rem}.desktop\:pt-44{padding-top:2.75rem}.desktop\:pt-\[203px\]{padding-top:12.6875rem}.desktop\:pt-\[68px\]{padding-top:4.25rem}.desktop\:text-left{text-align:left}}a.swym-wishlist{margin-right:10px}@media all and (max-width:1000px){.product-container [data-oke-reviews-product-listing-rating]{text-align:center}}</style>
55
56
57      
58      <meta charset="utf-8">
59      <meta http-equiv="X-UA-Compatible" content="IE=edge">
60      <meta name="viewport" content="width=device-width,initial-scale=1">
61      <meta name="theme-color" content="">
62      
63      
64  
65      
66
67      
68
69      
70        <link rel="canonical" href="https://www.wakemakers.com/products/wakemakers-rear-lbs-ballast-bag" />
71      
72      
73      <link rel="preconnect" href="https://cdn.shopify.com" crossorigin>
74      <link rel="dns-prefetch" href="https://static.zdassets.com">
75      <link rel="dns-prefetch" href="https://cdn.shopify.com">
76      <link rel="dns-prefetch" href="https://connect.facebook.net">
77      <link rel="dns-prefetch" href="https://static.klaviyo.com">
78      <link rel="dns-prefetch" href="https://cdnjs.cloudflare.com"><link rel="preconnect" href="https://fonts.shopifycdn.com" crossorigin>
79        <link rel="shortcut icon" href="//www.wakemakers.com/cdn/shop/files/WM_Flavicon_32x32.png?v=1645204198" type="image/png">
80      
81
82  
83      <title>
84        
85          
86            WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) | WakeMAKERS
87          
88        
89      </title>
90  
91      
92        
93          <meta name="description" content="Free shipping, expert advice and our best price promise on the WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) at WakeMAKERS.">
94        
95      
96
97      <meta name="google-site-verification" content="hBP0yMHPaHeDIWIDkmowWuIu8TZdup5RWPePTI2uk1Y" />
98      
99      
100
101<meta property="og:site_name" content="WakeMAKERS">
102<meta property="og:url" content="https://www.wakemakers.com/products/wakemakers-rear-lbs-ballast-bag">
103<meta property="og:title" content="WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)">
104<meta property="og:type" content="product">
105<meta property="og:description" content="Our exclusive WakeMAKERS UniversalFIT Rear Locker Ballast Bags are making a splash in the industry and forever changing how boaters look at ballast bags. The team of product designers and engineers at WakeMAKERS agreed that a &#39;one-size fits all&#39; approach that other brands are taking isn&#39;t good enough. Seeking a better "><meta property="og:image" content="http://www.wakemakers.com/cdn/shop/files/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349">
106  <meta property="og:image:secure_url" content="https://www.wakemakers.com/cdn/shop/files/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349">
107  <meta property="og:image:width" content="1000">
108  <meta property="og:image:height" content="1001"><meta property="og:price:amount" content="169.99">
109  <meta property="og:price:currency" content="USD"><meta name="twitter:card" content="summary_large_image">
110<meta name="twitter:title" content="WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)">
111<meta name="twitter:description" content="Our exclusive WakeMAKERS UniversalFIT Rear Locker Ballast Bags are making a splash in the industry and forever changing how boaters look at ballast bags. The team of product designers and engineers at WakeMAKERS agreed that a &#39;one-size fits all&#39; approach that other brands are taking isn&#39;t good enough. Seeking a better ">
112
113  
114      
114<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
114<meta name="google-site-verification" content="k_EqSBQDIB2fqxZ0vrrxpEc5tntq1MWYI1cVW0t1RqQ">
115<meta name="facebook-domain-verification" content="wtbilbhxq5wonznkym1o618h2i3axa">
116<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/49088856229/digital_wallets/dialog">
117<meta id="in-context-paypal-metadata" data-shop-id="49088856229" data-venmo-supported="true" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="USD">
118<link rel="ucp" href="/.well-known/ucp" version="2026-08-25"><link rel="buy" href="/cart/41675600920741:1?ucp/version=2026-08-25&amp;context/payment/0/handler=dev.shopify.shop_pay" payment="dev.shopify.shop_pay com.google.pay dev.shopify.card"><link rel="alternate" type="application/json+oembed" href="https://www.wakemakers.com/products/wakemakers-rear-lbs-ballast-bag.oembed">
119<script async="async" src="/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=891355301"></script>
119
120<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
121<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=891355301&shop_id=49088856229" crossorigin="anonymous"></script>
vendor: 1 bytes, line 121
121
122<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":49088856229,"countryCode":"US","currencyCode":"USD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/49088856229","merchantName":"WakeMAKERS","requiredBillingContactFields":["postalAddress","email","phone"],"requiredShippingContactFields":["postalAddress","email","phone"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","amex","discover","elo","jcb"],"total":{"type":"pending","label":"WakeMAKERS","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 122
122
123<script id="shopify-features" type="application/json">{"accessToken":"3413dc84a393718bc38523d6111d9333","betas":["rich-media-storefront-analytics"],"domain":"www.wakemakers.com","predictiveSearch":true,"shopId":49088856229,"locale":"en"}</script>
vendor: 1 bytes, line 123
123
124<script>var Shopify = Shopify || {};
125Shopify.shop = "wakemakers-prod.myshopify.com";
126Shopify.locale = "en";
127Shopify.currency = {"active":"USD","rate":"1.0"};
128Shopify.country = "US";
129Shopify.theme = {"name":"wakemakers\/live","id":158076305573,"schema_name":"WakeMakers","schema_version":"1.1.0","theme_store_id":null,"role":"main"};
130Shopify.theme.handle = "null";
131Shopify.theme.style = {"id":null,"handle":null};
132Shopify.cdnHost = "www.wakemakers.com/cdn";
133Shopify.routes = Shopify.routes || {};
134Shopify.routes.root = "/";
135Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js";
136Shopify.SignInWithShop = Shopify.SignInWithShop || {};
137Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {};
138Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 138
138
139<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 139
139
140<script>!function(o){function n(){var o=[];function n(){o.push(Array.prototype.slice.apply(arguments))}return n.q=o,n}var t=o.Shopify=o.Shopify||{};t.loadFeatures=n(),t.autoloadFeatures=n()}(window);</script>
vendor: 1 bytes, line 140
140
141<script>
142  window.ShopifyPay = window.ShopifyPay || {};
143  window.ShopifyPay.apiHost = "shop.app\/pay";
144  window.ShopifyPay.redirectState = null;
145</script>
vendor: 1 bytes, line 145
145
146<script>
147  window.Shopify = window.Shopify || {};
148  window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {};
149  window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 };
150  window.Shopify.SignInWithShop.eligible = true;
151</script>
vendor: 1 bytes, line 151
151
152<script id="shop-js-analytics" type="application/json">{"pageType":"product"}</script>
vendor: 1 bytes, line 152
152
153<script defer="defer" async type="module" src="https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"></script>
vendor: 1 bytes, line 153
153
154<script type="module">
155  await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js");
156
157  window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true});
158
159</script>
vendor: 1 bytes, line 159
159
160<script>
161  window.Shopify = window.Shopify || {};
162  if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {};
163  window.Shopify.featureAssets['shop-js'] = {"avatar":["modules/v2/loader.avatar.en.esm.js"],"checkout-modal":["modules/v2/loader.checkout-modal.en.esm.js"],"init-customer-accounts-sign-up":["modules/v2/loader.init-customer-accounts-sign-up.en.esm.js"],"init-customer-accounts":["modules/v2/loader.init-customer-accounts.en.esm.js"],"init-fed-cm":["modules/v2/loader.init-fed-cm.en.esm.js"],"init-shop-cart-sync":["modules/v2/loader.init-shop-cart-sync.en.esm.js"],"init-shop-email-lookup-coordinator":["modules/v2/loader.init-shop-email-lookup-coordinator.en.esm.js"],"init-shop-for-new-customer-accounts":["modules/v2/loader.init-shop-for-new-customer-accounts.en.esm.js"],"init-shop-user-recognition":["modules/v2/loader.init-shop-user-recognition.en.esm.js"],"init-windoid":["modules/v2/loader.init-windoid.en.esm.js"],"lead-capture":["modules/v2/loader.lead-capture.en.esm.js"],"listener":["modules/v2/loader.listener.en.esm.js"],"pay-button":["modules/v2/loader.pay-button.en.esm.js"],"payment-terms":["modules/v2/loader.payment-terms.en.esm.js"],"shop-button":["modules/v2/loader.shop-button.en.esm.js"],"shop-cart-sync":["modules/v2/loader.shop-cart-sync.en.esm.js"],"shop-cash-offers":["modules/v2/loader.shop-cash-offers.en.esm.js"],"shop-follow-button":["modules/v2/loader.shop-follow-button.en.esm.js"],"shop-login-button":["modules/v2/loader.shop-login-button.en.esm.js"],"shop-login":["modules/v2/loader.shop-login.en.esm.js"],"shop-toast-manager":["modules/v2/loader.shop-toast-manager.en.esm.js"],"shop-user-recognition":["modules/v2/loader.shop-user-recognition.en.esm.js"]};
164</script>
vendor: 1 bytes, line 164
164
165<script>(function() {
166  var isLoaded = false;
167  function asyncLoad() {
168    if (isLoaded) return;
169    isLoaded = true;
170    var urls = ["https:\/\/str.rise-ai.com\/?shop=wakemakers-prod.myshopify.com","https:\/\/strn.rise-ai.com\/?shop=wakemakers-prod.myshopify.com","https:\/\/d3hw6dc1ow8pp2.cloudfront.net\/reviewsWidget.min.js?shop=wakemakers-prod.myshopify.com","https:\/\/cdn.shopify.com\/s\/files\/1\/0490\/8885\/6229\/t\/300\/assets\/affirmShopify.js?v=1730246387\u0026shop=wakemakers-prod.myshopify.com","https:\/\/cdn.rebuyengine.com\/onsite\/js\/rebuy.js?shop=wakemakers-prod.myshopify.com","\/\/cdn.shopify.com\/proxy\/75e88df025523c7a6023f81f4d4701140eee3002e5a89ee806e9f246185e723c\/api.kimonix.com\/kimonix_void_script.js?shop=wakemakers-prod.myshopify.com\u0026sp-cache-control=cHVibGljLCBtYXgtYWdlPTkwMA"];
171    for (var i = 0; i < urls.length; i++) {
172      var s = document.createElement('script');
173      s.type = 'text/javascript';
174      s.async = true;
175      s.src = urls[i];
176      var x = document.getElementsByTagName('script')[0];
177      x.parentNode.insertBefore(s, x);
178    }
179  };
180  if(window.attachEvent) {
181    window.attachEvent('onload', asyncLoad);
182  } else {
183    window.addEventListener('load', asyncLoad, false);
184  }
185})();</script>
vendor: 1 bytes, line 185
185
186<script id="__st">var __st={"a":49088856229,"offset":-25200,"reqid":"1277f873-4a8e-4114-8cc8-bb4ec1b8c851-1790324395","pageurl":"www.wakemakers.com\/products\/wakemakers-rear-lbs-ballast-bag","u":"6168af0a9bf9","p":"product","rtyp":"product","rid":7759285649573};</script>
vendor: 1 bytes, line 186
186
187<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 187
187
188<script id="captcha-bootstrap">!function(){'use strict';const t='contact',e='account',n='new_comment',o=[[t,t],['blogs',n],['comments',n],[t,'customer']],c=[[e,'customer_login'],[e,'guest_login'],[e,'recover_customer_password'],[e,'create_customer']],r=t=>t.map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(','),a=t=>()=>t?[...document.querySelectorAll(t)].map((t=>t.form)):[];function s(){const t=[...o],e=r(t);return a(e)}const i='password',u='form_key',d=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',i],f=()=>{try{return window.sessionStorage}catch{return}},m='__shopify_v',_=t=>t.elements[u];function p(t,e,n=!1){try{const o=window.sessionStorage,c=JSON.parse(o.getItem(e)),{data:r}=function(t){const{data:e,action:n}=t;return t[m]||n?{data:e,action:n}:{data:t,action:n}}(c);for(const[e,n]of Object.entries(r))t.elements[e]&&(t.elements[e].value=n);n&&o.removeItem(e)}catch(o){console.error('form repopulation failed',{error:o})}}const l='form_type',E='cptcha';function T(t){t.dataset[E]=!0}const w=window,h=w.document,L='Shopify',v='ce_forms',y='captcha';let A=!1;((t,e)=>{const n=(g='f06e6c50-85a8-45c8-87d0-21a2b65856fe',I='https://cdn.shopify.com/shopifycloud/storefront-forms-hcaptcha/ce_storefront_forms_captcha_hcaptcha.v1.5.3.iife.js',D={infoText:'Protected by hCaptcha',privacyText:'Privacy',termsText:'Terms'},(t,e,n)=>{const o=w[L][v],c=o.bindForm;if(c)return c(t,g,e,D).then(n);var r;o.q.push([[t,g,e,D],n]),r=I,A||(h.body.append(Object.assign(h.createElement('script'),{id:'captcha-provider',async:!0,src:r})),A=!0)});var g,I,D;w[L]=w[L]||{},w[L][v]=w[L][v]||{},w[L][v].q=[],w[L][y]=w[L][y]||{},w[L][y].protect=function(t,e){n(t,void 0,e),T(t)},Object.freeze(w[L][y]),function(t,e,n,w,h,L){const[v,y,A,g]=function(t,e,n){const i=e?o:[],u=t?c:[],d=[...i,...u],f=r(d),m=r(i),_=r(d.filter((([t,e])=>n.includes(e))));return[a(f),a(m),a(_),s()]}(w,h,L),I=t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form},D=t=>v().includes(t);t.addEventListener('submit',(t=>{const e=I(t);if(!e)return;const n=D(e)&&!e.dataset.hcaptchaBound&&!e.dataset.recaptchaBound,o=_(e),c=g().includes(e)&&(!o||!o.value);(n||c)&&t.preventDefault(),c&&!n&&(function(t){try{if(!f())return;!function(t){const e=f();if(!e)return;const n=_(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){_(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:u})),t.elements[u].value=e}(t,e),function(t,e){const n=f();if(!n)return;const o=[...t.querySelectorAll(`input[type='${i}']`)].map((({name:t})=>t)),c=[...d,...o],r={};for(const[a,s]of new FormData(t).entries())c.includes(a)||(r[a]=s);n.setItem(e,JSON.stringify({[m]:1,action:t.action,data:r}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(e),e.submit())}));const S=(t,e)=>{t&&!t.dataset[E]&&(n(t,e.some((e=>e===t))),T(t))};for(const o of['focusin','change'])t.addEventListener(o,(t=>{const e=I(t);D(e)&&S(e,y())}));const B=e.get('form_key'),M=e.get(l),P=B&&M;t.addEventListener('DOMContentLoaded',(()=>{const t=y();if(P)for(const e of t)e.elements[l].value===M&&p(e,B);[...new Set([...A(),...v().filter((t=>'true'===t.dataset.shopifyCaptcha))])].forEach((e=>S(e,t)))}))}(h,new URLSearchParams(w.location.search),n,t,e,['guest_login'])})(!0,!0)}();</script>
vendor: 1 bytes, line 188
188
189<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//www.wakemakers.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 189
189
190<script>(function () {var userAgent = navigator.userAgent;var platform = navigator.platform;var maxTouchPoints = navigator.maxTouchPoints || 0;var isIOS = /iPad|iPhone|iPod/.test(platform) || (platform === 'MacIntel' && maxTouchPoints > 1);var isMacSafari = platform.indexOf('Mac') === 0 && /Safari/.test(userAgent) && !/Chrome|Chromium|CriOS|FxiOS|Edg|OPR|Android/.test(userAgent);var isAppleSafari = isIOS || isMacSafari;if (isAppleSafari) {fetch('/sf_private_access_tokens' + location.search).catch(function () {});}function browserMajorVersion(pattern) {var match = userAgent.match(pattern);return match ? parseInt(match[1], 10) : null;}function shouldLoadAutosizesPolyfill() {if (!window.PerformanceObserver?.supportedEntryTypes?.includes('paint')) {return false;}var chromeVersion = browserMajorVersion(/Chrome\/(\d+)/);if (chromeVersion !== null) {return chromeVersion < 126;}var firefoxVersion = browserMajorVersion(/Firefox\/(\d+)/);if (firefoxVersion !== null) {return firefoxVersion < 150;}var safariVersion = isAppleSafari ? browserMajorVersion(/Version\/(\d+).*Safari\//) : null;if (safariVersion !== null) {return safariVersion < 27;}return true;}if (shouldLoadAutosizesPolyfill()) {var autosizesScript = document.createElement('script');autosizesScript.async = true;autosizesScript.crossOrigin = 'anonymous';autosizesScript.src = "//www.wakemakers.com/cdn/shopifycloud/storefront/assets/storefront/autosizes-84416378.js";(document.head || document.documentElement).appendChild(autosizesScript);}window.ShopifyAnalytics = window.ShopifyAnalytics || {};window.ShopifyAnalytics.performance = window.ShopifyAnalytics.performance || {};(function () {var LONG_FRAME_THRESHOLD = 50;var longAnimationFrames = [];var activeRafId = null;function collectLongFrames() {var previousTime = null;function rafMonitor(now) {if (activeRafId === null) {return;}var delta = now - previousTime;if (delta > LONG_FRAME_THRESHOLD) {longAnimationFrames.push({startTime: previousTime,endTime: now,});}previousTime = now;activeRafId = requestAnimationFrame(rafMonitor);}previousTime = performance.now();activeRafId = requestAnimationFrame(rafMonitor);}if (!window.PerformanceObserver?.supportedEntryTypes?.includes('long-animation-frame')) {collectLongFrames();var timeoutId = setTimeout(function () {cancelAnimationFrame(activeRafId);}, 10000);window.ShopifyAnalytics.performance.getLongAnimationFrames = function (stopCollection) {if (stopCollection === undefined) {stopCollection = false;}if (stopCollection) {clearTimeout(timeoutId);cancelAnimationFrame(activeRafId);}return longAnimationFrames;};}})();})();</script>
190<script crossorigin="anonymous" defer="defer" src="//www.wakemakers.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 190
190
191<script id="shopify-origin-trials" async="async" integrity="sha256-qJbe/jEZBHtr5W/BlA2cKAz3vkXu6vJQyLjgvgCC86g=" src="//cdn.shopify.com/shopifycloud/storefront/assets/storefront/origin_trials-318ab40a.js" crossorigin="anonymous" onload="window.__shopifyOriginTrialsDone = true" onerror="window.__shopifyOriginTrialsDone = true"></script>
vendor: 1 bytes, line 191
191
192<script>
193  window.Shopify = window.Shopify || {};
194  window.Shopify.MCP = window.Shopify.MCP || {};
195  window.Shopify.MCP.enabled = true;
196  window.Shopify.MCP.shop = "wakemakers-prod.myshopify.com";
197  window.Shopify.MCP.mcpEndpoint = "https:\/\/www.wakemakers.com\/api\/mcp";
198  window.Shopify.MCP.tools = [{"name":"search_shop_policies_and_faqs","description":"Used to get facts about the stores policies, products, or services.\nSome examples of questions you can ask are:\n  - What is your return policy?\n  - What is your shipping policy?\n  - What is your phone number?\n  - What are your hours of operation?\"\n","inputSchema":{"$schema":"https:\/\/json-schema.org\/draft\/2020-12\/schema","type":"object","properties":{"query":{"type":"string","description":"A natural language query."},"context":{"type":"string","description":"Additional information about the request such as user demographics, mood, location, or other relevant details that could help in tailoring the response appropriately."}},"required":["query"]}}];
199</script>
vendor: 1 bytes, line 199
199
200<script>(()=>{var d="shopify:webmcp_adapter_loaded",n=Symbol.for("shopify.webmcp_adapter_loading");function s(c,a,{win:r=window,doc:o=document}={}){function p(){try{return r.localStorage.getItem(d)==="true"}catch{return!1}}function l(){try{r.localStorage.setItem(d,"true")}catch{}}function u(){return typeof(o.modelContext||r.navigator?.modelContext)?.registerTool=="function"}function f(){if(r[n]||!u())return;let t=o.head||o.getElementsByTagName("head")[0];if(!t)return;let e=o.createElement("script");e.type="module",e.crossOrigin="anonymous",a&&(e.integrity=a),e.src=c,e.addEventListener("load",l,{once:!0}),e.addEventListener("error",()=>{r[n]=!1},{once:!0}),t.appendChild(e),r[n]=!0}function _(t){let e=o.getElementById("shopify-origin-trials");if(!e||r.__shopifyOriginTrialsDone){t();return}e.addEventListener("load",t,{once:!0}),e.addEventListener("error",t,{once:!0})}function i(){_(()=>r.setTimeout(f,0))}function m(){o.addEventListener("DOMContentLoaded",i,{once:!0})}p()?i():m()}s("\/\/www.wakemakers.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})();
201</script>
vendor: 1 bytes, line 201
201
202<script data-source-attribution="shopify.dynamic_checkout.dynamic.init">var Shopify=Shopify||{};Shopify.PaymentButton=Shopify.PaymentButton||{isStorefrontPortableWallets:!0,init:function(){window.Shopify.PaymentButton.init=function(){};var t=document.createElement("script");t.src="https://www.wakemakers.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}};
203</script>
vendor: 1 bytes, line 203
203
204<script data-source-attribution="shopify.dynamic_checkout.buyer_consent">
205  function portableWalletsHideBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.add("hidden"),t.setAttribute("aria-hidden","true"),n.removeEventListener("click",e))}function portableWalletsShowBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.remove("hidden"),t.removeAttribute("aria-hidden"),n.addEventListener("click",e))}window.Shopify?.PaymentButton&&(window.Shopify.PaymentButton.hideBuyerConsent=portableWalletsHideBuyerConsent,window.Shopify.PaymentButton.showBuyerConsent=portableWalletsShowBuyerConsent);
206</script>
vendor: 1 bytes, line 206
206
207<script data-source-attribution="shopify.dynamic_checkout.cart.bootstrap">document.addEventListener("DOMContentLoaded",(function(){function t(){return document.querySelector("shopify-accelerated-checkout-cart, shopify-accelerated-checkout")}if(t())Shopify.PaymentButton.init();else{new MutationObserver((function(e,n){t()&&(Shopify.PaymentButton.init(),n.disconnect())})).observe(document.body,{childList:!0,subtree:!0})}}));
208</script>
vendor: 1 bytes, line 208
208
209<script id='scb4127' type='text/javascript' async='' src='https://www.wakemakers.com/cdn/shopifycloud/privacy-banner/storefront-banner.js'></script>
209<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://www.wakemakers.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous">
210<style id="shopify-accelerated-checkout-cart">
211        #shopify-buyer-consent {
212  margin-top: 1em;
213  display: inline-block;
214  width: 100%;
215}
216
217#shopify-buyer-consent.hidden {
218  display: none;
219}
220
221#shopify-subscription-policy-button {
222  background: none;
223  border: none;
224  padding: 0;
225  text-decoration: underline;
226  font-size: inherit;
227  cursor: pointer;
228}
229
230#shopify-subscription-policy-button::before {
231  box-shadow: none;
232}
233
234      </style>
235
236<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
236
237    
238      
239<link
240      rel="stylesheet"
241      href="//www.wakemakers.com/cdn/shop/t/336/assets/vendor.css?v=98392603099687543171788570591"
242      media="print"
243      onload="this.media='all'; this.onload = null">
244      
245<link
246      rel="stylesheet"
247      href="//www.wakemakers.com/cdn/shop/t/336/assets/theme.css?v=95910606090487855141790231794"
248      media="print"
249      onload="this.media='all'; this.onload = null">
250<link rel="preload" as="font" href="Liquid error (layout/theme line 100): font_url can only be used with a font drop" type="font/woff2" crossorigin><link rel="preload" as="font" href="Liquid error (layout/theme line 103): font_url can only be used with a font drop" type="font/woff2" crossorigin>
250<script>document.documentElement.className = document.documentElement.className.replace('no-js', 'js');</script>
250
251      <!-- Affirm -->
252      
252<script>
253        _affirm_config = {
254          public_api_key:  "NWY0L4OUY56YERNZ",
255          script:          "https://cdn1.affirm.com/js/v2/affirm.js",
256          session_id:      "xxxxxxxxxxxxxxxxx"
257        };
258        (function(l,g,m,e,a,f,b){var d,c=l[m]||{},h=document.createElement(f),n=document.getElementsByTagName(f)[0],k=function(a,b,c){return function(){a[b]._.push([c,arguments])}};c[e]=k(c,e,"set");d=c[e];c[a]={};c[a]._=[];d._=[];c[a][b]=k(c,a,b);a=0;for(b="set add save post open empty reset on off trigger ready setProduct".split(" ");a<b.length;a++)d[b[a]]=k(c,e,b[a]);a=0;for(b=["get","token","url","items"];a<b.length;a++)d[b[a]]=function(){};h.async=!0;h.src=g[f];n.parentNode.insertBefore(h,n);delete g[f];d(g);l[m]=c})(window,_affirm_config,"affirm","checkout","ui","script","ready");
259        // Use your live public API Key and https://cdn1.affirm.com/js/v2/affirm.js script to point to Affirm production environment.
260      </script>
260
261      <!-- End Affirm -->
262
263      <!-- HotJar -->
264      
264<script>
vendor: 133 bytes, lines 264-267
264
265        (function(h,o,t,j,a,r){
266          h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)};
267          h._hjSettings={hjid:
2672648357
vendor: 276 bytes, lines 267-273
267,hjsv:6};
268          a=o.getElementsByTagName('head')[0];
269          r=o.createElement('script');r.async=1;
270          r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;
271          a.appendChild(r);
272        })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');
273      
273</script>
273
274    
275<script>(() => {const installerKey = 'docapp-discount-auto-install'; const urlParams = new URLSearchParams(window.location.search); if (urlParams.get(installerKey)) {window.sessionStorage.setItem(installerKey, JSON.stringify({integrationId: urlParams.get('docapp-integration-id'), divClass: urlParams.get('docapp-install-class'), check: urlParams.get('docapp-check')}));}})();</script>
275
276
277<script>(() => {const previewKey = 'docapp-discount-test'; const urlParams = new URLSearchParams(window.location.search); if (urlParams.get(previewKey)) {window.sessionStorage.setItem(previewKey, JSON.stringify({active: true, integrationId: urlParams.get('docapp-discount-inst-test')}));}})();</script>
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317<!-- BEGIN app block: shopify://apps/cartcheck/blocks/cartcheck-embed/019b2da7-455f-7b73-a9dc-aa9798ef345a -->
318
319<script>
320(function() {
321  'use strict';
322  
323  const CARTCHECK_APP_URL = 'https://cartcheck.up.railway.app';
324  const SHOP_DOMAIN = 'wakemakers-prod.myshopify.com';
325  
326  // Customer data from Liquid (only available if logged in)
327  const customerData = {
328    id: null,
329    email: null,
330    firstName: null,
331    lastName: null,
332    name: null,
333    phone: null,
334    isLoggedIn: false
335  };
336
337  // Debounce function to prevent too many API calls
338  function debounce(func, wait) {
339    let timeout;
340    return function executedFunction(...args) {
341      const later = () => {
342        clearTimeout(timeout);
343        func(...args);
344      };
345      clearTimeout(timeout);
346      timeout = setTimeout(later, wait);
347    };
348  }
349
350  // Get cart data from Shopify
351  async function getCartData() {
352    try {
353      const response = await fetch('/cart.js', {
354        method: 'GET',
355        headers: {
356          'Content-Type': 'application/json',
357        },
358      });
359      
360      if (!response.ok) {
361        throw new Error('Failed to fetch cart');
362      }
363      
364      return await response.json();
365    } catch (error) {
366      console.error('[Cartcheck] Error fetching cart:', error);
367      return null;
368    }
369  }
370
371  // Send cart data to Cartcheck app server
372  async function syncCartData(cart) {
373    if (!cart) return;
374    
375    // Only sync if cart has items OR customer is logged in
376    // This prevents tracking empty anonymous carts
377    if (cart.item_count === 0 && !customerData.isLoggedIn) {
378      console.debug('[Cartcheck] Skipping sync - empty cart from anonymous visitor');
379      return;
380    }
381    
382    const payload = {
383      shop: SHOP_DOMAIN,
384      cart: {
385        token: cart.token,
386        itemCount: cart.item_count,
387        totalPrice: cart.total_price,
388        currency: cart.currency,
389        items: cart.items.map(item => ({
390          id: item.id,
391          productId: item.product_id,
392          variantId: item.variant_id,
393          title: item.product_title,
394          variantTitle: item.variant_title,
395          quantity: item.quantity,
396          price: item.price,
397          linePrice: item.line_price,
398          sku: item.sku,
399          vendor: item.vendor,
400          image: item.image,
401          properties: item.properties,
402        })),
403        note: cart.note,
404        attributes: cart.attributes,
405      },
406      customer: customerData.isLoggedIn ? {
407        id: customerData.id,
408        email: customerData.email,
409        firstName: customerData.firstName,
410        lastName: customerData.lastName,
411        name: customerData.name,
412        phone: customerData.phone,
413      } : null,
414      timestamp: new Date().toISOString(),
415      pageUrl: window.location.href,
416    };
417
418    try {
419      const response = await fetch(`${CARTCHECK_APP_URL}/api/cart-sync`, {
420        method: 'POST',
421        headers: {
422          'Content-Type': 'application/json',
423        },
424        body: JSON.stringify(payload),
425        mode: 'cors',
426      });
427
428      if (!response.ok) {
429        throw new Error(`HTTP error! status: ${response.status}`);
430      }
431
432      console.debug('[Cartcheck] Cart synced successfully');
433    } catch (error) {
434      console.error('[Cartcheck] Error syncing cart:', error);
435    }
436  }
437
438  // Debounced sync function (wait 1 second after last change)
439  const debouncedSync = debounce(async () => {
440    const cart = await getCartData();
441    await syncCartData(cart);
442  }, 1000);
443
444  // Initial sync on page load
445  async function initialSync() {
446    const cart = await getCartData();
447    await syncCartData(cart);
448  }
449
450  // Listen for cart changes via AJAX API interception
451  function interceptCartChanges() {
452    // Intercept fetch requests
453    const originalFetch = window.fetch;
454    window.fetch = async function(...args) {
455      const response = await originalFetch.apply(this, args);
456      
457      const url = args[0];
458      if (typeof url === 'string' && (
459        url.includes('/cart/add') ||
460        url.includes('/cart/change') ||
461        url.includes('/cart/update') ||
462        url.includes('/cart/clear')
463      )) {
464        // Cart was modified, sync after a short delay
465        debouncedSync();
466      }
467      
468      return response;
469    };
470
471    // Also intercept XMLHttpRequest for older themes
472    const originalOpen = XMLHttpRequest.prototype.open;
473    XMLHttpRequest.prototype.open = function(method, url, ...rest) {
474      this._cartcheckUrl = url;
475      return originalOpen.apply(this, [method, url, ...rest]);
476    };
477
478    const originalSend = XMLHttpRequest.prototype.send;
479    XMLHttpRequest.prototype.send = function(...args) {
480      this.addEventListener('load', function() {
481        if (typeof this._cartcheckUrl === 'string' && (
482          this._cartcheckUrl.includes('/cart/add') ||
483          this._cartcheckUrl.includes('/cart/change') ||
484          this._cartcheckUrl.includes('/cart/update') ||
485          this._cartcheckUrl.includes('/cart/clear')
486        )) {
487          debouncedSync();
488        }
489      });
490      return originalSend.apply(this, args);
491    };
492  }
493
494  // Initialize
495  document.addEventListener('DOMContentLoaded', function() {
496    interceptCartChanges();
497    initialSync();
498  });
499
500  // Also sync on visibility change (when user returns to tab)
501  document.addEventListener('visibilitychange', function() {
502    if (document.visibilityState === 'visible') {
503      debouncedSync();
504    }
505  });
506
507})();
508</script>
508
509
510
511<!-- END app block --><!-- BEGIN app block: shopify://apps/elevar-conversion-tracking/blocks/dataLayerEmbed/bc30ab68-b15c-4311-811f-8ef485877ad6 -->
512
513
514
515<script type="module" dynamic>
516  const configUrl = "/a/elevar/static/configs/df97c9adf21e96563f961f8e3e733cc3dd90ccfe/config.js";
517  const config = (await import(configUrl)).default;
518  const scriptUrl = config.script_src_app_theme_embed;
519
520  if (scriptUrl) {
521    const { handler } = await import(scriptUrl);
522
523    await handler(
524      config,
525      {
526        cartData: {
527  marketId: "3566141605",
528  localeCountryCode:"US",
529  attributes:{},
530  cartTotal: "0.0",
531  currencyCode:"USD",
532  items: []
533}
534,
535        user: {
536  cartTotal: "0.0",
537  currencyCode:"USD",
538  customer: {},
539}
540,
541        isOnCartPage:false,
542        collectionView:null,
543        searchResultsView:null,
544        productView:{
545    attributes:{},
546    currencyCode:"USD",defaultVariant: {id:"B0079",name:"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)",
547        brand:"WakeMAKERS",
548        category:"Ballast Bags",
549        variant:"30\"L x 20\"W x 20\"H - 490lbs",
550        price: "189.99",
551        productId: "7759285649573",
552        variantId: "41675600920741",
553        compareAtPrice: "0.0",image:"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349",url:"\/products\/wakemakers-rear-lbs-ballast-bag?variant=41675600920741"},items: [{id:"B0079",name:"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)",
554          brand:"WakeMAKERS",
555          category:"Ballast Bags",
556          variant:"30\"L x 20\"W x 20\"H - 490lbs",
557          price: "189.99",
558          productId: "7759285649573",
559          variantId: "41675600920741",
560          compareAtPrice: "0.0",image:"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349",url:"\/products\/wakemakers-rear-lbs-ballast-bag?variant=41675600920741"},{id:"B0080",name:"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)",
561          brand:"WakeMAKERS",
562          category:"Ballast Bags",
563          variant:"45\"L x 25\"W x 20\"H - 910lbs",
564          price: "249.99",
565          productId: "7759285649573",
566          variantId: "41675600953509",
567          compareAtPrice: "0.0",image:"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349",url:"\/products\/wakemakers-rear-lbs-ballast-bag?variant=41675600953509"},{id:"B0081",name:"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)",
568          brand:"WakeMAKERS",
569          category:"Ballast Bags",
570          variant:"45\"L x 25\"W x 25\"H - 1,140lbs",
571          price: "259.99",
572          productId: "7759285649573",
573          variantId: "41675600986277",
574          compareAtPrice: "0.0",image:"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349",url:"\/products\/wakemakers-rear-lbs-ballast-bag?variant=41675600986277"},{id:"B0082",name:"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)",
575          brand:"WakeMAKERS",
576          category:"Ballast Bags",
577          variant:"45\"L x 20\"W x 25\"H - 910lbs",
578          price: "249.99",
579          productId: "7759285649573",
580          variantId: "41675601019045",
581          compareAtPrice: "0.0",image:"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349",url:"\/products\/wakemakers-rear-lbs-ballast-bag?variant=41675601019045"},{id:"B0083",name:"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)",
582          brand:"WakeMAKERS",
583          category:"Ballast Bags",
584          variant:"45\"L x 20\"W x 20\"H - 720lbs",
585          price: "229.99",
586          productId: "7759285649573",
587          variantId: "41675601051813",
588          compareAtPrice: "0.0",image:"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349",url:"\/products\/wakemakers-rear-lbs-ballast-bag?variant=41675601051813"},{id:"B0088",name:"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)",
589          brand:"WakeMAKERS",
590          category:"Ballast Bags",
591          variant:"40\"L x 25\"W x 15\"H - 610lbs",
592          price: "199.99",
593          productId: "7759285649573",
594          variantId: "41675601084581",
595          compareAtPrice: "0.0",image:"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349",url:"\/products\/wakemakers-rear-lbs-ballast-bag?variant=41675601084581"},{id:"B0089",name:"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)",
596          brand:"WakeMAKERS",
597          category:"Ballast Bags",
598          variant:"40\"L x 20\"W x 20\"H - 640lbs",
599          price: "199.99",
600          productId: "7759285649573",
601          variantId: "41675601117349",
602          compareAtPrice: "0.0",image:"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349",url:"\/products\/wakemakers-rear-lbs-ballast-bag?variant=41675601117349"},{id:"B0090",name:"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)",
603          brand:"WakeMAKERS",
604          category:"Ballast Bags",
605          variant:"40\"L x 25\"W x 20\"H - 820lbs",
606          price: "239.99",
607          productId: "7759285649573",
608          variantId: "41675601150117",
609          compareAtPrice: "0.0",image:"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349",url:"\/products\/wakemakers-rear-lbs-ballast-bag?variant=41675601150117"},{id:"B0091",name:"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)",
610          brand:"WakeMAKERS",
611          category:"Ballast Bags",
612          variant:"35\"L x 25\"W x 15\"H - 540lbs",
613          price: "189.99",
614          productId: "7759285649573",
615          variantId: "41675601182885",
616          compareAtPrice: "0.0",image:"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349",url:"\/products\/wakemakers-rear-lbs-ballast-bag?variant=41675601182885"},{id:"B0092",name:"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)",
617          brand:"WakeMAKERS",
618          category:"Ballast Bags",
619          variant:"50\"L x 25\"W x 15\"H - 740lbs",
620          price: "229.99",
621          productId: "7759285649573",
622          variantId: "41675601215653",
623          compareAtPrice: "0.0",image:"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349",url:"\/products\/wakemakers-rear-lbs-ballast-bag?variant=41675601215653"},{id:"B0093",name:"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)",
624          brand:"WakeMAKERS",
625          category:"Ballast Bags",
626          variant:"50\"L x 25\"W x 25\"H - 1,280lbs",
627          price: "249.99",
628          productId: "7759285649573",
629          variantId: "41675601248421",
630          compareAtPrice: "0.0",image:"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349",url:"\/products\/wakemakers-rear-lbs-ballast-bag?variant=41675601248421"},{id:"B0096",name:"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)",
631          brand:"WakeMAKERS",
632          category:"Ballast Bags",
633          variant:"30\"L x 25\"W x 15\"H - 460lbs",
634          price: "179.99",
635          productId: "7759285649573",
636          variantId: "41675601281189",
637          compareAtPrice: "0.0",image:"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349",url:"\/products\/wakemakers-rear-lbs-ballast-bag?variant=41675601281189"},{id:"B0110",name:"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)",
638          brand:"WakeMAKERS",
639          category:"Ballast Bags",
640          variant:"35\"L x 20\"W x 15\"H - 430lbs",
641          price: "169.99",
642          productId: "7759285649573",
643          variantId: "41675601313957",
644          compareAtPrice: "0.0",image:"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349",url:"\/products\/wakemakers-rear-lbs-ballast-bag?variant=41675601313957"},{id:"B0121",name:"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)",
645          brand:"WakeMAKERS",
646          category:"Ballast Bags",
647          variant:"30\"L x 25\"W x 25\"H - 765lbs",
648          price: "229.99",
649          productId: "7759285649573",
650          variantId: "41675601346725",
651          compareAtPrice: "0.0",image:"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349",url:"\/products\/wakemakers-rear-lbs-ballast-bag?variant=41675601346725"},{id:"B0122",name:"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)",
652          brand:"WakeMAKERS",
653          category:"Ballast Bags",
654          variant:"45\"L x 20\"W x 15\"H - 550lbs",
655          price: "189.99",
656          productId: "7759285649573",
657          variantId: "41675601379493",
658          compareAtPrice: "0.0",image:"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349",url:"\/products\/wakemakers-rear-lbs-ballast-bag?variant=41675601379493"},{id:"B0144",name:"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)",
659          brand:"WakeMAKERS",
660          category:"Ballast Bags",
661          variant:"35\"L x 25\"W x 20\"H - 710lbs",
662          price: "229.99",
663          productId: "7759285649573",
664          variantId: "41675601412261",
665          compareAtPrice: "0.0",image:"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349",url:"\/products\/wakemakers-rear-lbs-ballast-bag?variant=41675601412261"},{id:"B0145",name:"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)",
666          brand:"WakeMAKERS",
667          category:"Ballast Bags",
668          variant:"30\"L x 25\"W x 20\"H - 610lbs",
669          price: "199.99",
670          productId: "7759285649573",
671          variantId: "41675601445029",
672          compareAtPrice: "0.0",image:"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349",url:"\/products\/wakemakers-rear-lbs-ballast-bag?variant=41675601445029"},{id:"B0146",name:"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)",
673          brand:"WakeMAKERS",
674          category:"Ballast Bags",
675          variant:"50\"L x 25\"W x 20\"H - 1,020lbs",
676          price: "259.99",
677          productId: "7759285649573",
678          variantId: "41675601477797",
679          compareAtPrice: "0.0",image:"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349",url:"\/products\/wakemakers-rear-lbs-ballast-bag?variant=41675601477797"},{id:"B0147",name:"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)",
680          brand:"WakeMAKERS",
681          category:"Ballast Bags",
682          variant:"35\"L x 25\"W x 25\"H - 890lbs",
683          price: "249.99",
684          productId: "7759285649573",
685          variantId: "41675601510565",
686          compareAtPrice: "0.0",image:"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349",url:"\/products\/wakemakers-rear-lbs-ballast-bag?variant=41675601510565"},]
687  },
688      }
689    );
690  }
691</script>
691
692
693
694<!-- END app block --><!-- BEGIN app block: shopify://apps/okendo/blocks/theme-settings/bb689e69-ea70-4661-8fb7-ad24a2e23c29 --><!-- BEGIN app snippet: header-metafields -->
695
696
697
698
699
700
701
702
703
704
705
706
707    <link href="https://d3hw6dc1ow8pp2.cloudfront.net/styles/main.min.css" rel="stylesheet" type="text/css">
708<style type="text/css">
709.okeReviews .okeReviews-reviewsWidget-header-controls-writeReview {
710        display: inline-block;
711    }
712    .okeReviews .okeReviews-reviewsWidget.is-okeReviews-empty {
713        display: block;
714    }
715</style>
716<script type="application/json" id="oke-reviews-settings">
717{"analyticsSettings":{"provider":"none"},"disableInitialReviewsFetchOnProducts":false,"locale":"en","omitMicrodata":true,"subscriberId":"6e683df2-08da-4c40-a14c-c765d5257fcf","starRatingColor":"#3399FF","recorderPlus":true,"recorderQandaPlus":true}
718</script>
718
719
720    <link rel="stylesheet" type="text/css" href="https://dov7r31oq5dkj.cloudfront.net/6e683df2-08da-4c40-a14c-c765d5257fcf/widget-style-customisations.css?v=f98b5ecc-7740-498f-a62e-e6c423102b74">
721
722
723
724
725
726
727
728
729
730
731
732
733
734<!-- END app snippet -->
735
736<!-- BEGIN app snippet: widget-plus-initialisation-script -->
737
738
739
740
741<!-- END app snippet -->
742
743
744<!-- END app block --><!-- BEGIN app block: shopify://apps/judge-me-reviews/blocks/judgeme_core/61ccd3b1-a9f2-4160-9fe9-4fec8413e5d8 --><!-- Start of Judge.me Core -->
745
746
747
748
749
750
751
752<link rel="dns-prefetch" href="https://cdn.judge.me">
753<link rel="dns-prefetch" href="https://cdn1.judge.me">
754<link rel="dns-prefetch" href="https://api.judge.me">
755
756<script data-cfasync='false' class='jdgm-settings-script'>window.jdgmSettings={"pagination":5,"disable_web_reviews":true,"coupon_receiving_condition":"any_review","coupon_value_type":"percentage","coupon_value_percentage":10,"coupon_value_fixed_amount":0,"coupon_discount_type":"single","coupon_tier_text_enabled":false,"coupon_tier_text_percentage":10,"coupon_tier_text_fixed_amount":0,"coupon_tier_photo_enabled":false,"coupon_tier_photo_percentage":10,"coupon_tier_photo_fixed_amount":0,"coupon_tier_video_enabled":false,"coupon_tier_video_percentage":10,"coupon_tier_video_fixed_amount":0,"enable_coupons":false,"badge_no_review_text":"No reviews","badge_n_reviews_text":"{{ n }} review/reviews","hide_badge_preview_if_no_reviews":true,"badge_hide_text":false,"enforce_center_preview_badge":false,"widget_title":"Customer Reviews","widget_open_form_text":"Write a review","widget_close_form_text":"Cancel review","widget_refresh_page_text":"Refresh page","widget_summary_text":"Based on {{ number_of_reviews }} review/reviews","widget_no_review_text":"Be the first to write a review","widget_name_field_text":"Display name","widget_verified_name_field_text":"Verified Name (public)","widget_name_placeholder_text":"Display name","widget_required_field_error_text":"This field is required.","widget_email_field_text":"Email address","widget_verified_email_field_text":"Verified Email (private, can not be edited)","widget_email_placeholder_text":"Your email address","widget_email_field_error_text":"Please enter a valid email address.","widget_rating_field_text":"Rating","widget_review_title_field_text":"Review Title","widget_review_title_placeholder_text":"Give your review a title","widget_review_body_field_text":"Review content","widget_review_body_placeholder_text":"Start writing here...","widget_pictures_field_text":"Picture/Video (optional)","widget_submit_review_text":"Submit Review","widget_submit_verified_review_text":"Submit Verified Review","widget_submit_success_msg_with_auto_publish":"Thank y
756ou! Please refresh the page in a few moments to see your review. You can remove or edit your review by logging into \u003ca href='https://judge.me/login' target='_blank' rel='nofollow noopener'\u003eJudge.me\u003c/a\u003e","widget_submit_success_msg_no_auto_publish":"Thank you! Your review will be published as soon as it is approved by the shop admin. You can remove or edit your review by logging into \u003ca href='https://judge.me/login' target='_blank' rel='nofollow noopener'\u003eJudge.me\u003c/a\u003e","widget_show_default_reviews_out_of_total_text":"Showing {{ n_reviews_shown }} out of {{ n_reviews }} reviews.","widget_show_all_link_text":"Show all","widget_show_less_link_text":"Show less","widget_author_said_text":"{{ reviewer_name }} said:","widget_days_text":"{{ n }} days ago","widget_weeks_text":"{{ n }} week/weeks ago","widget_months_text":"{{ n }} month/months ago","widget_years_text":"{{ n }} year/years ago","widget_yesterday_text":"Yesterday","widget_today_text":"Today","widget_replied_text":"{{ shop_name }}","widget_read_more_text":"Read more","widget_reviewer_name_as_initial":"last_initial","widget_rating_filter_color":"#3399FF","widget_rating_filter_see_all_text":"See all reviews","widget_sorting_most_recent_text":"Most Recent","widget_sorting_highest_rating_text":"Highest Rating","widget_sorting_lowest_rating_text":"Lowest Rating","widget_sorting_with_pictures_text":"Only Pictures","widget_sorting_most_helpful_text":"Most Helpful","widget_open_question_form_text":"Ask a question","widget_reviews_subtab_text":"Reviews","widget_questions_subtab_text":"Q\u0026A","widget_question_label_text":"Question","widget_answer_label_text":"Answer","widget_question_placeholder_text":"Write your question here","widget_submit_question_text":"Submit Question","widget_question_submit_success_text":"Thank you for your question! We will notify you once it gets answered.","verified_badge_text":"Verified","verified_badge_bg_color":"","verified_badge_text_color":"","verified_badge_placement":"left-of-reviewer-name","widget_review_max_height":"","widget_hide_border":true,"widget_social_share":false,"widget_thumb":true,"widget_review_location_show":true,"widget_location_format":"","all_reviews_include_out_of_store_products":true,"all_reviews_out_of_store_text":"(out of store)","all_reviews_pagination":100,"all_reviews_product_name_prefix_text":"about","enable_review_pictures":true,"enable_question_anwser":true,"widget_theme":"default","review_date_format":"mm/dd/yyyy","default_sort_method":"most-recent","enable_ai_review_visibility":true,"widget_product_reviews_subtab_text":"Product Reviews","widget_shop_reviews_subtab_text":"Shop Reviews","widget_other_products_reviews_text":"Reviews for other products","widget_store_reviews_subtab_text":"Store reviews","widget_product_variant_reference_text":"Review for","widget_no_store_reviews_text":"This store hasn't received any reviews yet","widget_web_restriction_product_reviews_text":"This product hasn't received any reviews yet","widget_no_items_text":"No items found","widget_show_more_text":"Show more","widget_write_a_store_review_text":"Write a Store Review","widget_product_and_store_reviews_text":"Product and store reviews","widget_reviews_in_collection_text":"Reviews in this collection","widget_other_languages_heading":"Reviews in Other Languages","widget_translate_review_text":"Translate review to {{ language }}","widget_translating_review_text":"Translating...","widget_show_original_translation_text":"Show original ({{ language }})","widget_translate_review_failed_text":"Review couldn't be translated.","widget_translate_review_retry_text":"Retry","widget_translate_review_try_again_later_text":"Try again later","show_product_url_for_grouped_product":false,"widget_sorting_pictures_first_text":"Pictures First","show_pictures_on_all_rev_page_mobile":false,"show_pictures_on_all_rev_page_desktop":false,"floating_tab_hide_mobile_install_preference":false,"floating_tab_button_name":"★ Reviews","floating_tab_title":"Let customers speak for us","floating_tab_button_color":"","floating_tab_button_background_color":"","floating_tab_url":"","floating_tab_url_enabled":false,"floating_tab_tab_style":"text","all_reviews_text_badge_text":"Customers rate us {{ shop.metafields.judgeme.all_reviews_rating | round: 1 }}/5 based on {{ shop.metafields.judgeme.all_reviews_count }} reviews.","all_reviews_text_badge_text_branded_style":"{{ shop.metafields.judgeme.all_reviews_rating | round: 1 }} out of 5 stars based on {{ shop.metafields.judgeme.all_reviews_count }} reviews","is_all_reviews_text_badge_a_link":false,"show_stars_for_all_reviews_text_badge":false,"all_reviews_text_badge_url":"","all_reviews_text_style":"branded","all_reviews_text_color_style":"judgeme_brand_color","all_reviews_text_color":"#108474","all_reviews_text_show_jm_brand":false,"featured_carousel_show_header":true,"featured_carousel_title":"Let customers speak for us","testimonials_carousel_title":"Customers are saying","videos_carousel_title":"Real customer stories","cards_carousel_title":"Customers are saying","featured_carousel_count_text":"from {{ n }} reviews","featured_carousel_add_link_to_all_reviews_page":false,"featured_carousel_url":"","featured_carousel_show_images":true,"featured_carousel_autoslide_interval":5,"featured_carousel_arrows_on_the_sides":false,"featured_carousel_height":250,"featured_carousel_width":80,"featured_carousel_image_size":0,"featured_carousel_image_height":250,"featured_carousel_arrow_color":"#eeeeee","verified_count_badge_style":"branded","verified_count_badge_orientation":"horizontal","verified_count_badge_color_style":"judgeme_brand_color","verified_count_badge_color":"#108474","is_verified_count_badge_a_link":false,"verified_count_badge_url":"","verified_count_badge_show_jm_brand":true,"widget_rating_preset_default":5,"widget_first_sub_tab":"product-reviews","widget_show_histogram":true,"widget_histogram_use_custom_color":true,"widget_pagination_use_custom_color":true,"widget_star_use_custom_color":false,"widget_verified_badge_use_custom_color":false,"widget_write_review_use_custom_color":false,"picture_reminder_submit_button":"Upload Pictures","enable_review_videos":false,"mute_video_by_default":false,"widget_sorting_videos_first_text":"Videos First","widget_review_pending_text":"Pending","featured_carousel_items_for_large_screen":3,"social_share_options_order":"Facebook,Twitter","remove_microdata_snippet":false,"disable_json_ld":false,"enable_json_ld_products":false,"preview_badge_show_question_text":true,"preview_badge_no_question_text":"No questions","preview_badge_n_question_text":"{{ number_of_questions }} question/questions","qa_badge_show_icon":false,"qa_badge_icon_color":"#3399FF","qa_badge_position":"same-row","remove_judgeme_branding":true,"widget_add_search_bar":true,"widget_search_bar_placeholder":"Search","widget_sorting_verified_only_text":"Verified only","widget_sorting_most_relevant_text":"Most Relevant","featured_carousel_theme":"default","featured_carousel_show_rating":true,"featured_carousel_show_title":true,"featured_carousel_show_body":true,"featured_carousel_show_date":false,"featured_carousel_show_reviewer":true,"featured_carousel_show_product":false,"featured_carousel_header_background_color":"#108474","featured_carousel_header_text_color":"#ffffff","featured_carousel_name_product_separator":"reviewed","featured_carousel_full_star_background":"#108474","featured_carousel_empty_star_background":"#dadada","featured_carousel_vertical_theme_background":"#f9fafb","featured_carousel_verified_badge_enable":true,"featured_carousel_verified_badge_color":"#108474","featured_carousel_border_style":"round","featured_carousel_review_line_length_limit":3,"featured_carousel_more_reviews_button_text":"Read more reviews","featured_carousel_view_product_button_text":"View product","all_reviews_page_load_reviews_on":"scroll","all_reviews_page_load_more_text":"Load More Reviews","disable_fb_tab_reviews":false,"enable_ajax_cdn_cache":false,"widget_advanced_speed_features":5,"widget_public_name_text":"displayed publicly like","default_reviewer_name":"John Smith","default_reviewer_name_has_non_latin":true,"widget_reviewer_anonymous":"Anonymous","medals_widget_title":"Judge.me Review Medals","medals_widget_background_color":"#f9fafb","medals_widget_position":"footer_all_pages","medals_widget_border_color":"#f9fafb","medals_widget_verified_text_position":"right","medals_widget_use_monochromatic_version":true,"medals_widget_elements_color":"#3399FF","show_reviewer_avatar":true,"widget_invalid_yt_video_url_error_text":"Not a YouTube video URL","widget_max_length_field_error_text":"Please enter no more than {0} characters.","widget_show_country_flag":false,"widget_show_collected_via_shop_app":true,"widget_verified_by_shop_badge_style":"light","widget_verified_by_shop_text":"Verified by Shop","widget_show_photo_gallery":true,"widget_load_with_code_splitting":true,"widget_ugc_install_preference":false,"widget_ugc_title":"Made by us, Shared by you","widget_ugc_subt
756itle":"Tag us to see your picture featured in our page","widget_ugc_arrows_color":"#ffffff","widget_ugc_primary_button_text":"Buy Now","widget_ugc_primary_button_background_color":"#108474","widget_ugc_primary_button_text_color":"#ffffff","widget_ugc_primary_button_border_width":"0","widget_ugc_primary_button_border_style":"none","widget_ugc_primary_button_border_color":"#108474","widget_ugc_primary_button_border_radius":"25","widget_ugc_secondary_button_text":"Load More","widget_ugc_secondary_button_background_color":"#ffffff","widget_ugc_secondary_button_text_color":"#108474","widget_ugc_secondary_button_border_width":"2","widget_ugc_secondary_button_border_style":"solid","widget_ugc_secondary_button_border_color":"#108474","widget_ugc_secondary_button_border_radius":"25","widget_ugc_reviews_button_text":"View Reviews","widget_ugc_reviews_button_background_color":"#ffffff","widget_ugc_reviews_button_text_color":"#108474","widget_ugc_reviews_button_border_width":"2","widget_ugc_reviews_button_border_style":"solid","widget_ugc_reviews_button_border_color":"#108474","widget_ugc_reviews_button_border_radius":"25","widget_ugc_reviews_button_link_to":"judgeme-reviews-page","widget_ugc_show_post_date":true,"widget_ugc_max_width":"800","widget_rating_metafield_value_type":true,"widget_primary_color":"#3399FF","widget_enable_secondary_color":true,"widget_secondary_color":"#EFEFEF","widget_summary_average_rating_text":"{{ average_rating }}","widget_media_grid_title":"Customer photos \u0026 videos","widget_media_grid_see_more_text":"See more","widget_round_style":false,"widget_show_product_medals":true,"widget_verified_by_judgeme_text":"Verified by Judge.me","widget_show_store_medals":true,"widget_verified_by_judgeme_text_in_store_medals":"Verified by Judge.me","widget_media_field_exceed_quantity_message":"Sorry, we can only accept {{ max_media }} for one review.","widget_media_field_exceed_limit_message":"{{ file_name }} is too large, please select a {{ media_type }} less than {{ size_limit }}MB.","widget_review_submitted_text":"Review Submitted!","widget_question_submitted_text":"Question Submitted!","widget_close_form_text_question":"Cancel","widget_write_your_answer_here_text":"Write your answer here","widget_enabled_branded_link":true,"widget_show_collected_by_judgeme":false,"widget_reviewer_name_color":"#2E2E2E","widget_write_review_text_color":"","widget_write_review_bg_color":"","widget_collected_by_judgeme_text":"collected by Judge.me","widget_pagination_type":"load_more","widget_load_more_text":"Load More","widget_load_more_color":"#3399FF","widget_full_review_text":"Full Review","widget_read_more_reviews_text":"Read More Reviews","widget_read_questions_text":"Read Questions","widget_questions_and_answers_text":"Questions \u0026 Answers","widget_verified_by_text":"Verified by","widget_verified_text":"Verified","widget_number_of_reviews_text":"{{ number_of_reviews }} reviews","widget_back_button_text":"Back","widget_next_button_text":"Next","widget_custom_forms_filter_button":"Filters","custom_forms_style":"horizontal","widget_show_review_information":false,"how_reviews_are_collected":"How reviews are collected?","widget_show_review_keywords":true,"widget_gdpr_statement":"How we use your data: We'll only contact you about the review you left, and only if necessary. By submitting your review, you agree to Judge.me's \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eterms\u003c/a\u003e, \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eprivacy\u003c/a\u003e and \u003ca href='https://judge.me/content-policy' target='_blank' rel='nofollow noopener'\u003econtent\u003c/a\u003e policies.","widget_multilingual_sorting_enabled":false,"widget_translate_review_content_enabled":false,"widget_translate_review_content_method":"manual","popup_widget_review_selection":"automatically_with_pictures","popup_widget_round_border_style":true,"popup_widget_show_title":true,"popup_widget_show_body":true,"popup_widget_show_reviewer":false,"popup_widget_show_product":true,"popup_widget_show_pictures":true,"popup_widget_use_review_picture":true,"popup_widget_show_on_home_page":true,"popup_widget_show_on_product_page":true,"popup_widget_show_on_collection_page":true,"popup_widget_show_on_cart_page":true,"popup_widget_position":"bottom_left","popup_widget_first_review_delay":5,"popup_widget_duration":5,"popup_widget_interval":5,"popup_widget_review_count":5,"popup_widget_hide_on_mobile":true,"review_snippet_widget_round_border_style":false,"review_snippet_widget_card_color":"#FFFFFF","review_snippet_widget_text_color":"#000000","review_snippet_widget_lighter_text_color":"#7B7B7B","review_snippet_widget_slider_arrows_background_color":"#FFFFFF","review_snippet_widget_slider_arrows_color":"#000000","review_snippet_widget_star_color":"#3399FF","show_product_variant":true,"all_reviews_product_variant_label_text":"Variant: ","widget_show_verified_branding":true,"widget_ai_summary_title":"Customers say","widget_ai_summary_disclaimer":"AI-powered review summary based on recent customer reviews","widget_show_ai_summary":false,"widget_show_ai_summary_bg":false,"write_review_button_visibility":"everyone","store_summary_widget_heading":"Customers rate this store","store_summary_widget_button_text":"View customer reviews","store_summary_widget_button_theme_text":"See AI reviews summary","widget_show_review_title_input":false,"widget_autofill_review_title":true,"redirect_reviewers_invited_via_email":"external_form","request_store_review_after_product_review":true,"request_review_other_products_in_order":true,"review_form_color_scheme":"default","review_form_corner_style":"square","review_form_star_color":"#3399FF","review_form_text_color":"#333333","review_form_background_color":"#ffffff","review_form_field_background_color":"#fafafa","review_form_button_color":"#3399FF","review_form_button_text_color":"#ffffff","review_form_modal_overlay_color":"#000000","review_form_theme":"multi_step","review_form_location":"in_store_popup","review_form_external_page_background_color":"#C5F7F0","review_content_screen_title_text":"How would you rate this product?","review_content_introduction_text":"We would love it if you would share a bit about your experience.","store_review_form_title_text":"How would you rate this store?","store_review_form_introduction_text":"We would love it if you would share a bit about your experience.","show_review_guidance_text":true,"one_star_review_guidance_text":"Poor","five_star_review_guidance_text":"Great","customer_information_screen_title_text":"About you","customer_information_introduction_text":"Please tell us more about you.","custom_questions_screen_title_text":"Your experience in more detail","custom_questions_introduction_text":"Here are a few questions to help us understand more about your experience.","review_submitted_screen_title_text":"Thanks for your review!","review_submitted_screen_thank_you_text":"We are processing it and it will appear on the store soon.","review_submitted_screen_email_verification_text":"Please confirm your email by clicking the link we just sent you. This helps us keep reviews authentic.","confirm_email_screen_title_text":"Confirm your email","confirm_email_screen_message_text":"To help keep reviews authentic, we'll send you a secure link to continue writing your review. It only takes a moment.","check_email_screen_title_text":"Check your email","check_email_screen_message_text":"We sent you an email to {{ email }}. Click the button on the email to continue.","check_email_screen_resend_message_text":"Email resent!","check_email_resend_hint_text":"Didn't get the email? Check your spam folder or [resend the email].","verification_email_rate_limit_error_text":"You've reached the limit for review attempts on this product. Please check your inbox or try again later.","review_submitted_request_store_review_text":"Would you like to share your experience of shopping with us?","review_submitted_review_other_products_text":"Would you like to review these products?","store_review_screen_title_text":"Would you like to share your experience of shopping with us?","store_review_introduction_text":"We value your feedback and use it to improve. Please share any thoughts or suggestions you have.","reviewer_media_screen_title_picture_text":"Share a picture","reviewer_media_introduction_picture_text":"Upload a photo to support your review.","reviewer_media_screen_title_video_text":"Share a video","reviewer_media_introduction_video_text":"Upload a video to support your review.","reviewer_media_screen_title_picture_or_video_text":"Share a picture or video","reviewer_media_introduction_picture_or_video_text":"Upload a photo or video to support your review.","reviewer_media_
756youtube_url_text":"Paste your Youtube URL here","advanced_settings_next_step_button_text":"Next","advanced_settings_close_review_button_text":"Close","modal_write_review_flow":true,"write_review_flow_required_text":"Required","write_review_flow_privacy_message_text":"We respect your privacy.","write_review_flow_anonymous_text":"Post review as anonymous","write_review_flow_visibility_text":"This won't be visible to other customers.","write_review_flow_multiple_selection_help_text":"Select as many as you like","write_review_flow_single_selection_help_text":"Select one option","write_review_flow_required_field_error_text":"This field is required","write_review_flow_invalid_email_error_text":"Please enter a valid email address","write_review_flow_max_length_error_text":"Max. {{ max_length }} characters.","write_review_flow_media_upload_text":"\u003cb\u003eClick to upload\u003c/b\u003e or drag and drop","write_review_flow_gdpr_statement":"We'll only contact you about your review if necessary. By submitting your review, you agree to our \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eterms and conditions\u003c/a\u003e and \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eprivacy policy\u003c/a\u003e.","rating_only_reviews_enabled":false,"show_negative_reviews_help_screen":false,"new_review_flow_help_screen_rating_threshold":3,"negative_review_resolution_screen_title_text":"Tell us more","negative_review_resolution_text":"Your experience matters to us. If there were issues with your purchase, we're here to help. Feel free to reach out to us, we'd love the opportunity to make things right.","negative_review_resolution_button_text":"Contact us","negative_review_resolution_proceed_with_review_text":"Leave a review","negative_review_resolution_subject":"Issue with purchase from {{ shop_name }}.{{ order_name }}","coupon_promo_intro_any_review_text":"Write a review and get a coupon for {{ amount }} off your next purchase","coupon_promo_intro_with_photo_text":"Write a review and add a photo or video to get a coupon for {{ amount }} off your next purchase","coupon_promo_intro_with_video_text":"Write a review and add a video to get a coupon for {{ amount }} off your next purchase","coupon_promo_intro_up_to_any_review_text":"Write a review and get a coupon for up to {{ amount }} off your next purchase","coupon_promo_intro_up_to_with_photo_text":"Write a review and add a photo or video to get a coupon for up to {{ amount }} off your next purchase","coupon_promo_intro_external_text":"Write a review and get a reward for your next purchase","coupon_promo_intro_external_with_photo_text":"Write a review and add a photo or video to get a reward for your next purchase","coupon_promo_intro_external_with_video_text":"Write a review and add a video to get a reward for your next purchase","coupon_promo_media_photo_text":"Add a photo or video and get a coupon for {{ amount }} off your next purchase","coupon_promo_media_photo_only_text":"Add a photo and get a coupon for {{ amount }} off your next purchase","coupon_promo_media_video_text":"Add a video and get a coupon for {{ amount }} off your next purchase","coupon_promo_media_external_photo_text":"Add a photo or video and get a reward for your next purchase","coupon_promo_media_external_photo_only_text":"Add a photo and get a reward for your next purchase","coupon_promo_media_external_video_text":"Add a video and get a reward for your next purchase","coupon_promo_success_text":"You've got a coupon for your next purchase at {{ shop_name }}!","coupon_promo_success_subtext":"You'll receive your coupon email within the hour.","preview_badge_collection_page_install_status":false,"widget_review_custom_css":"","preview_badge_custom_css":"","preview_badge_stars_count":"5-stars","featured_carousel_custom_css":"","floating_tab_custom_css":"","all_reviews_widget_custom_css":"","medals_widget_custom_css":"","verified_badge_custom_css":"","all_reviews_text_custom_css":"","transparency_badges_collected_via_store_invite":false,"transparency_badges_from_another_provider":false,"transparency_badges_collected_from_store_visitor":false,"transparency_badges_collected_by_verified_review_provider":true,"transparency_badges_earned_reward":false,"transparency_badges_collected_via_store_invite_text":"Review collected via store invitation","transparency_badges_from_another_provider_text":"Review collected from another provider","transparency_badges_collected_from_store_visitor_text":"Review collected from a store visitor","transparency_badges_written_in_google_text":"Review written in Google","transparency_badges_written_in_etsy_text":"Review written in Etsy","transparency_badges_written_in_shop_app_text":"Review written in Shop App","transparency_badges_earned_reward_text":"Review earned a reward for future purchase","product_review_widget_per_page":10,"widget_other_languages_reviews_per_page":3,"widget_store_review_label_text":"Review about the store","widget_cart_mode_aggregate_heading_text":"Customers rate this store","checkout_comment_extension_title_on_product_page":"Customer Comments","checkout_comment_extension_num_latest_comment_show":5,"checkout_comment_extension_format":"name_and_timestamp","checkout_comment_customer_name":"last_initial","checkout_comment_comment_notification":true,"preview_badge_collection_page_install_preference":false,"preview_badge_home_page_install_preference":false,"preview_badge_product_page_install_preference":false,"review_widget_install_preference":"","review_carousel_install_preference":false,"floating_reviews_tab_install_preference":"none","verified_reviews_count_badge_install_preference":false,"all_reviews_text_install_preference":false,"review_widget_best_location":false,"judgeme_medals_install_preference":false,"review_widget_revamp_enabled":false,"review_widget_qna_enabled":false,"review_widget_header_theme":"minimal","review_widget_widget_title_enabled":true,"review_widget_header_text_size":"medium","review_widget_header_text_weight":"regular","review_widget_average_rating_style":"compact","review_widget_bar_chart_enabled":true,"review_widget_bar_chart_type":"numbers","review_widget_bar_chart_style":"standard","review_widget_expanded_media_gallery_enabled":false,"review_widget_show_review_highlights":false,"review_widget_show_review_keywords_in_gray":false,"review_widget_reviews_section_theme":"standard","review_widget_image_style":"thumbnails","review_widget_review_image_ratio":"square","review_widget_stars_size":"medium","review_widget_verified_badge":"standard_text","review_widget_review_title_text_size":"medium","review_widget_review_text_size":"medium","review_widget_review_text_length":"medium","review_widget_number_of_columns_desktop":3,"review_widget_carousel_transition_speed":5,"review_widget_custom_questions_answers_display":"always","review_widget_card_section_size":"small","review_widget_button_text_color":"#FFFFFF","review_widget_text_color":"#000000","review_widget_lighter_text_color":"#7B7B7B","review_widget_corner_styling":"soft","review_widget_review_word_singular":"review","review_widget_review_word_plural"
756:"reviews","review_widget_voting_label":"Helpful?","review_widget_shop_reply_label":"Reply from {{ shop_name }}:","review_widget_filters_title":"Filters","review_widget_filter_rating_title":"Rating","review_widget_filter_keyword_title":"Keyword","review_widget_clear_filters_text":"Clear filters","review_widget_expand_more_text":"More","review_widget_review_highlights_title":"Review highlights","qna_widget_question_word_singular":"Question","qna_widget_question_word_plural":"Questions","qna_widget_answer_reply_label":"Answer from {{ answerer_name }}:","qna_content_screen_title_text":"Ask a question about this product","qna_widget_question_required_field_error_text":"Please enter your question.","qna_widget_flow_gdpr_statement":"We'll only contact you about your question if necessary. By submitting your question, you agree to our \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eterms and conditions\u003c/a\u003e and \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eprivacy policy\u003c/a\u003e.","qna_widget_question_submitted_text":"Thanks for your question!","qna_widget_close_form_text_question":"Close","qna_widget_question_submit_success_text":"We’ll notify you by email when your question is answered.","all_reviews_widget_v2025_enabled":false,"all_reviews_widget_v2025_header_theme":"default","all_reviews_widget_v2025_widget_title_enabled":true,"all_reviews_widget_v2025_header_text_size":"medium","all_reviews_widget_v2025_header_text_weight":"regular","all_reviews_widget_v2025_average_rating_style":"compact","all_reviews_widget_v2025_bar_chart_enabled":true,"all_reviews_widget_v2025_bar_chart_type":"numbers","all_reviews_widget_v2025_bar_chart_style":"standard","all_reviews_widget_v2025_expanded_media_gallery_enabled":false,"all_reviews_widget_v2025_show_store_medals":true,"all_reviews_widget_v2025_show_photo_gallery":true,"all_reviews_widget_v2025_show_review_keywords":false,"all_reviews_widget_v2025_show_ai_summary":false,"all_reviews_widget_v2025_show_ai_summary_bg":false,"all_reviews_widget_v2025_show_review_highlights":false,"all_reviews_widget_v2025_show_review_keywords_in_gray":false,"all_reviews_widget_v2025_add_search_bar":false,"all_reviews_widget_v2025_default_sort_method":"most-recent","all_reviews_widget_v2025_reviews_per_page":10,"all_reviews_widget_v2025_reviews_section_theme":"default","all_reviews_widget_v2025_image_style":"thumbnails","all_reviews_widget_v2025_review_image_ratio":"square","all_reviews_widget_v2025_stars_size":"medium","all_reviews_widget_v2025_verified_badge":"standard_text","all_reviews_widget_v2025_review_title_text_size":"medium","all_reviews_widget_v2025_review_text_size":"medium","all_reviews_widget_v2025_review_text_length":"medium","all_reviews_widget_v2025_number_of_columns_desktop":3,"all_reviews_widget_v2025_carousel_transition_speed":5,"all_reviews_widget_v2025_custom_questions_answers_display":"always","all_reviews_widget_v2025_review_dates":false,"all_reviews_widget_v2025_card_section_size":"small","all_reviews_widget_v2025_show_product_variant":false,"all_reviews_widget_v2025_show_reviewer_avatar":true,"all_reviews_widget_v2025_reviewer_name_as_initial":"","all_reviews_widget_v2025_review_location_show":false,"all_reviews_widget_v2025_location_format":"","all_reviews_widget_v2025_show_country_flag":false,"all_reviews_widget_v2025_widget_thumb":false,"all_reviews_widget_v2025_verified_by_shop_badge_style":"light","all_reviews_widget_v2025_social_share":false,"all_reviews_widget_v2025_social_share_options_order":"Facebook,Twitter,LinkedIn,Pinterest","all_reviews_widget_v2025_pagination_type":"standard","all_reviews_widget_v2025_button_text_color":"#FFFFFF","all_reviews_widget_v2025_text_color":"#000000","all_reviews_widget_v2025_lighter_text_color":"#7B7B7B","all_reviews_widget_v2025_corner_styling":"soft","all_reviews_widget_v2025_title":"Customer reviews","all_reviews_widget_v2025_ai_summary_title":"Customers say about this store","all_reviews_widget_v2025_no_review_text":"Be the first to write a review","all_reviews_widget_v2025_review_highlights_title":"Review highlights","reviews_grid_widget_show_sample_reviews":false,"reviews_grid_widget_review_selection":"all","reviews_grid_widget_select_products":[],"reviews_grid_widget_show_media_only":false,"reviews_grid_widget_display_order":"media_first","reviews_grid_widget_card_grouping":"per_media","reviews_grid_widget_columns_desktop":3,"reviews_grid_widget_rows_desktop":3,"reviews_grid_widget_columns_mobile":2,"reviews_grid_widget_rows_mobile":6,"reviews_grid_widget_show_stars":true,"reviews_grid_widget_show_reviewer_name":true,"reviews_grid_widget_show_review_title_on_hover_desktop":true,"reviews_grid_widget_corner_styling":"soft","reviews_grid_widget_card_spacing":"medium","reviews_grid_widget_header_text_color":"#000000","reviews_grid_widget_star_and_reviewer_name_color":"#F9F9F9","reviews_grid_widget_overlay_and_background_color":"#000000","reviews_grid_widget_content_color":"#F9F9F9","reviews_grid_widget_header_text":"From our customers","reviews_grid_widget_show_average_rating":true,"trust_badge_enabled":false,"trust_badge_structure":"outline","trust_badge_color":"black","trust_badge_star":"black","trust_badge_rating_display_default":"show_avg_text","platform":"shopify","branding_url":"https://app.judge.me/reviews","branding_text":"Powered by Judge.me","locale":"en","reply_name":"WakeMAKERS","shop_currency":"USD","widget_version":"3.0","footer":true,"autopublish":false,"review_dates":true,"enable_custom_form":false,"shop_locale":"en","enable_multi_locales_translations":true,"show_review_title_input":false,"autofill_review_title":true,"review_verification_email_status":"always","require_verification_before_submit":false,"sign_in_with_
756shop_enabled":false,"customer_account_validation_enabled":true,"most_relevant_sort_enabled":true,"coupon_promo_invited_eligible":true,"coupon_promo_web_eligible":false,"uses_coupon_integration":false,"uses_external_coupon":false,"can_be_branded":true,"rtl_stars_enabled_ar":true,"rtl_stars_enabled_he":true,"reply_name_text":"WakeMAKERS"};</script>
756 <style class='jdgm-settings-style'>.jdgm-xx{left:0}:root{--jdgm-primary-color: #39f;--jdgm-secondary-color: #EFEFEF;--jdgm-star-color: #39f;--jdgm-write-review-text-color: white;--jdgm-write-review-bg-color: #3399FF;--jdgm-paginate-color: #3399FF;--jdgm-border-radius: 0;--jdgm-reviewer-name-color: #2E2E2E}.jdgm-histogram__bar-content{background-color:#3399FF}.jdgm-rev[data-verified-buyer=true] .jdgm-rev__icon.jdgm-rev__icon:after,.jdgm-rev__buyer-badge.jdgm-rev__buyer-badge{color:white;background-color:#39f}.jdgm-review-widget--small .jdgm-gallery.jdgm-gallery .jdgm-gallery__thumbnail-link:nth-child(8) .jdgm-gallery__thumbnail-wrapper.jdgm-gallery__thumbnail-wrapper:before{content:"See more"}@media only screen and (min-width: 768px){.jdgm-gallery.jdgm-gallery .jdgm-gallery__thumbnail-link:nth-child(8) .jdgm-gallery__thumbnail-wrapper.jdgm-gallery__thumbnail-wrapper:before{content:"See more"}}.jdgm-rev__thumb-btn{color:#39f}.jdgm-rev__thumb-btn:hover{opacity:0.8}.jdgm-rev__thumb-btn:not([disabled]):hover,.jdgm-rev__thumb-btn:hover,.jdgm-rev__thumb-btn:active,.jdgm-rev__thumb-btn:visited{color:#39f}.jdgm-widget .jdgm-write-rev-link{display:none}.jdgm-widget .jdgm-rev-widg[data-number-of-reviews='0'] .jdgm-rev-widg__summary{display:none}.jdgm-prev-badge[data-average-rating='0.00']{display:none !important}.jdgm-widget.jdgm-all-reviews-widget,.jdgm-widget .jdgm-rev-widg{border:none;padding:0}.jdgm-author-fullname{display:none !important}.jdgm-author-all-initials{display:none !important}.jdgm-rev-widg__title{visibility:hidden}.jdgm-rev-widg__summary-text{visibility:hidden}.jdgm-prev-badge__text{visibility:hidden}.jdgm-rev__prod-link-prefix:before{content:'about'}.jdgm-rev__variant-label:before{content:'Variant: '}.jdgm-rev__out-of-store-text:before{content:'(out of store)'}@media only screen and (min-width: 768px){.jdgm-rev__pics .jdgm-rev_all-rev-page-picture-separator,.jdgm-rev__pics .jdgm-rev__product-picture{display:none}}@media only screen and (max-width: 768px){.jdgm-rev__pics .jdgm-rev_all-rev-page-picture-separator,.jdgm-rev__pics .jdgm-rev__product-picture{display:none}}.jdgm-preview-badge[data-template="product"]{display:none !important}.jdgm-preview-badge[data-template="collection"]{display:none !important}.jdgm-preview-badge[data-template="index"]{display:none !important}.jdgm-review-widget[data-from-snippet="true"]{display:none !important}.jdgm-verified-count-badget[data-from-snippet="true"]{display:none !important}.jdgm-carousel-wrapper[data-from-snippet="true"]{display:none !important}.jdgm-all-reviews-text[data-from-snippet="true"]{display:none !important}.jdgm-medals-section[data-from-snippet="true"]{display:none !important}.jdgm-ugc-media-wrapper[data-from-snippet="true"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_collected_via_store_invitation"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_collected_from_another_provider"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_collected_from_store_visitor"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_earned_for_future_purchase"]{display:none !important}.jdgm-review-snippet-widget{--jdgm-snippet-card-color: #fff;--jdgm-snippet-text-color: #000;--jdgm-snippet-lighter-text-color: #7B7B7B;--jdgm-snippet-star-color: #39f;--jdgm-snippet-border-radius: 0px;--jdgm-snippet-arrows-bg-color: #fff;--jdgm-snippet-arrows-color: #000}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__cards-container .jdgm-rev-snippet-card{border-radius:0px;background:#fff}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__cards-container .jdgm-rev-snippet-card__rev-rating .jdgm-star{color:#39f}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__prev-btn,.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__next-btn{border-radius:0px;background:#fff}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__prev-btn>svg,.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__next-btn>svg{fill:#000}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jm-mfp-content,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__icon,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__pic-img,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__reply{border-radius:0px}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev[data-verified-buyer="true"] .jdgm-full-rev__icon::after{border-radius:0px}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-rev__buyer-badge{border-radius:calc( 0px / 2 )}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-full-rev__replier::before{content:'WakeMAKERS'}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-full-rev__product-button{border-radius:calc( 0px * 6 )}
757</style> <style class='jdgm-settings-style'></style>
758
759  
760  
761  
762  <style class='jdgm-miracle-styles'>
763  @-webkit-keyframes jdgm-spin{0%{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes jdgm-spin{0%{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}@font-face{font-family:'JudgemeStar';src:url("data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAAAScAA0AAAAABrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAEgAAAABoAAAAcbyQ+3kdERUYAAARgAAAAHgAAACAAMwAGT1MvMgAAAZgAAABGAAAAVi+vS9xjbWFwAAAB8AAAAEAAAAFKwBMjvmdhc3AAAARYAAAACAAAAAj//wADZ2x5ZgAAAkAAAAEJAAABdH33LXtoZWFkAAABMAAAAC0AAAA2BroQKWhoZWEAAAFgAAAAHAAAACQD5QHQaG10eAAAAeAAAAAPAAAAFAYAAABsb2NhAAACMAAAAA4AAAAOAO4AeG1heHAAAAF8AAAAHAAAACAASgAvbmFtZQAAA0wAAADeAAABkorWfVZwb3N0AAAELAAAACkAAABEp3ubLXgBY2BkYADhPPP4OfH8Nl8ZuJkYQODS2fRrCPr/aSYGxq1ALgcDWBoAO60LkwAAAHgBY2BkYGDc+v80gx4TAwgASaAICmABAFB+Arl4AWNgZGBgYGPQYWBiAAIwyQgWc2AAAwAHVQB6eAFjYGRiYJzAwMrAwejDmMbAwOAOpb8ySDK0MDAwMbByMsCBAAMCBKS5pjA4PGB4wMR44P8BBj3GrQymQGFGkBwAjtgK
763/gAAeAFjYoAAEA1jAwAAZAAHAHgB3crBCcAwDEPRZydkih567CDdf4ZskmLwFBV8xBfCaC4BXkOUmx4sU0h2ngNb9V0vQCxaRKIAevT7fGWuBrEAAAAAAAAAAAA0AHgAugAAeAF9z79Kw1AUx/FzTm7un6QmJtwmQ5Bg1abgEGr/BAqlU6Gju+Cgg1MkQ/sA7Vj7BOnmO/gUvo2Lo14NqIO6/IazfD8HEODtmQCfoANwNsyp2/GJt3WKQrd1NLiYYWx2PBqOsmJMEOznPOTzfSCrhAtbbLdmeFLJV9eKd63WLrZcIcuaEVdssWCKM6pLCfTVOYbz/0pNSMSZKLIZpvh78sAUH6PlMrreTCabP9r+Z/puPZ2ur/RqpQHgh+MIegCnXeM4MRAPjYN//5tj4ZtTjkFqEdmeMShlEJ7tVAly2TAkx6R68Fl4E/aVvn8JqHFQ4JS1434gXKcuL31dDhzs3YbsEOAd/IU88gAAAHgBfY4xTgMxEEVfkk0AgRCioKFxQYd2ZRtpixxgRU2RfhU5q5VWseQ4JdfgAJyBlmNwAM7ABRhZQ0ORwp7nr+eZAa54YwYg9zm3ynPOeFRe8MCrciXOh/KSS76UV5L/iDmrLiS5AeU519wrL3jmSbkS5115yR2fyivJv9kx0ZMZ2RLZw27q87iNQi8EBo5FSPIMw3HqBboi5lKTGAGDp8FKXWP+t9TU01Lj5His1Ba6uM9dTEMwvrFmbf5GC/q2drW3ruXUhhsCiQOjznFlCzYhHUZp4xp76vsvQh89CQAAeAFjYGJABowM6IANLMrEyMTIzMjCXpyRWJBqZshWXJJYBKOMAFHFBucAAAAAAAAB//8AAngBY2BkYGDgA2IJBhBgAvKZGViBJAuYxwAABJsAOgAAeAFjYGBgZACCk535hiD60tn0azAaAEqpB6wAAA==") format("woff");font-weight:normal;font-style:normal}.jdgm-star{font-family:'JudgemeStar';display:inline !important;text-decoration:none !important;padding:0 4px 0 0 !important;margin:0 !important;font-weight:bold;opacity:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.jdgm-star:hover{opacity:1}.jdgm-star:last-of-type{padding:0 !important}.jdgm-star.jdgm--on:before{content:"\e000"}.jdgm-star.jdgm--off:before{content:"\e001"}.jdgm-star.jdgm--half:before{content:"\e002"}.jdgm-widget *{margin:0;line-height:1.4;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch}.jdgm-hidden{display:none !important;visibility:hidden !important}.jdgm-temp-hidden{display:none}.jdgm-spinner{width:40px;height:40px;margin:auto;border-radius:50%;border-top:2px solid #eee;border-right:2px solid #eee;border-bottom:2px solid #eee;border-left:2px solid #ccc;-webkit-animation:jdgm-spin 0.8s infinite linear;animation:jdgm-spin 0.8s infinite linear}.jdgm-spinner:empty{display:block}.jdgm-prev-badge{display:block !important}
764
765</style>
766
767
768  
769  
770   
771
772
773
774
775<script data-cfasync='false' class='jdgm-script'>
776!function(e){window.jdgm=window.jdgm||{};
777/* INF-1976 */
778var _jdgmBlocked=function(){var raw=(window.jdgmSettings||{}).hostname_allowlist;var list=(raw==null?"":""+raw).split(/[\s,]+/).map(function(h){return h.trim().toLowerCase().replace(/\.$/,"");}).filter(function(h){return h;});if(!list.length)return false;var host=(e.location.hostname||"").toLowerCase().replace(/\.$/,"");if(/(^|\.)shopifypreview\.com$/.test(host))return false;var bare=host.replace(/^www\./,"");for(var i=0;i<list.length;i++){var en=list[i];if(en.indexOf("*.")===0){var b=en.slice(2);if(host===b||host.slice(-(b.length+1))==="."+b)return false;}else if(bare===en.replace(/^www\./,""))return false;}return true;}();
779if(_jdgmBlocked){jdgm._loaderExecuted=true;jdgm._blocked=true;var _jdgmS=e.createElement("style");_jdgmS.textContent='[class^="jdgm-"],[class*=" jdgm-"]{display:none !important}';(e.head||e.documentElement).appendChild(_jdgmS);return;}
780jdgm.CDN_HOST="https://cdnwidget.judge.me/",jdgm.CDN_HOST_ALT="https://cdn2.judge.me/cdn/widget_frontend/",jdgm.API_HOST="https://api.judge.me/",jdgm.CDN_BASE_URL="https://cdn.shopify.com/extensions/01a0cdf8-b2d2-7ccd-a251-5cf8c66ad2ca/judgeme-762/assets/",jdgm.CDN_API_HOST="https://cdn.judge.me/",
781jdgm.docReady=function(d){(e.attachEvent?"complete"===e.readyState:"loading"!==e.readyState)?
782setTimeout(d,0):e.addEventListener("DOMContentLoaded",d)},jdgm.loadCSS=function(d,t,o,a){
783!o&&jdgm.loadCSS.requestedUrls.indexOf(d)>=0||(jdgm.loadCSS.requestedUrls.push(d),
784(a=e.createElement("link")).rel="stylesheet",a.class="jdgm-stylesheet",a.media="nope!",
785a.href=d,a.onload=function(){this.media="all",t&&setTimeout(t)},e.body.appendChild(a))},
786jdgm.loadCSS.requestedUrls=[],jdgm.loadJS=function(e,d){var t=new XMLHttpRequest;
787t.onreadystatechange=function(){4===t.readyState&&t.status>=200&&t.status<300&&(Function(t.response)(),d&&d(t.response))},
788t.open("GET",e),t.onerror=function(){if(e.indexOf(jdgm.CDN_HOST)===0&&jdgm.CDN_HOST_ALT!==jdgm.CDN_HOST){var f=e.replace(jdgm.CDN_HOST,jdgm.CDN_HOST_ALT);jdgm.loadJS(f,d)}},t.send()},jdgm.docReady((function(){(window.jdgmLoadCSS||e.querySelectorAll(
789".jdgm-widget, .jdgm-all-reviews-page").length>0)&&(jdgmSettings.widget_load_with_code_splitting?
790parseFloat(jdgmSettings.widget_version)>=3?jdgm.loadCSS(jdgm.CDN_BASE_URL+"widget_v3_base.css"):
791jdgm.loadCSS(jdgm.CDN_BASE_URL+"widget_base.css"):jdgm.loadCSS(jdgm.CDN_BASE_URL+"shopify_v2.css")
792)}))}(document);
793</script>
793
794<noscript><link rel="stylesheet" type="text/css" media="all" href="https://cdn.shopify.com/extensions/01a0cdf8-b2d2-7ccd-a251-5cf8c66ad2ca/judgeme-762/assets/shopify_v2.css"></noscript>
795
796<!-- BEGIN app snippet: theme_fix_tags -->
796<script>
797  (function() {
798    var jdgmThemeFixes = null;
799    if (!jdgmThemeFixes) return;
800
801    // "All themes" fix: CSS and JS applied on every theme. CSS is injected
802    // before the per-theme fix so the theme-specific CSS wins the cascade.
803    // HTML is never applied globally (too risky).
804    var allThemesFix = jdgmThemeFixes['all'];
805    if (allThemesFix && allThemesFix.css) {
806      var allStyleTag = document.createElement('style');
807      allStyleTag.classList.add('jdgm-theme-fix-style-all');
808      allStyleTag.innerHTML = allThemesFix.css;
809      document.head.append(allStyleTag);
810    };
811
812    if (allThemesFix && allThemesFix.js) {
813      var allScriptTag = document.createElement('script');
814      allScriptTag.classList.add('jdgm-theme-fix-script-all');
815      allScriptTag.innerHTML = allThemesFix.js;
816      document.head.append(allScriptTag);
817    };
818
819    var thisThemeFix = jdgmThemeFixes[Shopify.theme.id];
820    if (!thisThemeFix) return;
821
822    if (thisThemeFix.html) {
823      document.addEventListener("DOMContentLoaded", function() {
824        var htmlDiv = document.createElement('div');
825        htmlDiv.classList.add('jdgm-theme-fix-html');
826        htmlDiv.innerHTML = thisThemeFix.html;
827        document.body.append(htmlDiv);
828      });
829    };
830
831    if (thisThemeFix.css) {
832      var styleTag = document.createElement('style');
833      styleTag.classList.add('jdgm-theme-fix-style');
834      styleTag.innerHTML = thisThemeFix.css;
835      document.head.append(styleTag);
836    };
837
838    if (thisThemeFix.js) {
839      var scriptTag = document.createElement('script');
840      scriptTag.classList.add('jdgm-theme-fix-script');
841      scriptTag.innerHTML = thisThemeFix.js;
842      document.head.append(scriptTag);
843    };
844  })();
845</script>
845
846<!-- END app snippet -->
847<!-- End of Judge.me Core -->
848
849
850
851<!-- END app block --><!-- BEGIN app block: shopify://apps/pagefly-ai-page-builder/blocks/app-embed/83e179f7-59a0-4589-8c66-c0dddf959200 -->
852
853<!-- BEGIN app snippet: pagefly-cro-ab-testing-main -->
854
855
856
857
858
859
860
861<script>
862  ;(function () {
863    const url = new URL(window.location)
864    const viewParam = url.searchParams.get('view')
865    if (viewParam && viewParam.includes('variant-pf-')) {
866      url.searchParams.set('pf_v', viewParam)
867      url.searchParams.delete('view')
868      window.history.replaceState({}, '', url)
869    }
870  })()
871</script>
871
872
873
874
875<script type='module'>
876  
877  window.PAGEFLY_CRO = window.PAGEFLY_CRO || {}
878
879  window.PAGEFLY_CRO['data_debug'] = {
880    original_template_suffix: "all_products",
881    allow_ab_test: false,
882    ab_test_start_time: 0,
883    ab_test_end_time: 0,
884    today_date_time: 1790324396000,
885  }
886  window.PAGEFLY_CRO['GA4'] = { enabled: true}
887</script>
887
888
889<!-- END app snippet -->
890
891
892
893
894
895
896
897
898  
898<script src='https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-helper.js' defer='defer'></script>
898
899
900  
900<script src='https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-general-helper.js' defer='defer'></script>
900
901
902  
902<script src='https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-snap-slider.js' defer='defer'></script>
902
903
904  
904<script src='https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-slideshow-v3.js' defer='defer'></script>
904
905
906  
906<script src='https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-slideshow-v4.js' defer='defer'></script>
906
907
908  
908<script src='https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-glider.js' defer='defer'></script>
908
909
910  
910<script src='https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-slideshow-v1-v2.js' defer='defer'></script>
910
911
912  
912<script src='https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-product-media.js' defer='defer'></script>
912
913
914  
914<script src='https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-product.js' defer='defer'></script>
914
915
916
917<script id='pagefly-helper-data' type='application/json'>
918  {
919    "page_optimization": {
920      "assets_prefetching": false
921    },
922    "elements_asset_mapper": {
923      "Accordion": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-accordion.js",
924      "Accordion3": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-accordion3.js",
925      "CountDown": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-countdown.js",
926      "GMap1": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-gmap.js",
927      "GMap2": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-gmap.js",
928      "GMapBasicV2": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-gmap.js",
929      "GMapAdvancedV2": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-gmap.js",
930      "HTML.Video": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-htmlvideo.js",
931      "HTML.Video2": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-htmlvideo2.js",
932      "HTML.Video3": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-htmlvideo2.js",
933      "BackgroundVideo": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-htmlvideo2.js",
934      "Instagram": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-instagram.js",
935      "Instagram2": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-instagram.js",
936      "Insta3": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-instagram3.js",
937      "Tabs": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-tab.js",
938      "Tabs3": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-tab3.js",
939      "ProductBox": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-cart.js",
940      "FBPageBox2": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-facebook.js",
941      "FBLikeButton2": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-facebook.js",
942      "TwitterFeed2": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-twitter.js",
943      "Paragraph4": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-paragraph4.js",
944
945      "AliReviews": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-3rd-elements.js",
946      "BackInStock": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-3rd-elements.js",
947      "GloboBackInStock": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-3rd-elements.js",
948      "GrowaveWishlist": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-3rd-elements.js",
949      "InfiniteOptionsShopPad": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-3rd-elements.js",
950      "InkybayProductPersonalizer": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder
950-359/assets/pagefly-3rd-elements.js",
951      "LimeSpot": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-3rd-elements.js",
952      "Loox": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-3rd-elements.js",
953      "Opinew": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-3rd-elements.js",
954      "Powr": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-3rd-elements.js",
955      "ProductReviews": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-3rd-elements.js",
956      "PushOwl": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-3rd-elements.js",
957      "ReCharge": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-3rd-elements.js",
958      "Rivyo": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-3rd-elements.js",
959      "TrackingMore": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-3rd-elements.js",
960      "Vitals": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-3rd-elements.js",
961      "Wiser": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-3rd-elements.js"
962    },
963    "custom_elements_mapper": {
964      "pf-click-action-element": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-click-action-element.js",
965      "pf-dialog-element": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-dialog-element.js"
966    }
967  }
968</script>
968
969
970<script id='pagefly-heatmap-config' type='application/json'>
971  {}
972</script>
vendor: 1 bytes, line 972
972
973<script>
974  (function () {
975    var el = document.getElementById('pagefly-heatmap-config')
976    if (!el) { window.__pagefly_heatmap_config__ = {}; return }
977    try {
978      window.__pagefly_heatmap_config__ = JSON.parse(el.textContent || '{}') || {}
979    } catch (e) {
980      window.__pagefly_heatmap_config__ = {}
981    }
982  })()
983</script>
vendor: 1 bytes, line 983
983
984<script>
985  // Heatmap overlay loader. Three gates, all of them cheap, none of them trusting the URL:
986  // the visitor must have arrived on a pf_heatmap link, the SERVER must have published an
987  // overlay path in the metafield, and this page must already be one the merchant enabled
988  // tracking for. The last gate is what stops a crafted link pulling the asset onto an
989  // arbitrary storefront page. Everything else is decided inside the asset, and by the server.
990  (function () {
991    var cfg = window.__pagefly_heatmap_config__ || {}
992    var id = (window.__pagefly_page_setting__ || {}).pageId
993    if (!/[#&]pf_heatmap=/.test(window.location.hash || '')) return
994    if (!cfg.overlay_data_path || !Array.isArray(cfg.enabled_page_ids)) return
995    if (!id || cfg.enabled_page_ids.indexOf(id) === -1) return
996    var s = document.createElement('script')
997    s.src = 'https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-heatmap-overlay.js'
998    s.defer = true
999    document.head.appendChild(s)
1000  })()
1001</script>
1001
1002
1003<!-- BEGIN app snippet: pf-ai-schema -->
1004<!-- END app snippet -->
1005
1006
1007<!-- END app block --><!-- BEGIN app block: shopify://apps/klaviyo-email-marketing-sms/blocks/klaviyo-onsite-embed/2632fe16-c075-4321-a88b-50b567f42507 -->
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020  
1020<script async src="https://static.klaviyo.com/onsite/js/qBA9D8/klaviyo.js?company_id=qBA9D8"></script>
1020
1021  
1021<script>!function(){if(!window.klaviyo){window._klOnsite=window._klOnsite||[];try{window.klaviyo=new Proxy({},{get:function(n,i){return"push"===i?function(){var n;(n=window._klOnsite).push.apply(n,arguments)}:function(){for(var n=arguments.length,o=new Array(n),w=0;w<n;w++)o[w]=arguments[w];var t="function"==typeof o[o.length-1]?o.pop():void 0,e=new Promise((function(n){window._klOnsite.push([i].concat(o,[function(i){t&&t(i),n(i)}]))}));return e}}})}catch(n){window.klaviyo=window.klaviyo||[],window.klaviyo.push=function(){var n;(n=window._klOnsite).push.apply(n,arguments)}}}}();</script>
1021
1022
1023  
1024    
1024<script id="viewed_product">
1025      if (item == null) {
1026        var _learnq = _learnq || [];
1027
1028        var MetafieldReviews = null
1029        var MetafieldYotpoRating = null
1030        var MetafieldYotpoCount = null
1031        var MetafieldLooxRating = null
1032        var MetafieldLooxCount = null
1033        var okendoProduct = null
1034        var okendoProductReviewCount = null
1035        var okendoProductReviewAverageValue = null
1036        try {
1037          // The following fields are used for Customer Hub recently viewed in order to add reviews.
1038          // This information is not part of __kla_viewed. Instead, it is part of __kla_viewed_reviewed_items
1039          MetafieldReviews = {"rating":{"scale_min":"1.0","scale_max":"5.0","value":"4.6"},"rating_count":23};
1040          MetafieldYotpoRating = null
1041          MetafieldYotpoCount = null
1042          MetafieldLooxRating = null
1043          MetafieldLooxCount = null
1044
1045          okendoProduct = {"attributeRatings":[],"fiveStarReviewCount":17,"mediaCount":9,"percentageRecommended":96,"reviewAverageValue":"4.6","reviewCount":23}
1046          // If the okendo metafield is not legacy, it will error, which then requires the new json formatted data
1047          if (okendoProduct && 'error' in okendoProduct) {
1048            okendoProduct = null
1049          }
1050          okendoProductReviewCount = okendoProduct ? okendoProduct.reviewCount : null
1051          okendoProductReviewAverageValue = okendoProduct ? okendoProduct.reviewAverageValue : null
1052        } catch (error) {
1053          console.error('Error in Klaviyo onsite reviews tracking:', error);
1054        }
1055
1056        var item = {
1057          Name: "WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)",
1058          ProductID: 7759285649573,
1059          Categories: ["Ballast Combos and Upgrades","Ballast Featured Products","Black Friday - Ballast","Discount Eligible Products","Featured Products","Featured Products*","Heaters \u0026 Accessories","Jetpilot","MB Sports Wakeboard Boat Ballast","Meguiars","Showers \u0026 Accessories","Slide Anchor","WakeMAKERS Ballast Bags","WakeMAKERS Ballast Bags, Combos, Upgrades","WakeMAKERS Brand","WakeMAKERS Brand","WakeMAKERS Featured Products","Wakesurf Ballast Bags"],
1060          ImageURL: "https://www.wakemakers.com/cdn/shop/files/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8_grande.jpg?v=1731575349",
1061          URL: "https://www.wakemakers.com/products/wakemakers-rear-lbs-ballast-bag",
1062          Brand: "WakeMAKERS",
1063          Price: "$169.99",
1064          Value: "169.99",
1065          CompareAtPrice: "$0.00"
1066        };
1067        _learnq.push(['track', 'Viewed Product', item]);
1068        _learnq.push(['trackViewedItem', {
1069          Title: item.Name,
1070          ItemId: item.ProductID,
1071          Categories: item.Categories,
1072          ImageUrl: item.ImageURL,
1073          Url: item.URL,
1074          Metadata: {
1075            Brand: item.Brand,
1076            Price: item.Price,
1077            Value: item.Value,
1078            CompareAtPrice: item.CompareAtPrice
1079          },
1080          metafields:{
1081            reviews: MetafieldReviews,
1082            yotpo:{
1083              rating: MetafieldYotpoRating,
1084              count: MetafieldYotpoCount,
1085            },
1086            loox:{
1087              rating: MetafieldLooxRating,
1088              count: MetafieldLooxCount,
1089            },
1090            okendo: {
1091              rating: okendoProductReviewAverageValue,
1092              count: okendoProductReviewCount,
1093            }
1094          }
1095        }]);
1096      }
1097    </script>
1097
1098  
1099
1100
1101
1102
1103  
1103<script>
1104    window.klaviyoReviewsProductDesignMode = false
1105  </script>
1105
1106
1107
1108
1109  <!-- BEGIN app snippet: customer-hub-data -->
1109<script>
1110  if (!window.customerHub) {
1111    window.customerHub = {};
1112  }
1113  window.customerHub.storefrontRoutes = {
1114    login: "https://www.wakemakers.com/customer_authentication/redirect?locale=en&region_country=US?return_url=%2F%23k-hub",
1115    register: "https://account.wakemakers.com?locale=en&buyer_flags=eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJ3YWtlbWFrZXJzLXByb2QubXlzaG9waWZ5LmNvbSIsImZsYWdzIjpbXSwiZXhwIjoxNzkwOTI5MTk2LCJuYmYiOjE3OTAzMjQzOTZ9.9mL3NRAK_GW5e5Kk-pCcXB1AAjvhQN61OohpJ-QC-Q0?return_url=%2F%23k-hub",
1116    logout: "/account/logout",
1117    profile: "/account",
1118    addresses: "/account/addresses",
1119  };
1120  
1121  window.customerHub.userId = null;
1122  
1123  window.customerHub.storeDomain = "wakemakers-prod.myshopify.com";
1124
1125  
1126    window.customerHub.activeProduct = {
1127      name: "WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)",
1128      category: null,
1129      imageUrl: "https://www.wakemakers.com/cdn/shop/files/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8_grande.jpg?v=1731575349",
1130      id: "7759285649573",
1131      link: "https://www.wakemakers.com/products/wakemakers-rear-lbs-ballast-bag",
1132      options: [
1133        
1134          {
1135            name: "Bag Size",
1136            values: [
1137              
1138                
1139                
1140                {
1141                  name: "30\"L x 20\"W x 20\"H - 490lbs",
1142                  colorHex: null,
1143                  swatchImageUrl: null
1144                },
1145              
1146                
1147                
1148                {
1149                  name: "45\"L x 25\"W x 20\"H - 910lbs",
1150                  colorHex: null,
1151                  swatchImageUrl: null
1152                },
1153              
1154                
1155                
1156                {
1157                  name: "45\"L x 25\"W x 25\"H - 1,140lbs",
1158                  colorHex: null,
1159                  swatchImageUrl: null
1160                },
1161              
1162                
1163                
1164                {
1165                  name: "45\"L x 20\"W x 25\"H - 910lbs",
1166                  colorHex: null,
1167                  swatchImageUrl: null
1168                },
1169              
1170                
1171                
1172                {
1173                  name: "45\"L x 20\"W x 20\"H - 720lbs",
1174                  colorHex: null,
1175                  swatchImageUrl: null
1176                },
1177              
1178                
1179                
1180                {
1181                  name: "40\"L x 25\"W x 15\"H - 610lbs",
1182                  colorHex: null,
1183                  swatchImageUrl: null
1184                },
1185              
1186                
1187                
1188                {
1189                  name: "40\"L x 20\"W x 20\"H - 640lbs",
1190                  colorHex: null,
1191                  swatchImageUrl: null
1192                },
1193              
1194                
1195                
1196                {
1197                  name: "40\"L x 25\"W x 20\"H - 820lbs",
1198                  colorHex: null,
1199                  swatchImageUrl: null
1200                },
1201              
1202                
1203                
1204                {
1205                  name: "35\"L x 25\"W x 15\"H - 540lbs",
1206                  colorHex: null,
1207                  swatchImageUrl: null
1208                },
1209              
1210                
1211                
1212                {
1213                  name: "50\"L x 25\"W x 15\"H - 740lbs",
1214                  colorHex: null,
1215                  swatchImageUrl: null
1216                },
1217              
1218                
1219                
1220                {
1221                  name: "50\"L x 25\"W x 25\"H - 1,280lbs",
1222                  colorHex: null,
1223                  swatchImageUrl: null
1224                },
1225              
1226                
1227                
1228                {
1229                  name: "30\"L x 25\"W x 15\"H - 460lbs",
1230                  colorHex: null,
1231                  swatchImageUrl: null
1232                },
1233              
1234                
1235                
1236                {
1237                  name: "35\"L x 20\"W x 15\"H - 430lbs",
1238                  colorHex: null,
1239                  swatchImageUrl: null
1240                },
1241              
1242                
1243                
1244                {
1245                  name: "30\"L x 25\"W x 25\"H - 765lbs",
1246                  colorHex: null,
1247                  swatchImageUrl: null
1248                },
1249              
1250                
1251                
1252                {
1253                  name: "45\"L x 20\"W x 15\"H - 550lbs",
1254                  colorHex: null,
1255                  swatchImageUrl: null
1256                },
1257              
1258                
1259                
1260                {
1261                  name: "35\"L x 25\"W x 20\"H - 710lbs",
1262                  colorHex: null,
1263                  swatchImageUrl: null
1264                },
1265              
1266                
1267                
1268                {
1269                  name: "30\"L x 25\"W x 20\"H - 610lbs",
1270                  colorHex: null,
1271                  swatchImageUrl: null
1272                },
1273              
1274                
1275                
1276                {
1277                  name: "50\"L x 25\"W x 20\"H - 1,020lbs",
1278                  colorHex: null,
1279                  swatchImageUrl: null
1280                },
1281              
1282                
1283                
1284                {
1285                  name: "35\"L x 25\"W x 25\"H - 890lbs",
1286                  colorHex: null,
1287                  swatchImageUrl: null
1288                }
1289              
1290            ]
1291          }
1292        
1293      ],
1294      variants: [
1295        
1296          {
1297            id: "41675600920741",
1298            selectedOptions: [
1299              
1300                
1301                {
1302                  name: "Bag Size",
1303                  value: "30\"L x 20\"W x 20\"H - 490lbs"
1304                }
1305              
1306            ],
1307            
1308            imageUrl: null,
1309            
1310            price: "18999",
1311            currency: "USD",
1312            availableForSale: true,
1313            title: "30\"L x 20\"W x 20\"H - 490lbs",
1314          },
1315        
1316          {
1317            id: "41675600953509",
1318            selectedOptions: [
1319              
1320                
1321                {
1322                  name: "Bag Size",
1323                  value: "45\"L x 25\"W x 20\"H - 910lbs"
1324                }
1325              
1326            ],
1327            
1328            imageUrl: null,
1329            
1330            price: "24999",
1331            currency: "USD",
1332            availableForSale: true,
1333            title: "45\"L x 25\"W x 20\"H - 910lbs",
1334          },
1335        
1336          {
1337            id: "41675600986277",
1338            selectedOptions: [
1339              
1340                
1341                {
1342                  name: "Bag Size",
1343                  value: "45\"L x 25\"W x 25\"H - 1,140lbs"
1344                }
1345              
1346            ],
1347            
1348            imageUrl: null,
1349            
1350            price: "25999",
1351            currency: "USD",
1352            availableForSale: true,
1353            title: "45\"L x 25\"W x 25\"H - 1,140lbs",
1354          },
1355        
1356          {
1357            id: "41675601019045",
1358            selectedOptions: [
1359              
1360                
1361                {
1362                  name: "Bag Size",
1363                  value: "45\"L x 20\"W x 25\"H - 910lbs"
1364                }
1365              
1366            ],
1367            
1368            imageUrl: null,
1369            
1370            price: "24999",
1371            currency: "USD",
1372            availableForSale: true,
1373            title: "45\"L x 20\"W x 25\"H - 910lbs",
1374          },
1375        
1376          {
1377            id: "41675601051813",
1378            selectedOptions: [
1379              
1380                
1381                {
1382                  name: "Bag Size",
1383                  value: "45\"L x 20\"W x 20\"H - 720lbs"
1384                }
1385              
1386            ],
1387            
1388            imageUrl: null,
1389            
1390            price: "22999",
1391            currency: "USD",
1392            availableForSale: true,
1393            title: "45\"L x 20\"W x 20\"H - 720lbs",
1394          },
1395        
1396          {
1397            id: "41675601084581",
1398            selectedOptions: [
1399              
1400                
1401                {
1402                  name: "Bag Size",
1403                  value: "40\"L x 25\"W x 15\"H - 610lbs"
1404                }
1405              
1406            ],
1407            
1408            imageUrl: null,
1409            
1410            price: "19999",
1411            currency: "USD",
1412            availableForSale: true,
1413            title: "40\"L x 25\"W x 15\"H - 610lbs",
1414          },
1415        
1416          {
1417            id: "41675601117349",
1418            selectedOptions: [
1419              
1420                
1421                {
1422                  name: "Bag Size",
1423                  value: "40\"L x 20\"W x 20\"H - 640lbs"
1424                }
1425              
1426            ],
1427            
1428            imageUrl: null,
1429            
1430            price: "19999",
1431            currency: "USD",
1432            availableForSale: true,
1433            title: "40\"L x 20\"W x 20\"H - 640lbs",
1434          },
1435        
1436          {
1437            id: "41675601150117",
1438            selectedOptions: [
1439              
1440                
1441                {
1442                  name: "Bag Size",
1443                  value: "40\"L x 25\"W x 20\"H - 820lbs"
1444                }
1445              
1446            ],
1447            
1448            imageUrl: null,
1449            
1450            price: "23999",
1451            currency: "USD",
1452            availableForSale: true,
1453            title: "40\"L x 25\"W x 20\"H - 820lbs",
1454          },
1455        
1456          {
1457            id: "41675601182885",
1458            selectedOptions: [
1459              
1460                
1461                {
1462                  name: "Bag Size",
1463                  value: "35\"L x 25\"W x 15\"H - 540lbs"
1464                }
1465              
1466            ],
1467            
1468            imageUrl: null,
1469            
1470            price: "18999",
1471            currency: "USD",
1472            availableForSale: true,
1473            title: "35\"L x 25\"W x 15\"H - 540lbs",
1474          },
1475        
1476          {
1477            id: "41675601215653",
1478            selectedOptions: [
1479              
1480                
1481                {
1482                  name: "Bag Size",
1483                  value: "50\"L x 25\"W x 15\"H - 740lbs"
1484                }
1485              
1486            ],
1487            
1488            imageUrl: null,
1489            
1490            price: "22999",
1491            currency: "USD",
1492            availableForSale: true,
1493            title: "50\"L x 25\"W x 15\"H - 740lbs",
1494          },
1495        
1496          {
1497            id: "41675601248421",
1498            selectedOptions: [
1499              
1500                
1501                {
1502                  name: "Bag Size",
1503                  value: "50\"L x 25\"W x 25\"H - 1,280lbs"
1504                }
1505              
1506            ],
1507            
1508            imageUrl: null,
1509            
1510            price: "24999",
1511            currency: "USD",
1512            availableForSale: true,
1513            title: "50\"L x 25\"W x 25\"H - 1,280lbs",
1514          },
1515        
1516          {
1517            id: "41675601281189",
1518            selectedOptions: [
1519              
1520                
1521                {
1522                  name: "Bag Size",
1523                  value: "30\"L x 25\"W x 15\"H - 460lbs"
1524                }
1525              
1526            ],
1527            
1528            imageUrl: null,
1529            
1530            price: "17999",
1531            currency: "USD",
1532            availableForSale: true,
1533            title: "30\"L x 25\"W x 15\"H - 460lbs",
1534          },
1535        
1536          {
1537            id: "41675601313957",
1538            selectedOptions: [
1539              
1540                
1541                {
1542                  name: "Bag Size",
1543                  value: "35\"L x 20\"W x 15\"H - 430lbs"
1544                }
1545              
1546            ],
1547            
1548            imageUrl: null,
1549            
1550            price: "16999",
1551            currency: "USD",
1552            availableForSale: true,
1553            title: "35\"L x 20\"W x 15\"H - 430lbs",
1554          },
1555        
1556          {
1557            id: "41675601346725",
1558            selectedOptions: [
1559              
1560                
1561                {
1562                  name: "Bag Size",
1563                  value: "30\"L x 25\"W x 25\"H - 765lbs"
1564                }
1565              
1566            ],
1567            
1568            imageUrl: null,
1569            
1570            price: "22999",
1571            currency: "USD",
1572            availableForSale: true,
1573            title: "30\"L x 25\"W x 25\"H - 765lbs",
1574          },
1575        
1576          {
1577            id: "41675601379493",
1578            selectedOptions: [
1579              
1580                
1581                {
1582                  name: "Bag Size",
1583                  value: "45\"L x 20\"W x 15\"H - 550lbs"
1584                }
1585              
1586            ],
1587            
1588            imageUrl: null,
1589            
1590            price: "18999",
1591            currency: "USD",
1592            availableForSale: true,
1593            title: "45\"L x 20\"W x 15\"H - 550lbs",
1594          },
1595        
1596          {
1597            id: "41675601412261",
1598            selectedOptions: [
1599              
1600                
1601                {
1602                  name: "Bag Size",
1603                  value: "35\"L x 25\"W x 20\"H - 710lbs"
1604                }
1605              
1606            ],
1607            
1608            imageUrl: null,
1609            
1610            price: "22999",
1611            currency: "USD",
1612            availableForSale: true,
1613            title: "35\"L x 25\"W x 20\"H - 710lbs",
1614          },
1615        
1616          {
1617            id: "41675601445029",
1618            selectedOptions: [
1619              
1620                
1621                {
1622                  name: "Bag Size",
1623                  value: "30\"L x 25\"W x 20\"H - 610lbs"
1624                }
1625              
1626            ],
1627            
1628            imageUrl: null,
1629            
1630            price: "19999",
1631            currency: "USD",
1632            availableForSale: true,
1633            title: "30\"L x 25\"W x 20\"H - 610lbs",
1634          },
1635        
1636          {
1637            id: "41675601477797",
1638            selectedOptions: [
1639              
1640                
1641                {
1642                  name: "Bag Size",
1643                  value: "50\"L x 25\"W x 20\"H - 1,020lbs"
1644                }
1645              
1646            ],
1647            
1648            imageUrl: null,
1649            
1650            price: "25999",
1651            currency: "USD",
1652            availableForSale: true,
1653            title: "50\"L x 25\"W x 20\"H - 1,020lbs",
1654          },
1655        
1656          {
1657            id: "41675601510565",
1658            selectedOptions: [
1659              
1660                
1661                {
1662                  name: "Bag Size",
1663                  value: "35\"L x 25\"W x 25\"H - 890lbs"
1664                }
1665              
1666            ],
1667            
1668            imageUrl: null,
1669            
1670            price: "24999",
1671            currency: "USD",
1672            availableForSale: true,
1673            title: "35\"L x 25\"W x 25\"H - 890lbs",
1674          },
1675        
1676      ],
1677    };
1678    window.customerHub.activeProduct.variants.forEach((variant) => {
1679        
1680        variant.price = `${variant.price.slice(0, -2)}.${variant.price.slice(-2)}`;
1681    });
1682  
1683
1684  
1685    window.customerHub.storeLocale = {
1686        currentLanguage: 'en',
1687        currentCountry: 'US',
1688        availableLanguages: [
1689          
1690            {
1691              iso_code: 'en',
1692              endonym_name: 'English'
1693            }
1694          
1695        ],
1696        availableCountries: [
1697          
1698            {
1699              iso_code: 'AF',
1700              name: 'Afghanistan',
1701              currency_code: 'AFN'
1702            },
1703          
1704            {
1705              iso_code: 'AX',
1706              name: 'Åland Islands',
1707              currency_code: 'EUR'
1708            },
1709          
1710            {
1711              iso_code: 'AL',
1712              name: 'Albania',
1713              currency_code: 'ALL'
1714            },
1715          
1716            {
1717              iso_code: 'DZ',
1718              name: 'Algeria',
1719              currency_code: 'DZD'
1720            },
1721          
1722            {
1723              iso_code: 'AD',
1724              name: 'Andorra',
1725              currency_code: 'EUR'
1726            },
1727          
1728            {
1729              iso_code: 'AO',
1730              name: 'Angola',
1731              currency_code: 'USD'
1732            },
1733          
1734            {
1735              iso_code: 'AI',
1736              name: 'Anguilla',
1737              currency_code: 'XCD'
1738            },
1739          
1740            {
1741              iso_code: 'AG',
1742              name: 'Antigua &amp; Barbuda',
1743              currency_code: 'XCD'
1744            },
1745          
1746            {
1747              iso_code: 'AR',
1748              name: 'Argentina',
1749              currency_code: 'USD'
1750            },
1751          
1752            {
1753              iso_code: 'AM',
1754              name: 'Armenia',
1755              currency_code: 'AMD'
1756            },
1757          
1758            {
1759              iso_code: 'AW',
1760              name: 'Aruba',
1761              currency_code: 'AWG'
1762            },
1763          
1764            {
1765              iso_code: 'AC',
1766              name: 'Ascension Island',
1767              currency_code: 'SHP'
1768            },
1769          
1770            {
1771              iso_code: 'AU',
1772              name: 'Australia',
1773              currency_code: 'AUD'
1774            },
1775          
1776            {
1777              iso_code: 'AT',
1778              name: 'Austria',
1779              currency_code: 'EUR'
1780            },
1781          
1782            {
1783              iso_code: 'AZ',
1784              name: 'Azerbaijan',
1785              currency_code: 'AZN'
1786            },
1787          
1788            {
1789              iso_code: 'BS',
1790              name: 'Bahamas',
1791              currency_code: 'BSD'
1792            },
1793          
1794            {
1795              iso_code: 'BH',
1796              name: 'Bahrain',
1797              currency_code: 'USD'
1798            },
1799          
1800            {
1801              iso_code: 'BD',
1802              name: 'Bangladesh',
1803              currency_code: 'BDT'
1804            },
1805          
1806            {
1807              iso_code: 'BB',
1808              name: 'Barbados',
1809              currency_code: 'BBD'
1810            },
1811          
1812            {
1813              iso_code: 'BY',
1814              name: 'Belarus',
1815              currency_code: 'USD'
1816            },
1817          
1818            {
1819              iso_code: 'BE',
1820              name: 'Belgium',
1821              currency_code: 'EUR'
1822            },
1823          
1824            {
1825              iso_code: 'BZ',
1826              name: 'Belize',
1827              currency_code: 'BZD'
1828            },
1829          
1830            {
1831              iso_code: 'BM',
1832              name: 'Bermuda',
1833              currency_code: 'USD'
1834            },
1835          
1836            {
1837              iso_code: 'BO',
1838              name: 'Bolivia',
1839              currency_code: 'BOB'
1840            },
1841          
1842            {
1843              iso_code: 'BA',
1844              name: 'Bosnia &amp; Herzegovina',
1845              currency_code: 'BAM'
1846            },
1847          
1848            {
1849              iso_code: 'BW',
1850              name: 'Botswana',
1851              currency_code: 'BWP'
1852            },
1853          
1854            {
1855              iso_code: 'BR',
1856              name: 'Brazil',
1857              currency_code: 'USD'
1858            },
1859          
1860            {
1861              iso_code: 'IO',
1862              name: 'British Indian Ocean Territory',
1863              currency_code: 'USD'
1864            },
1865          
1866            {
1867              iso_code: 'VG',
1868              name: 'British Virgin Islands',
1869              currency_code: 'USD'
1870            },
1871          
1872            {
1873              iso_code: 'BN',
1874              name: 'Brunei',
1875              currency_code: 'BND'
1876            },
1877          
1878            {
1879              iso_code: 'BG',
1880              name: 'Bulgaria',
1881              currency_code: 'EUR'
1882            },
1883          
1884            {
1885              iso_code: 'BF',
1886              name: 'Burkina Faso',
1887              currency_code: 'XOF'
1888            },
1889          
1890            {
1891              iso_code: 'KH',
1892              name: 'Cambodia',
1893              currency_code: 'KHR'
1894            },
1895          
1896            {
1897              iso_code: 'CM',
1898              name: 'Cameroon',
1899              currency_code: 'XAF'
1900            },
1901          
1902            {
1903              iso_code: 'CA',
1904              name: 'Canada',
1905              currency_code: 'CAD'
1906            },
1907          
1908            {
1909              iso_code: 'CV',
1910              name: 'Cape Verde',
1911              currency_code: 'CVE'
1912            },
1913          
1914            {
1915              iso_code: 'BQ',
1916              name: 'Caribbean Netherlands',
1917              currency_code: 'USD'
1918            },
1919          
1920            {
1921              iso_code: 'KY',
1922              name: 'Cayman Islands',
1923              currency_code: 'KYD'
1924            },
1925          
1926            {
1927              iso_code: 'TD',
1928              name: 'Chad',
1929              currency_code: 'XAF'
1930            },
1931          
1932            {
1933              iso_code: 'CL',
1934              name: 'Chile',
1935              currency_code: 'USD'
1936            },
1937          
1938            {
1939              iso_code: 'CN',
1940              name: 'China',
1941              currency_code: 'CNY'
1942            },
1943          
1944            {
1945              iso_code: 'CX',
1946              name: 'Christmas Island',
1947              currency_code: 'AUD'
1948            },
1949          
1950            {
1951              iso_code: 'CC',
1952              name: 'Cocos (Keeling) Islands',
1953              currency_code: 'AUD'
1954            },
1955          
1956            {
1957              iso_code: 'CO',
1958              name: 'Colombia',
1959              currency_code: 'USD'
1960            },
1961          
1962            {
1963              iso_code: 'KM',
1964              name: 'Comoros',
1965              currency_code: 'KMF'
1966            },
1967          
1968            {
1969              iso_code: 'CK',
1970              name: 'Cook Islands',
1971              currency_code: 'NZD'
1972            },
1973          
1974            {
1975              iso_code: 'CR',
1976              name: 'Costa Rica',
1977              currency_code: 'CRC'
1978            },
1979          
1980            {
1981              iso_code: 'CI',
1982              name: 'Côte d’Ivoire',
1983              currency_code: 'XOF'
1984            },
1985          
1986            {
1987              iso_code: 'HR',
1988              name: 'Croatia',
1989              currency_code: 'EUR'
1990            },
1991          
1992            {
1993              iso_code: 'CW',
1994              name: 'Curaçao',
1995              currency_code: 'ANG'
1996            },
1997          
1998            {
1999              iso_code: 'CY',
2000              name: 'Cyprus',
2001              currency_code: 'EUR'
2002            },
2003          
2004            {
2005              iso_code: 'CZ',
2006              name: 'Czechia',
2007              currency_code: 'CZK'
2008            },
2009          
2010            {
2011              iso_code: 'DK',
2012              name: 'Denmark',
2013              currency_code: 'DKK'
2014            },
2015          
2016            {
2017              iso_code: 'DJ',
2018              name: 'Djibouti',
2019              currency_code: 'DJF'
2020            },
2021          
2022            {
2023              iso_code: 'DM',
2024              name: 'Dominica',
2025              currency_code: 'XCD'
2026            },
2027          
2028            {
2029              iso_code: 'DO',
2030              name: 'Dominican Republic',
2031              currency_code: 'DOP'
2032            },
2033          
2034            {
2035              iso_code: 'EC',
2036              name: 'Ecuador',
2037              currency_code: 'USD'
2038            },
2039          
2040            {
2041              iso_code: 'EG',
2042              name: 'Egypt',
2043              currency_code: 'EGP'
2044            },
2045          
2046            {
2047              iso_code: 'SV',
2048              name: 'El Salvador',
2049              currency_code: 'USD'
2050            },
2051          
2052            {
2053              iso_code: 'GQ',
2054              name: 'Equatorial Guinea',
2055              currency_code: 'XAF'
2056            },
2057          
2058            {
2059              iso_code: 'EE',
2060              name: 'Estonia',
2061              currency_code: 'EUR'
2062            },
2063          
2064            {
2065              iso_code: 'FK',
2066              name: 'Falkland Islands',
2067              currency_code: 'FKP'
2068            },
2069          
2070            {
2071              iso_code: 'FO',
2072              name: 'Faroe Islands',
2073              currency_code: 'DKK'
2074            },
2075          
2076            {
2077              iso_code: 'FJ',
2078              name: 'Fiji',
2079              currency_code: 'FJD'
2080            },
2081          
2082            {
2083              iso_code: 'FI',
2084              name: 'Finland',
2085              currency_code: 'EUR'
2086            },
2087          
2088            {
2089              iso_code: 'FR',
2090              name: 'France',
2091              currency_code: 'EUR'
2092            },
2093          
2094            {
2095              iso_code: 'PF',
2096              name: 'French Polynesia',
2097              currency_code: 'XPF'
2098            },
2099          
2100            {
2101              iso_code: 'TF',
2102              name: 'French Southern Territories',
2103              currency_code: 'EUR'
2104            },
2105          
2106            {
2107              iso_code: 'GA',
2108              name: 'Gabon',
2109              currency_code: 'XOF'
2110            },
2111          
2112            {
2113              iso_code: 'GM',
2114              name: 'Gambia',
2115              currency_code: 'GMD'
2116            },
2117          
2118            {
2119              iso_code: 'GE',
2120              name: 'Georgia',
2121              currency_code: 'USD'
2122            },
2123          
2124            {
2125              iso_code: 'DE',
2126              name: 'Germany',
2127              currency_code: 'EUR'
2128            },
2129          
2130            {
2131              iso_code: 'GH',
2132              name: 'Ghana',
2133              currency_code: 'USD'
2134            },
2135          
2136            {
2137              iso_code: 'GI',
2138              name: 'Gibraltar',
2139              currency_code: 'GBP'
2140            },
2141          
2142            {
2143              iso_code: 'GR',
2144              name: 'Greece',
2145              currency_code: 'EUR'
2146            },
2147          
2148            {
2149              iso_code: 'GL',
2150              name: 'Greenland',
2151              currency_code: 'DKK'
2152            },
2153          
2154            {
2155              iso_code: 'GD',
2156              name: 'Grenada',
2157              currency_code: 'XCD'
2158            },
2159          
2160            {
2161              iso_code: 'GP',
2162              name: 'Guadeloupe',
2163              currency_code: 'EUR'
2164            },
2165          
2166            {
2167              iso_code: 'GT',
2168              name: 'Guatemala',
2169              currency_code: 'GTQ'
2170            },
2171          
2172            {
2173              iso_code: 'GG',
2174              name: 'Guernsey',
2175              currency_code: 'GBP'
2176            },
2177          
2178            {
2179              iso_code: 'GN',
2180              name: 'Guinea',
2181              currency_code: 'GNF'
2182            },
2183          
2184            {
2185              iso_code: 'GW',
2186              name: 'Guinea-Bissau',
2187              currency_code: 'XOF'
2188            },
2189          
2190            {
2191              iso_code: 'GY',
2192              name: 'Guyana',
2193              currency_code: 'GYD'
2194            },
2195          
2196            {
2197              iso_code: 'HT',
2198              name: 'Haiti',
2199              currency_code: 'USD'
2200            },
2201          
2202            {
2203              iso_code: 'HN',
2204              name: 'Honduras',
2205              currency_code: 'HNL'
2206            },
2207          
2208            {
2209              iso_code: 'HK',
2210              name: 'Hong Kong SAR',
2211              currency_code: 'HKD'
2212            },
2213          
2214            {
2215              iso_code: 'HU',
2216              name: 'Hungary',
2217              currency_code: 'HUF'
2218            },
2219          
2220            {
2221              iso_code: 'IS',
2222              name: 'Iceland',
2223              currency_code: 'ISK'
2224            },
2225          
2226            {
2227              iso_code: 'IN',
2228              name: 'India',
2229              currency_code: 'INR'
2230            },
2231          
2232            {
2233              iso_code: 'ID',
2234              name: 'Indonesia',
2235              currency_code: 'IDR'
2236            },
2237          
2238            {
2239              iso_code: 'IQ',
2240              name: 'Iraq',
2241              currency_code: 'USD'
2242            },
2243          
2244            {
2245              iso_code: 'IE',
2246              name: 'Ireland',
2247              currency_code: 'EUR'
2248            },
2249          
2250            {
2251              iso_code: 'IM',
2252              name: 'Isle of Man',
2253              currency_code: 'GBP'
2254            },
2255          
2256            {
2257              iso_code: 'IL',
2258              name: 'Israel',
2259              currency_code: 'ILS'
2260            },
2261          
2262            {
2263              iso_code: 'IT',
2264              name: 'Italy',
2265              currency_code: 'EUR'
2266            },
2267          
2268            {
2269              iso_code: 'JM',
2270              name: 'Jamaica',
2271              currency_code: 'JMD'
2272            },
2273          
2274            {
2275              iso_code: 'JP',
2276              name: 'Japan',
2277              currency_code: 'JPY'
2278            },
2279          
2280            {
2281              iso_code: 'JE',
2282              name: 'Jersey',
2283              currency_code: 'USD'
2284            },
2285          
2286            {
2287              iso_code: 'JO',
2288              name: 'Jordan',
2289              currency_code: 'USD'
2290            },
2291          
2292            {
2293              iso_code: 'KZ',
2294              name: 'Kazakhstan',
2295              currency_code: 'KZT'
2296            },
2297          
2298            {
2299              iso_code: 'KE',
2300              name: 'Kenya',
2301              currency_code: 'KES'
2302            },
2303          
2304            {
2305              iso_code: 'XK',
2306              name: 'Kosovo',
2307              currency_code: 'EUR'
2308            },
2309          
2310            {
2311              iso_code: 'KW',
2312              name: 'Kuwait',
2313              currency_code: 'USD'
2314            },
2315          
2316            {
2317              iso_code: 'KG',
2318              name: 'Kyrgyzstan',
2319              currency_code: 'KGS'
2320            },
2321          
2322            {
2323              iso_code: 'LV',
2324              name: 'Latvia',
2325              currency_code: 'EUR'
2326            },
2327          
2328            {
2329              iso_code: 'LB',
2330              name: 'Lebanon',
2331              currency_code: 'LBP'
2332            },
2333          
2334            {
2335              iso_code: 'LS',
2336              name: 'Lesotho',
2337              currency_code: 'USD'
2338            },
2339          
2340            {
2341              iso_code: 'LR',
2342              name: 'Liberia',
2343              currency_code: 'USD'
2344            },
2345          
2346            {
2347              iso_code: 'LY',
2348              name: 'Libya',
2349              currency_code: 'USD'
2350            },
2351          
2352            {
2353              iso_code: 'LI',
2354              name: 'Liechtenstein',
2355              currency_code: 'CHF'
2356            },
2357          
2358            {
2359              iso_code: 'LT',
2360              name: 'Lithuania',
2361              currency_code: 'EUR'
2362            },
2363          
2364            {
2365              iso_code: 'LU',
2366              name: 'Luxembourg',
2367              currency_code: 'EUR'
2368            },
2369          
2370            {
2371              iso_code: 'MO',
2372              name: 'Macao SAR',
2373              currency_code: 'MOP'
2374            },
2375          
2376            {
2377              iso_code: 'MG',
2378              name: 'Madagascar',
2379              currency_code: 'USD'
2380            },
2381          
2382            {
2383              iso_code: 'MW',
2384              name: 'Malawi',
2385              currency_code: 'MWK'
2386            },
2387          
2388            {
2389              iso_code: 'MY',
2390              name: 'Malaysia',
2391              currency_code: 'MYR'
2392            },
2393          
2394            {
2395              iso_code: 'MV',
2396              name: 'Maldives',
2397              currency_code: 'MVR'
2398            },
2399          
2400            {
2401              iso_code: 'ML',
2402              name: 'Mali',
2403              currency_code: 'XOF'
2404            },
2405          
2406            {
2407              iso_code: 'MT',
2408              name: 'Malta',
2409              currency_code: 'EUR'
2410            },
2411          
2412            {
2413              iso_code: 'MQ',
2414              name: 'Martinique',
2415              currency_code: 'EUR'
2416            },
2417          
2418            {
2419              iso_code: 'MR',
2420              name: 'Mauritania',
2421              currency_code: 'USD'
2422            },
2423          
2424            {
2425              iso_code: 'MU',
2426              name: 'Mauritius',
2427              currency_code: 'MUR'
2428            },
2429          
2430            {
2431              iso_code: 'YT',
2432              name: 'Mayotte',
2433              currency_code: 'EUR'
2434            },
2435          
2436            {
2437              iso_code: 'MX',
2438              name: 'Mexico',
2439              currency_code: 'USD'
2440            },
2441          
2442            {
2443              iso_code: 'MD',
2444              name: 'Moldova',
2445              currency_code: 'MDL'
2446            },
2447          
2448            {
2449              iso_code: 'MC',
2450              name: 'Monaco',
2451              currency_code: 'EUR'
2452            },
2453          
2454            {
2455              iso_code: 'MN',
2456              name: 'Mongolia',
2457              currency_code: 'MNT'
2458            },
2459          
2460            {
2461              iso_code: 'ME',
2462              name: 'Montenegro',
2463              currency_code: 'EUR'
2464            },
2465          
2466            {
2467              iso_code: 'MS',
2468              name: 'Montserrat',
2469              currency_code: 'XCD'
2470            },
2471          
2472            {
2473              iso_code: 'MA',
2474              name: 'Morocco',
2475              currency_code: 'MAD'
2476            },
2477          
2478            {
2479              iso_code: 'MZ',
2480              name: 'Mozambique',
2481              currency_code: 'USD'
2482            },
2483          
2484            {
2485              iso_code: 'MM',
2486              name: 'Myanmar (Burma)',
2487              currency_code: 'MMK'
2488            },
2489          
2490            {
2491              iso_code: 'NA',
2492              name: 'Namibia',
2493              currency_code: 'USD'
2494            },
2495          
2496            {
2497              iso_code: 'NR',
2498              name: 'Nauru',
2499              currency_code: 'AUD'
2500            },
2501          
2502            {
2503              iso_code: 'NP',
2504              name: 'Nepal',
2505              currency_code: 'NPR'
2506            },
2507          
2508            {
2509              iso_code: 'NL',
2510              name: 'Netherlands',
2511              currency_code: 'EUR'
2512            },
2513          
2514            {
2515              iso_code: 'NC',
2516              name: 'New Caledonia',
2517              currency_code: 'XPF'
2518            },
2519          
2520            {
2521              iso_code: 'NZ',
2522              name: 'New Zealand',
2523              currency_code: 'NZD'
2524            },
2525          
2526            {
2527              iso_code: 'NI',
2528              name: 'Nicaragua',
2529              currency_code: 'NIO'
2530            },
2531          
2532            {
2533              iso_code: 'NE',
2534              name: 'Niger',
2535              currency_code: 'XOF'
2536            },
2537          
2538            {
2539              iso_code: 'NG',
2540              name: 'Nigeria',
2541              currency_code: 'NGN'
2542            },
2543          
2544            {
2545              iso_code: 'NU',
2546              name: 'Niue',
2547              currency_code: 'NZD'
2548            },
2549          
2550            {
2551              iso_code: 'NF',
2552              name: 'Norfolk Island',
2553              currency_code: 'AUD'
2554            },
2555          
2556            {
2557              iso_code: 'MK',
2558              name: 'North Macedonia',
2559              currency_code: 'MKD'
2560            },
2561          
2562            {
2563              iso_code: 'NO',
2564              name: 'Norway',
2565              currency_code: 'USD'
2566            },
2567          
2568            {
2569              iso_code: 'OM',
2570              name: 'Oman',
2571              currency_code: 'USD'
2572            },
2573          
2574            {
2575              iso_code: 'PK',
2576              name: 'Pakistan',
2577              currency_code: 'PKR'
2578            },
2579          
2580            {
2581              iso_code: 'PS',
2582              name: 'Palestinian Territories',
2583              currency_code: 'ILS'
2584            },
2585          
2586            {
2587              iso_code: 'PA',
2588              name: 'Panama',
2589              currency_code: 'USD'
2590            },
2591          
2592            {
2593              iso_code: 'PG',
2594              name: 'Papua New Guinea',
2595              currency_code: 'PGK'
2596            },
2597          
2598            {
2599              iso_code: 'PY',
2600              name: 'Paraguay',
2601              currency_code: 'PYG'
2602            },
2603          
2604            {
2605              iso_code: 'PE',
2606              name: 'Peru',
2607              currency_code: 'PEN'
2608            },
2609          
2610            {
2611              iso_code: 'PH',
2612              name: 'Philippines',
2613              currency_code: 'PHP'
2614            },
2615          
2616            {
2617              iso_code: 'PN',
2618              name: 'Pitcairn Islands',
2619              currency_code: 'NZD'
2620            },
2621          
2622            {
2623              iso_code: 'PL',
2624              name: 'Poland',
2625              currency_code: 'PLN'
2626            },
2627          
2628            {
2629              iso_code: 'PT',
2630              name: 'Portugal',
2631              currency_code: 'EUR'
2632            },
2633          
2634            {
2635              iso_code: 'QA',
2636              name: 'Qatar',
2637              currency_code: 'QAR'
2638            },
2639          
2640            {
2641              iso_code: 'RE',
2642              name: 'Réunion',
2643              currency_code: 'EUR'
2644            },
2645          
2646            {
2647              iso_code: 'RO',
2648              name: 'Romania',
2649              currency_code: 'RON'
2650            },
2651          
2652            {
2653              iso_code: 'RU',
2654              name: 'Russia',
2655              currency_code: 'USD'
2656            },
2657          
2658            {
2659              iso_code: 'RW',
2660              name: 'Rwanda',
2661              currency_code: 'RWF'
2662            },
2663          
2664            {
2665              iso_code: 'WS',
2666              name: 'Samoa',
2667              currency_code: 'WST'
2668            },
2669          
2670            {
2671              iso_code: 'SM',
2672              name: 'San Marino',
2673              currency_code: 'EUR'
2674            },
2675          
2676            {
2677              iso_code: 'ST',
2678              name: 'São Tomé &amp; Príncipe',
2679              currency_code: 'STD'
2680            },
2681          
2682            {
2683              iso_code: 'SA',
2684              name: 'Saudi Arabia',
2685              currency_code: 'SAR'
2686            },
2687          
2688            {
2689              iso_code: 'SN',
2690              name: 'Senegal',
2691              currency_code: 'XOF'
2692            },
2693          
2694            {
2695              iso_code: 'RS',
2696              name: 'Serbia',
2697              currency_code: 'RSD'
2698            },
2699          
2700            {
2701              iso_code: 'SC',
2702              name: 'Seychelles',
2703              currency_code: 'USD'
2704            },
2705          
2706            {
2707              iso_code: 'SL',
2708              name: 'Sierra Leone',
2709              currency_code: 'SLL'
2710            },
2711          
2712            {
2713              iso_code: 'SG',
2714              name: 'Singapore',
2715              currency_code: 'SGD'
2716            },
2717          
2718            {
2719              iso_code: 'SX',
2720              name: 'Sint Maarten',
2721              currency_code: 'ANG'
2722            },
2723          
2724            {
2725              iso_code: 'SK',
2726              name: 'Slovakia',
2727              currency_code: 'EUR'
2728            },
2729          
2730            {
2731              iso_code: 'SI',
2732              name: 'Slovenia',
2733              currency_code: 'EUR'
2734            },
2735          
2736            {
2737              iso_code: 'SB',
2738              name: 'Solomon Islands',
2739              currency_code: 'SBD'
2740            },
2741          
2742            {
2743              iso_code: 'SO',
2744              name: 'Somalia',
2745              currency_code: 'USD'
2746            },
2747          
2748            {
2749              iso_code: 'ZA',
2750              name: 'South Africa',
2751              currency_code: 'USD'
2752            },
2753          
2754            {
2755              iso_code: 'GS',
2756              name: 'South Georgia &amp; South Sandwich Islands',
2757              currency_code: 'GBP'
2758            },
2759          
2760            {
2761              iso_code: 'KR',
2762              name: 'South Korea',
2763              currency_code: 'KRW'
2764            },
2765          
2766            {
2767              iso_code: 'SS',
2768              name: 'South Sudan',
2769              currency_code: 'USD'
2770            },
2771          
2772            {
2773              iso_code: 'ES',
2774              name: 'Spain',
2775              currency_code: 'EUR'
2776            },
2777          
2778            {
2779              iso_code: 'LK',
2780              name: 'Sri Lanka',
2781              currency_code: 'LKR'
2782            },
2783          
2784            {
2785              iso_code: 'BL',
2786              name: 'St. Barthélemy',
2787              currency_code: 'EUR'
2788            },
2789          
2790            {
2791              iso_code: 'SH',
2792              name: 'St. Helena',
2793              currency_code: 'SHP'
2794            },
2795          
2796            {
2797              iso_code: 'KN',
2798              name: 'St. Kitts &amp; Nevis',
2799              currency_code: 'XCD'
2800            },
2801          
2802            {
2803              iso_code: 'LC',
2804              name: 'St. Lucia',
2805              currency_code: 'XCD'
2806            },
2807          
2808            {
2809              iso_code: 'MF',
2810              name: 'St. Martin',
2811              currency_code: 'EUR'
2812            },
2813          
2814            {
2815              iso_code: 'PM',
2816              name: 'St. Pierre &amp; Miquelon',
2817              currency_code: 'EUR'
2818            },
2819          
2820            {
2821              iso_code: 'VC',
2822              name: 'St. Vincent &amp; Grenadines',
2823              currency_code: 'XCD'
2824            },
2825          
2826            {
2827              iso_code: 'SD',
2828              name: 'Sudan',
2829              c
2829urrency_code: 'USD'
2830            },
2831          
2832            {
2833              iso_code: 'SR',
2834              name: 'Suriname',
2835              currency_code: 'USD'
2836            },
2837          
2838            {
2839              iso_code: 'SJ',
2840              name: 'Svalbard &amp; Jan Mayen',
2841              currency_code: 'USD'
2842            },
2843          
2844            {
2845              iso_code: 'SE',
2846              name: 'Sweden',
2847              currency_code: 'SEK'
2848            },
2849          
2850            {
2851              iso_code: 'CH',
2852              name: 'Switzerland',
2853              currency_code: 'CHF'
2854            },
2855          
2856            {
2857              iso_code: 'TW',
2858              name: 'Taiwan',
2859              currency_code: 'TWD'
2860            },
2861          
2862            {
2863              iso_code: 'TJ',
2864              name: 'Tajikistan',
2865              currency_code: 'TJS'
2866            },
2867          
2868            {
2869              iso_code: 'TZ',
2870              name: 'Tanzania',
2871              currency_code: 'TZS'
2872            },
2873          
2874            {
2875              iso_code: 'TH',
2876              name: 'Thailand',
2877              currency_code: 'THB'
2878            },
2879          
2880            {
2881              iso_code: 'TL',
2882              name: 'Timor-Leste',
2883              currency_code: 'USD'
2884            },
2885          
2886            {
2887              iso_code: 'TK',
2888              name: 'Tokelau',
2889              currency_code: 'NZD'
2890            },
2891          
2892            {
2893              iso_code: 'TT',
2894              name: 'Trinidad &amp; Tobago',
2895              currency_code: 'TTD'
2896            },
2897          
2898            {
2899              iso_code: 'TA',
2900              name: 'Tristan da Cunha',
2901              currency_code: 'GBP'
2902            },
2903          
2904            {
2905              iso_code: 'TN',
2906              name: 'Tunisia',
2907              currency_code: 'USD'
2908            },
2909          
2910            {
2911              iso_code: 'TR',
2912              name: 'Türkiye',
2913              currency_code: 'USD'
2914            },
2915          
2916            {
2917              iso_code: 'TM',
2918              name: 'Turkmenistan',
2919              currency_code: 'USD'
2920            },
2921          
2922            {
2923              iso_code: 'TC',
2924              name: 'Turks &amp; Caicos Islands',
2925              currency_code: 'USD'
2926            },
2927          
2928            {
2929              iso_code: 'TV',
2930              name: 'Tuvalu',
2931              currency_code: 'AUD'
2932            },
2933          
2934            {
2935              iso_code: 'UM',
2936              name: 'U.S. Outlying Islands',
2937              currency_code: 'USD'
2938            },
2939          
2940            {
2941              iso_code: 'UG',
2942              name: 'Uganda',
2943              currency_code: 'UGX'
2944            },
2945          
2946            {
2947              iso_code: 'UA',
2948              name: 'Ukraine',
2949              currency_code: 'UAH'
2950            },
2951          
2952            {
2953              iso_code: 'AE',
2954              name: 'United Arab Emirates',
2955              currency_code: 'AED'
2956            },
2957          
2958            {
2959              iso_code: 'GB',
2960              name: 'United Kingdom',
2961              currency_code: 'GBP'
2962            },
2963          
2964            {
2965              iso_code: 'US',
2966              name: 'United States',
2967              currency_code: 'USD'
2968            },
2969          
2970            {
2971              iso_code: 'UY',
2972              name: 'Uruguay',
2973              currency_code: 'UYU'
2974            },
2975          
2976            {
2977              iso_code: 'UZ',
2978              name: 'Uzbekistan',
2979              currency_code: 'UZS'
2980            },
2981          
2982            {
2983              iso_code: 'VA',
2984              name: 'Vatican City',
2985              currency_code: 'EUR'
2986            },
2987          
2988            {
2989              iso_code: 'VE',
2990              name: 'Venezuela',
2991              currency_code: 'USD'
2992            },
2993          
2994            {
2995              iso_code: 'VN',
2996              name: 'Vietnam',
2997              currency_code: 'VND'
2998            },
2999          
3000            {
3001              iso_code: 'WF',
3002              name: 'Wallis &amp; Futuna',
3003              currency_code: 'XPF'
3004            },
3005          
3006            {
3007              iso_code: 'EH',
3008              name: 'Western Sahara',
3009              currency_code: 'MAD'
3010            },
3011          
3012            {
3013              iso_code: 'YE',
3014              name: 'Yemen',
3015              currency_code: 'YER'
3016            },
3017          
3018            {
3019              iso_code: 'ZM',
3020              name: 'Zambia',
3021              currency_code: 'USD'
3022            },
3023          
3024            {
3025              iso_code: 'ZW',
3026              name: 'Zimbabwe',
3027              currency_code: 'USD'
3028            }
3029          
3030        ]
3031    };
3032  
3033</script>
3033
3034<!-- END app snippet -->
3035
3036
3037
3038
3039
3040
3041
3042<!-- END app block -->
3042<script src="https://cdn.shopify.com/extensions/c1eb4680-ad4e-49c3-898d-493ebb06e626/affirm-pay-over-time-messaging-9/assets/affirm-cart-drawer-embed-handler.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 3042
3042
3043<script src="https://cdn.shopify.com/extensions/01a0d4e7-ec80-7a83-9d0e-4fd71fdcdb60/rebuy-personalization-engine-436/assets/rebuy-extensions.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 3043
3043
3044<script src="https://cdn.shopify.com/extensions/01a0cdf8-b2d2-7ccd-a251-5cf8c66ad2ca/judgeme-762/assets/loader.js" type="text/javascript" defer="defer"></script>
3044
3045<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
3046<script>(function(){if ("sendBeacon" in navigator && "performance" in window) {try {var session_token_from_headers = performance.getEntriesByType('navigation')[0].serverTiming.find(x => x.name == '_s').description;} catch {var session_token_from_headers = undefined;}var session_cookie_matches = document.cookie.match(/_shopify_s=([^;]*)/);var session_token_from_cookie = session_cookie_matches && session_cookie_matches.length === 2 ? session_cookie_matches[1] : "";var session_token = session_token_from_headers || session_token_from_cookie || "";function handle_abandonment_event(e) {var entries = performance.getEntries().filter(function(entry) {return /monorail-edge.shopifysvc.com/.test(entry.name);});if (!window.abandonment_tracked && entries.length === 0) {window.abandonment_tracked = true;var currentMs = Date.now();var navigation_start = performance.timing.navigationStart;var payload = {shop_id: 49088856229,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "product"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
vendor: 1 bytes, line 3046
3046
3047<script>
3048  window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || [];
3049</script>
vendor: 1 bytes, line 3049
3049
3050<script>(function(){var wpmLoader=function(){"use strict";var e=/Googlebot|Storebot-Google|bingbot|Baiduspider|YandexBot|DuckDuckBot|Slurp|facebookexternalhit|Twitterbot|LinkedInBot|Applebot|AdsBot-Google|Mediapartners-Google|APIs-Google|PetalBot|SemrushBot|AhrefsBot|MJ12bot|DotBot|Acunetix|PerplexityBot|Perplexity-User/i,t=/bytedance/i;function i(){try{var e=document.cookie;if(!e||"string"!=typeof e)return;for(var t=0,i=e.split(";");t<i.length;t++){var n=i[t],r=n.indexOf("=");if(-1!==r){var o=n.slice(0,r).trim();if(o){var a=void 0;try{a=decodeURIComponent(o)}catch(e){a=o}if("_shopify_s"===a){var d=n.slice(r+1).trim();try{return decodeURIComponent(d)}catch(e){return d}}}}}return}catch(e){return}}function n(e){try{"undefined"!=typeof console&&"function"==typeof console.warn&&console.warn(e)}catch(e){}}function r(e,t){return"string"==typeof e&&e.length>0&&e.length<=t?e:void 0}function o(e){var t;switch(null==(t=null==e?void 0:e.navigation)?void 0:t.type){case 0:return"navigate";case 1:return"reload";case 2:return"back_forward";default:return}}function a(){var e,t,i;try{var n=null==(i=null==(t=null==(e=self.ShopifyAnalytics)?void 0:e.lib)?void 0:t.trekkie)?void 0:i.state;return"awaiting-consent"===n||"initialized"===n?n:void 0}catch(e){return}}return function(d,s,u,l){var c=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};try{var p=c.trekkieShim;!0!==p&&"true"!==p||null!=window.__TREKKIE_SHIM_QUEUE||(window.__TREKKIE_SHIM_QUEUE=[])}catch(e){}var f,v,h,y,g=(v=(f={modern:/Edge?\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(9{2}|\d{3,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(15\.\d+|(1[6-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(9{2}|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(15[._]\d+|(1[6-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|SamsungBrowser\/([2-9]\d|\d{3,})\.\d+/,legacy:/Edge?\/(1[6-9]|[2-9]\d|\d{3,})\.\d+(\.\d+|)|Firefox\/(5[4-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)|Chrom(ium|e)\/(5[1-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))|(Maci|X1{2}).+ Version\/(10\.\d+|(1[1-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(3[89]|[4-9]\d|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(10[._]\d+|(1[1-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?(15\.([5-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+)\.\d+|SamsungBrowser\/(5\.\d+|([6-9]|\d{2,})\.\d+)|Android.+MQ{2}Browser\/(14(\.(9|\d{2,})|)|(1[5-9]|[2-9]\d|\d{3,})(\.\d+|))(\.\d+|)|K[Aa][Ii]OS\/(3\.\d+|([4-9]|\d{2,})\.\d+)(\.\d+|)/}).modern,h=f.legacy,(y=navigator.userAgent).match(e)?"bot":y.match(v)?"modern":y.match(h)?"legacy":y.match(t)?"bot":"unknown"),m=function(e){var t,i,n=r(e,128);try{var a=window.performance,d=null==(t=null==a?void 0:a.getEntriesByType)?void 0:t.call(a,"navigation")[0];if(!d)return{requestId:n,navigationType:o(a)};var s="type"in d?r(d.type,64):void 0,u="serverTiming"in d&&Array.isArray(d.serverTiming)?d.serverTiming:[];return{requestId:null!=n?n:r(null==(i=u.find(function(e){return"requestID"===e.name}))?void 0:i.description,128),navigationType:s}}catch(e){return{requestId:n}}}(c.requestId),w=function(e){var t=e.version,r=e.browserTarget,o=e.surface,a=e.shopId,d=e.monorailEndpoint,s=window.location.href;return{emit:function(e){var u=e.status,l=e.errorMsg,c=e.failureReason,p=e.useKeepaliveFallback,f=void 0!==p&&p,v=e.navigationType,h=e.pagehidePersisted,y=e.requestId,g=e.trekkieState;if(d){var m,w;try{var b=(new Date).getTime();m=JSON.stringify({metadata:{event_sent_at_ms:b},events:[{schema_id:"web_pixels_manager_load/3.3",payload:{version:t,bundle_target:r,page_url:s,status:u,surface:o,error_msg:l,failure_reason:c,navigation_type:v,pagehide_persisted:h,request_id:y,trekkie_state:g,shop_id:a,visit_token:i()},metadata:{event_created_at_ms:b}}]})}catch(e){return}try{if("function"==typeof window.navigator.sendBeacon&&-1===(w=window.navigator.userAgent).indexOf("iPhone; CPU iPhone OS 12_")&&-1===w.indexOf("iPad; CPU OS 12_")&&-1===w.indexOf("iPod touch; CPU iPhone OS 12_")&&window.navigator.sendBeacon.bind(window.navigator)(d,m))return}catch(e){}if(f)try{"function"==typeof window.fetch&&window.fetch(d,{method:"POST",headers:{"Content-Type":"text/plain"},body:m,keepalive:!0}
3050).catch(function(){})}catch(e){}else try{var _=new XMLHttpRequest;_.open("POST",d,!0),_.setRequestHeader("Content-Type","text/plain"),_.send(m)}catch(e){n("[Web Pixels Manager] Got an unhandled error while logging to Monorail.")}}else n("[Web Pixels Manager] No Monorail endpoint provided, skipping logging.")}}}({version:u,browserTarget:g,surface:d.surface,shopId:d.shopId,monorailEndpoint:d.monorailEndpoint});if(Boolean(null==(_=null==(b=window.Shopify)?void 0:b.analytics)?void 0:_.replayQueue))w.emit({status:"setup-skipped",errorMsg:"replay queue already initialized."});else{var b,_;w.emit({status:"setup-started"}),window.Shopify=window.Shopify||{};var S=window.Shopify;S.analytics=S.analytics||{};var P=S.analytics;P.replayQueue=[],P.publish=function(e,t,i){return P.replayQueue.push([e,t,i]),!0};try{self.performance.mark("wpm:start")}catch(e){}var k,C="modern"===g?"modern":"legacy",E=(null!=l?l:{modern:"",legacy:""})[C],I=[(k={baseUrl:s,hashVersion:u,buildTarget:C}).baseUrl,"/wpm","/b",k.hashVersion,"modern"===k.buildTarget?"m":"l",".js"].join(""),O=!1,T=!1;try{c.browserTarget=g,function(){O=!0;try{window.addEventListener("pagehide",M)}catch(e){O=!1}}(),R(function(){try{R(x)}catch(e){D(e)}}),w.emit({status:"loading",requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()})}catch(e){D(e)}}function U(){var e;if(q(),!function(){var e,t;return Boolean(null==(t=null==(e=window.Shopify)?void 0:e.analytics)?void 0:t.initialized)}()){var t,i,n;try{if("function"!=typeof(null==(e=window.webPixelsManager)?void 0:e.init))return void A();if(!(null!==(n=i=t=window.webPixelsManager.init(d))&&"function"!=typeof n&&Object(n)===n&&"publish"in i&&"function"==typeof i.publish&&"publishCustomEvent"in i&&"function"==typeof i.publishCustomEvent&&"visitor"in i&&"function"==typeof i.visitor))return void A()}catch(e){return void A(e)}var r=window.Shopify.analytics;r.replayQueue.forEach(function(e){var i=e[0],n=e[1],r=e[2];t.publishCustomEvent(i,n,r)}),r.replayQueue=[],r.publish=t.publishCustomEvent,r.visitor=t.visitor,r.initialized=!0}}function A(e){B("manager_api_unavailable",void 0===e?void 0:Q(e))}function x(){B("script_load_failed","".concat(I," has failed to load"))}function B(e,t){T||(T=!0,q(),w.emit({status:"failed",errorMsg:t,failureReason:e,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function M(e){O&&(q(),w.emit({status:"pagehide-while-loading",useKeepaliveFallback:!0,pagehidePersisted:e.persisted,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function q(){O=!1;try{window.removeEventListener("pagehide",M)}catch(e){}}function R(e){var t;!function(e){var t=e.src,i=e.async,n=void 0===i||i,r=e.onload,o=e.onerror,a=e.sri,d=e.scriptDataAttributes,s=void 0===d?{}:d,u=document.createElement("script"),l=document.querySelector("head"),c=document.querySelector("body");if(u.async=n,u.src=t,a&&(u.integrity=a,u.crossOrigin="anonymous"),s)for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))try{u.dataset[p]=String(s[p])}catch(e){}if(r&&u.addEventListener("load",r),o&&u.addEventListener("error",o),l)l.appendChild(u);else{if(!c)throw new Error("Did not find a head or body element to append the script");c.appendChild(u)}}({src:I,async:!0,onload:U,onerror:e,sri:(t=E,"string"==typeof t&&/^sha384-[A-Za-z0-9+/=]+$/.test(t)?E:""),scriptDataAttributes:c})}function D(e){B("script_append_failed",Q(e))}function Q(e){return e instanceof Error?e.message:"Unknown error"}}}();wpmLoader({shopId: 49088856229,storefrontBaseUrl: "https://www.wakemakers.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://www.wakemakers.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["16072cab","8450a54b"],webPixelsConfigList: [{"id":"2592932005","configuration":"{\"shop\":\"wakemakers-prod.myshopify.com\", \"shopliftUrl\":\"https:\/\/events.shoplift.ai\/api\/events\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"dabcda9558be25394b12ce3ce899568b","type":"APP","apiClientId":7521861633,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]}
3050,"dataSharingState":"unrestricted"},{"id":"1679753381","configuration":"{\"appProxyPath\":\"\/apps\/pagefly\",\"analyticsEndpoint\":\"undefined\/analytics-v2\/events\",\"focusDuration\":\"3\",\"enableAdvancedTracking\":\"false\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"1e023fb0c721518c0dce4129e4d87a86","type":"APP","apiClientId":1743893,"privacyPurposes":["ANALYTICS","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"1578926245","configuration":"{\"accountID\":\"qBA9D8\",\"webPixelConfig\":\"eyJlbmFibGVBZGRlZFRvQ2FydEV2ZW50cyI6IHRydWV9\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"c63c5b72c8d77be5f2d27d14c081da38","type":"APP","apiClientId":123074,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"1365967013","configuration":"{\"webPixelName\":\"Judge.me\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"8acc938b1a30dc7624e304493ca567d7","type":"APP","apiClientId":683015,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"904134821","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"GT-NCTTRQLN\\\"],\\\"target_country\\\":\\\"US\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":\\\"MC-2ZB2L14V25\\\"},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":\\\"MC-2ZB2L14V25\\\"},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":\\\"MC-2ZB2L14V25\\\"}],\\\"enable_monitoring_mode\\\":false}\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"a3321ca85cf5aaf6b57585fcd8d67b3a","type":"APP","apiClientId":1780363,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"242057381","configuration":"{\"pixel_id\":\"1372970226467923\",\"pixel_type\":\"facebook_pixel\",\"metaapp_system_user_token\":\"-\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"96420dbe9ea96c426a1b7f364f977719","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"5505189","configuration":"{\"config_url\": \"https:\/\/shopify-gtm-suite.getelevar.com\/configs\/df97c9adf21e96563f961f8e3e733cc3dd90ccfe\/config.js\"}","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"7ae63d00911d5ee26809bf1e3232d852","type":"APP","apiClientId":2509311,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"45842597","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Elevar - Checkout Tracking"},{"id":"81330341","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["SALE_OF_DATA"],"name":"Shopper Approved"},{"id":"shopify-app-pixel","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"APP","privacyPurposes":["ANALYTICS","MARKETING"]},{"id":"shopify-custom-pixel","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"]}],isMerchantRequest: false,initData: {"shop":{"name":"WakeMAKERS","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"wakemakers-prod.myshopify.com","countryCode":"US","storefrontUrl":"https:\/\/www.wakemakers.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[{"price":{"amount":189.99,"currencyCode":"USD"},"product":{"title":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)","vendor":"WakeMAKERS","id":"7759285649573","untranslatedTitle":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)","url":"\/products\/wakemakers-rear-lbs-ballast-bag","type":"Ballast Bags"},"id":"41675600920741","image":{"src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349"},"sku":"B0079","title":"30\"L x 20\"W x 20\"H - 490lbs","untranslatedTitle":"30\"L x 20\"W x 20\"H - 490lbs"},{"price":{"amount":249.99,"currencyCode":"USD"},"product":{"title":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)","vendor":"WakeMAKERS","id":"7759285649573","untranslatedTitle":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)","url":"\/products\/wakemakers-rear-lbs-ballast-bag","type":"Ballast Bags"},"id":"41675600953509","image":{"src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349"},"sku":"B0080","title":"45\"L x 25\"W x 20\"H - 910lbs","untranslatedTitle":"45\"L x 25\"W x 20\"H - 910lbs"},{"price":{"amount":259.99,"currencyCode":"USD"},"product":{"title":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)","vendor":"WakeMAKERS","id":"7759285649573","untranslatedTitle":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)","url":"\/products\/wakemakers-rear-lbs-ballast-bag","type":"Ballast Bags"},"id":"41675600986277","image":{"src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349"},"sku":"B0081","title":"45\"L x 25\"W x 25\"H - 1,140lbs","untranslatedTitle":"45\"L x 25\"W x 25\"H - 1,140lbs"},{"price":{"amount":249.99,"currencyCode":"USD"},"product":{"title":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)","vendor":"WakeMAKERS","id":"7759285649573","untranslatedTitle":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)","url":"\/products\/wakemakers-rear-lbs-ballast-bag","type":"Ballast Bags"},"id":"41675601019045","image":{"src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349"},"sku":"B0082","title":"45\"L x 20\"W x 25\"H - 910lbs","untranslatedTitle":"45\"L x 20\"W x 25\"H - 910lbs"},{"price":{"amount":229.99,"currencyCode":"USD"},"product":{"title":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)","vendor":"WakeMAKERS","id":"7759285649573","untranslatedTitle":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)","url":"\/products\/wakemakers-rear-lbs-ballast-bag","type":"Ballast Bags"},"id":"41675601051813","image":{"src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349"},"sku":"B0083","title":"45\"L x 20\"W x 20\"H - 720lbs","untranslatedTitle":"45\"L x 20\"W x 20\"H - 720lbs"},{"price":{"amount":199.99,"currencyCode":"USD"},"product":{"title":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)","vendor":"WakeMAKERS","id":"7759285649573","untranslatedTitle":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)","url":"\/products\/wakemakers-rear-lbs-ballast-bag","type":"Ballast Bags"},"id":"41675601084581","image":{"src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349"},"sku":"B0088","title":"40\"L x 25\"W x 15\"H - 610lbs","untranslatedTitle":"40\"L x 25\"W x 15\"H - 610lbs"},{"price":{"amount":199.99,"currencyCode":"USD"},"product":{"title":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)","vendor":"WakeMAKERS","id":"7759285649573","untranslatedTitle":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)","url":"\/products\/wakemakers-rear-lbs-ballast-bag","type":"Ballast Bags"},"id":"41675601117349","image":{"src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349"},"sku":"B0089","title":"40\"L x 20\"W x 20\"H - 640lbs","untranslatedTitle":"40\"L x 20\"W x 20\"H - 640lbs"},{"price":{"amount":239.99,"currencyCode":"USD"},"product":{"title":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)","vendor":"WakeMAKERS","id":"7759285649573","untranslatedTitle":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)","url":"\/products\/wakemakers-rear-lbs-ballast-bag","type":"Ballast Bags"},"id":"41675601150117","image":{"src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349"},"sku":"B0090","title":"40\"L x 25\"W x 20\"H - 820lbs","untranslatedTitle":"40\"L x 25\"W x 20\"H - 820lbs"},{"price":{"amount":189.99,"currencyCode":"USD"},"product":{"title":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)","vendor":"WakeMAKERS","id":"7759285649573","untranslatedTitle":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)","url":"\/products\/wakemakers-rear-lbs-ballast-bag","type":"Ballast Bags"},"id":"41675601182885","image":{"src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349"},"sku":"B0091","title":"35\"L x 25\"W x 15\"H - 540lbs","untranslatedTitle":"35\"L x 25\"W x 15\"H - 540lbs"},{"price":{"amount":229.99,"currencyCode":"USD"},"product":{"title":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)","vendor":"WakeMAKERS","id":"7759285649573","untranslatedTitle":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)","url":"\/products\/wakemakers-rear-lbs-ballast-bag","type":"Ballast Bags"},"id":"41675601215653","image":{"src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349"},"sku":"B0092","title":"50\"L x 25\"W x 15\"H - 740lbs","untranslatedTitle":"50\"L x 25\"W x 15\"H - 740lbs"},{"price":{"amount":249.99,"currencyCode":"USD"},"product":{"title":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)","vendor":"WakeMAKERS","id":"7759285649573","untranslatedTitle":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)","url":"\/products\/wakemakers-rear-lbs-ballast-bag","type":"Ballast Bags"},"id":"41675601248421","image":{"src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349"},"sku":"B0093","title":"50\"L x 25\"W x 25\"H - 1,280lbs","untranslatedTitle":"50\"L x 25\"W x 25\"H - 1,280lbs"},{"price":{"amount":179.99,"currencyCode":"USD"},"product":{"title":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)","vendor":"WakeMAKERS","id":"7759285649573","untranslatedTitle":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)","url":"\/products\/wakemakers-rear-lbs-ballast-bag","type":"Ballast Bags"},"id":"41675601281189","image":{"src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349"},"sku":"B0096","title":"30\"L x 25\"W x 15\"H - 460lbs","untranslatedTitle":"30\"L x 25\"W x 15\"H - 460lbs"},{"price":{"amount":169.99,"currencyCode":"USD"},"product":{"title":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)","vendor":"WakeMAKERS","id":"7759285649573","untranslatedTitle":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)","url":"\/products\/wakemakers-rear-lbs-ballast-bag","type":"Ballast Bags"},"id":"41675601313957","image":{"src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349"},"sku":"B0110","title":"35\"L x 20\"W x 15\"H - 430lbs","untranslatedTitle":"35\"L x 20\"W x 15\"H - 430lbs"},{"price":{"amount":229.99,"currencyCode":"USD"},"product":{"title":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)","vendor":"WakeMAKERS","id":"7759285649573","untranslatedTitle":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)","url":"\/products\/wakemakers-rear-lbs-ballast-bag","type":"Ballast Bags"},"id":"41675601346725","image":{"src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349"},"sku":"B0121","title":"30\"L x 25\"W x 25\"H - 765lbs","untranslatedTitle":"30\"L x 25\"W x 25\"H - 765lbs"},{"price":{"amount":189.99,"currencyCode":"USD"},"product":{"title":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)","vendor":"WakeMAKERS","id":"7759285649573","untranslatedTitle":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)","url":"\/products\/wakemakers-rear-lbs-ballast-bag","type":"Ballast Bags"},"id":"41675601379493","image":{"src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349"},"sku":"B0122","title":"45\"L x 20\"W x 15\"H - 550lbs","untranslatedTitle":"45\"L x 20\"W x 15\"H - 550lbs"},{"price":{"amount":229.99,"currencyCode":"USD"},"product":{"title":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)","vendor":"WakeMAKERS","id":"7759285649573","untranslatedTitle":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)","url":"\/products\/wakemakers-rear-lbs-ballast-bag","type":"Ballast Bags"},"id":"41675601412261","image":{"src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349"},"sku":"B0144","title":"35\"L x 25\"W x 20\"H - 710lbs","untranslatedTitle":"35\"L x 25\"W x 20\"H - 710lbs"},{"price":{"amount":199.99,"currencyCode":"USD"},"product":{"title":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)","vendor":"WakeMAKERS","id":"7759285649573","untranslatedTitle":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)","url":"\/products\/wakemakers-rear-lbs-ballast-bag","type":"Ballast Bags"},"id":"41675601445029","image":{"src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349"},"sku":"B0145","title":"30\"L x 25\"W x 20\"H - 610lbs","untranslatedTitle":"30\"L x 25\"W x 20\"H - 610lbs"},{"price":{"amount":259.99,"currencyCode":"USD"},"product":{"title":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)","vendor":"WakeMAKERS","id":"7759285649573","untranslatedTitle":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)","url":"\/products\/wakemakers-rear-lbs-ballast-bag","type":"Ballast Bags"},"id":"41675601477797","image":{"src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349"},"sku":"B0146","title":"50\"L x 25\"W x 20\"H - 1,020lbs","untranslatedTitle":"50\"L x 25\"W x 20\"H - 1,020lbs"},{"price":{"amount":249.99,"currencyCode":"USD"},"product":{"title":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)","vendor":"WakeMAKERS","id":"7759285649573","untranslatedTitle":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)","url":"\/products\/wakemakers-rear-lbs-ballast-bag","type":"Ballast Bags"},"id":"41675601510565","image":{"src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349"},"sku":"B0147","title":"35\"L x 25\"W x 25\"H - 890lbs","untranslatedTitle":"35\"L x 25\"W x 25\"H - 890lbs"}],"products":[{"id":"7759285649573","handle":"wakemakers-rear-lbs-ballast-bag","isCollective":null,"title":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)","type":"Ballast Bags","untranslatedTitle":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)","url":"\/products\/wakemakers-rear-lbs-ballast-bag","vendor":"Wake
3050MAKERS","remoteShopId":null,"variants":[{"id":"41675600920741","image":{"src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349"},"price":{"amount":189.99,"currencyCode":"USD"},"sku":"B0079","title":"30\"L x 20\"W x 20\"H - 490lbs","untranslatedTitle":"30\"L x 20\"W x 20\"H - 490lbs"},{"id":"41675600953509","image":{"src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349"},"price":{"amount":249.99,"currencyCode":"USD"},"sku":"B0080","title":"45\"L x 25\"W x 20\"H - 910lbs","untranslatedTitle":"45\"L x 25\"W x 20\"H - 910lbs"},{"id":"41675600986277","image":{"src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349"},"price":{"amount":259.99,"currencyCode":"USD"},"sku":"B0081","title":"45\"L x 25\"W x 25\"H - 1,140lbs","untranslatedTitle":"45\"L x 25\"W x 25\"H - 1,140lbs"},{"id":"41675601019045","image":{"src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349"},"price":{"amount":249.99,"currencyCode":"USD"},"sku":"B0082","title":"45\"L x 20\"W x 25\"H - 910lbs","untranslatedTitle":"45\"L x 20\"W x 25\"H - 910lbs"},{"id":"41675601051813","image":{"src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349"},"price":{"amount":229.99,"currencyCode":"USD"},"sku":"B0083","title":"45\"L x 20\"W x 20\"H - 720lbs","untranslatedTitle":"45\"L x 20\"W x 20\"H - 720lbs"},{"id":"41675601084581","image":{"src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349"},"price":{"amount":199.99,"currencyCode":"USD"},"sku":"B0088","title":"40\"L x 25\"W x 15\"H - 610lbs","untranslatedTitle":"40\"L x 25\"W x 15\"H - 610lbs"},{"id":"41675601117349","image":{"src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349"},"price":{"amount":199.99,"currencyCode":"USD"},"sku":"B0089","title":"40\"L x 20\"W x 20\"H - 640lbs","untranslatedTitle":"40\"L x 20\"W x 20\"H - 640lbs"},{"id":"41675601150117","image":{"src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349"},"price":{"amount":239.99,"currencyCode":"USD"},"sku":"B0090","title":"40\"L x 25\"W x 20\"H - 820lbs","untranslatedTitle":"40\"L x 25\"W x 20\"H - 820lbs"},{"id":"41675601182885","image":{"src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349"},"price":{"amount":189.99,"currencyCode":"USD"},"sku":"B0091","title":"35\"L x 25\"W x 15\"H - 540lbs","untranslatedTitle":"35\"L x 25\"W x 15\"H - 540lbs"},{"id":"41675601215653","image":{"src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349"},"price":{"amount":229.99,"currencyCode":"USD"},"sku":"B0092","title":"50\"L x 25\"W x 15\"H - 740lbs","untranslatedTitle":"50\"L x 25\"W x 15\"H - 740lbs"},{"id":"41675601248421","image":{"src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349"},"price":{"amount":249.99,"currencyCode":"USD"},"sku":"B0093","title":"50\"L x 25\"W x 25\"H - 1,280lbs","untranslatedTitle":"50\"L x 25\"W x 25\"H - 1,280lbs"},{"id":"41675601281189","image":{"src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349"},"price":{"amount":179.99,"currencyCode":"USD"},"sku":"B0096","title":"30\"L x 25\"W x 15\"H - 460lbs","untranslatedTitle":"30\"L x 25\"W x 15\"H - 460lbs"},{"id":"41675601313957","image":{"src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349"},"price":{"amount":169.99,"currencyCode":"USD"},"sku":"B0110","title":"35\"L x 20\"W x 15\"H - 430lbs","untranslatedTitle":"35\"L x 20\"W x 15\"H - 430lbs"},{"id":"41675601346725","image":{"src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349"},"price":{"amount":229.99,"currencyCode":"USD"},"sku":"B0121","title":"30\"L x 25\"W x 25\"H - 765lbs","untranslatedTitle":"30\"L x 25\"W x 25\"H - 765lbs"},{"id":"41675601379493","image":{"src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349"},"price":{"amount":189.99,"currencyCode":"USD"},"sku":"B0122","title":"45\"L x 20\"W x 15\"H - 550lbs","untranslatedTitle":"45\"L x 20\"W x 15\"H - 550lbs"},{"id":"41675601412261","image":{"src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349"},"price":{"amount":229.99,"currencyCode":"USD"},"sku":"B0144","title":"35\"L x 25\"W x 20\"H - 710lbs","untranslatedTitle":"35\"L x 25\"W x 20\"H - 710lbs"},{"id":"41675601445029","image":{"src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349"},"price":{"amount":199.99,"currencyCode":"USD"},"sku":"B0145","title":"30\"L x 25\"W x 20\"H - 610lbs","untranslatedTitle":"30\"L x 25\"W x 20\"H - 610lbs"},{"id":"41675601477797","image":{"src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349"},"price":{"amount":259.99,"currencyCode":"USD"},"sku":"B0146","title":"50\"L x 25\"W x 20\"H - 1,020lbs","untranslatedTitle":"50\"L x 25\"W x 20\"H - 1,020lbs"},{"id":"41675601510565","image":{"src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349"},"price":{"amount":249.99,"currencyCode":"USD"},"sku":"B0147","title":"35\"L x 25\"W x 25\"H - 890lbs","untranslatedTitle":"35\"L x 25\"W x 25\"H - 890lbs"}]}],"purchasingCompany":null},},"https://www.wakemakers.com/cdn","c8540278we853e1abpb62b2c4amde256306",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"158076305573","themePublished":"true","eventMetadataId":"532df4d1-62d8-43a2-8f97-bdc56ee492d8","pageType":"product","resourceId":"7759285649573","shopId":"49088856229","storefrontBaseUrl":"https:\/\/www.wakemakers.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"16072cab\", \"8450a54b\"]","isMerchantRequest":"false","hashVersion":"c8540278we853e1abpb62b2c4amde256306","publish":"custom","events":"[[\"page_viewed\",{}],[\"product_viewed\",{\"productVariant\":{\"price\":{\"amount\":189.99,\"currencyCode\":\"USD\"},\"product\":{\"title\":\"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)\",\"vendor\":\"WakeMAKERS\",\"id\":\"7759285649573\",\"untranslatedTitle\":\"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)\",\"url\":\"\/products\/wakemakers-rear-lbs-ballast-bag\",\"type\":\"Ballast Bags\"},\"id\":\"41675600920741\",\"image\":{\"src\":\"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349\"},\"sku\":\"B0079\",\"title\":\"30\\\"L x 20\\\"W x 20\\\"H - 490lbs\",\"untranslatedTitle\":\"30\\\"L x 20\\\"W x 20\\\"H - 490lbs\"}}]]"});})();</script>
3050<script>
3051  window.ShopifyAnalytics = window.ShopifyAnalytics || {};
3052  window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {};
3053  window.ShopifyAnalytics.meta.currency = 'USD';
3054  var meta = {"product":{"id":7759285649573,"gid":"gid:\/\/shopify\/Product\/7759285649573","vendor":"WakeMAKERS","type":"Ballast Bags","handle":"wakemakers-rear-lbs-ballast-bag","variants":[{"id":41675600920741,"price":18999,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 30\"L x 20\"W x 20\"H - 490lbs","public_title":"30\"L x 20\"W x 20\"H - 490lbs","sku":"B0079"},{"id":41675600953509,"price":24999,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 45\"L x 25\"W x 20\"H - 910lbs","public_title":"45\"L x 25\"W x 20\"H - 910lbs","sku":"B0080"},{"id":41675600986277,"price":25999,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 45\"L x 25\"W x 25\"H - 1,140lbs","public_title":"45\"L x 25\"W x 25\"H - 1,140lbs","sku":"B0081"},{"id":41675601019045,"price":24999,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 45\"L x 20\"W x 25\"H - 910lbs","public_title":"45\"L x 20\"W x 25\"H - 910lbs","sku":"B0082"},{"id":41675601051813,"price":22999,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 45\"L x 20\"W x 20\"H - 720lbs","public_title":"45\"L x 20\"W x 20\"H - 720lbs","sku":"B0083"},{"id":41675601084581,"price":19999,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 40\"L x 25\"W x 15\"H - 610lbs","public_title":"40\"L x 25\"W x 15\"H - 610lbs","sku":"B0088"},{"id":41675601117349,"price":19999,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 40\"L x 20\"W x 20\"H - 640lbs","public_title":"40\"L x 20\"W x 20\"H - 640lbs","sku":"B0089"},{"id":41675601150117,"price":23999,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 40\"L x 25\"W x 20\"H - 820lbs","public_title":"40\"L x 25\"W x 20\"H - 820lbs","sku":"B0090"},{"id":41675601182885,"price":18999,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 35\"L x 25\"W x 15\"H - 540lbs","public_title":"35\"L x 25\"W x 15\"H - 540lbs","sku":"B0091"},{"id":41675601215653,"price":22999,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 50\"L x 25\"W x 15\"H - 740lbs","public_title":"50\"L x 25\"W x 15\"H - 740lbs","sku":"B0092"},{"id":41675601248421,"price":24999,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 50\"L x 25\"W x 25\"H - 1,280lbs","public_title":"50\"L x 25\"W x 25\"H - 1,280lbs","sku":"B0093"},{"id":41675601281189,"price":17999,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 30\"L x 25\"W x 15\"H - 460lbs","public_title":"30\"L x 25\"W x 15\"H - 460lbs","sku":"B0096"},{"id":41675601313957,"price":16999,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 35\"L x 20\"W x 15\"H - 430lbs","public_title":"35\"L x 20\"W x 15\"H - 430lbs","sku":"B0110"},{"id":41675601346725,"price":22999,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 30\"L x 25\"W x 25\"H - 765lbs","public_title":"30\"L x 25\"W x 25\"H - 765lbs","sku":"B0121"},{"id":41675601379493,"price":18999,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 45\"L x 20\"W x 15\"H - 550lbs","public_title":"45\"L x 20\"W x 15\"H - 550lbs","sku":"B0122"},{"id":41675601412261,"price":22999,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 35\"L x 25\"W x 20\"H - 710lbs","public_title":"35\"L x 25\"W x 20\"H - 710lbs","sku":"B0144"},{"id":41675601445029,"price":19999,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 30\"L x 25\"W x 20\"H - 610lbs","public_title":"30\"L x 25\"W x 20\"H - 610lbs","sku":"B0145"},{"id":41675601477797,"price":25999,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 50\"L x 25\"W x 20\"H - 1,020lbs","public_title":"50\"L x 25\"W x 20\"H - 1,020lbs","sku":"B0146"},{"id":41675601510565,"price":24999,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 35\"L x 25\"W x 25\"H - 890lbs","public_title":"35\"L x 25\"W x 25\"H - 890lbs","sku":"B0147"}],"remote":false},"page":{"pageType":"product","resourceType":"product","resourceId":7759285649573,"requestId":"1277f873-4a8e-4114-8cc8-bb4ec1b8c851-1790324395"}};
3055  for (var attr in meta) {
3056    window.ShopifyAnalytics.meta[attr] = meta[attr];
3057  }
3058</script>
vendor: 1 bytes, line 3058
3058
3059<script class="analytics">
3060  (function () {
3061    var customDocumentWrite = function(content) {
3062      var jquery = null;
3063
3064      if (window.jQuery) {
3065        jquery = window.jQuery;
3066      } else if (window.Checkout && window.Checkout.$) {
3067        jquery = window.Checkout.$;
3068      }
3069
3070      if (jquery) {
3071        jquery('body').append(content);
3072      }
3073    };
3074
3075    var hasLoggedConversion = function(token) {
3076      if (token) {
3077        return document.cookie.indexOf('loggedConversion=' + token) !== -1;
3078      }
3079      return false;
3080    }
3081
3082    var setCookieIfConversion = function(token) {
3083      if (token) {
3084        var twoMonthsFromNow = new Date(Date.now());
3085        twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2);
3086
3087        document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow;
3088      }
3089    }
3090
3091    var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || [];
3092    window.ShopifyAnalytics.lib.trekkie = window.trekkie;
3093    if (trekkie.integrations) {
3094      return;
3095    }
3096    trekkie.methods = [
3097      'identify',
3098      'page',
3099      'ready',
3100      'track',
3101      'trackForm',
3102      'trackLink'
3103    ];
3104    trekkie.factory = function(method) {
3105      return function() {
3106        var args = Array.prototype.slice.call(arguments);
3107        args.unshift(method);
3108        trekkie.push(args);
3109        if (method == 'track' || method == 'page') {
3110          var pageUrl;
3111          try {
3112            pageUrl = window.location.href;
3113          } catch (e) {}
3114          var pageReferrer;
3115          try {
3116            pageReferrer = document.referrer;
3117          } catch (e) {}
3118          try {
3119            if (window.__TREKKIE_SHIM_QUEUE == null) {
3120              window.__TREKKIE_SHIM_QUEUE = [];
3121            }
3122            window.__TREKKIE_SHIM_QUEUE.push({
3123              from: 'trekkie-stub',
3124              method: method,
3125              args: args.slice(1),
3126              pageContext: {
3127                url: pageUrl,
3128                referrer: pageReferrer
3129              }
3130            });
3131          } catch (e) {
3132            // no-op
3133          }
3134        }
3135        return trekkie;
3136      };
3137    };
3138    for (var i = 0; i < trekkie.methods.length; i++) {
3139      var key = trekkie.methods[i];
3140      trekkie[key] = trekkie.factory(key);
3141    }
3142    trekkie.load = function(config) {
3143      trekkie.config = config || {};
3144      trekkie.config.initialDocumentCookie = document.cookie;
3145      var first = document.getElementsByTagName('script')[0];
3146var script = document.createElement('script');
3147script.type = 'text/javascript';
3148script.onerror = function(e) {
3149  var scriptFallback = document.createElement('script');
3150  scriptFallback.type = 'text/javascript';
3151  scriptFallback.onerror = function(error) {
3152          var Monorail = {
3153      produce: function produce(monorailDomain, schemaId, payload) {
3154        var currentMs = new Date().getTime();
3155        var event = {
3156          schema_id: schemaId,
3157          payload: payload,
3158          metadata: {
3159            event_created_at_ms: currentMs,
3160            event_sent_at_ms: currentMs
3161          }
3162        };
3163        return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event));
3164      },
3165      sendRequest: function sendRequest(endpointUrl, payload) {
3166        // Try the sendBeacon API
3167        if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) {
3168          var blobData = new window.Blob([payload], {
3169            type: 'text/plain'
3170          });
3171
3172          if (window.navigator.sendBeacon(endpointUrl, blobData)) {
3173            return true;
3174          } // sendBeacon was not successful
3175
3176        } // XHR beacon
3177
3178        var xhr = new XMLHttpRequest();
3179
3180        try {
3181          xhr.open('POST', endpointUrl);
3182          xhr.setRequestHeader('Content-Type', 'text/plain');
3183          xhr.send(payload);
3184        } catch (e) {
3185          console.log(e);
3186        }
3187
3188        return false;
3189      },
3190      isIos12: function isIos12() {
3191        return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1;
3192      }
3193    };
3194    Monorail.produce('monorail-edge.shopifysvc.com',
3195      'trekkie_storefront_load_errors/1.1',
3196      {shop_id: 49088856229,
3197      theme_id: 158076305573,
3198      app_name: "storefront",
3199      context_url: window.location.href,
3200      source_url: "//www.wakemakers.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js"});
3201
3202  };
3203  scriptFallback.async = true;
3204  scriptFallback.src = '//www.wakemakers.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js';
3205  first.parentNode.insertBefore(scriptFallback, first);
3206};
3207script.async = true;
3208script.src = '//www.wakemakers.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js';
3209first.parentNode.insertBefore(script, first);
3210
3211    };
3212    trekkie.load(
3213      {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":49088856229,"isMerchantRequest":null,"themeId":158076305573,"themeCityHash":"1159530713686141614","contentLanguage":"en","currency":"USD","eventMetadataId":"532df4d1-62d8-43a2-8f97-bdc56ee492d8"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}}
3214    );
3215
3216    var loaded = false;
3217    trekkie.ready(function() {
3218      if (loaded) return;
3219      loaded = true;
3220
3221      window.ShopifyAnalytics.lib = window.trekkie;
3222
3223      var originalDocumentWrite = document.write;
3224      document.write = customDocumentWrite;
3225      try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {};
3226      document.write = originalDocumentWrite;
3227
3228      var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/)
3229      var token = match? match[1]: undefined;
3230      if (!hasLoggedConversion(token)) {
3231        setCookieIfConversion(token);
3232        window.ShopifyAnalytics.lib.track("Viewed Product",{"currency":"USD","variantId":41675600920741,"productId":7759285649573,"productGid":"gid:\/\/shopify\/Product\/7759285649573","name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 30\"L x 20\"W x 20\"H - 490lbs","price":"189.99","sku":"B0079","brand":"WakeMAKERS","variant":"30\"L x 20\"W x 20\"H - 490lbs","category":"Ballast Bags","nonInteraction":true,"remote":false,"available":true},undefined,undefined,{"shopifyEmitted":true});
3233      }
3234    });
3235
3236    window.ShopifyAnalytics.lib.page(null,{"pageType":"product","resourceType":"product","resourceId":7759285649573,"requestId":"1277f873-4a8e-4114-8cc8-bb4ec1b8c851-1790324395","shopifyEmitted":true});
3237
3238    var eventsListenerScript = document.createElement('script');
3239    eventsListenerScript.async = true;
3240    eventsListenerScript.src = "//www.wakemakers.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js";
3241    document.getElementsByTagName('head')[0].appendChild(eventsListenerScript);
3242})();</script>
vendor: 1 bytes, line 3242
3242
3243<script
3244  defer
3245  src="https://www.wakemakers.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js"
3246  data-application="storefront-renderer"
3247  data-shop-id="49088856229"
3248  data-render-region="gcp-us-central1"
3249  data-page-type="product"
3250  data-theme-instance-id="158076305573"
3251  data-theme-name="WakeMakers"
3252  data-theme-version="1.1.0"
3253  data-monorail-region="shop_domain"
3254  data-resource-timing-sampling-rate="10"
3255  data-shs="true"
3256  data-shs-beacon="true"
3257  data-shs-export-with-fetch="true"
3258  data-shs-logs-sample-rate="1"
3259  data-shs-beacon-endpoint="https://www.wakemakers.com/api/collect"
3260></script>
3260
3261<meta name="shopify-y" content="7b1640bc-6fe0-480c-9092-163e2558e9be" data-expiration="1821881995000"><meta name="shopify-s" content="94c6a739-3898-41ac-8f4a-9ab52f5605b4" data-expiration="1790326195000"><meta name="new-cookie-storage-activated" content="t">
3262</head>
3263  
3264    <body>
3265
3266      <!-- Google Tag Manager (noscript) -->
vendor: 74 bytes, lines 3266-3267
3266
3267      <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
3267GTM-WLJK5KD
vendor: 95 bytes, lines 3267-3269
3267"
3268      height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
3269      
3269<!-- End Google Tag Manager (noscript) -->
3270
3271      <a class="skip-to-content-link button visually-hidden" href="#MainContent">
3272        Skip to content
3273      </a>
3274  
3275      <div id="shopify-section-header" class="shopify-section sticky top-0 bg-white">
3276
3277
3278
3279
3280
3281
3282<style>
3283  :root{
3284    --header-height: 91px;
3285  }
3286
3287  @media screen and (min-width: 1024px){
3288    :root{
3289      --header-height: 159px;
3290    }
3291  }
3292</style>
3293
3294<!-- Testing -->
3295
3296
3297
3298  <section class="announcement bg-gray-dark text-white w-full overflow-hidden" id="AnnouncementBar">
3299    
3300    
3301
3302        <div class="block w-full max-w-[1140px] mx-auto  text-14 font-300 py-8">
3303      
3304      
3305        <div class="announcement__slide w-full text-center" js-carousel-slide>
3306          Free US Shipping on Orders Over $99 <a href="https://www.wakemakers.com/pages/discounts-coupon-codes" title="Free Shipping">Learn More »</a>
3307        </div>
3308      
3309      
3310        </div>
3311      
3312    
3313  </section>
3314
3315<header class="site-header" id="SiteHeader">
3316  <div class="site-header__top-container bg-gray-light tabletl:bg-white ">
3317    <div class="site-header__top py-12 px-16 flex items-center justify-between w-full max-w-[1140px] mx-auto">
3318      <div class="site-header-top__left flex items-center justify-start">
3319        <button id="header-open-nav" class="w-[36px] mr-8 focus:text-blue desktop:hover:text-blue tabletl:hidden" aria-label="Menu" title="Menu" js-open-mobile-nav><svg class="icon icon--menu" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 85.12 72">
3320  
3321  <polygon points="0 50.63 0 72 74.63 72 61.13 50.63 0 50.63" />
3322  <path d="M48.94,0H0V21.37H30.85A25.9,25.9,0,0,1,48.94,0Z" />
3323  <path d="M30.64,25.31H0V46.69H42.78A25.84,25.84,0,0,1,30.64,25.31Z" />
3324  <path d="M85.12,68.1,69.19,42.87a22,22,0,1,0-7,3.27L78.5,72h6.62ZM56.5,42A17.25,17.25,0,1,1,73.75,24.75,17.25,17.25,0,0,1,56.5,42Z" />
3325</svg></button>
3326        <button id="header-close-nav" class="w-[36px] items-center justify-center mr-8 text-blue hidden " aria-label="Close" title="Close" js-close-mobile-nav>
3327          <div class="w-[30px]"><svg class="icon icon-arrow-close" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 504 504">
3328  
3329  <path d="M252,0C113,0,0,113,0,252S113,504,252,504,504,391,504,252,391,0,252,0Zm0,33.6A218.4,218.4,0,1,1,33.6,252,218.14,218.14,0,0,1,252,33.6Zm54.77,78.22a16.85,16.85,0,0,0-10.15,4.56L162.23,239.58a16.79,16.79,0,0,0,0,24.67l134.39,123.2a16.8,16.8,0,1,0,22.76-24.67L198.45,252,319.38,141.06a16.81,16.81,0,0,0-12.61-29.23Z" />
3330</svg></div>
3331        </button>
3332        <a href="/" class="site-header__logo inline-block w-[146px] text-[0px] tabletl:w-[194px]" title="Home" aria-label="WakeMAKERS"><svg class="icon icon--full-color icon--logo" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300.1 36.9">
3333  <defs>
3334    <style>
3335    .text-gray-dark {
3336      fill: #414141;
3337    }
3338
3339    .text-blue {
3340      fill: #3399ff;
3341    }
3342    </style>
3343  </defs>
3344  <path class="text-blue" d="M123.3,6.5V0H100.6V36.7h22.7V30.2H107.1V21.6h10.8V15.1H107.1V6.5ZM86,16.1,98.4,0H91.5L78,16V0H71.5V36.7H78V25.9L82.1,21l9.5,15.8h6.9ZM66.7.1C58.8.1,33.1,2.7,33.1,36.2v.6h6.4v-.6c0-4,.3-9.8,2.5-13.5H60.8V16.2h-16c2.6-4.9,9.1-10,18.3-10.2V36.8h6.5V.2h-.8c-.1,0-.8-.1-2.1-.1" />
3345  <path class="text-blue" d="M36.8,0,26,23.4,22.6,0H20.2L8.9,23.4,6.1,0H0L5.4,36.7H7.7L19,13.6l4.2,23.2h2.3L42.9,0Z" />
3346  <path class="text-gray-dark" d="M298.5,20.8a12,12,0,0,0-5.2-4.2l-2.8-1.3a20.72,20.72,0,0,1-3.5-2,4.81,4.81,0,0,1-1.2-1.6,5.38,5.38,0,0,1-.4-2.2,4.14,4.14,0,0,1,1.2-3.1A4.55,4.55,0,0,1,290,5.2a11.09,11.09,0,0,1,3.4.6A11.76,11.76,0,0,1,296.1,7l.6.4,1.7-5.1-.3-.2c-1.6-1.3-4.3-2-8.3-2a10.54,10.54,0,0,0-7.4,2.7,9.06,9.06,0,0,0-2.9,6.8,10.53,10.53,0,0,0,1.5,5.7,11.42,11.42,0,0,0,5.1,4.1l2.8,1.3c2.4,1.1,3.9,2.2,4.4,3.1a5.29,5.29,0,0,1,.9,3,4.33,4.33,0,0,1-1.5,3.4,6,6,0,0,1-4.1,1.4,10.51,10.51,0,0,1-3.3-.6,11.19,11.19,0,0,1-3.1-1.5l-.5-.4-2.1,5.3.4.2a14.24,14.24,0,0,0,8.1,2.2,13.35,13.35,0,0,0,8.7-2.8,8.85,8.85,0,0,0,3.3-7,12.91,12.91,0,0,0-1.6-6.2M277.8,36.9l-9.7-15.2c3.8-1.9,5.4-5.5,5.4-10.9,0-7.2-5.2-10.8-15.7-10.8-.8,0-2.9.1-6.6.3h-.6V36.9h6.5V23.1c2.2.1,2.8.2,3.3.2a13.55,13.55,0,0,0,2-.2l8.4,13.8ZM260,17.8c-.1,0,.3,0-2.9-.2V5.7c2.2-.1,1.8-.2,2.3-.2,6,0,8.1,1.9,8.1,5.8-.1,4.4-1.9,6.5-7.5,6.5M248.4,6.6V.1H225.7V36.8h22.7V30.3H232.2V21.7H243V15.2H232.2V6.6ZM211,16.1,223.5.1h-6.9L203,16.1V.1h-6.5V36.8H203V25.9l4.1-4.9,9.5,15.8h6.9ZM180.3.1h-2L163.9,36.8h6.6l2.6-7.6h12.5l2.5,7.6h6.6ZM183,22.8h-7.5l3.6-10.1ZM154.3.1h-3l-7.4,24.7L135.8.1h-3.1l-6.9,36.7h5.7l3.8-21,7.4,21h2l7.2-21,3.9,21h5.7Z" />
3347</svg></a>
3348      </div>
3349      <div class="site-header-top__right flex items-center justify-end">
3350        <div class="site-header__contact hidden tabletl:flex items-center justify-end mr-16 text-14">
3351          <div class="site-header-contact__links flex flex-col items-end">
3352            
3353              <a href="tel:8883386085" class="font-600" target="_blank" rel="noopener noreferrer">(888) 338-6085</a>
3354            
3355            
3356              <a href="mailto:[email protected]" target="_blank" class="text-14" rel="noopener noreferrer">[email protected]</a>  
3357            
3358          </div>
3359          
3360            <a href="/pages/customer-service" data-online-text="LIVE CHAT" class="site-header-contact__link btn btn--gray px-12 font-400 ml-16 focus:text-white focus:bg-blue desktop:hover:text-white desktop:hover:bg-blue" js-contact-btn>CONTACT US</a>
3361          
3362        </div>
3363        <button class="w-[35px] text-gray focus:text-blue desktop:hover:text-blue mr-16 relative wm-cart-button" title="Cart" aria-label="Cart" js-cart-drawer-open>
3364          <svg class="icon icon--cart" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 23.99 21">
3365  
3366  <path d="M23.93,5.66l-2.61,7.88a1.31,1.31,0,0,1-1.24.9H7.82a1.3,1.3,0,0,1-1.23-.9L3,2.62H1.3A1.3,1.3,0,0,1,0,1.31,1.31,1.31,0,0,1,1.3,0H3.91A1.31,1.31,0,0,1,5.15.9l1,3H22.69a1.31,1.31,0,0,1,1.06.54A1.34,1.34,0,0,1,23.93,5.66ZM9.23,16.24a2.39,2.39,0,0,1,2.42,2.38A2.5,2.5,0,0,1,9.08,21a2.25,2.25,0,0,1-2.27-2.38A2.39,2.39,0,0,1,9.23,16.24ZM18.42,16a2.5,2.5,0,1,1-2.51,2.5A2.51,2.51,0,0,1,18.42,16Z" />
3367</svg>
3368          <span class="absolute top-0 right-0 w-[22px] h-[22px] border-2 border-solid rounded-[50%] border-gray-light tabletl:border-white bg-blue text-white text-14 flex items-center justify-center hidden translate-x-[25%] translate-y-[-25%]" js-cart-counter>0</span>
3369        </button>
3370
3371        <a href="#swym-wishlist" class="swym-wishlist">
3372          <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="40" width="40" zoomAndPan="magnify" viewBox="0 0 1350 1349.999938" preserveAspectRatio="xMidYMid meet" version="1.0">
3373            <defs>
3374              <clipPath id="ec211ed600">
3375                <path d="M 138 267 L 1131 267 L 1131 1135.230469 L 138 1135.230469 Z M 138 267 " clip-rule="nonzero"/>
3376              </clipPath>
3377            </defs>
3378            <g clip-path="url(#ec211ed600)">
3379              <path fill="#afb0b3" d="M 619.148438 497.902344 C 700.691406 295.25 908.226562 186.480469 1062.582031 338.71875 C 1349.476562 620.960938 630.65625 1135.230469 630.65625 1135.230469 C 265.195312 835.917969 0.523438 579.28125 215.394531 350.230469 C 335.828125 221.613281 534.828125 304.378906 619.148438 497.902344 Z M 619.148438 497.902344 " fill-opacity="1" fill-rule="nonzero"/>
3380            </g>
3381          </svg>
3382        </a>
3383        
3384        <a href="/account" class="w-[30px] block text-gray" title="Account" aria-label="Account"><svg class="icon icon--account" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
3385  
3386  <path d="M6,6a6,6,0,1,0,6-6A6,6,0,0,0,6,6Zm11.1,8.23H6.9c-3,0-6.9,3.07-6.9,6.86V24H24V21.09C24,17.3,19.78,14.17,17.1,14.23Z" />
3387</svg></a>
3388      </div>
3389    </div>
3390  </div>
3391  <div class="site-header__bottom-container hidden tabletl:block bg-blue">
3392    <div class="site-header__bottom flex items-center justify-between w-full max-w-[1140px] mx-auto pr-16">
3393      <nav class="site-header__nav flex items-center justify-start">
3394        
3395          <a href="/pages/wakeboard-ballast" class="site-header-nav__link p-16 uppercase text-white bg-blue focus:bg-blue-dark focus:text-white desktop:hover:bg-blue-dark desktop:hover:text-white">Ballast</a>
3396        
3397          <a href="/pages/props" class="site-header-nav__link p-16 uppercase text-white bg-blue focus:bg-blue-dark focus:text-white desktop:hover:bg-blue-dark desktop:hover:text-white">Props</a>
3398        
3399          <a href="/pages/wakesurf" class="site-header-nav__link p-16 uppercase text-white bg-blue focus:bg-blue-dark focus:text-white desktop:hover:bg-blue-dark desktop:hover:text-white">Surf</a>
3400        
3401          <a href="/pages/hydrofoil-boards" class="site-header-nav__link p-16 uppercase text-white bg-blue focus:bg-blue-dark focus:text-white desktop:hover:bg-blue-dark desktop:hover:text-white">Foil</a>
3402        
3403          <a href="/pages/wake" class="site-header-nav__link p-16 uppercase text-white bg-blue focus:bg-blue-dark focus:text-white desktop:hover:bg-blue-dark desktop:hover:text-white">Wake</a>
3404        
3405          <a href="/pages/wakeboard-boat" class="site-header-nav__link p-16 uppercase text-white bg-blue focus:bg-blue-dark focus:text-white desktop:hover:bg-blue-dark desktop:hover:text-white">Boat</a>
3406        
3407          <a href="/pages/gear" class="site-header-nav__link p-16 uppercase text-white bg-blue focus:bg-blue-dark focus:text-white desktop:hover:bg-blue-dark desktop:hover:text-white">Gear</a>
3408        
3409          <a href="/pages/outlet" class="site-header-nav__link p-16 uppercase text-white bg-blue focus:bg-blue-dark focus:text-white desktop:hover:bg-blue-dark desktop:hover:text-white">Outlet</a>
3410        
3411          <a href="/blogs/resources" class="site-header-nav__link p-16 uppercase text-white bg-blue focus:bg-blue-dark focus:text-white desktop:hover:bg-blue-dark desktop:hover:text-white">Resources</a>
3412        
3413      </nav>
3414      <predictive-search class="text-white w-[388px]">
3415        <form action="/search" method="get" role="search" class="relative w-full">
3416          <label for="header-search" class="visually-hidden">Search</label>
3417          <input
3418            id="header-search"
3419            class="bg-blue-dark py-16 pl-16 pr-40 font-300 placeholder-current w-full appearance-none rounded-none"
3420            type="search"
3421            name="q"
3422            autocomplete="off"
3423            value=""placeholder="Enter keyword or item #"
3424          >
3425          <input type="hidden" name="type" value="product"/>
3426          <input name="options[prefix]" type="hidden" value="last">
3427          <button class="w-[36px] absolute right-0 top-1/2 -translate-y-1/2 p-8 text-[0px]" type="submit" aria-label="Search" title="Search"><svg class="icon icon--search" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 99.83">
3428  
3429  <path d="M99.34,89.07,68.05,57.79A37.16,37.16,0,0,0,37.15,0,37.15,37.15,0,0,0,10.88,63.42,37.16,37.16,0,0,0,58,67.91L89.24,99.17c1.06,1,3,.82,4.33-.52l5.26-5.25C100.16,92.07,100.39,90.13,99.34,89.07ZM37.15,64.23A27.09,27.09,0,1,1,64.23,37.15,27.12,27.12,0,0,1,37.15,64.23Z" />
3430</svg></button>
3431          <div class="absolute hidden w-full left-0 bottom-0 translate-y-full text-black bg-white p-16 border-2 border-t-0 border-solid border-blue-dark rounded-bl-2 roun
3431ded-br-2 max-h-[calc(100vh-var(--header-height))] overflow-y-auto" tabindex="-1" js-predictive-search></div>
3432        </form>
3433      </predictive-search>
3434    </div>
3435  </div>
3436</header>
3437
3438
3439
3440</div>
3441  
3442      
3443
3444<s-drawer id="MobileNavDrawer" position='left' open="[js-open-mobile-nav]" close="[js-close-mobile-nav]">
3445  <button class="hidden" js-close-mobile-nav>Close</button>
3446  <div class="template-search__search">
3447    <form action="/search" method="get" role="search" class="search">
3448      <div class="field bg-blue-dark w-full p-16 relative">
3449        <input
3450          class="search__input bg-blue-dark text-white w-3/4 appearance-none"
3451          id="Search-In-Template"
3452          type="search"
3453          name="q"
3454          value=""
3455          
3456          placeholder="Enter keyword or item #"
3457        >
3458        <label class="field__label hidden" for="Search-In-Template" aria-hidden="true">Search</label>
3459        <input type="hidden" name="type" value="product"/>
3460        <input name="options[prefix]" type="hidden" value="last">
3461        <button type="submit" class="search__button w-24 text-white absolute right-16" aria-label="Search">
3462          <svg class="icon icon--search" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 99.83">
3463  
3464  <path d="M99.34,89.07,68.05,57.79A37.16,37.16,0,0,0,37.15,0,37.15,37.15,0,0,0,10.88,63.42,37.16,37.16,0,0,0,58,67.91L89.24,99.17c1.06,1,3,.82,4.33-.52l5.26-5.25C100.16,92.07,100.39,90.13,99.34,89.07ZM37.15,64.23A27.09,27.09,0,1,1,64.23,37.15,27.12,27.12,0,0,1,37.15,64.23Z" />
3465</svg>
3466        </button>
3467      </div>
3468    </form>
3469  </div>
3470  
3471  <div class="mobile-drawer__accordion">
3472    <s-accordion js-accordion>
3473      
3474          <div class="mobile-menu__accordion accordion-item" js-accordion-item>
3475            <button class="mobile-menu__accordion-header mobile-accordion-header p-16 text-20 text-gray-dark flex flex-row justify-between items-center w-full" aria-expanded="false" aria-controls="mobile-accordion-ballast" js-accordion-header>
3476              <span>Ballast</span>
3477              <div class="accordion-icon w-24 text-gray-dark rotate-[-90deg]">
3478                <?xml version="1.0" encoding="UTF-8"?>
3479<svg class="icon icon-carousel-left" version="1.1" viewBox="0 0 700 700" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3480
3481 <g>
3482  <path d="m350 28c-138.98 0-252 113.02-252 252s113.02 252 252 252 252-113.02 252-252-113.02-252-252-252zm0 33.602c120.82 0 218.4 97.582 218.4 218.4s-97.582 218.4-218.4 218.4-218.4-97.582-218.4-218.4 97.582-218.4 218.4-218.4zm54.773 78.223c-3.8008 0.32031-7.3789 1.9258-10.148 4.5508l-134.4 123.2c-3.4414 3.1797-5.3984 7.6523-5.3984 12.34 0 4.6836 1.957 9.1562 5.3984 12.336l134.4 123.2c3.2227 3.2812 7.6523 5.0977 12.254 5.0273 4.5977-0.074218 8.9688-2.0273 12.086-5.4102 3.1172-3.3828 4.7109-7.8945 4.4141-12.488-0.30078-4.5898-2.4727-8.8555-6.0039-11.805l-120.93-110.77 120.93-110.95c3.5-3.1562 5.5117-7.6367 5.5508-12.352 0.035157-4.7109-1.9102-9.2227-5.3633-12.43-3.4492-3.2109-8.0898-4.8242-12.789-4.4453z"/>
3483
3484 </g>
3485</svg>
3486
3487              </div>
3488            </button>
3489            <div id="mobile-accordion-ballast" class="mobile-menu__accordion-content accordion-content" aria-hidden="true" js-accordion-content>
3490              
3491                <div class="mobile-menu__child-item p-16 pl-32">
3492                  <a class="mobile-menu__child-link" href="/collections/factory-wakeboard-ballast-upgrades"> Factory Ballast Upgrades</a>
3493                </div>
3494              
3495                <div class="mobile-menu__child-item p-16 pl-32">
3496                  <a class="mobile-menu__child-link" href="/collections/wakeboard-ballast-bag-pump-combos"> Balast Bag & Pump Combo</a>
3497                </div>
3498              
3499                <div class="mobile-menu__child-item p-16 pl-32">
3500                  <a class="mobile-menu__child-link" href="/collections/wakeboard-ballast-systems"> Complete Ballast Systems</a>
3501                </div>
3502              
3503                <div class="mobile-menu__child-item p-16 pl-32">
3504                  <a class="mobile-menu__child-link" href="/collections/wakesurf-ballast-bags"> Ballast Bags</a>
3505                </div>
3506              
3507                <div class="mobile-menu__child-item p-16 pl-32">
3508                  <a class="mobile-menu__child-link" href="/collections/wakeboard-ballast-pumps"> Ballast Pumps</a>
3509                </div>
3510              
3511                <div class="mobile-menu__child-item p-16 pl-32">
3512                  <a class="mobile-menu__child-link" href="/pages/wakeboard-ballast-parts"> Ballast Parts</a>
3513                </div>
3514              
3515                <div class="mobile-menu__child-item p-16 pl-32">
3516                  <a class="mobile-menu__child-link" href="/collections/wakesurf-systems"> Wake Shapers & Wakesurf Systems</a>
3517                </div>
3518              
3519                <div class="mobile-menu__child-item p-16 pl-32">
3520                  <a class="mobile-menu__child-link" href="/pages/wakeboard-ballast"> Shop All Ballast »</a>
3521                </div>
3522              
3523            </div>
3524          </div>
3525      
3526          <div class="mobile-menu__accordion accordion-item" js-accordion-item>
3527            <button class="mobile-menu__accordion-header mobile-accordion-header p-16 text-20 text-gray-dark flex flex-row justify-between items-center w-full" aria-expanded="false" aria-controls="mobile-accordion-props" js-accordion-header>
3528              <span>Props</span>
3529              <div class="accordion-icon w-24 text-gray-dark rotate-[-90deg]">
3530                <?xml version="1.0" encoding="UTF-8"?>
3531<svg class="icon icon-carousel-left" version="1.1" viewBox="0 0 700 700" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3532
3533 <g>
3534  <path d="m350 28c-138.98 0-252 113.02-252 252s113.02 252 252 252 252-113.02 252-252-113.02-252-252-252zm0 33.602c120.82 0 218.4 97.582 218.4 218.4s-97.582 218.4-218.4 218.4-218.4-97.582-218.4-218.4 97.582-218.4 218.4-218.4zm54.773 78.223c-3.8008 0.32031-7.3789 1.9258-10.148 4.5508l-134.4 123.2c-3.4414 3.1797-5.3984 7.6523-5.3984 12.34 0 4.6836 1.957 9.1562 5.3984 12.336l134.4 123.2c3.2227 3.2812 7.6523 5.0977 12.254 5.0273 4.5977-0.074218 8.9688-2.0273 12.086-5.4102 3.1172-3.3828 4.7109-7.8945 4.4141-12.488-0.30078-4.5898-2.4727-8.8555-6.0039-11.805l-120.93-110.77 120.93-110.95c3.5-3.1562 5.5117-7.6367 5.5508-12.352 0.035157-4.7109-1.9102-9.2227-5.3633-12.43-3.4492-3.2109-8.0898-4.8242-12.789-4.4453z"/>
3535
3536 </g>
3537</svg>
3538
3539              </div>
3540            </button>
3541            <div id="mobile-accordion-props" class="mobile-menu__accordion-content accordion-content" aria-hidden="true" js-accordion-content>
3542              
3543                <div class="mobile-menu__child-item p-16 pl-32">
3544                  <a class="mobile-menu__child-link" href="/collections/propellers"> Exclusive PropFinder</a>
3545                </div>
3546              
3547                <div class="mobile-menu__child-item p-16 pl-32">
3548                  <a class="mobile-menu__child-link" href="/collections/propellers"> Propellers</a>
3549                </div>
3550              
3551                <div class="mobile-menu__child-item p-16 pl-32">
3552                  <a class="mobile-menu__child-link" href="/collections/prop-accessories"> Prop Accessories</a>
3553                </div>
3554              
3555                <div class="mobile-menu__child-item p-16 pl-32">
3556                  <a class="mobile-menu__child-link" href="/pages/props"> Shop all Props »</a>
3557                </div>
3558              
3559            </div>
3560          </div>
3561      
3562          <div class="mobile-menu__accordion accordion-item" js-accordion-item>
3563            <button class="mobile-menu__accordion-header mobile-accordion-header p-16 text-20 text-gray-dark flex flex-row justify-between items-center w-full" aria-expanded="false" aria-controls="mobile-accordion-surf" js-accordion-header>
3564              <span>Surf</span>
3565              <div class="accordion-icon w-24 text-gray-dark rotate-[-90deg]">
3566                <?xml version="1.0" encoding="UTF-8"?>
3567<svg class="icon icon-carousel-left" version="1.1" viewBox="0 0 700 700" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3568
3569 <g>
3570  <path d="m350 28c-138.98 0-252 113.02-252 252s113.02 252 252 252 252-113.02 252-252-113.02-252-252-252zm0 33.602c120.82 0 218.4 97.582 218.4 218.4s-97.582 218.4-218.4 218.4-218.4-97.582-218.4-218.4 97.582-218.4 218.4-218.4zm54.773 78.223c-3.8008 0.32031-7.3789 1.9258-10.148 4.5508l-134.4 123.2c-3.4414 3.1797-5.3984 7.6523-5.3984 12.34 0 4.6836 1.957 9.1562 5.3984 12.336l134.4 123.2c3.2227 3.2812 7.6523 5.0977 12.254 5.0273 4.5977-0.074218 8.9688-2.0273 12.086-5.4102 3.1172-3.3828 4.7109-7.8945 4.4141-12.488-0.30078-4.5898-2.4727-8.8555-6.0039-11.805l-120.93-110.77 120.93-110.95c3.5-3.1562 5.5117-7.6367 5.5508-12.352 0.035157-4.7109-1.9102-9.2227-5.3633-12.43-3.4492-3.2109-8.0898-4.8242-12.789-4.4453z"/>
3571
3572 </g>
3573</svg>
3574
3575              </div>
3576            </button>
3577            <div id="mobile-accordion-surf" class="mobile-menu__accordion-content accordion-content" aria-hidden="true" js-accordion-content>
3578              
3579                <div class="mobile-menu__child-item p-16 pl-32">
3580                  <a class="mobile-menu__child-link" href="/collections/wakesurf-boards"> Wakesurf Boards</a>
3581                </div>
3582              
3583                <div class="mobile-menu__child-item p-16 pl-32">
3584                  <a class="mobile-menu__child-link" href="/collections/wakeboard-vests"> Wakesurf Vests & Life Jackets</a>
3585                </div>
3586              
3587                <div class="mobile-menu__child-item p-16 pl-32">
3588                  <a class="mobile-menu__child-link" href="/collections/wakesurf-ropes"> Wakesurf Ropes & Handles</a>
3589                </div>
3590              
3591                <div class="mobile-menu__child-item p-16 pl-32">
3592                  <a class="mobile-menu__child-link" href="/collections/wakesurf-bags"> Wakesurf Bags</a>
3593                </div>
3594              
3595                <div class="mobile-menu__child-item p-16 pl-32">
3596                  <a class="mobile-menu__child-link" href="/collections/drysuits-wetsuits"> Drysuits & Wetsuits</a>
3597                </div>
3598              
3599                <div class="mobile-menu__child-item p-16 pl-32">
3600                  <a class="mobile-menu__child-link" href="/collections/wakesurf-accessories"> Wakesurf Fins & Accessories</a>
3601                </div>
3602              
3603                <div class="mobile-menu__child-item p-16 pl-32">
3604                  <a class="mobile-menu__child-link" href="/collections/wakesurf-systems"> Wake Shapers & Wakesurf Systems</a>
3605                </div>
3606              
3607                <div class="mobile-menu__child-item p-16 pl-32">
3608                  <a class="mobile-menu__child-link" href="/pages/wakesurf"> Shop all Surf »</a>
3609                </div>
3610              
3611            </div>
3612          </div>
3613      
3614          <div class="mobile-menu__accordion accordion-item" js-accordion-item>
3615            <button class="mobile-menu__accordion-header mobile-accordion-header p-16 text-20 text-gray-dark flex flex-row justify-between items-center w-full" aria-expanded="false" aria-controls="mobile-accordion-foil" js-accordion-header>
3616              <span>Foil</span>
3617              <div class="accordion-icon w-24 text-gray-dark rotate-[-90deg]">
3618                <?xml version="1.0" encoding="UTF-8"?>
3619<svg class="icon icon-carousel-left" version="1.1" viewBox="0 0 700 700" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3620
3621 <g>
3622  <path d="m350 28c-138.98 0-252 113.02-252 252s113.02 252 252 252 252-113.02 252-252-113.02-252-252-252zm0 33.602c120.82 0 218.4 97.582 218.4 218.4s-97.582 218.4-218.4 218.4-218.4-97.582-218.4-218.4 97.582-218.4 218.4-218.4zm54.773 78.223c-3.8008 0.32031-7.3789 1.9258-10.148 4.5508l-134.4 123.2c-3.4414 3.1797-5.3984 7.6523-5.3984 12.34 0 4.6836 1.957 9.1562 5.3984 12.336l134.4 123.2c3.2227 3.2812 7.6523 5.0977 12.254 5.0273 4.5977-0.074218 8.9688-2.0273 12.086-5.4102 3.1172-3.3828 4.7109-7.8945 4.4141-12.488-0.30078-4.5898-2.4727-8.8555-6.0039-11.805l-120.93-110.77 120.93-110.95c3.5-3.1562 5.5117-7.6367 5.5508-12.352 0.035157-4.7109-1.9102-9.2227-5.3633-12.43-3.4492-3.2109-8.0898-4.8242-12.789-4.4453z"/>
3623
3624 </g>
3625</svg>
3626
3627              </div>
3628            </button>
3629            <div id="mobile-accordion-foil" class="mobile-menu__accordion-content accordion-content" aria-hidden="true" js-accordion-content>
3630              
3631                <div class="mobile-menu__child-item p-16 pl-32">
3632                  <a class="mobile-menu__child-link" href="/collections/foil-boards"> Wake Foil Packages</a>
3633                </div>
3634              
3635                <div class="mobile-menu__child-item p-16 pl-32">
3636                  <a class="mobile-menu__child-link" href="/collections/foil-surfboards"> Foil Boards</a>
3637                </div>
3638              
3639                <div class="mobile-menu__child-item p-16 pl-32">
3640                  <a class="mobile-menu__child-link" href="/collections/hydrofoils"> Foil Sets</a>
3641                </div>
3642              
3643                <div class="mobile-menu__child-item p-16 pl-32">
3644                  <a class="mobile-menu__child-link" href="/collections/foil-hardware-accessories"> Foil Accessories</a>
3645                </div>
3646              
3647                <div class="mobile-menu__child-item p-16 pl-32">
3648                  <a class="mobile-menu__child-link" href="/collections/wakeboard-vests"> Foil Vests & Life Jackets</a>
3649                </div>
3650              
3651                <div class="mobile-menu__child-item p-16 pl-32">
3652                  <a class="mobile-menu__child-link" href="/collections/drysuits-wetsuits"> Drysuits & Wetsuits</a>
3653                </div>
3654              
3655                <div class="mobile-menu__child-item p-16 pl-32">
3656                  <a class="mobile-menu__child-link" href="/pages/hydrofoil-boards"> Shop all Foil »</a>
3657                </div>
3658              
3659            </div>
3660          </div>
3661      
3662          <div class="mobile-menu__accordion accordion-item" js-accordion-item>
3663            <button class="mobile-menu__accordion-header mobile-accordion-header p-16 text-20 text-gray-dark flex flex-row justify-between items-center w-full" aria-expanded="false" aria-controls="mobile-accordion-wake" js-accordion-header>
3664              <span>Wake</span>
3665              <div class="accordion-icon w-24 text-gray-dark rotate-[-90deg]">
3666                <?xml version="1.0" encoding="UTF-8"?>
3667<svg class="icon icon-carousel-left" version="1.1" viewBox="0 0 700 700" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3668
3669 <g>
3670  <path d="m350 28c-138.98 0-252 113.02-252 252s113.02 252 252 252 252-113.02 252-252-113.02-252-252-252zm0 33.602c120.82 0 218.4 97.582 218.4 218.4s-97.582 218.4-218.4 218.4-218.4-97.582-218.4-218.4 97.582-218.4 218.4-218.4zm54.773 78.223c-3.8008 0.32031-7.3789 1.9258-10.148 4.5508l-134.4 123.2c-3.4414 3.1797-5.3984 7.6523-5.3984 12.34 0 4.6836 1.957 9.1562 5.3984 12.336l134.4 123.2c3.2227 3.2812 7.6523 5.0977 12.254 5.0273 4.5977-0.074218 8.9688-2.0273 12.086-5.4102 3.1172-3.3828 4.7109-7.8945 4.4141-12.488-0.30078-4.5898-2.4727-8.8555-6.0039-11.805l-120.93-110.77 120.93-110.95c3.5-3.1562 5.5117-7.6367 5.5508-12.352 0.035157-4.7109-1.9102-9.2227-5.3633-12.43-3.4492-3.2109-8.0898-4.8242-12.789-4.4453z"/>
3671
3672 </g>
3673</svg>
3674
3675              </div>
3676            </button>
3677            <div id="mobile-accordion-wake" class="mobile-menu__accordion-content accordion-content" aria-hidden="true" js-accordion-content>
3678              
3679                <div class="mobile-menu__child-item p-16 pl-32">
3680                  <a class="mobile-menu__child-link" href="/collections/wakeboard-bindings"> Wakeboard Bindings</a>
3681                </div>
3682              
3683                <div class="mobile-menu__child-item p-16 pl-32">
3684                  <a class="mobile-menu__child-link" href="/collections/wakeboard-vests"> Wakeboard Vests & Life Jackets</a>
3685                </div>
3686              
3687                <div class="mobile-menu__child-item p-16 pl-32">
3688                  <a class="mobile-menu__child-link" href="/collections/wakeboard-ropes"> Wakeboard Ropes & Handles</a>
3689                </div>
3690              
3691                <div class="mobile-menu__child-item p-16 pl-32">
3692                  <a class="mobile-menu__child-link" href="/collections/wakeboard-bags"> Wakeboard Bags</a>
3693                </div>
3694              
3695                <div class="mobile-menu__child-item p-16 pl-32">
3696                  <a class="mobile-menu__child-link" href="/collections/wakeskates"> Wakeskates</a>
3697                </div>
3698              
3699                <div class="mobile-menu__child-item p-16 pl-32">
3700                  <a class="mobile-menu__child-link" href="/collections/drysuits-wetsuits"> Drysuits, Wetsuits & Neo Accessories</a>
3701                </div>
3702              
3703                <div class="mobile-menu__child-item p-16 pl-32">
3704                  <a class="mobile-menu__child-link" href="/collections/wakeboard-accessories"> Wake Accessories</a>
3705                </div>
3706              
3707                <div class="mobile-menu__child-item p-16 pl-32">
3708                  <a class="mobile-menu__child-link" href="/pages/wake"> Shop all Wake »</a>
3709                </div>
3710              
3711            </div>
3712          </div>
3713      
3714          <div class="mobile-menu__accordion accordion-item" js-accordion-item>
3715            <button class="mobile-menu__accordion-header mobile-accordion-header p-16 text-20 text-gray-dark flex flex-row justify-between items-center w-full" aria-expanded="false" aria-controls="mobile-accordion-boat" js-accordion-header>
3716              <span>Boat</span>
3717              <div class="accordion-icon w-24 text-gray-dark rotate-[-90deg]">
3718                <?xml version="1.0" encoding="UTF-8"?>
3719<svg class="icon icon-carousel-left" version="1.1" viewBox="0 0 700 700" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3720
3721 <g>
3722  <path d="m350 28c-138.98 0-252 113.02-252 252s113.02 252 252 252 252-113.02 252-252-113.02-252-252-252zm0 33.602c120.82 0 218.4 97.582 218.4 218.4s-97.582 218.4-218.4 218.4-218.4-97.582-218.4-218.4 97.582-218.4 218.4-218.4zm54.773 78.223c-3.8008 0.32031-7.3789 1.9258-10.148 4.5508l-134.4 123.2c-3.4414 3.1797-5.3984 7.6523-5.3984 12.34 0 4.6836 1.957 9.1562 5.3984 12.336l134.4 123.2c3.2227 3.2812 7.6523 5.0977 12.254 5.0273 4.5977-0.074218 8.9688-2.0273 12.086-5.4102 3.1172-3.3828 4.7109-7.8945 4.4141-12.488-0.30078-4.5898-2.4727-8.8555-6.0039-11.805l-120.93-110.77 120.93-110.95c3.5-3.1562 5.5117-7.6367 5.5508-12.352 0.035157-4.7109-1.9102-9.2227-5.3633-12.43-3.4492-3.2109-8.0898-4.8242-12.789-4.4453z"/>
3723
3724 </g>
3725</svg>
3726
3727              </div>
3728            </button>
3729            <div id="mobile-accordion-boat" class="mobile-menu__accordion-content accordion-content" aria-hidden="true" js-accordion-content>
3730              
3731                <div class="mobile-menu__child-item p-16 pl-32">
3732                  <a class="mobile-menu__child-link" href="/collections/boat-parts"> Boat Parts</a>
3733                </div>
3734              
3735                <div class="mobile-menu__child-item p-16 pl-32">
3736                  <a class="mobile-menu__child-link" href="/collections/propellers"> WakeMAKERS PropFinder Tool</a>
3737                </div>
3738              
3739                <div class="mobile-menu__child-item p-16 pl-32">
3740                  <a class="mobile-menu__child-link" href="/collections/wakesurf-systems"> Wake Shapers & Wakesurf Systems</a>
3741                </div>
3742              
3743                <div class="mobile-menu__child-item p-16 pl-32">
3744                  <a class="mobile-menu__child-link" href="/collections/detailing-cleaning"> Cleaning & Detailing</a>
3745                </div>
3746              
3747                <div class="mobile-menu__child-item p-16 pl-32">
3748                  <a class="mobile-menu__child-link" href="/collections/docking-mooring"> Docking & Mooring</a>
3749                </div>
3750              
3751                <div class="mobile-menu__child-item p-16 pl-32">
3752                  <a class="mobile-menu__child-link" href="/collections/tower-mirrors"> Mirrors & Accessories</a>
3753                </div>
3754              
3755                <div class="mobile-menu__child-item p-16 pl-32">
3756                  <a class="mobile-menu__child-link" href="/collections/propellers"> Propellers</a>
3757                </div>
3758              
3759                <div class="mobile-menu__child-item p-16 pl-32">
3760                  <a class="mobile-menu__child-link" href="/pages/marine-stereo-systems"> Marine Audio »</a>
3761                </div>
3762              
3763                <div class="mobile-menu__child-item p-16 pl-32">
3764                  <a class="mobile-menu__child-link" href="/collections/wakeboard-towers"> Towers & Accessories</a>
3765                </div>
3766              
3767                <div class="mobile-menu__child-item p-16 pl-32">
3768                  <a class="mobile-menu__child-link" href="/collections/trailer-accessories"> Trailer Accessories</a>
3769                </div>
3770              
3771                <div class="mobile-menu__child-item p-16 pl-32">
3772                  <a class="mobile-menu__child-link" href="/collections/towing-protection"> Towing Protection</a>
3773                </div>
3774              
3775                <div class="mobile-menu__child-item p-16 pl-32">
3776                  <a class="mobile-menu__child-link" href="/collections/safety"> Safety Accessories</a>
3777                </div>
3778              
3779                <div class="mobile-menu__child-item p-16 pl-32">
3780                  <a class="mobile-menu__child-link" href="/collections/inflatables"> Inflatables & Accessories</a>
3781                </div>
3782              
3783                <div class="mobile-menu__child-item p-16 pl-32">
3784                  <a class="mobile-menu__child-link" href="/collections/solid-ballast"> Lead Ballast</a>
3785                </div>
3786              
3787                <div class="mobile-menu__child-item p-16 pl-32">
3788                  <a class="mobile-menu__child-link" href="/pages/wakeboard-boat"> Shop all Boat »</a>
3789                </div>
3790              
3791            </div>
3792          </div>
3793      
3794          <div class="mobile-menu__accordion accordion-item" js-accordion-item>
3795            <button class="mobile-menu__accordion-header mobile-accordion-header p-16 text-20 text-gray-dark flex flex-row justify-between items-center w-full" aria-expanded="false" aria-controls="mobile-accordion-gear" js-accordion-header>
3796              <span>Gear</span>
3797              <div class="accordion-icon w-24 text-gray-dark rotate-[-90deg]">
3798                <?xml version="1.0" encoding="UTF-8"?>
3799<svg class="icon icon-carousel-left" version="1.1" viewBox="0 0 700 700" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3800
3801 <g>
3802  <path d="m350 28c-138.98 0-252 113.02-252 252s113.02 252 252 252 252-113.02 252-252-113.02-252-252-252zm0 33.602c120.82 0 218.4 97.582 218.4 218.4s-97.582 218.4-218.4 218.4-218.4-97.582-218.4-218.4 97.582-218.4 218.4-218.4zm54.773 78.223c-3.8008 0.32031-7.3789 1.9258-10.148 4.5508l-134.4 123.2c-3.4414 3.1797-5.3984 7.6523-5.3984 12.34 0 4.6836 1.957 9.1562 5.3984 12.336l134.4 123.2c3.2227 3.2812 7.6523 5.0977 12.254 5.0273 4.5977-0.074218 8.9688-2.0273 12.086-5.4102 3.1172-3.3828 4.7109-7.8945 4.4141-12.488-0.30078-4.5898-2.4727-8.8555-6.0039-11.805l-120.93-110.77 120.93-110.95c3.5-3.1562 5.5117-7.6367 5.5508-12.352 0.035157-4.7109-1.9102-9.2227-5.3633-12.43-3.4492-3.2109-8.0898-4.8242-12.789-4.4453z"/>
3803
3804 </g>
3805</svg>
3806
3807              </div>
3808            </button>
3809            <div id="mobile-accordion-gear" class="mobile-menu__accordion-content accordion-content" aria-hidden="true" js-accordion-content>
3810              
3811                <div class="mobile-menu__child-item p-16 pl-32">
3812                  <a class="mobile-menu__child-link" href="/collections/drysuits-wetsuits"> Drysuits, Wetsuits & Neo Accessories</a>
3813                </div>
3814              
3815                <div class="mobile-menu__child-item p-16 pl-32">
3816                  <a class="mobile-menu__child-link" href="/collections/inflatables"> Inflatable Maps & Pumps</a>
3817                </div>
3818              
3819                <div class="mobile-menu__child-item p-16 pl-32">
3820                  <a class="mobile-menu__child-link" href="/collections/tubes"> Tubes & Accessories</a>
3821                </div>
3822              
3823                <div class="mobile-menu__child-item p-16 pl-32">
3824                  <a class="mobile-menu__child-link" href="/collections/wakeboard-vests"> Life Jackets & Comp Vests</a>
3825                </div>
3826              
3827                <div class="mobile-menu__child-item p-16 pl-32">
3828                  <a class="mobile-menu__child-link" href="/collections/apparel"> Boating Apparel & Accessories</a>
3829                </div>
3830              
3831                <div class="mobile-menu__child-item p-16 pl-32">
3832                  <a class="mobile-menu__child-link" href="/collections/water-ski-packages"> Water Ski Packages</a>
3833                </div>
3834              
3835                <div class="mobile-menu__child-item p-16 pl-32">
3836                  <a class="mobile-menu__child-link" href="/collections/water-ski"> Blank Slalom Water Skis</a>
3837                </div>
3838              
3839                <div class="mobile-menu__child-item p-16 pl-32">
3840                  <a class="mobile-menu__child-link" href="/collections/water-ski-bindings"> Water Ski Bindings</a>
3841                </div>
3842              
3843                <div class="mobile-menu__child-item p-16 pl-32">
3844                  <a class="mobile-menu__child-link" href="/collections/water-ski-ropes"> Water Ski Ropes & Handles</a>
3845                </div>
3846              
3847                <div class="mobile-menu__child-item p-16 pl-32">
3848                  <a class="mobile-menu__child-link" href="/collections/water-ski-gloves"> Water Ski Gloves</a>
3849                </div>
3850              
3851                <div class="mobile-menu__child-item p-16 pl-32">
3852                  <a class="mobile-menu__child-link" href="/collections/water-ski-accessories"> Water Ski Accessories</a>
3853                </div>
3854              
3855                <div class="mobile-menu__child-item p-16 pl-32">
3856                  <a class="mobile-menu__child-link" href="/collections/kneeboards"> Kneeboards</a>
3857                </div>
3858              
3859                <div class="mobile-menu__child-item p-16 pl-32">
3860                  <a class="mobile-menu__child-link" href="/pages/gear"> Shop all Gear»</a>
3861                </div>
3862              
3863            </div>
3864          </div>
3865      
3866          <div class="mobile-menu__accordion accordion-item" js-accordion-item>
3867            <button class="mobile-menu__accordion-header mobile-accordion-header p-16 text-20 text-gray-dark flex flex-row justify-between items-center w-full" aria-expanded="false" aria-controls="mobile-accordion-outlet" js-accordion-header>
3868              <span>Outlet</span>
3869              <div class="accordion-icon w-24 text-gray-dark rotate-[-90deg]">
3870                <?xml version="1.0" encoding="UTF-8"?>
3871<svg class="icon icon-carousel-left" version="1.1" viewBox="0 0 700 700" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3872
3873 <g>
3874  <path d="m350 28c-138.98 0-252 113.02-252 252s113.02 252 252 252 252-113.02 252-252-113.02-252-252-252zm0 33.602c120.82 0 218.4 97.582 218.4 218.4s-97.582 218.4-218.4 218.4-218.4-97.582-218.4-218.4 97.582-218.4 218.4-218.4zm54.773 78.223c-3.8008 0.32031-7.3789 1.9258-10.148 4.5508l-134.4 123.2c-3.4414 3.1797-5.3984 7.6523-5.3984 12.34 0 4.6836 1.957 9.1562 5.3984 12.336l134.4 123.2c3.2227 3.2812 7.6523 5.0977 12.254 5.0273 4.5977-0.074218 8.9688-2.0273 12.086-5.4102 3.1172-3.3828 4.7109-7.8945 4.4141-12.488-0.30078-4.5898-2.4727-8.8555-6.0039-11.805l-120.93-110.77 120.93-110.95c3.5-3.1562 5.5117-7.6367 5.5508-12.352 0.035157-4.7109-1.9102-9.2227-5.3633-12.43-3.4492-3.2109-8.0898-4.8242-12.789-4.4453z"/>
3875
3876 </g>
3877</svg>
3878
3879              </div>
3880            </button>
3881            <div id="mobile-accordion-outlet" class="mobile-menu__accordion-content accordion-content" aria-hidden="true" js-accordion-content>
3882              
3883                <div class="mobile-menu__child-item p-16 pl-32">
3884                  <a class="mobile-menu__child-link" href="/collections/clearance-sale"> Clearance Sale</a>
3885                </div>
3886              
3887                <div class="mobile-menu__child-item p-16 pl-32">
3888                  <a class="mobile-menu__child-link" href="/collections/on-sale-wakesurf-boards"> Surfboards</a>
3889                </div>
3890              
3891                <div class="mobile-menu__child-item p-16 pl-32">
3892                  <a class="mobile-menu__child-link" href="/collections/on-sale-wakeboard-packages"> Wakeboard Packages</a>
3893                </div>
3894              
3895                <div class="mobile-menu__child-item p-16 pl-32">
3896                  <a class="mobile-menu__child-link" href="/collections/on-sale-vests"> Life Jackets & Comp Vests</a>
3897                </div>
3898              
3899                <div class="mobile-menu__child-item p-16 pl-32">
3900                  <a class="mobile-menu__child-link" href="/collections/on-sale-tubes"> Tubes & Towables</a>
3901                </div>
3902              
3903                <div class="mobile-menu__child-item p-16 pl-32">
3904                  <a class="mobile-menu__child-link" href="/collections/on-sale-ballast-pumps"> Ballast Pumps</a>
3905                </div>
3906              
3907                <div class="mobile-menu__child-item p-16 pl-32">
3908                  <a class="mobile-menu__child-link" href="/pages/outlet"> Shop all Outlet »</a>
3909                </div>
3910              
3911            </div>
3912          </div>
3913      
3914          <div class="mobile-menu__accordion accordion-item" js-accordion-item>
3915            <button class="mobile-menu__accordion-header mobile-accordion-header p-16 text-20 text-gray-dark flex flex-row justify-between items-center w-full" aria-expanded="false" aria-controls="mobile-accordion-resources" js-accordion-header>
3916              <span>Resources</span>
3917              <div class="accordion-icon w-24 text-gray-dark rotate-[-90deg]">
3918                <?xml version="1.0" encoding="UTF-8"?>
3919<svg class="icon icon-carousel-left" version="1.1" viewBox="0 0 700 700" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3920
3921 <g>
3922  <path d="m350 28c-138.98 0-252 113.02-252 252s113.02 252 252 252 252-113.02 252-252-113.02-252-252-252zm0 33.602c120.82 0 218.4 97.582 218.4 218.4s-97.582 218.4-218.4 218.4-218.4-97.582-218.4-218.4 97.582-218.4 218.4-218.4zm54.773 78.223c-3.8008 0.32031-7.3789 1.9258-10.148 4.5508l-134.4 123.2c-3.4414 3.1797-5.3984 7.6523-5.3984 12.34 0 4.6836 1.957 9.1562 5.3984 12.336l134.4 123.2c3.2227 3.2812 7.6523 5.0977 12.254 5.0273 4.5977-0.074218 8.9688-2.0273 12.086-5.4102 3.1172-3.3828 4.7109-7.8945 4.4141-12.488-0.30078-4.5898-2.4727-8.8555-6.0039-11.805l-120.93-110.77 120.93-110.95c3.5-3.1562 5.5117-7.6367 5.5508-12.352 0.035157-4.7109-1.9102-9.2227-5.3633-12.43-3.4492-3.2109-8.0898-4.8242-12.789-4.4453z"/>
3923
3924 </g>
3925</svg>
3926
3927              </div>
3928            </button>
3929            <div id="mobile-accordion-resources" class="mobile-menu__accordion-content accordion-content" aria-hidden="true" js-accordion-content>
3930              
3931            </div>
3932          </div>
3933      
3934      </s-accordion>
3935   </div>
3936
3937   <div class="mobile-drawer__footer bg-white fixed bottom-0 p-16 w-full flex justify-around items-center">
3938     <a href="tel:8883386085" class="inline-block btn btn--green">(888) 338-6085 </a>
3939
3940     <a href="/account" class="text-16 font-700 text-blue">Sign in</a>
3941   </div>
3942</s-drawer>
3943
3944      <s-drawer id="CartDrawer" class="z-[6]" position="right" open="[js-cart-drawer-open]" close="[js-cart-drawer-close]" js-cart-drawer>
3945  <s-ajaxcart class="ajaxcart hidden relative h-full" data-shipping-threshold="false" data-gift="">
3946    <div id="AjaxCartTemplate">
3947      <header class="ajaxcart__header flex flex-wrap justify-between p-16" ref="cartHeader">
3948        <h2>Your Cart</h2>
3949        <button class="ajaxcart__close w-[20px] text-[0px] focus:text-blue desktop:hover:text-blue" aria-label="Close" title="Close" js-cart-drawer-close><svg class="icon icon--close" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128">
3950  
3951  <path d="M75.4,64l50.24-50.24a8.06,8.06,0,1,0-11.4-11.4L64,52.6,13.76,2.36a8.06,8.06,0,0,0-11.4,11.4h0L52.6,64,2.36,114.24a8.06,8.06,0,0,0,11.4,11.4h0L64,75.4l50.24,50.24a8.06,8.06,0,0,0,11.4-11.4Z" />
3952</svg></button>
3953        <shipping-threshold 
3954          v-if="shippingThreshold" 
3955          class="w-full" 
3956          :cart="cart"
3957        />
3958      </header>
3959  
3960      <form v-if="cart && cart.items.length" class="ajaxcart__content overflow-y-auto p-16" :style="{ height: cartHe
3960ight }" action="/cart" method="post" novalidate>
3961        <main :class="['ajaxcart__main', 'relative', loading.cart ? 'opacity-50' : '']">
3962          <p v-if="error" class="ajaxcart__error sticky top-0 w-full">
3963            ${ error }
3964            <button @click.prevent="this.error = false">X</button>
3965          </p>
3966          <ul v-if="cart.items.length" class="ajaxcart__products grid grid-cols-1 gap-24">
3967            <line-item
3968              v-for="(item, idx) in cart.items" 
3969              :item="item" 
3970              :line="idx + 1" 
3971              :loading="loading.item === idx"
3972              :key="item.key"
3973              @remove-item="removeItem"
3974              @update-item-quantity="updateItemQuantity"
3975            />
3976          </ul>
3977
3978          <upsell-products 
3979            :cart="cart"
3980            :handles-in-cart="handlesInCart"
3981            @add-to-cart="addToCart"
3982          />
3983
3984        </main><!--.ajaxcart__main -->
3985  
3986        <footer class="ajaxcart__footer absolute left-0 bottom-0 w-full bg-white p-16" ref="cartFooter">
3987          <div class="ajaxcart__subtotal">
3988            <div class="ajaxcart__subtotal-row flex justify-between mb-16">
3989              <p class="ajaxcart__subtotal-title">Subtotal</p>
3990              <p class="ajaxcart__subtotal-price">${ formatMoney(cart.total_price) }</p>
3991            </div><!--.ajaxcart__subtotal-row -->
3992          </div><!-- .ajaxcart__subtotal -->
3993          <button type="submit" class="ajaxcart__checkout btn btn--blue w-full mb-16" name="checkout">
3994            Checkout
3995          </button>
3996          <p class="ajaxcart__disclaimer text-center text-14">Taxes and shipping calculated at checkout</p>
3997        </footer>
3998      </form><!-- .ajaxcart__content -->
3999      <p v-else-if="cart" class="ajaxcart__empty px-16">Your cart is empty</p>
4000      <div v-else class="ajaxcart__loading-skeleton">
4001        <ul class="ajaxcart__skeleton-items">
4002          <skeleton-item v-for="i in 3"></skeleton-item>
4003        </ul>
4004        <footer class="ajaxcart__skeleton-footer w-full fixed bottom-0 p-16">
4005          <div class="flex justify-between mb-16">
4006            <div class="h-12 w-64 opacity-5 bg-black animate-pulse">&nbsp;</div>
4007            <div class="h-12 w-32 opacity-5 bg-black animate-pulse">&nbsp;</div>
4008          </div>
4009          <div class="w-full h-32 opacity-5 mb-8 bg-black animate-pulse">&nbsp</div>
4010          <div class=" w-2/3 mx-auto h-12 opacity-5 bg-black animate-pulse">&nbsp</div>
4011        </footer>
4012      </div>
4013    </div><!-- #AjaxCart -->
4014  </s-ajaxcart>
4015</s-drawer>
4015<script id="AjaxCartLineItem" type="text/template">
4016  <li class="line-item" :class="[ loading ? 'opacity-50' : '']">
4017    <div class="line-item__information grid grid-cols-[135px,1fr] gap-16">
4018      <a :href="item.url" class="line-item__image-wrapper">
4019        <img :src="item.featured_image.url" :alt="item.title" class="line-item__image">
4020      </a>
4021      <div class="line-item__detail">
4022        <div class="grid grid-cols-[1fr,14px] gap-12">
4023          <a :href="item.url" class="flex flex-col">
4024            <h2 class="line-item__title font-600 leading-none">${ item.product_title }</h2>
4025            <div class="mt-16" v-if="item.properties && item.properties._customfit">
4026              <p v-if="dimensions['LENGTH']" class="line-item__dimension">LENGTH: <span class="capitalize">${ dimensions['LENGTH'] }</span></p>
4027              <p v-if="dimensions['WIDTH']" class="line-item__dimension">WIDTH: <span class="capitalize">${ dimensions['WIDTH'] }</span></p>
4028              <p v-if="dimensions['HEIGHT']" class="line-item__dimension">HEIGHT: <span class="capitalize">${ dimensions['HEIGHT'] }</span></p>
4029              <p v-if="dimensions['NUMBER OF PORTS']" class="line-item__dimension">PORTS: <span class="capitalize">${ dimensions['NUMBER OF PORTS'] }</span></p>
4030              <p v-if="dimensions['ARM LENGTH']" class="line-item__dimension">ARM LENGTH: <span class="capitalize">${ dimensions['ARM LENGTH'] }</span></p>
4031              <p v-if="dimensions['ARM HEIGHT']" class="line-item__dimension">ARM HEIGHT: <span class="capitalize">${ dimensions['ARM HEIGHT'] }</span></p>
4032
4033            </div>
4034            <span v-else-if="item.variant_title || !isCustomFit" class="line-item__variant text-14 mt-4">${ item.variant_title }</span>
4035          </a>
4036          <button class="line-item__remove block self-start text-[0px] focus:text-blue desktop:hover:text-blue" @click.prevent="$emit('removeItem', line)" aria-label="Remove Item" title="Remove Item"><svg class="icon icon--close" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128">
4037  
4038  <path d="M75.4,64l50.24-50.24a8.06,8.06,0,1,0-11.4-11.4L64,52.6,13.76,2.36a8.06,8.06,0,0,0-11.4,11.4h0L52.6,64,2.36,114.24a8.06,8.06,0,0,0,11.4,11.4h0L64,75.4l50.24,50.24a8.06,8.06,0,0,0,11.4-11.4Z" />
4039</svg></button>
4040        </div>
4041        
4042        <div class="line-item__pricing mt-8">
4043          <div class="line-item__price">
4044            <div v-if="item.line_price !== item.original_line_price">
4045              <span class="font-600 text-orange">${ formatMoney(item.line_price) }</span>
4046              <s class="ml-4">${ formatMoney(item.original_line_price) }</s>
4047            </div>
4048            <span v-else class="font-600 text-blue">${ formatMoney(item.line_price) }</span>
4049          </div><!-- .line-item__price-->
4050          <div v-if="item.line_price !== item.original_line_price" class="line-item__discounts">
4051            <span v-for="discount in item.discounts" class="line-item__discount">
4052              ${ discount.title } - ${ formatMoney(discount.amount) }
4053            </span>
4054          </div><!-- .line-item__discounts -->
4055        </div><!-- .line-item__pricing -->
4056        <div class="line-item__qty-selector flex items-center mt-8">
4057          <button  class="ajaxcart__qty-minus btn btn--blue px-8 py-0" @click.prevent="$emit('updateItemQuantity', { quantity: item.quantity - 1, line })">&minus;</button>
4058          <input class="line-item__qty-selector-input text-center w-[44px]" type="text" :value="item.quantity" @change="$emit('updateItemQuantity', { quantity: $event.target.value, line })">
4059          <button class="ajaxcart__qty-plus btn btn--blue px-8 py-0" @click.prevent="$emit('updateItemQuantity', { quantity: item.quantity + 1, line})">&plus;</button>
4060        </div><!-- .line-item__qty-selector-->
4061      </div><!-- .line-item__detail-->
4062    </div><!-- .line-item__information -->
4063  </li><!-- .line-item -->
4064</script>
4064<script id="AjaxCartShippingThreshold" 
4065  type="text/template" 
4066  data-threshold="$99" 
4067  >
4068  <div v-if="cart && cart.total_price > 0" class="shipping-threshold">
4069    <h3 class="shipping-threshold__title">
4070      <span v-if="unlocked">Congratulations! You got free shipping</span>
4071      <span v-else>You're ${formatMoney(amountForFreeShipping)} from free shipping!</span>
4072    </h3> 
4073    <progress 
4074      v-if="!unlocked" 
4075      class="shipping-threshold__bar w-full"
4076      max="100"
4077      :value="progress">
4078    </progress>
4079  </div>  
4080</script>
4080<script id="AjaxCartUpsell" type="text/template">
4081  <div v-if="cart && cart.items.length && products.length" class="upsell">
4082    <h3 class="upsell__title">You May Also Like:</h3>
4083      <div v-if="fetching">
4084        <skeleton-item></skeleton-item>
4085      </div>
4086      <ul v-else-if="products" class="upsell__products" js-upsell-slider>
4087        <li v-for="product in products" :key="product.id" class="upsell__product w-full">
4088          <upsell-product 
4089            :product="product"
4090          ></upsell-product>
4091        </li><!-- .upsell__product -->
4092      </ul><!-- .upsell__products-->
4093      <ul v-if="products.length > 1" class="upsell__slider-dots flex justify-center">
4094        <li v-for="(product, idx) in products">
4095          <button 
4096            class="upsell__slider-trigger w-16 h-16 rounded-full" 
4097            :class="[currentSlide === idx ? 'bg-black' : 'bg-black opacity-40']"
4098            :aria-label="`Go to slide ${idx + 1}`"
4099            @click.prevent="changeSlide(idx)"></button>
4100        </li>
4101      </ul>
4102  </div><!-- .upsell -->
4103</script>
4103<script id="AjaxCartUpsellProduct" type="text/template">
4104  <div v-if="product && product.available" class="upsell-product">
4105    <a :href="product.url" class="upsell-product__image">
4106      <img :src="product.featured_image" :alt="product.title">
4107    </a>
4108    <div class="upsell-product__info">
4109      <h3 class="upsell-product__title"><a :href="product.url">${ product.title }</a></h3>
4110      <p class="upsell-product__price">${ formatMoney(selectedVariant.price) }</p>
4111      <div v-if="product.variants.length > 1" class="upsell-product__variants">
4112        <div class="upsell-product__swatches">
4113          <div v-for="option in product.options" class="upsell-product__swatch">
4114            <h3 class="upsell-product__swatch-option">${ option.name }</h3>
4115            <div v-for="value in option.values" class="upsell-product__swatch-group">
4116              <label for="`ajaxcart-${product.id}-${value}`">${ value }</label>
4117              <input 
4118                v-model="options[option.position]"  
4119                :id="`ajaxcart-${product.id}-${option}`"
4120                type="radio" :name="`${option.name}-selector`"
4121                @change="onOptionChange(option)"
4122                :value="value"
4123              />
4124            </div><!-- .upsell-product__swatch-group-->
4125            <!-- <select 
4126              v-model="options[option.position]" 
4127              :name="`${option.name}-selector`" 
4128              :id="`ajaxcart-${product.id}-${option.name}`"
4129              @change="onOptionChange(option)">
4130              <option 
4131                v-for="value in option.values" 
4132                :value="value"
4133                >
4134                ${ value }
4135              </option>
4136            </select> -->
4137          </div><!-- .upsell-product__swatch-->
4138        </div><!-- .upsell-product__swatches-->
4139      </div><!-- .upsell-product__variants -->
4140      <button class='upsell-product__atc' :disabled="!selectedVariant.available" @click.prevent="addToCart">
4141        ${ selectedVariant.available ? 'Add To Cart' : 'Sold Out'}
4142      </button>
4143    </div>
4144  </div>
4145</script>
4145<script id="AjaxCartSkeletonItem" type="text/template">
4146  <div class="skeleton-item flex p-16">
4147    <div class="skeleton-item__image block w-72 h-64 mr-16 opacity-5 bg-black animate-pulse">&nbsp;</div>
4148    <div class="skeleton-item__info flex-grow">
4149      <div class="skeleton-item__title block w-full h-16 mb-8 opacity-5 bg-black animate-pulse">&nbsp;</div>
4150      <div class="skeleton-item__subtitle block w-64 h-12 mb-8 opacity-5 bg-black animate-pulse">&nbsp;</div>
4151      <div class="skeleton-item__price block w-32 h-12 opacity-5 bg-black animate-pulse">&nbsp;</div>
4152    </div>
4153  </div>
4154</script>
4154<script>
4155  window.theme = window.theme || {}
4156  theme.upsellTags = [
4157    
4158      
4159      
4160       
4161      
4162      
4163       
4164      
4165      
4166       
4167      
4168      
4169       
4170      
4171      
4172       
4173      
4174      
4175       
4176  ]
4177</script>
4177<script id="AjaxCartUpsellData" type="application/json" js-upsell-data>
4178  [
4179    
4180    
4181    
4182    
4183      
4184      
4185      
4186      
4187      
4188
4189      
4190        {
4191          "tag": null,
4192          "product": null
4193        },
4194      
4195
4196    
4197      
4198      
4199      
4200      
4201      
4202
4203      
4204        {
4205          "tag": null,
4206          "product": null
4207        },
4208      
4209
4210    
4211      
4212      
4213      
4214      
4215      
4216
4217      
4218        {
4219          "tag": null,
4220          "product": null
4221        },
4222      
4223
4224    
4225      
4226      
4227      
4228      
4229      
4230
4231      
4232        {
4233          "tag": null,
4234          "product": null
4235        },
4236      
4237
4238    
4239      
4240      
4241      
4242      
4243      
4244
4245      
4246        {
4247          "tag": null,
4248          "product": null
4249        },
4250      
4251
4252    
4253      
4254      
4255      
4256      
4257      
4258
4259      
4260        {
4261          "tag": null,
4262          "product": null
4263        }
4264      
4265
4266    
4267  ]
4268</script>
4268
4269  
4270      <main id="MainContent" class="main main--product drawer-background modal-background grid min-h-header tabletp:min-h-header-footer" role="main">
4271        <section id="shopify-section-template--21893123571877__17405118861d234a88" class="shopify-section spaced-section"><div class=""></div>
4272
4273
4274</section><section id="shopify-section-template--21893123571877__main" class="shopify-section product-section">
4274<script>
4275  const allVariants = [
4276    {
4277      "id": 41675600920741,
4278      "title": "30\"L x 20\"W x 20\"H - 490lbs",
4279      "available": true,
4280      "price": "189.99"
4281    },
4282    {
4283      "id": 41675600953509,
4284      "title": "45\"L x 25\"W x 20\"H - 910lbs",
4285      "available": true,
4286      "price": "249.99"
4287    },
4288    {
4289      "id": 41675600986277,
4290      "title": "45\"L x 25\"W x 25\"H - 1,140lbs",
4291      "available": true,
4292      "price": "259.99"
4293    },
4294    {
4295      "id": 41675601019045,
4296      "title": "45\"L x 20\"W x 25\"H - 910lbs",
4297      "available": true,
4298      "price": "249.99"
4299    },
4300    {
4301      "id": 41675601051813,
4302      "title": "45\"L x 20\"W x 20\"H - 720lbs",
4303      "available": true,
4304      "price": "229.99"
4305    },
4306    {
4307      "id": 41675601084581,
4308      "title": "40\"L x 25\"W x 15\"H - 610lbs",
4309      "available": true,
4310      "price": "199.99"
4311    },
4312    {
4313      "id": 41675601117349,
4314      "title": "40\"L x 20\"W x 20\"H - 640lbs",
4315      "available": true,
4316      "price": "199.99"
4317    },
4318    {
4319      "id": 41675601150117,
4320      "title": "40\"L x 25\"W x 20\"H - 820lbs",
4321      "available": true,
4322      "price": "239.99"
4323    },
4324    {
4325      "id": 41675601182885,
4326      "title": "35\"L x 25\"W x 15\"H - 540lbs",
4327      "available": true,
4328      "price": "189.99"
4329    },
4330    {
4331      "id": 41675601215653,
4332      "title": "50\"L x 25\"W x 15\"H - 740lbs",
4333      "available": true,
4334      "price": "229.99"
4335    },
4336    {
4337      "id": 41675601248421,
4338      "title": "50\"L x 25\"W x 25\"H - 1,280lbs",
4339      "available": true,
4340      "price": "249.99"
4341    },
4342    {
4343      "id": 41675601281189,
4344      "title": "30\"L x 25\"W x 15\"H - 460lbs",
4345      "available": true,
4346      "price": "179.99"
4347    },
4348    {
4349      "id": 41675601313957,
4350      "title": "35\"L x 20\"W x 15\"H - 430lbs",
4351      "available": true,
4352      "price": "169.99"
4353    },
4354    {
4355      "id": 41675601346725,
4356      "title": "30\"L x 25\"W x 25\"H - 765lbs",
4357      "available": true,
4358      "price": "229.99"
4359    },
4360    {
4361      "id": 41675601379493,
4362      "title": "45\"L x 20\"W x 15\"H - 550lbs",
4363      "available": true,
4364      "price": "189.99"
4365    },
4366    {
4367      "id": 41675601412261,
4368      "title": "35\"L x 25\"W x 20\"H - 710lbs",
4369      "available": true,
4370      "price": "229.99"
4371    },
4372    {
4373      "id": 41675601445029,
4374      "title": "30\"L x 25\"W x 20\"H - 610lbs",
4375      "available": true,
4376      "price": "199.99"
4377    },
4378    {
4379      "id": 41675601477797,
4380      "title": "50\"L x 25\"W x 20\"H - 1,020lbs",
4381      "available": true,
4382      "price": "259.99"
4383    },
4384    {
4385      "id": 41675601510565,
4386      "title": "35\"L x 25\"W x 25\"H - 890lbs",
4387      "available": true,
4388      "price": "249.99"
4389    }
4390];
4391
4392  document.addEventListener("DOMContentLoaded", (event) => {
4393    // console.log("DOM fully loaded and parsed" );
4394    manageAdd2CartBtn();
4395  });
4396
4397  function manageAdd2CartBtn() {
4398    try {
4399      var selEl__1 = document.querySelector( `product-options .product-option[option="1"] .product-option__select` );
4400      var selEl__2 = document.querySelector( `product-options .product-option[option="2"] .product-option__select` );
4401      var selEl__3 = document.querySelector( `product-options .product-option[option="3"] .product-option__select` );
4402      if ( selEl__3 ) {
4403        var selEl__3_index = document.querySelector( `product-options .product-option[option="3"] .product-option__select option[this-option-selected]` ).getAttribute( `i` ) * 1;
4404        selEl__3.options[selEl__3_index].selected = true;
4405        if ("createEvent" in document) {
4406          var evt = document.createEvent("HTMLEvents");
4407          evt.initEvent("change", false, true);
4408          selEl__3.dispatchEvent( evt );
4409        } else {
4410          selEl__3.fireEvent("onchange");
4411        }
4412        console.log ( 'chaaaaaaaaaaa 3 options' );
4413      }
4414      if ( selEl__2 ) {
4415        var selEl__2_index = document.querySelector( `product-options .product-option[option="2"] .product-option__select option[this-option-selected]` ).getAttribute( `i` ) * 1;
4416        selEl__2.options[selEl__2_index].selected = true;
4417        if ("createEvent" in document) {
4418          var evt = document.createEvent("HTMLEvents");
4419          evt.initEvent("change", false, true);
4420          selEl__2.dispatchEvent( evt );
4421        } else {
4422          selEl__2.fireEvent("onchange");
4423        }
4424        console.log ( 'chaaaaaaaaaaa 2 options' );
4425      }
4426      if ( selEl__1 ) {
4427        var selEl__1_index = document.querySelector( `product-options .product-option[option="1"] .product-option__select option[this-option-selected]` ).getAttribute( `i` ) * 1;
4428        selEl__1.options[selEl__1_index].selected = true;
4429        if ("createEvent" in document) {
4430          var evt = document.createEvent("HTMLEvents");
4431          evt.initEvent("change", false, true);
4432          selEl__1.dispatchEvent( evt );
4433        } else {
4434          selEl__1.fireEvent("onchange");
4435        }
4436        console.log ( 'chaaaaaaaaaaa 1 options' );
4437      }
4438    } catch ( err ) {
4439      console.log( `ERROR manageAdd2CartBtn()`, err.message );
4440    }
4441  }
4442
4443  // document.addEventListener('variant:change', function(evt) {
4444  //   console.log(evt.detail.variant);
4445  // });
4446</script>
4446
4447
4448
4449
4450
4451
4452
4453
4454<main-product role="section" class="product block" js-product data-product="wakemakers-rear-lbs-ballast-bag">
4455  <div class="product-container bg-[#eff1f3]">
4456    <div class="product__layout max-w-[1140px] mx-auto desktop:grid desktop:grid-cols-[auto,388px] desktop:px-16 desktop:items-start">
4457      <div class="product__images-container bg-white w-full h-full p-16 desktop:p-0 max-w-[100vw]">
4458        
4459        <div class="desktop:p-32">
4460          <div class="product__vendor-container flex justify-center items-center desktop:justify-start">
4461            <h2 class="product__vendor text-[18px] font-700 uppercase">
4462              <a href="/pages/wakemakers">WakeMAKERS</a>
4463            </h2>
4464            <div class="product__badges inline-flex gap-x-16 gap-y-4 ml-12">
4465              
4466
4467
4468
4469
4470
4471
4472
4473
4474
4475
4476
4477
4478
4479
4480
4481
4482
4483    <span class="product-card__tag product-card__tag--exclusive bg-blue">Exclusive</span>
4484
4485<span class="contents" js-deal-badge>
4486</span><template data-variant-id="41675600920741" js-variant-deal-badge>
4487</template><template data-variant-id="41675600953509" js-variant-deal-badge>
4488</template><template data-variant-id="41675600986277" js-variant-deal-badge>
4489</template><template data-variant-id="41675601019045" js-variant-deal-badge>
4490</template><template data-variant-id="41675601051813" js-variant-deal-badge>
4491</template><template data-variant-id="41675601084581" js-variant-deal-badge>
4492</template><template data-variant-id="41675601117349" js-variant-deal-badge>
4493</template><template data-variant-id="41675601150117" js-variant-deal-badge>
4494</template><template data-variant-id="41675601182885" js-variant-deal-badge>
4495</template><template data-variant-id="41675601215653" js-variant-deal-badge>
4496</template><template data-variant-id="41675601248421" js-variant-deal-badge>
4497</template><template data-variant-id="41675601281189" js-variant-deal-badge>
4498</template><template data-variant-id="41675601313957" js-variant-deal-badge>
4499</template><template data-variant-id="41675601346725" js-variant-deal-badge>
4500</template><template data-variant-id="41675601379493" js-variant-deal-badge>
4501</template><template data-variant-id="41675601412261" js-variant-deal-badge>
4502</template><template data-variant-id="41675601445029" js-variant-deal-badge>
4503</template><template data-variant-id="41675601477797" js-variant-deal-badge>
4504</template><template data-variant-id="41675601510565" js-variant-deal-badge>
4505</template>
4506            </div>
4507          </div>
4508          <h1 class="product__title text-center text-28 font-500 desktop:mt-12 desktop:text-left">
4509            WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)
4510          </h1>
4511          <div class="reviews-rating flex items-center">
4512<div class="mr-12" data-oke-reviews-product-listing-rating><div data-oke-reviews-version="2.19.0" class="okeReviews okeReviews--theme">
4513<div class="okeReviews-reviewsSummary js-okeReviews-reviewsSummary" data-oke-ga-click-action="Star Rating Summary Click"
4514 data-oke-ga-click-label="WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)" 
4515>
4516<div class="okeReviews-reviewsSummary-starRating">
4517<span class="okeReviews-starRating okeReviews-starRating--small">
4518<span class="okeReviews-a11yText">Rated 4.6 out of 5</span>
4519<span class="okeReviews-starRating-indicator" role="presentation">
4520<span class="okeReviews-starRating-indicator-layer"></span>
4521<span class="okeReviews-starRating-indicator-layer okeReviews-starRating-indicator-layer--foreground" style="width: 92%"></span>
4522</span>
4523</span>
4524</div>
4525<div class="okeReviews-reviewsSummary-ratingCount">
4526<span aria-hidden="true">23 Reviews</span>
4527<span class="okeReviews-a11yText">Based on 23 reviews</span>
4528</div>
4529</div>
4530</div>
4531</div> 
4532<a href="#reviews" class="oke-w-writeReview oke-button"> Write a Review </a>
4533</div>
4534        </div>
4535        <div class="product__images desktop:px-32">
4536          <s-carousel class="flex flex-col-reverse mb-16 desktop:mb-0 desktop:grid desktop:gap-24 desktop:grid-cols-[56px,1fr]">
4537            
4538              <div class="w-full overflow-x-auto">
4539                <ul class="bottom-8 flex justify-start items-center desktop:block" js-carousel-dots>
4540                  
4541                    <li class="mx-8 desktop:mx-0 desktop:mb-16">
4542                      <button
4543                        class="border-none m-0 w-[56px] h-auto hover:opacity-70 focus:opacity-70 selected"
4544                        data-index="0"
4545                      >
4546                        <div class="w-full h-auto" js-product-image>
4547                          
4548
4549
4550
4551
4552<picture class="lazypicture block w-full ">
4553  
4554  <img 
4555    class="w-full "
4556    src="//www.wakemakers.com/cdn/shop/files/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349&width=480
4557"
4558    srcset="//www.wakemakers.com/cdn/shop/files/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349&width=480 480w,
4559    //www.wakemakers.com/cdn/shop/files/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349&width=768 768w,
4560    //www.wakemakers.com/cdn/shop/files/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349&width=1024 1024
4560w,
4561    //www.wakemakers.com/cdn/shop/files/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349&width=1140 1140w,
4562    //www.wakemakers.com/cdn/shop/files/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349&width=1280 1280w,
4563    //www.wakemakers.com/cdn/shop/files/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349&width=1440 1440w,
4564    //www.wakemakers.com/cdn/shop/files/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349 1920w"
4565    sizes="100vw"
4566    loading="lazy"
4567    alt="WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)"
4568    
4569    
4570  style="--ar-mobile: 0.999000999000999;  "
4571 />
4572</picture>
4573                        </div>
4574                      </button>
4575                    </li>
4576                  
4577                    <li class="mx-8 desktop:mx-0 desktop:mb-16">
4578                      <button
4579                        class="border-none m-0 w-[56px] h-auto hover:opacity-70 focus:opacity-70"
4580                        data-index="1"
4581                      >
4582                        <div class="w-full h-auto" js-product-image>
4583                          
4584
4585
4586
4587
4588<picture class="lazypicture block w-full ">
4589  
4590  <img 
4591    class="w-full "
4592    src="//www.wakemakers.com/cdn/shop/files/media_5ae53fe7-bb7a-400e-90fa-f8808321d7f0.jpg?v=1731575349&width=480
4593"
4594    srcset="//www.wakemakers.com/cdn/shop/files/media_5ae53fe7-bb7a-400e-90fa-f8808321d7f0.jpg?v=1731575349&width=480 480w,
4595    //www.wakemakers.com/cdn/shop/files/media_5ae53fe7-bb7a-400e-90fa-f8808321d7f0.jpg?v=1731575349&width=768 768w,
4596    //www.wakemakers.com/cdn/shop/files/media_5ae53fe7-bb7a-400e-90fa-f8808321d7f0.jpg?v=1731575349&width=1024 1024w,
4597    //www.wakemakers.com/cdn/shop/files/media_5ae53fe7-bb7a-400e-90fa-f8808321d7f0.jpg?v=1731575349&width=1140 1140w,
4598    //www.wakemakers.com/cdn/shop/files/media_5ae53fe7-bb7a-400e-90fa-f8808321d7f0.jpg?v=1731575349&width=1280 1280w,
4599    //www.wakemakers.com/cdn/shop/files/media_5ae53fe7-bb7a-400e-90fa-f8808321d7f0.jpg?v=1731575349&width=1440 1440w,
4600    //www.wakemakers.com/cdn/shop/files/media_5ae53fe7-bb7a-400e-90fa-f8808321d7f0.jpg?v=1731575349 1920w"
4601    sizes="100vw"
4602    loading="lazy"
4603    alt="WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)"
4604    
4605    
4606  style="--ar-mobile: 1.0;  "
4607 />
4608</picture>
4609                        </div>
4610                      </button>
4611                    </li>
4612                  
4613                    <li class="mx-8 desktop:mx-0 desktop:mb-16">
4614                      <button
4615                        class="border-none m-0 w-[56px] h-auto hover:opacity-70 focus:opacity-70"
4616                        data-index="2"
4617                      >
4618                        <div class="w-full h-auto" js-product-image>
4619                          
4620
4621
4622
4623
4624<picture class="lazypicture block w-full ">
4625  
4626  <img 
4627    class="w-full "
4628    src="//www.wakemakers.com/cdn/shop/files/media_359cf2c8-823d-426a-a282-8aac94ceb420.jpg?v=1731575349&width=480
4629"
4630    srcset="//www.wakemakers.com/cdn/shop/files/media_359cf2c8-823d-426a-a282-8aac94ceb420.jpg?v=1731575349&width=480 480w,
4631    //www.wakemakers.com/cdn/shop/files/media_359cf2c8-823d-426a-a282-8aac94ceb420.jpg?v=1731575349&width=768 768w,
4632    //www.wakemakers.com/cdn/shop/files/media_359cf2c8-823d-426a-a282-8aac94ceb420.jpg?v=1731575349&width=1024 1024w,
4633    //www.wakemakers.com/cdn/shop/files/media_359cf2c8-823d-426a-a282-8aac94ceb420.jpg?v=1731575349&width=1140 1140w,
4634    //www.wakemakers.com/cdn/shop/files/media_359cf2c8-823d-426a-a282-8aac94ceb420.jpg?v=1731575349&width=1280 1280w,
4635    //www.wakemakers.com/cdn/shop/files/media_359cf2c8-823d-426a-a282-8aac94ceb420.jpg?v=1731575349&width=1440 1440w,
4636    //www.wakemakers.com/cdn/shop/files/media_359cf2c8-823d-426a-a282-8aac94ceb420.jpg?v=1731575349 1920w"
4637    sizes="100vw"
4638    loading="lazy"
4639    alt="WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)"
4640    
4641    
4642  style="--ar-mobile: 1.0;  "
4643 />
4644</picture>
4645                        </div>
4646                      </button>
4647                    </li>
4648                  
4649                    <li class="mx-8 desktop:mx-0 desktop:mb-16">
4650                      <button
4651                        class="border-none m-0 w-[56px] h-auto hover:opacity-70 focus:opacity-70"
4652                        data-index="3"
4653                      >
4654                        <div class="w-full h-auto" js-product-image>
4655                          
4656
4657
4658
4659
4660<picture class="lazypicture block w-full ">
4661  
4662  <img 
4663    class="w-full "
4664    src="//www.wakemakers.com/cdn/shop/files/media_d169f32a-a6fb-45ca-b844-c8ac49c8d783.jpg?v=1731575349&width=480
4665"
4666    srcset="//www.wakemakers.com/cdn/shop/files/media_d169f32a-a6fb-45ca-b844-c8ac49c8d783.jpg?v=1731575349&width=480 480w,
4667    //www.wakemakers.com/cdn/shop/files/media_d169f32a-a6fb-45ca-b844-c8ac49c8d783.jpg?v=1731575349&width=768 768w,
4668    //www.wakemakers.com/cdn/shop/files/media_d169f32a-a6fb-45ca-b844-c8ac49c8d783.jpg?v=1731575349&width=1024 1024
4668w,
4669    //www.wakemakers.com/cdn/shop/files/media_d169f32a-a6fb-45ca-b844-c8ac49c8d783.jpg?v=1731575349&width=1140 1140w,
4670    //www.wakemakers.com/cdn/shop/files/media_d169f32a-a6fb-45ca-b844-c8ac49c8d783.jpg?v=1731575349&width=1280 1280w,
4671    //www.wakemakers.com/cdn/shop/files/media_d169f32a-a6fb-45ca-b844-c8ac49c8d783.jpg?v=1731575349&width=1440 1440w,
4672    //www.wakemakers.com/cdn/shop/files/media_d169f32a-a6fb-45ca-b844-c8ac49c8d783.jpg?v=1731575349 1920w"
4673    sizes="100vw"
4674    loading="lazy"
4675    alt="WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)"
4676    
4677    
4678  style="--ar-mobile: 0.999000999000999;  "
4679 />
4680</picture>
4681                        </div>
4682                      </button>
4683                    </li>
4684                  
4685                </ul>
4686              </div>
4687            
4688            <div
4689              class="relative my-32 desktop:my-0 "
4690              js-carousel
4691            >
4692              
4693                
4694                  <div class="product-images__img w-full" js-carousel-slide>
4695                    <div class="mx-auto tabletp:max-w-[500px]" js-product-image>
4696                      
4697
4698
4699
4700
4701<picture class="lazypicture block w-full ">
4702  
4703  <img 
4704    class="w-full "
4705    src="//www.wakemakers.com/cdn/shop/files/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349&width=480
4706"
4707    srcset="//www.wakemakers.com/cdn/shop/files/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349&width=480 480w,
4708    //www.wakemakers.com/cdn/shop/files/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349&width=768 768w,
4709    //www.wakemakers.com/cdn/shop/files/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349&width=1024 1024w,
4710    //www.wakemakers.com/cdn/shop/files/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349&width=1140 1140w,
4711    //www.wakemakers.com/cdn/shop/files/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349&width=1280 1280w,
4712    //www.wakemakers.com/cdn/shop/files/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349&width=1440 1440w,
4713    //www.wakemakers.com/cdn/shop/files/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349 1920w"
4714    sizes="100vw"
4715    loading="lazy"
4716    alt="WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)"
4717    
4718    
4719  style="--ar-mobile: 0.999000999000999;  "
4720 />
4721</picture>
4722                    </div>
4723                  </div>
4724                
4725                  <div class="product-images__img w-full" js-carousel-slide>
4726                    <div class="mx-auto tabletp:max-w-[500px]" js-product-image>
4727                      
4728
4729
4730
4731
4732<picture class="lazypicture block w-full ">
4733  
4734  <img 
4735    class="w-full "
4736    src="//www.wakemakers.com/cdn/shop/files/media_5ae53fe7-bb7a-400e-90fa-f8808321d7f0.jpg?v=1731575349&width=480
4737"
4738    srcset="//www.wakemakers.com/cdn/shop/files/media_5ae53fe7-bb7a-400e-90fa-f8808321d7f0.jpg?v=1731575349&width=480 480w,
4739    //www.wakemakers.com/cdn/shop/files/media_5ae53fe7-bb7a-400e-90fa-f8808321d7f0.jpg?v=1731575349&width=768 768w,
4740    //www.wakemakers.com/cdn/shop/files/media_5ae53fe7-bb7a-400e-90fa-f8808321d7f0.jpg?v=1731575349&width=1024 1024w,
4741    //www.wakemakers.com/cdn/shop/files/media_5ae53fe7-bb7a-400e-90fa-f8808321d7f0.jpg?v=1731575349&width=1140 1140w,
4742    //www.wakemakers.com/cdn/shop/files/media_5ae53fe7-bb7a-400e-90fa-f8808321d7f0.jpg?v=1731575349&width=1280 1280w,
4743    //www.wakemakers.com/cdn/shop/files/media_5ae53fe7-bb7a-400e-90fa-f8808321d7f0.jpg?v=1731575349&width=1440 1440w,
4744    //www.wakemakers.com/cdn/shop/files/media_5ae53fe7-bb7a-400e-90fa-f8808321d7f0.jpg?v=1731575349 1920w"
4745    sizes="100vw"
4746    loading="lazy"
4747    alt="WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)"
4748    
4749    
4750  style="--ar-mobile: 1.0;  "
4751 />
4752</picture>
4753                    </div>
4754                  </div>
4755                
4756                  <div class="product-images__img w-full" js-carousel-slide>
4757                    <div class="mx-auto tabletp:max-w-[500px]" js-product-image>
4758                      
4759
4760
4761
4762
4763<picture class="lazypicture block w-full ">
4764  
4765  <img 
4766    class="w-full "
4767    src="//www.wakemakers.com/cdn/shop/files/media_359cf2c8-823d-426a-a282-8aac94ceb420.jpg?v=1731575349&width=480
4768"
4769    srcset="//www.wakemakers.com/cdn/shop/files/media_359cf2c8-823d-426a-a282-8aac94ceb420.jpg?v=1731575349&width=480 480w,
4770    //www.wakemakers.com/cdn/shop/files/media_359cf2c8-823d-426a-a282-8aac94ceb420.jpg?v=1731575349&width=768 768w,
4771    //www.wakemakers.com/cdn/shop/files/media_359cf2c8-823d-426a-a282-8aac94ceb420.jpg?v=1731575349&width=1024 1024
4771w,
4772    //www.wakemakers.com/cdn/shop/files/media_359cf2c8-823d-426a-a282-8aac94ceb420.jpg?v=1731575349&width=1140 1140w,
4773    //www.wakemakers.com/cdn/shop/files/media_359cf2c8-823d-426a-a282-8aac94ceb420.jpg?v=1731575349&width=1280 1280w,
4774    //www.wakemakers.com/cdn/shop/files/media_359cf2c8-823d-426a-a282-8aac94ceb420.jpg?v=1731575349&width=1440 1440w,
4775    //www.wakemakers.com/cdn/shop/files/media_359cf2c8-823d-426a-a282-8aac94ceb420.jpg?v=1731575349 1920w"
4776    sizes="100vw"
4777    loading="lazy"
4778    alt="WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)"
4779    
4780    
4781  style="--ar-mobile: 1.0;  "
4782 />
4783</picture>
4784                    </div>
4785                  </div>
4786                
4787                  <div class="product-images__img w-full" js-carousel-slide>
4788                    <div class="mx-auto tabletp:max-w-[500px]" js-product-image>
4789                      
4790
4791
4792
4793
4794<picture class="lazypicture block w-full ">
4795  
4796  <img 
4797    class="w-full "
4798    src="//www.wakemakers.com/cdn/shop/files/media_d169f32a-a6fb-45ca-b844-c8ac49c8d783.jpg?v=1731575349&width=480
4799"
4800    srcset="//www.wakemakers.com/cdn/shop/files/media_d169f32a-a6fb-45ca-b844-c8ac49c8d783.jpg?v=1731575349&width=480 480w,
4801    //www.wakemakers.com/cdn/shop/files/media_d169f32a-a6fb-45ca-b844-c8ac49c8d783.jpg?v=1731575349&width=768 768w,
4802    //www.wakemakers.com/cdn/shop/files/media_d169f32a-a6fb-45ca-b844-c8ac49c8d783.jpg?v=1731575349&width=1024 1024w,
4803    //www.wakemakers.com/cdn/shop/files/media_d169f32a-a6fb-45ca-b844-c8ac49c8d783.jpg?v=1731575349&width=1140 1140w,
4804    //www.wakemakers.com/cdn/shop/files/media_d169f32a-a6fb-45ca-b844-c8ac49c8d783.jpg?v=1731575349&width=1280 1280w,
4805    //www.wakemakers.com/cdn/shop/files/media_d169f32a-a6fb-45ca-b844-c8ac49c8d783.jpg?v=1731575349&width=1440 1440w,
4806    //www.wakemakers.com/cdn/shop/files/media_d169f32a-a6fb-45ca-b844-c8ac49c8d783.jpg?v=1731575349 1920w"
4807    sizes="100vw"
4808    loading="lazy"
4809    alt="WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)"
4810    
4811    
4812  style="--ar-mobile: 0.999000999000999;  "
4813 />
4814</picture>
4815                    </div>
4816                  </div>
4817                
4818              
4819            </div>
4820          </s-carousel>
4821        </div>
4822      </div>
4823      <!-- .product__images-container -->
4824
4825      <div
4826        class="product__information-container p-16 pb-32 desktop:p-32 desktop:sticky"
4827        id="ProductInfo-template--21893123571877__main"
4828      >
4829        
4830<form method="post" action="/cart/add" id="ProductForm-template--21893123571877__main7759285649573" accept-charset="UTF-8" class="form mb-32 pb-32 border-b border-gray" enctype="multipart/form-data" novalidate="novalidate" js-product-form="true"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="✓" />
4831
4832<select id="MasterSelect-template--21893123571877__main" name="id" class="no-js">
4833  
4834    <option
4835      selected="selected"
4836      
4837      value="41675600920741" data-quantity="5" js-variant-option>
4838        30"L x 20"W x 20"H - 490lbs
4839    </option>
4840  
4841    <option
4842      
4843      
4844      value="41675600953509" data-quantity="22" js-variant-option>
4845        45"L x 25"W x 20"H - 910lbs
4846    </option>
4847  
4848    <option
4849      
4850      
4851      value="41675600986277" data-quantity="4" js-variant-option>
4852        45"L x 25"W x 25"H - 1,140lbs
4853    </option>
4854  
4855    <option
4856      
4857      
4858      value="41675601019045" data-quantity="0" js-variant-option>
4859        45"L x 20"W x 25"H - 910lbs
4860    </option>
4861  
4862    <option
4863      
4864      
4865      value="41675601051813" data-quantity="5" js-variant-option>
4866        45"L x 20"W x 20"H - 720lbs
4867    </option>
4868  
4869    <option
4870      
4871      
4872      value="41675601084581" data-quantity="0" js-variant-option>
4873        40"L x 25"W x 15"H - 610lbs
4874    </option>
4875  
4876    <option
4877      
4878      
4879      value="41675601117349" data-quantity="7" js-variant-option>
4880        40"L x 20"W x 20"H - 640lbs
4881    </option>
4882  
4883    <option
4884      
4885      
4886      value="41675601150117" data-quantity="17" js-variant-option>
4887        40"L x 25"W x 20"H - 820lbs
4888    </option>
4889  
4890    <option
4891      
4892      
4893      value="41675601182885" data-quantity="0" js-variant-option>
4894        35"L x 25"W x 15"H - 540lbs
4895    </option>
4896  
4897    <option
4898      
4899      
4900      value="41675601215653" data-quantity="6" js-variant-option>
4901        50"L x 25"W x 15"H - 740lbs
4902    </option>
4903  
4904    <option
4905      
4906      
4907      value="41675601248421" data-quantity="0" js-variant-option>
4908        50"L x 25"W x 25"H - 1,280lbs
4909    </option>
4910  
4911    <option
4912      
4913      
4914      value="41675601281189" data-quantity="21" js-variant-option>
4915        30"L x 25"W x 15"H - 460lbs
4916    </option>
4917  
4918    <option
4919      
4920      
4921      value="41675601313957" data-quantity="2" js-variant-option>
4922        35"L x 20"W x 15"H - 430lbs
4923    </option>
4924  
4925    <option
4926      
4927      
4928      value="41675601346725" data-quantity="3" js-variant-option>
4929        30"L x 25"W x 25"H - 765lbs
4930    </option>
4931  
4932    <option
4933      
4934      
4935      value="41675601379493" data-quantity="0" js-variant-option>
4936        45"L x 20"W x 15"H - 550lbs
4937    </option>
4938  
4939    <option
4940      
4941      
4942      value="41675601412261" data-quantity="5" js-variant-option>
4943        35"L x 25"W x 20"H - 710lbs
4944    </option>
4945  
4946    <option
4947      
4948      
4949      value="41675601445029" data-quantity="0" js-variant-option>
4950        30"L x 25"W x 20"H - 610lbs
4951    </option>
4952  
4953    <option
4954      
4955      
4956      value="41675601477797" data-quantity="0" js-variant-option>
4957        50"L x 25"W x 20"H - 1,020lbs
4958    </option>
4959  
4960    <option
4961      
4962      
4963      value="41675601510565" data-quantity="0" js-variant-option>
4964        35"L x 25"W x 25"H - 890lbs
4965    </option>
4966  
4967</select>
4968          
4969            <product-options
4970              class="no-js-hidden"
4971              data-product="ProductJSON"
4972              data-master-select-id="MasterSelect-template--21893123571877__main"
4973              data-enable-history-state
4974              data-disable-option-binding
4975            >
4976              
4977                
4978    <div class="product-option relative mb-20" option="1">
4979      
4980      <label for="option-Bag Size-template--21893123571877__main-7759285649573" class="hidden">
4981        Bag Size
4982      </label>
4983      <div class="w-full flex justify-between items-center gap-24">
4984        <div class="bg-white relative w-full">
4985          <select
4986            id="option-Bag Size-template--21893123571877__main-7759285649573"
4987            class="product-option__select w-full border border-transparent p-8 pl-12 pr-32 bg-transparent z-[2] cursor-pointer"
4988            js-product-option-selector
4989            data-index="option1">
4990            <option value="" selected disabled>Choose Bag Size</option>
4991            
4992              <option
4993                value="30&quot;L x 20&quot;W x 20&quot;H - 490lbs"
4994                i="1"
4995                 this-option-selected 
4996              >30"L x 20"W x 20"H - 490lbs</option>
4997            
4998              <option
4999                value="45&quot;L x 25&quot;W x 20&quot;H - 910lbs"
5000                i="2"
5001                
5002              >45"L x 25"W x 20"H - 910lbs</option>
5003            
5004              <option
5005                value="45&quot;L x 25&quot;W x 25&quot;H - 1,140lbs"
5006                i="3"
5007                
5008              >45"L x 25"W x 25"H - 1,140lbs</option>
5009            
5010              <option
5011                value="45&quot;L x 20&quot;W x 25&quot;H - 910lbs"
5012                i="4"
5013                
5014              >45"L x 20"W x 25"H - 910lbs</option>
5015            
5016              <option
5017                value="45&quot;L x 20&quot;W x 20&quot;H - 720lbs"
5018                i="5"
5019                
5020              >45"L x 20"W x 20"H - 720lbs</option>
5021            
5022              <option
5023                value="40&quot;L x 25&quot;W x 15&quot;H - 610lbs"
5024                i="6"
5025                
5026              >40"L x 25"W x 15"H - 610lbs</option>
5027            
5028              <option
5029                value="40&quot;L x 20&quot;W x 20&quot;H - 640lbs"
5030                i="7"
5031                
5032              >40"L x 20"W x 20"H - 640lbs</option>
5033            
5034              <option
5035                value="40&quot;L x 25&quot;W x 20&quot;H - 820lbs"
5036                i="8"
5037                
5038              >40"L x 25"W x 20"H - 820lbs</option>
5039            
5040              <option
5041                value="35&quot;L x 25&quot;W x 15&quot;H - 540lbs"
5042                i="9"
5043                
5044              >35"L x 25"W x 15"H - 540lbs</option>
5045            
5046              <option
5047                value="50&quot;L x 25&quot;W x 15&quot;H - 740lbs"
5048                i="10"
5049                
5050              >50"L x 25"W x 15"H - 740lbs</option>
5051            
5052              <option
5053                value="50&quot;L x 25&quot;W x 25&quot;H - 1,280lbs"
5054                i="11"
5055                
5056              >50"L x 25"W x 25"H - 1,280lbs</option>
5057            
5058              <option
5059                value="30&quot;L x 25&quot;W x 15&quot;H - 460lbs"
5060                i="12"
5061                
5062              >30"L x 25"W x 15"H - 460lbs</option>
5063            
5064              <option
5065                value="35&quot;L x 20&quot;W x 15&quot;H - 430lbs"
5066                i="13"
5067                
5068              >35"L x 20"W x 15"H - 430lbs</option>
5069            
5070              <option
5071                value="30&quot;L x 25&quot;W x 25&quot;H - 765lbs"
5072                i="14"
5073                
5074              >30"L x 25"W x 25"H - 765lbs</option>
5075            
5076              <option
5077                value="45&quot;L x 20&quot;W x 15&quot;H - 550lbs"
5078                i="15"
5079                
5080              >45"L x 20"W x 15"H - 550lbs</option>
5081            
5082              <option
5083                value="35&quot;L x 25&quot;W x 20&quot;H - 710lbs"
5084                i="16"
5085                
5086              >35"L x 25"W x 20"H - 710lbs</option>
5087            
5088              <option
5089                value="30&quot;L x 25&quot;W x 20&quot;H - 610lbs"
5090                i="17"
5091                
5092              >30"L x 25"W x 20"H - 610lbs</option>
5093            
5094              <option
5095                value="50&quot;L x 25&quot;W x 20&quot;H - 1,020lbs"
5096                i="18"
5097                
5098              >50"L x 25"W x 20"H - 1,020lbs</option>
5099            
5100              <option
5101                value="35&quot;L x 25&quot;W x 25&quot;H - 890lbs"
5102                i="19"
5103                
5104              >35"L x 25"W x 25"H - 890lbs</option>
5105            
5106          </select>
5107          <div class="flex justify-center items-center w-12 h-auto max-h-[10px] absolute top-[18px] right-8 z-[1] pointer-events-none">
5108            <svg class="icon icon--carat-down" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 9.14 5.24">
5109	
5110	<path d="M8.94.2a.69.69,0,0,0-1,0L4.57,3.61,1.16.2a.67.67,0,0,0-1,0,.67.67,0,0,0,0,1L4.08,5a.69.69,0,0,0,.48.2A.67.67,0,0,0,5,5l3.9-3.88A.69.69,0,0,0,8.94.2Z" />
5111</svg>
5112          </div>
5113        </div>
5114        
5115      </div>
5116      <p class="product-option__required-field text-14 text-[#f33] hidden" js-required-field>This is a required field.</p>
5117    </div>
5118
5119  
5120
5121
5122
5123              
5124              
5125            </product-options>
5126          
5127          <div class="product__qty-container flex justify-start items-center">
5128            <label class="form__label hidden" for="Quantity-template--21893123571877__main"> Qty </label>
5129            <quantity-input class="quantity border border-transparent mr-16 relative p-8 pl-16 bg-white">
5130              <button
5131                class="quantity__button flex justify-center items-center w-12 h-auto max-h-[10px] absolute bottom-8 right-8"
5132                name="minus"
5133                type="button"
5134                aria-label="Decrease quantity for WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)"
5135                title="Decrease quantity for WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)"
5136              >
5137                <svg class="icon icon--carat-down" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 9.14 5.24">
5138	
5139	<path d="M8.94.2a.69.69,0,0,0-1,0L4.57,3.61,1.16.2a.67.67,0,0,0-1,0,.67.67,0,0,0,0,1L4.08,5a.69.69,0,0,0,.48.2A.67.67,0,0,0,5,5l3.9-3.88A.69.69,0,0,0,8.94.2Z" />
5140</svg>
5141              </button>
5142              <input
5143                class="quantity__input w-[40px] h-auto"
5144                type="number"
5145                name="quantity"
5146                id="Quantity-template--21893123571877__main"
5147                min="1"
5148                value="1"
5149                form="ProductForm-template--21893123571877__main7759285649573"
5150              >
5151              <button
5152                class="quantity__button flex justify-center items-center w-12 h-auto max-h-[10px] transform rotate-180 absolute top-8 r
5152ight-8"
5153                name="plus"
5154                type="button"
5155                aria-label="Increase quantity for WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)"
5156                title="Increase quantity for WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)"
5157              >
5158                <svg class="icon icon--carat-down" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 9.14 5.24">
5159	
5160	<path d="M8.94.2a.69.69,0,0,0-1,0L4.57,3.61,1.16.2a.67.67,0,0,0-1,0,.67.67,0,0,0,0,1L4.08,5a.69.69,0,0,0,.48.2A.67.67,0,0,0,5,5l3.9-3.88A.69.69,0,0,0,8.94.2Z" />
5161</svg>
5162              </button>
5163            </quantity-input>
5164            <div class="product__price">
5165<div class="price flex flex-row flex-wrap items-center">
5166  <dl><div class="price__regular ">
5167      <dt>
5168        <span class="visually-hidden visually-hidden--inline">Regular price</span>
5169      </dt>
5170      <dd class="price__last flex flex-row justify justify-start items-center flex-wrap"><span class="price-item price-item--regular text-[32px] text-[#39f] ss55" js-price>
5171            From $169.99
5172          </span>
5173
5174          
5175            <div class="price__msrp">
5176              
5177                
5178
5179                
5180                
5181
5182                <s class="price-item price-item--regular text-[20px] text-black ml-8 hidden" data-variant-id="41675600920741" data-msrp="0" js-msrp>
5183                  $0.00
5184                </s>
5185                <s class="price-item price-item--regular text-[20px] text-black ml-8 hidden" data-variant-id="41675600920741" data-discount="" js-compare-price>
5186                  
5187                </s>
5188              
5189                
5190
5191                
5192                
5193
5194                <s class="price-item price-item--regular text-[20px] text-black ml-8 hidden" data-variant-id="41675600953509" data-msrp="0" js-msrp>
5195                  $0.00
5196                </s>
5197                <s class="price-item price-item--regular text-[20px] text-black ml-8 hidden" data-variant-id="41675600953509" data-discount="" js-compare-price>
5198                  
5199                </s>
5200              
5201                
5202
5203                
5204                
5205
5206                <s class="price-item price-item--regular text-[20px] text-black ml-8 hidden" data-variant-id="41675600986277" data-msrp="0" js-msrp>
5207                  $0.00
5208                </s>
5209                <s class="price-item price-item--regular text-[20px] text-black ml-8 hidden" data-variant-id="41675600986277" data-discount="" js-compare-price>
5210                  
5211                </s>
5212              
5213                
5214
5215                
5216                
5217
5218                <s class="price-item price-item--regular text-[20px] text-black ml-8 hidden" data-variant-id="41675601019045" data-msrp="0" js-msrp>
5219                  $0.00
5220                </s>
5221                <s class="price-item price-item--regular text-[20px] text-black ml-8 hidden" data-variant-id="41675601019045" data-discount="" js-compare-price>
5222                  
5223                </s>
5224              
5225                
5226
5227                
5228                
5229
5230                <s class="price-item price-item--regular text-[20px] text-black ml-8 hidden" data-variant-id="41675601051813" data-msrp="0" js-msrp>
5231                  $0.00
5232                </s>
5233                <s class="price-item price-item--regular text-[20px] text-black ml-8 hidden" data-variant-id="41675601051813" data-discount="" js-compare-price>
5234                  
5235                </s>
5236              
5237                
5238
5239                
5240                
5241
5242                <s class="price-item price-item--regular text-[20px] text-black ml-8 hidden" data-variant-id="41675601084581" data-msrp="0" js-msrp>
5243                  $0.00
5244                </s>
5245                <s class="price-item price-item--regular text-[20px] text-black ml-8 hidden" data-variant-id="41675601084581" data-discount="" js-compare-price>
5246                  
5247                </s>
5248              
5249                
5250
5251                
5252                
5253
5254                <s class="price-item price-item--regular text-[20px] text-black ml-8 hidden" data-variant-id="41675601117349" data-msrp="0" js-msrp>
5255                  $0.00
5256                </s>
5257                <s class="price-item price-item--regular text-[20px] text-black ml-8 hidden" data-variant-id="41675601117349" data-discount="" js-compare-price>
5258                  
5259                </s>
5260              
5261                
5262
5263                
5264                
5265
5266                <s class="price-item price-item--regular text-[20px] text-black ml-8 hidden" data-variant-id="41675601150117" data-msrp="0" js-msrp>
5267                  $0.00
5268                </s>
5269                <s class="price-item price-item--regular text-[20px] text-black ml-8 hidden" data-variant-id="41675601150117" data-discount="" js-compare-price>
5270                  
5271                </s>
5272              
5273                
5274
5275                
5276                
5277
5278                <s class="price-item price-item--regular text-[20px] text-black ml-8 hidden" data-variant-id="41675601182885" data-msrp="0" js-msrp>
5279                  $0.00
5280                </s>
5281                <s class="price-item price-item--regular text-[20px] text-black ml-8 hidden" data-variant-id="41675601182885" data-discount="" js-compare-price>
5282                  
5283                </s>
5284              
5285                
5286
5287                
5288                
5289
5290                <s class="price-item price-item--regular text-[20px] text-black ml-8 hidden" data-variant-id="41675601215653" data-msrp="0" js-msrp>
5291                  $0.00
5292                </s>
5293                <s class="price-item price-item--regular text-[20px] text-black ml-8 hidden" data-variant-id="41675601215653" data-discount="" js-compare-price>
5294                  
5295                </s>
5296              
5297                
5298
5299                
5300                
5301
5302                <s class="price-item price-item--regular text-[20px] text-black ml-8 hidden" data-variant-id="41675601248421" data-msrp="0" js-msrp>
5303                  $0.00
5304                </s>
5305                <s class="price-item price-item--regular text-[20px] text-black ml-8 hidden" data-variant-id="41675601248421" data-discount="" js-compare-price>
5306                  
5307                </s>
5308              
5309                
5310
5311                
5312                
5313
5314                <s class="price-item price-item--regular text-[20px] text-black ml-8 hidden" data-variant-id="41675601281189" data-msrp="0" js-msrp>
5315                  $0.00
5316                </s>
5317                <s class="price-item price-item--regular text-[20px] text-black ml-8 hidden" data-variant-id="41675601281189" data-discount="" js-compare-price>
5318                  
5319                </s>
5320              
5321                
5322
5323                
5324                
5325
5326                <s class="price-item price-item--regular text-[20px] text-black ml-8 hidden" data-variant-id="41675601313957" data-msrp="0" js-msrp>
5327                  $0.00
5328                </s>
5329                <s class="price-item price-item--regular text-[20px] text-black ml-8 hidden" data-variant-id="41675601313957" data-discount="" js-compare-price>
5330                  
5331                </s>
5332              
5333                
5334
5335                
5336                
5337
5338                <s class="price-item price-item--regular text-[20px] text-black ml-8 hidden" data-variant-id="41675601346725" data-msrp="0" js-msrp>
5339                  $0.00
5340                </s>
5341                <s class="price-item price-item--regular text-[20px] text-black ml-8 hidden" data-variant-id="41675601346725" data-discount="" js-compare-price>
5342                  
5343                </s>
5344              
5345                
5346
5347                
5348                
5349
5350                <s class="price-item price-item--regular text-[20px] text-black ml-8 hidden" data-variant-id="41675601379493" data-msrp="0" js-msrp>
5351                  $0.00
5352                </s>
5353                <s class="price-item price-item--regular text-[20px] text-black ml-8 hidden" data-variant-id="41675601379493" data-discount="" js-compare-price>
5354                  
5355                </s>
5356              
5357                
5358
5359                
5360                
5361
5362                <s class="price-item price-item--regular text-[20px] text-black ml-8 hidden" data-variant-id="41675601412261" data-msrp="0" js-msrp>
5363                  $0.00
5364                </s>
5365                <s class="price-item price-item--regular text-[20px] text-black ml-8 hidden" data-variant-id="41675601412261" data-discount="" js-compare-price>
5366                  
5367                </s>
5368              
5369                
5370
5371                
5372                
5373
5374                <s class="price-item price-item--regular text-[20px] text-black ml-8 hidden" data-variant-id="41675601445029" data-msrp="0" js-msrp>
5375                  $0.00
5376                </s>
5377                <s class="price-item price-item--regular text-[20px] text-black ml-8 hidden" data-variant-id="41675601445029" data-discount="" js-compare-price>
5378                  
5379                </s>
5380              
5381                
5382
5383                
5384                
5385
5386                <s class="price-item price-item--regular text-[20px] text-black ml-8 hidden" data-variant-id="41675601477797" data-msrp="0" js-msrp>
5387                  $0.00
5388                </s>
5389                <s class="price-item price-item--regular text-[20px] text-black ml-8 hidden" data-variant-id="41675601477797" data-discount="" js-compare-price>
5390                  
5391                </s>
5392              
5393                
5394
5395                
5396                
5397
5398                <s class="price-item price-item--regular text-[20px] text-black ml-8 hidden" data-variant-id="41675601510565" data-msrp="0" js-msrp>
5399                  $0.00
5400                </s>
5401                <s class="price-item price-item--regular text-[20px] text-black ml-8 hidden" data-variant-id="41675601510565" data-discount="" js-compare-price>
5402                  
5403                </s>
5404              
5405            </div>
5406          
5407      </dd>
5408    </div>
5409    
5410    
5411  </dl>
5412</div>
5413</div>
5414          </div>
5415          <div class="product-form__properties">
5416            
5417              
5418            
5419              
5420            
5421              
5422            
5423              
5424            
5425              
5426            
5427              
5428            
5429              
5430            
5431              
5432            
5433              
5434            
5435              
5436            
5437              
5438            
5439              
5440            
5441              
5442            
5443              
5444            
5445              
5446            
5447              
5448            
5449              
5450            
5451              
5452            
5453              
5454            
5455          </div>
5456          
5457          
5458          <div
5459            class="product__stock-status text-center mt-16 
5460            
5461              hidden
5462            
5463          "
5464            data-cta-oos="Add to Cart"
5465            js-stock-status
5466          >
5467            <div class="product-stock-status__title"><div><span class="text-green text-16 font-600">IN PRODUCTION</span> - Ships in 3-5 days</div></div>
5468            <div class="product-stock-status__message mt-8"><p style="font-weight:300 !important;font-size:14px !important;">Although we don't have it on the shelf currently, we are producing more daily in our US production facilities. Orders placed today will ship within 3-5 days. <a href="https://www.wakemakers.com/contact-us" title="Contact our Team">Contact our team</a> if you have further questions.</p></div>
5469          </div>
5470          <div class="product__shipping-status text-center mt-16 
5471            
5472              hidden
5473            
5474          " js-ship-status>
5475            <span class="text-green text-16 font-600">IN STOCK</span> - Ships <span js-ship-day></span> <br>
5476            <span class="text-gray-dark">Place your order prior to 4PM EST/1PM PST for same day shipping on all in stock items.</span>
5477          </div>
5478          <button
5479            class="relative btn btn--orange w-full uppercase text-[20px] h-[60px] mt-16 flex justify-center items-center "
5480            id="AddToCart"
5481            type="submit"
5482            
5483              disabled="disabled"
5484            
5485            js-add-to-cart
5486          >
5487            <loading-spinner style="--size: 3rem; --bg-opacity: 100%;"></loading-spinner>
5488            
5489              <span js-add-to-cart-icon class="w-24 h-auto mr-16 mb-4 text-white"><svg class="icon icon--cart" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 23.99 21">
5490  
5491  <path d="M23.93,5.66l-2.61,7.88a1.31,1.31,0,0,1-1.24.9H7.82a1.3,1.3,0,0,1-1.23-.9L3,2.62H1.3A1.3,1.3,0,0,1,0,1.31,1.31,1.31,0,0,1,1.3,0H3.91A1.31,1.31,0,0,1,5.15.9l1,3H22.69a1.31,1.31,0,0,1,1.06.54A1.34,1.34,0,0,1,23.93,5.66ZM9.23,16.24a2.39,2.39,0,0,1,2.42,2.38A2.5,2.5,0,0,1,9.08,21a2.25,2.25,0,0,1-2.27-2.38A2.39,2.39,0,0,1,9.23,16.24ZM18.42,16a2.5,2.5,0,1,1-2.51,2.5A2.51,2.51,0,0,1,18.42,16Z" />
5492</svg></span>
5493              <span js-add-to-cart-text>Add To Cart</span>
5494            
5495            
5496          </button>
5497          
5498<input type="hidden" name="product-id" value="7759285649573" /><input type="hidden" name="section-id" value="template--21893123571877__main" /></form>
5499        <div class="product__addtional-information">
5500          <p class="text-[20px] text-black mt-16">Item: B0079</p>
5501        </div>
5502
5503        
5504        
5505
5506        
5507
5508        
5509        
5510          <div class="product-features p-16 bg-white mt-16 text-14">
5511            <ul class="">
5512              <li class="py-[5px]">
5513                <button
5514                  js-open-feature-best-price-promise
5515                  class="btn p-0 font-400 text-black flex justify-start items-center"
5516                >
5517                  <span class="icon-custom text-[#39f] icon-custom-price w-24 h-auto mr-12"></span>
5518                  <span>Best Price Promise</span>
5519                </button>
5520              </li>
5521              <li class="py-[5px]">
5522                <button
5523                  js-open-feature-product-features--365-day-returns
5524                  class="btn p-0 font-400 text-black flex justify-start items-center"
5525                >
5526                  <span class="icon-custom text-[#39f] icon-custom-return w-24 h-auto mr-12"></span>
5527                  <span>365 Day Returns&ast;</span>
5528                </button>
5529              </li>
5530              <li class="py-[5px]">
5531                <button
5532                  js-open-feature-lifetime-expert-advice-support
5533                  class="btn p-0 font-400 text-black flex justify-start items-center"
5534                >
5535                  <span class="icon-custom text-[#39f] icon-custom-headset w-24 h-auto mr-12"></span>
5536                  <span>Lifetime Expert Advice & Support</span>
5537                </button>
5538              </li>
5539              <li class="py-[5px]">
5540                <button
5541                  js-open-feature-free-shipping
5542                  class="btn p-0 font-400 text-black flex justify-start items-center"
5543                >
5544                  <span class="icon-custom text-[#39f] icon-custom-truck w-24 h-auto mr-12"></span>
5545                  <span>Free Shipping on Orders Over $99</span>
5546                </button>
5547              </li>
5548            </ul>
5549          </div>
5550        
5551      </div>
5552      <!-- .product__information-container -->
5553
5554      <div class="product__description-container p-16 bg-white desktop:p-32 desktop:pt-44">
5555        
5556        <div class="product__tabs hidden grid-cols-4 text-[24px] text-center bg-white z-[2] border-b border-solid border-gray desktop:mb-16 desktop:sticky desktop:grid">
5557          
5558            <a href="#product-details" class="product__tab p-8 active" js-product-tab>Details</a>
5559          
5560          <a href="#product-specs" class="product__tab p-8" js-product-tab>Specs</a>
5561          <a href="#product-reviews" class="product__tab p-8" js-product-tab>Reviews</a>
5562          <a href="#product-faq" class="product__tab p-8" js-product-tab>FAQ</a>
5563        </div>
5564        
5565        <div class="product__description font-300">
5566          
5567            <s-accordion
5568              class="accordion product-description-content border-t border-gray border-solid desktop:border-t-0"
5569              js-accordion
5570            >
5571              <div class="accordion-item desktop:pt-[203px] desktop:mt-[-203px]" js-accordion-item>
5572                <button
5573                  id="product-details"
5574                  class="accordion-header product-description-content__header py-16 text-[24px] font-300 flex justify-between items-center desktop:pointer-events-none desktop:pt-[
557468px] desktop:mt-[-68px]"
5575                  aria-expanded="true"
5576                  aria-controls="product-details-content"
5577                  js-accordion-header
5578                >
5579                  <span>Details</span>
5580                  <div class="product-description-content__icon-carat w-20 h-auto mr-16 flex justify-between items-center desktop:hidden">
5581                    <svg class="icon icon--carat-down" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 9.14 5.24">
5582	
5583	<path d="M8.94.2a.69.69,0,0,0-1,0L4.57,3.61,1.16.2a.67.67,0,0,0-1,0,.67.67,0,0,0,0,1L4.08,5a.69.69,0,0,0,.48.2A.67.67,0,0,0,5,5l3.9-3.88A.69.69,0,0,0,8.94.2Z" />
5584</svg>
5585                  </div>
5586                </button>
5587                <div
5588                  id="product-details-content"
5589                  class="accordion-content rte text-16 desktop:h-full"
5590                  aria-hidden="false"
5591                  js-accordion-content
5592                >
5593                  
5594                    We created our UniversalFIT Rear Locker Bags to be the best fitting off-the-shelf ballast bags for the rear lockers of v-drive boats, which means nearly 20 incremental sizes, delivering a nearly custom fit and improved wake.
5595                  
5596                  
5597                    
5598                    <div class="relative overflow-hidden w-full pt-[56.25%] my-32 desktop:mb-16">
5599                      <iframe
5600                        class="absolute top-0 left-0 bottom-0 right-0 w-full h-full"
5601                        width="560"
5602                        height="315"
5603                        src="https://www.youtube.com/embed/kmOBcAxsaRk"
5604                        title="YouTube video player"
5605                        frameborder="0"
5606                        allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
5607                        allowfullscreen
5608                      ></iframe>
5609                    </div>
5610                  
5611                  <p>Our exclusive WakeMAKERS UniversalFIT Rear Locker Ballast Bags are making a splash in the industry and forever changing how boaters look at ballast bags. The team of product designers and engineers at WakeMAKERS agreed that a 'one-size fits all' approach that other brands are taking isn't good enough. Seeking a better ballast solution than standard sized bags, we developed our series of UniversalFIT ballast bags, designed for specific zones of your boat and offered in incremental sizes to give you better fitment and improved wake performance.</p><p>Ranging from 400 to 1,200 lbs. in size, the UniversalFIT Rear Locker bags allow you to choose the dimensions of the bag in 5" increments. The result is a much better fitting bag for your boat's rear locker, allowing you to fill to capacity and maximize added weight for the best possible wake. WakeMAKERS UniversalFIT ballast bags give you a nearly perfect fit without the expense of building a custom bag.</p><p>All WakeMAKERS ballast bags come standard with an industry-leading two year warranty. The bags are constructed of a DuraTEK, our proprietary material that is strong, durable, and puncture resistant. Once the material is cut, the bags are RF welded together with 1" seams to ensure a clean look and watertight seal. There are five 1" NPT ports on this ballast bag that feature a tapered thread pattern and bottom o-ring for a leak-free seal. The larger port size allows water to flow quicker for faster fill/drain times. </p><p>If you are shopping for ballast bags to put in the rear lockers of your v-drive boat, the WakeMAKERS UniversalFIT ballast bags are a no-brainer decision. From the quality craftsmanship to the innovative design, these ballast bags are built to deliver improved wakes behind your boat.</p><p>Sold individually as seen here, these bags are also included our WakeMAKERS exclusive <a href="https://www.wakemakers.com/factory-wakeboard-ballast-upgrades" title="Wakeboard boat ballast upgrade solutions">Factory Ballast Upgrades</a> that integrate the bags into your boat's factory ballast system for automated filling/draining. Use the dropdown tool to find available factory ballast upgrades for your year, make, and model boat.</p><p>You can also use our UniversalFIT Rear Locker ballast bags with a <a href="https://www.wakemakers.com/wakeboard-ballast-pumps?bag_compatibility=1533" title="Shop for WakeMAKERS compatible portable ballast pumps">portable ballast pump</a> or integrate them with a <a href="https://www.wakemakers.com/wakeboard-ballast-systems" title="Shop for WakeMAKERS Complete Ballast Systems">WakeMAKERS Complete Ballast System</a> for automated filling/draining of the bags.<br></p>
5612                  
5613                  
5614                  
5615                  
5616                    
5617                    
5618                    
5619                      <div class="mb-20" data-value="cb-wakemakers-bags-fittings-not-included-five-ports" js-custom-description></div>
5620                    
5621                  
5622                    
5623                    
5624                    
5625                      <div class="mb-20" data-value="cb-wakemakers-universalfit-rear-locker-tech" js-custom-description></div>
5626                    
5627                  
5628                    
5629                    
5630                    
5631                      <div class="mb-20" data-value="cb-wakemakers-universalfit-port-placement-rear-locker" js-custom-description></div>
5632                    
5633                  
5634                    
5635                    
5636                    
5637                      <div class="mb-20" data-value="cb-wakemakers-made-in-usa" js-custom-description></div>
5638                    
5639                  
5640                    
5641                    
5642                    
5643                  
5644
5645                  <!-- Attribute Block Display -->
5646
5647                  <!-- Surfboards -->
5648
5649                  
5650
5651                  <!-- // Surfboards -->
5652                                
5653                  <!-- // Attribute Block Display -->
5654
5655                  <!-- // Size Chart Display -->
5656
5657                  
5658                  
5659                  <div data-rebuy-id="47749" data-rebuy-shopify-product-ids="7759285649573"></div>
5660
5661                </div>
5662              </div>
5663            </s-accordion>
5664          
5665          <s-accordion
5666            class="accordion product-description-content border-t border-gray border-solid desktop:border-t-0"
5667            js-accordion
5668          >
5669            <div class="accordion-item desktop:pt-[203px] desktop:mt-[-203px]" js-accordion-item>
5670              <button
5671                id="product-specs"
5672                class="accordion-header product-description-content__header py-16 text-[24px] font-300 flex justify-between items-center desktop:pointer-events-none desktop:pt-[
567268px] desktop:mt-[-68px]"
5673                aria-expanded="true"
5674                aria-controls="product-specs-content"
5675                js-accordion-header
5676              >
5677                <span>Product Specs</span>
5678                <div class="product-description-content__icon-carat w-20 h-auto mr-16 flex justify-between items-center desktop:hidden">
5679                  <svg class="icon icon--carat-down" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 9.14 5.24">
5680	
5681	<path d="M8.94.2a.69.69,0,0,0-1,0L4.57,3.61,1.16.2a.67.67,0,0,0-1,0,.67.67,0,0,0,0,1L4.08,5a.69.69,0,0,0,.48.2A.67.67,0,0,0,5,5l3.9-3.88A.69.69,0,0,0,8.94.2Z" />
5682</svg>
5683                </div>
5684              </button>
5685              <div
5686                id="product-specs-content"
5687                class="accordion-content rte text-16 desktop:h-full"
5688                aria-hidden="false"
5689                js-accordion-content
5690              >
5691                
5692                  
5693                    <dl class="variant-specs grid grid-cols-[auto,1fr] items-center" data-variant-id="41675600920741" js-specs-table>
5694  
5695  
5696  
5697    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Manufacturer Part Number</td>
5698    <dd class="variant-specs__spec-value inline-block">B0079</dd>
5699  
5700  
5701    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Item#</td>
5702    <dd class="variant-specs__spec-value inline-block">B0079</dd>
5703  
5704  
5705    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Ports</td>
5706    <dd class="variant-specs__spec-value inline-block">2 fill/vent - 3 drain</dd>
5707  
5708  
5709    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Ballast Bag Size</td>
5710    <dd class="variant-specs__spec-value inline-block">30" - 50"L x 20" - 25"W x 15" - 25"H</dd>
5711  
5712  
5713  
5714    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Bag Capacity</td>
5715    <dd class="variant-specs__spec-value inline-block">430 - 1280</dd>
5716  
5717  
5718  
5719  
5720  
5721  
5722  
5723  
5724  
5725  
5726  
5727  <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Warning</td>
5728  <dd class="variant-specs__spec-value inline-block"><button class="inline text-left text-blue font-400" js-open-proposition-warning>Proposition 65 - view warning</button></td>
5729</dl>
5730
5731                  
5732                    <dl class="variant-specs grid grid-cols-[auto,1fr] items-center hidden " data-variant-id="41675600953509" js-specs-table>
5733  
5734  
5735  
5736    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Manufacturer Part Number</td>
5737    <dd class="variant-specs__spec-value inline-block">B0080</dd>
5738  
5739  
5740    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Item#</td>
5741    <dd class="variant-specs__spec-value inline-block">B0080</dd>
5742  
5743  
5744    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Ports</td>
5745    <dd class="variant-specs__spec-value inline-block">2 fill/vent - 3 drain</dd>
5746  
5747  
5748    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Ballast Bag Size</td>
5749    <dd class="variant-specs__spec-value inline-block">30" - 50"L x 20" - 25"W x 15" - 25"H</dd>
5750  
5751  
5752  
5753    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Bag Capacity</td>
5754    <dd class="variant-specs__spec-value inline-block">430 - 1280</dd>
5755  
5756  
5757  
5758  
5759  
5760  
5761  
5762  
5763  
5764  
5765  
5766  <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Warning</td>
5767  <dd class="variant-specs__spec-value inline-block"><button class="inline text-left text-blue font-400" js-open-proposition-warning>Proposition 65 - view warning</button></td>
5768</dl>
5769
5770                  
5771                    <dl class="variant-specs grid grid-cols-[auto,1fr] items-center hidden " data-variant-id="41675600986277" js-specs-table>
5772  
5773  
5774  
5775    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Manufacturer Part Number</td>
5776    <dd class="variant-specs__spec-value inline-block">B0081</dd>
5777  
5778  
5779    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Item#</td>
5780    <dd class="variant-specs__spec-value inline-block">B0081</dd>
5781  
5782  
5783    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Ports</td>
5784    <dd class="variant-specs__spec-value inline-block">2 fill/vent - 3 drain</dd>
5785  
5786  
5787    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Ballast Bag Size</td>
5788    <dd class="variant-specs__spec-value inline-block">30" - 50"L x 20" - 25"W x 15" - 25"H</dd>
5789  
5790  
5791  
5792    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Bag Capacity</td>
5793    <dd class="variant-specs__spec-value inline-block">430 - 1280</dd>
5794  
5795  
5796  
5797  
5798  
5799  
5800  
5801  
5802  
5803  
5804  
5805  <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Warning</td>
5806  <dd class="variant-specs__spec-value inline-block"><button class="inline text-left text-blue font-400" js-open-prop
5806osition-warning>Proposition 65 - view warning</button></td>
5807</dl>
5808
5809                  
5810                    <dl class="variant-specs grid grid-cols-[auto,1fr] items-center hidden " data-variant-id="41675601019045" js-specs-table>
5811  
5812  
5813  
5814    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Manufacturer Part Number</td>
5815    <dd class="variant-specs__spec-value inline-block">B0082</dd>
5816  
5817  
5818    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Item#</td>
5819    <dd class="variant-specs__spec-value inline-block">B0082</dd>
5820  
5821  
5822    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Ports</td>
5823    <dd class="variant-specs__spec-value inline-block">2 fill/vent - 3 drain</dd>
5824  
5825  
5826    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Ballast Bag Size</td>
5827    <dd class="variant-specs__spec-value inline-block">30" - 50"L x 20" - 25"W x 15" - 25"H</dd>
5828  
5829  
5830  
5831    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Bag Capacity</td>
5832    <dd class="variant-specs__spec-value inline-block">430 - 1280</dd>
5833  
5834  
5835  
5836  
5837  
5838  
5839  
5840  
5841  
5842  
5843  
5844  <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Warning</td>
5845  <dd class="variant-specs__spec-value inline-block"><button class="inline text-left text-blue font-400" js-open-proposition-warning>Proposition 65 - view warning</button></td>
5846</dl>
5847
5848                  
5849                    <dl class="variant-specs grid grid-cols-[auto,1fr] items-center hidden " data-variant-id="41675601051813" js-specs-table>
5850  
5851  
5852  
5853    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Manufacturer Part Number</td>
5854    <dd class="variant-specs__spec-value inline-block">B0083</dd>
5855  
5856  
5857    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Item#</td>
5858    <dd class="variant-specs__spec-value inline-block">B0083</dd>
5859  
5860  
5861    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Ports</td>
5862    <dd class="variant-specs__spec-value inline-block">2 fill/vent - 3 drain</dd>
5863  
5864  
5865    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Ballast Bag Size</td>
5866    <dd class="variant-specs__spec-value inline-block">30" - 50"L x 20" - 25"W x 15" - 25"H</dd>
5867  
5868  
5869  
5870    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Bag Capacity</td>
5871    <dd class="variant-specs__spec-value inline-block">430 - 1280</dd>
5872  
5873  
5874  
5875  
5876  
5877  
5878  
5879  
5880  
5881  
5882  
5883  <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Warning</td>
5884  <dd class="variant-specs__spec-value inline-block"><button class="inline text-left text-blue font-400" js-open-proposition-warning>Proposition 65 - view warning</button></td>
5885</dl>
5886
5887                  
5888                    <dl class="variant-specs grid grid-cols-[auto,1fr] items-center hidden " data-variant-id="41675601084581" js-specs-table>
5889  
5890  
5891  
5892    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Manufacturer Part Number</td>
5893    <dd class="variant-specs__spec-value inline-block">B0088</dd>
5894  
5895  
5896    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Item#</td>
5897    <dd class="variant-specs__spec-value inline-block">B0088</dd>
5898  
5899  
5900    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Ports</td>
5901    <dd class="variant-specs__spec-value inline-block">2 fill/vent - 3 drain</dd>
5902  
5903  
5904    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Ballast Bag Size</td>
5905    <dd class="variant-specs__spec-value inline-block">30" - 50"L x 20" - 25"W x 15" - 25"H</dd>
5906  
5907  
5908  
5909    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Bag Capacity</td>
5910    <dd class="variant-specs__spec-value inline-block">430 - 1280</dd>
5911  
5912  
5913  
5914  
5915  
5916  
5917  
5918  
5919  
5920  
5921  
5922  <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Warning</td>
5923  <dd class="variant-specs__spec-value inline-block"><button class="inline text-left text-blue font-400" js-open-prop
5923osition-warning>Proposition 65 - view warning</button></td>
5924</dl>
5925
5926                  
5927                    <dl class="variant-specs grid grid-cols-[auto,1fr] items-center hidden " data-variant-id="41675601117349" js-specs-table>
5928  
5929  
5930  
5931    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Manufacturer Part Number</td>
5932    <dd class="variant-specs__spec-value inline-block">B0089</dd>
5933  
5934  
5935    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Item#</td>
5936    <dd class="variant-specs__spec-value inline-block">B0089</dd>
5937  
5938  
5939    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Ports</td>
5940    <dd class="variant-specs__spec-value inline-block">2 fill/vent - 3 drain</dd>
5941  
5942  
5943    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Ballast Bag Size</td>
5944    <dd class="variant-specs__spec-value inline-block">30" - 50"L x 20" - 25"W x 15" - 25"H</dd>
5945  
5946  
5947  
5948    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Bag Capacity</td>
5949    <dd class="variant-specs__spec-value inline-block">430 - 1280</dd>
5950  
5951  
5952  
5953  
5954  
5955  
5956  
5957  
5958  
5959  
5960  
5961  <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Warning</td>
5962  <dd class="variant-specs__spec-value inline-block"><button class="inline text-left text-blue font-400" js-open-proposition-warning>Proposition 65 - view warning</button></td>
5963</dl>
5964
5965                  
5966                    <dl class="variant-specs grid grid-cols-[auto,1fr] items-center hidden " data-variant-id="41675601150117" js-specs-table>
5967  
5968  
5969  
5970    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Manufacturer Part Number</td>
5971    <dd class="variant-specs__spec-value inline-block">B0090</dd>
5972  
5973  
5974    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Item#</td>
5975    <dd class="variant-specs__spec-value inline-block">B0090</dd>
5976  
5977  
5978    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Ports</td>
5979    <dd class="variant-specs__spec-value inline-block">2 fill/vent - 3 drain</dd>
5980  
5981  
5982    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Ballast Bag Size</td>
5983    <dd class="variant-specs__spec-value inline-block">30" - 50"L x 20" - 25"W x 15" - 25"H</dd>
5984  
5985  
5986  
5987    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Bag Capacity</td>
5988    <dd class="variant-specs__spec-value inline-block">430 - 1280</dd>
5989  
5990  
5991  
5992  
5993  
5994  
5995  
5996  
5997  
5998  
5999  
6000  <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Warning</td>
6001  <dd class="variant-specs__spec-value inline-block"><button class="inline text-left text-blue font-400" js-open-proposition-warning>Proposition 65 - view warning</button></td>
6002</dl>
6003
6004                  
6005                    <dl class="variant-specs grid grid-cols-[auto,1fr] items-center hidden " data-variant-id="41675601182885" js-specs-table>
6006  
6007  
6008  
6009    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Manufacturer Part Number</td>
6010    <dd class="variant-specs__spec-value inline-block">B0091</dd>
6011  
6012  
6013    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Item#</td>
6014    <dd class="variant-specs__spec-value inline-block">B0091</dd>
6015  
6016  
6017    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Ports</td>
6018    <dd class="variant-specs__spec-value inline-block">2 fill/vent - 3 drain</dd>
6019  
6020  
6021    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Ballast Bag Size</td>
6022    <dd class="variant-specs__spec-value inline-block">30" - 50"L x 20" - 25"W x 15" - 25"H</dd>
6023  
6024  
6025  
6026    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Bag Capacity</td>
6027    <dd class="variant-specs__spec-value inline-block">430 - 1280</dd>
6028  
6029  
6030  
6031  
6032  
6033  
6034  
6035  
6036  
6037  
6038  
6039  <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Warning</td>
6040  <dd class="variant-specs__spec-value inline-block"><button class="inline text-left text-blue font-400" js-open-prop
6040osition-warning>Proposition 65 - view warning</button></td>
6041</dl>
6042
6043                  
6044                    <dl class="variant-specs grid grid-cols-[auto,1fr] items-center hidden " data-variant-id="41675601215653" js-specs-table>
6045  
6046  
6047  
6048    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Manufacturer Part Number</td>
6049    <dd class="variant-specs__spec-value inline-block">B0092</dd>
6050  
6051  
6052    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Item#</td>
6053    <dd class="variant-specs__spec-value inline-block">B0092</dd>
6054  
6055  
6056    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Ports</td>
6057    <dd class="variant-specs__spec-value inline-block">2 fill/vent - 3 drain</dd>
6058  
6059  
6060    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Ballast Bag Size</td>
6061    <dd class="variant-specs__spec-value inline-block">30" - 50"L x 20" - 25"W x 15" - 25"H</dd>
6062  
6063  
6064  
6065    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Bag Capacity</td>
6066    <dd class="variant-specs__spec-value inline-block">430 - 1280</dd>
6067  
6068  
6069  
6070  
6071  
6072  
6073  
6074  
6075  
6076  
6077  
6078  <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Warning</td>
6079  <dd class="variant-specs__spec-value inline-block"><button class="inline text-left text-blue font-400" js-open-proposition-warning>Proposition 65 - view warning</button></td>
6080</dl>
6081
6082                  
6083                    <dl class="variant-specs grid grid-cols-[auto,1fr] items-center hidden " data-variant-id="41675601248421" js-specs-table>
6084  
6085  
6086  
6087    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Manufacturer Part Number</td>
6088    <dd class="variant-specs__spec-value inline-block">B0093</dd>
6089  
6090  
6091    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Item#</td>
6092    <dd class="variant-specs__spec-value inline-block">B0093</dd>
6093  
6094  
6095    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Ports</td>
6096    <dd class="variant-specs__spec-value inline-block">2 fill/vent - 3 drain</dd>
6097  
6098  
6099    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Ballast Bag Size</td>
6100    <dd class="variant-specs__spec-value inline-block">30" - 50"L x 20" - 25"W x 15" - 25"H</dd>
6101  
6102  
6103  
6104    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Bag Capacity</td>
6105    <dd class="variant-specs__spec-value inline-block">430 - 1280</dd>
6106  
6107  
6108  
6109  
6110  
6111  
6112  
6113  
6114  
6115  
6116  
6117  <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Warning</td>
6118  <dd class="variant-specs__spec-value inline-block"><button class="inline text-left text-blue font-400" js-open-proposition-warning>Proposition 65 - view warning</button></td>
6119</dl>
6120
6121                  
6122                    <dl class="variant-specs grid grid-cols-[auto,1fr] items-center hidden " data-variant-id="41675601281189" js-specs-table>
6123  
6124  
6125  
6126    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Manufacturer Part Number</td>
6127    <dd class="variant-specs__spec-value inline-block">B0096</dd>
6128  
6129  
6130    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Item#</td>
6131    <dd class="variant-specs__spec-value inline-block">B0096</dd>
6132  
6133  
6134    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Ports</td>
6135    <dd class="variant-specs__spec-value inline-block">2 fill/vent - 3 drain</dd>
6136  
6137  
6138    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Ballast Bag Size</td>
6139    <dd class="variant-specs__spec-value inline-block">30" - 50"L x 20" - 25"W x 15" - 25"H</dd>
6140  
6141  
6142  
6143    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Bag Capacity</td>
6144    <dd class="variant-specs__spec-value inline-block">430 - 1280</dd>
6145  
6146  
6147  
6148  
6149  
6150  
6151  
6152  
6153  
6154  
6155  
6156  <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Warning</td>
6157  <dd class="variant-specs__spec-value inline-block"><button class="inline text-left text-blue font-400" js-open-prop
6157osition-warning>Proposition 65 - view warning</button></td>
6158</dl>
6159
6160                  
6161                    <dl class="variant-specs grid grid-cols-[auto,1fr] items-center hidden " data-variant-id="41675601313957" js-specs-table>
6162  
6163  
6164  
6165    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Manufacturer Part Number</td>
6166    <dd class="variant-specs__spec-value inline-block">B0110</dd>
6167  
6168  
6169    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Item#</td>
6170    <dd class="variant-specs__spec-value inline-block">B0110</dd>
6171  
6172  
6173    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Ports</td>
6174    <dd class="variant-specs__spec-value inline-block">2 fill/vent - 3 drain</dd>
6175  
6176  
6177    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Ballast Bag Size</td>
6178    <dd class="variant-specs__spec-value inline-block">30" - 50"L x 20" - 25"W x 15" - 25"H</dd>
6179  
6180  
6181  
6182    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Bag Capacity</td>
6183    <dd class="variant-specs__spec-value inline-block">430 - 1280</dd>
6184  
6185  
6186  
6187  
6188  
6189  
6190  
6191  
6192  
6193  
6194  
6195  <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Warning</td>
6196  <dd class="variant-specs__spec-value inline-block"><button class="inline text-left text-blue font-400" js-open-proposition-warning>Proposition 65 - view warning</button></td>
6197</dl>
6198
6199                  
6200                    <dl class="variant-specs grid grid-cols-[auto,1fr] items-center hidden " data-variant-id="41675601346725" js-specs-table>
6201  
6202  
6203  
6204    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Manufacturer Part Number</td>
6205    <dd class="variant-specs__spec-value inline-block">B0121</dd>
6206  
6207  
6208    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Item#</td>
6209    <dd class="variant-specs__spec-value inline-block">B0121</dd>
6210  
6211  
6212    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Ports</td>
6213    <dd class="variant-specs__spec-value inline-block">2 fill/vent - 3 drain</dd>
6214  
6215  
6216    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Ballast Bag Size</td>
6217    <dd class="variant-specs__spec-value inline-block">30" - 50"L x 20" - 25"W x 15" - 25"H</dd>
6218  
6219  
6220  
6221    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Bag Capacity</td>
6222    <dd class="variant-specs__spec-value inline-block">430 - 1280</dd>
6223  
6224  
6225  
6226  
6227  
6228  
6229  
6230  
6231  
6232  
6233  
6234  <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Warning</td>
6235  <dd class="variant-specs__spec-value inline-block"><button class="inline text-left text-blue font-400" js-open-proposition-warning>Proposition 65 - view warning</button></td>
6236</dl>
6237
6238                  
6239                    <dl class="variant-specs grid grid-cols-[auto,1fr] items-center hidden " data-variant-id="41675601379493" js-specs-table>
6240  
6241  
6242  
6243    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Manufacturer Part Number</td>
6244    <dd class="variant-specs__spec-value inline-block">B0122</dd>
6245  
6246  
6247    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Item#</td>
6248    <dd class="variant-specs__spec-value inline-block">B0122</dd>
6249  
6250  
6251    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Ports</td>
6252    <dd class="variant-specs__spec-value inline-block">2 fill/vent - 3 drain</dd>
6253  
6254  
6255    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Ballast Bag Size</td>
6256    <dd class="variant-specs__spec-value inline-block">30" - 50"L x 20" - 25"W x 15" - 25"H</dd>
6257  
6258  
6259  
6260    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Bag Capacity</td>
6261    <dd class="variant-specs__spec-value inline-block">430 - 1280</dd>
6262  
6263  
6264  
6265  
6266  
6267  
6268  
6269  
6270  
6271  
6272  
6273  <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Warning</td>
6274  <dd class="variant-specs__spec-value inline-block"><button class="inline text-left text-blue font-400" js-open-prop
6274osition-warning>Proposition 65 - view warning</button></td>
6275</dl>
6276
6277                  
6278                    <dl class="variant-specs grid grid-cols-[auto,1fr] items-center hidden " data-variant-id="41675601412261" js-specs-table>
6279  
6280  
6281  
6282    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Manufacturer Part Number</td>
6283    <dd class="variant-specs__spec-value inline-block">B0144</dd>
6284  
6285  
6286    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Item#</td>
6287    <dd class="variant-specs__spec-value inline-block">B0144</dd>
6288  
6289  
6290    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Ports</td>
6291    <dd class="variant-specs__spec-value inline-block">2 fill/vent - 3 drain</dd>
6292  
6293  
6294    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Ballast Bag Size</td>
6295    <dd class="variant-specs__spec-value inline-block">30" - 50"L x 20" - 25"W x 15" - 25"H</dd>
6296  
6297  
6298  
6299    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Bag Capacity</td>
6300    <dd class="variant-specs__spec-value inline-block">430 - 1280</dd>
6301  
6302  
6303  
6304  
6305  
6306  
6307  
6308  
6309  
6310  
6311  
6312  <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Warning</td>
6313  <dd class="variant-specs__spec-value inline-block"><button class="inline text-left text-blue font-400" js-open-proposition-warning>Proposition 65 - view warning</button></td>
6314</dl>
6315
6316                  
6317                    <dl class="variant-specs grid grid-cols-[auto,1fr] items-center hidden " data-variant-id="41675601445029" js-specs-table>
6318  
6319  
6320  
6321    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Manufacturer Part Number</td>
6322    <dd class="variant-specs__spec-value inline-block">B0145</dd>
6323  
6324  
6325    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Item#</td>
6326    <dd class="variant-specs__spec-value inline-block">B0145</dd>
6327  
6328  
6329    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Ports</td>
6330    <dd class="variant-specs__spec-value inline-block">2 fill/vent - 3 drain</dd>
6331  
6332  
6333    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Ballast Bag Size</td>
6334    <dd class="variant-specs__spec-value inline-block">30" - 50"L x 20" - 25"W x 15" - 25"H</dd>
6335  
6336  
6337  
6338    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Bag Capacity</td>
6339    <dd class="variant-specs__spec-value inline-block">430 - 1280</dd>
6340  
6341  
6342  
6343  
6344  
6345  
6346  
6347  
6348  
6349  
6350  
6351  <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Warning</td>
6352  <dd class="variant-specs__spec-value inline-block"><button class="inline text-left text-blue font-400" js-open-proposition-warning>Proposition 65 - view warning</button></td>
6353</dl>
6354
6355                  
6356                    <dl class="variant-specs grid grid-cols-[auto,1fr] items-center hidden " data-variant-id="41675601477797" js-specs-table>
6357  
6358  
6359  
6360    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Manufacturer Part Number</td>
6361    <dd class="variant-specs__spec-value inline-block">B0146</dd>
6362  
6363  
6364    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Item#</td>
6365    <dd class="variant-specs__spec-value inline-block">B0146</dd>
6366  
6367  
6368    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Ports</td>
6369    <dd class="variant-specs__spec-value inline-block">2 fill/vent - 3 drain</dd>
6370  
6371  
6372    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Ballast Bag Size</td>
6373    <dd class="variant-specs__spec-value inline-block">30" - 50"L x 20" - 25"W x 15" - 25"H</dd>
6374  
6375  
6376  
6377    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Bag Capacity</td>
6378    <dd class="variant-specs__spec-value inline-block">430 - 1280</dd>
6379  
6380  
6381  
6382  
6383  
6384  
6385  
6386  
6387  
6388  
6389  
6390  <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Warning</td>
6391  <dd class="variant-specs__spec-value inline-block"><button class="inline text-left text-blue font-400" js-open-prop
6391osition-warning>Proposition 65 - view warning</button></td>
6392</dl>
6393
6394                  
6395                    <dl class="variant-specs grid grid-cols-[auto,1fr] items-center hidden " data-variant-id="41675601510565" js-specs-table>
6396  
6397  
6398  
6399    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Manufacturer Part Number</td>
6400    <dd class="variant-specs__spec-value inline-block">B0147</dd>
6401  
6402  
6403    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Item#</td>
6404    <dd class="variant-specs__spec-value inline-block">B0147</dd>
6405  
6406  
6407    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Ports</td>
6408    <dd class="variant-specs__spec-value inline-block">2 fill/vent - 3 drain</dd>
6409  
6410  
6411    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Ballast Bag Size</td>
6412    <dd class="variant-specs__spec-value inline-block">30" - 50"L x 20" - 25"W x 15" - 25"H</dd>
6413  
6414  
6415  
6416    <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Bag Capacity</td>
6417    <dd class="variant-specs__spec-value inline-block">430 - 1280</dd>
6418  
6419  
6420  
6421  
6422  
6423  
6424  
6425  
6426  
6427  
6428  
6429  <dt class="variant-specs__spec-label inline-block font-600 text-gray-dark pr-28 py-16">Warning</td>
6430  <dd class="variant-specs__spec-value inline-block"><button class="inline text-left text-blue font-400" js-open-proposition-warning>Proposition 65 - view warning</button></td>
6431</dl>
6432
6433                  
6434                
6435              </div>
6436            </div>
6437          </s-accordion>
6438          <s-accordion
6439            class="accordion product-description-content border-t border-gray border-solid desktop:border-t-0"
6440            js-accordion
6441          >
6442            <div class="accordion-item desktop:pt-[203px] desktop:mt-[-203px]" js-accordion-item>
6443              <button
6444                id="product-reviews"
6445                class="accordion-header product-description-content__header py-16 text-[24px] font-300 flex justify-between items-center desktop:pointer-events-none desktop:pt-[68px] desktop:mt-[-68px]"
6446                aria-expanded="true"
6447                aria-controls="product-reviews-content"
6448                js-accordion-header
6449              >
6450                <span>Customer Reviews</span>
6451                <div class="product-description-content__icon-carat w-20 h-auto mr-16 flex justify-between items-center desktop:hidden">
6452                  <svg class="icon icon--carat-down" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 9.14 5.24">
6453	
6454	<path d="M8.94.2a.69.69,0,0,0-1,0L4.57,3.61,1.16.2a.67.67,0,0,0-1,0,.67.67,0,0,0,0,1L4.08,5a.69.69,0,0,0,.48.2A.67.67,0,0,0,5,5l3.9-3.88A.69.69,0,0,0,8.94.2Z" />
6455</svg>
6456                </div>
6457              </button>
6458              <div
6459                id="product-reviews-content"
6460                class="accordion-content rte text-16 desktop:h-full"
6461                aria-hidden="false"
6462                js-accordion-content
6463              >
6464                <div class="mb-20">
6465                  <a name="reviews"></a>
6466<div data-oke-reviews-widget data-oke-reviews-product-id="shopify-7759285649573"><div data-oke-reviews-version="2.19.0" class="okeReviews okeReviews--theme js-okeReviews">
6467<div class="okeReviews-reviewsWidget js-okeReviews-reviewsWidget ">
6468<div class="okeReviews-reviewsWidget-header">
6469<div class="okeReviews-reviewsWidget-header-poweredBy">
6470<div class="okeReviews-reviewsWidget-poweredBy">
6471<a href="https://www.okendo.io" target="_blank" rel="noopener" class="okeReviews-lazyPoweredBy" aria-label="Powered by Okendo" data-oke-reviews-lazy-class="is-okeReviews-lazyLoaded"></a>
6472</div></div>
6473<div class="okeReviews-reviewsWidget-header-controls">
6474<a target="_blank" rel="noopener" tabindex="0" class="okeReviews-reviewsWidget-header-controls-writeReview js-okeReviews-writeReview okeReviews-button is-okeReviews-hidden" data-oke-ga-click-action="Write Review Click">Write a Review</a></div>
6475</div>
6476<div class="okeReviews-reviewsWidget-reviewsAggregate js-okeReviews-reviewsAggregateContainer">
6477<div data-oke-reviews-aggregate data-oke-reviews-version="2.19.0"
6478data-oke-reviews-review-count="23"
6479class="okeReviews-reviewsAggregate">
6480<div class="okeReviews-reviewsAggregate-side">
6481<div class="okeReviews-reviewsAggregate-side-inner">
6482<div class="okeReviews-reviewsAggregate-summary"
6483data-oke-ga-click-label="WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)"
6484>
6485<div class="okeReviews-reviewsAggregate-summary-rating">
6486<div class="okeReviews-reviewsAggregate-summary-rating-value">
6487<div class="okeReviews-badge okeReviews-badge--large okeReviews-badge--rating">
6488<span class="okeReviews-a11yText">average rating</span>
6489<span
6490>4.6</span>
6491<span class="okeReviews-a11yText">out of 5</span>
6492</div>
6493</div>
6494<div class="okeReviews-reviewsAggregate-summary-rating-starRating" role="presentation">
6495<span class="okeReviews-starRating">
6496<span class="okeReviews-starRating-indicator" role="presentation">
6497<span class="okeReviews-starRating-indicator-layer"></span>
6498<span class="okeReviews-starRating-indicator-layer okeReviews-starRating-indicator-layer
6498--foreground" style="width: 92%;"></span>
6499</span>
6500</span>
6501</div>
6502</div>
6503<div class="okeReviews-reviewsAggregate-summary-total">
6504Based on 23 reviews
6505</div>
6506</div><div class="okeReviews-reviewsAggregate-ratingDistribution js-or-rtgDis">
6507<ul class="okeReviews-ratingDistribution" aria-label="Rating distribution">
6508<li class="okeReviews-ratingDistribution-item">
6509<div class="okeReviews-ratingDistribution-item-label">
6510<div class="okeReviews-ratingDistribution-item-label-inner">5 Stars</div>
6511</div>
6512<div class="okeReviews-ratingDistribution-item-value">
6513<div class="okeReviews-ratingDistribution-item-value-inner">
6514<div class="okeReviews-ratingDistribution-item-value-graph" role="presentation">
6515<div class="okeReviews-barGraph">
6516<div class="okeReviews-barGraph-layer okeReviews-barGraph-layer--background"></div>
6517<div class="okeReviews-barGraph-layer okeReviews-barGraph-layer--foreground" style="width: 74%"></div>
6518</div>
6519</div>
6520<div class="okeReviews-ratingDistribution-item-value-count">
652117 <span class="okeReviews-a11yText">Reviews</span>
6522</div>
6523</div>
6524</div>
6525</li>
6526<li class="okeReviews-ratingDistribution-item">
6527<div class="okeReviews-ratingDistribution-item-label">
6528<div class="okeReviews-ratingDistribution-item-label-inner">4 Stars</div>
6529</div>
6530<div class="okeReviews-ratingDistribution-item-value">
6531<div class="okeReviews-ratingDistribution-item-value-inner">
6532<div class="okeReviews-ratingDistribution-item-value-graph" role="presentation">
6533<div class="okeReviews-barGraph">
6534<div class="okeReviews-barGraph-layer okeReviews-barGraph-layer--background"></div>
6535<div class="okeReviews-barGraph-layer okeReviews-barGraph-layer--foreground" style="width: 22%"></div>
6536</div>
6537</div>
6538<div class="okeReviews-ratingDistribution-item-value-count">
65395 <span class="okeReviews-a11yText">Reviews</span>
6540</div>
6541</div>
6542</div>
6543</li>
6544<li class="okeReviews-ratingDistribution-item">
6545<div class="okeReviews-ratingDistribution-item-label">
6546<div class="okeReviews-ratingDistribution-item-label-inner">3 Stars</div>
6547</div>
6548<div class="okeReviews-ratingDistribution-item-value">
6549<div class="okeReviews-ratingDistribution-item-value-inner">
6550<div class="okeReviews-ratingDistribution-item-value-graph" role="presentation">
6551<div class="okeReviews-barGraph">
6552<div class="okeReviews-barGraph-layer okeReviews-barGraph-layer--background"></div>
6553<div class="okeReviews-barGraph-layer okeReviews-barGraph-layer--foreground" style="width: 0%"></div>
6554</div>
6555</div>
6556<div class="okeReviews-ratingDistribution-item-value-count">
65570 <span class="okeReviews-a11yText">Reviews</span>
6558</div>
6559</div>
6560</div>
6561</li>
6562<li class="okeReviews-ratingDistribution-item">
6563<div class="okeReviews-ratingDistribution-item-label">
6564<div class="okeReviews-ratingDistribution-item-label-inner">2 Stars</div>
6565</div>
6566<div class="okeReviews-ratingDistribution-item-value">
6567<div class="okeReviews-ratingDistribution-item-value-inner">
6568<div class="okeReviews-ratingDistribution-item-value-graph" role="presentation">
6569<div class="okeReviews-barGraph">
6570<div class="okeReviews-barGraph-layer okeReviews-barGraph-layer--background"></div>
6571<div class="okeReviews-barGraph-layer okeReviews-barGraph-layer--foreground" style="width: 0%"></div>
6572</div>
6573</div>
6574<div class="okeReviews-ratingDistribution-item-value-count">
65750 <span class="okeReviews-a11yText">Reviews</span>
6576</div>
6577</div>
6578</div>
6579</li>
6580<li class="okeReviews-ratingDistribution-item">
6581<div class="okeReviews-ratingDistribution-item-label">
6582<div class="okeReviews-ratingDistribution-item-label-inner">1 Star</div>
6583</div>
6584<div class="okeReviews-ratingDistribution-item-value">
6585<div class="okeReviews-ratingDistribution-item-value-inner">
6586<div class="okeReviews-ratingDistribution-item-value-graph" role="presentation">
6587<div class="okeReviews-barGraph">
6588<div class="okeReviews-barGraph-layer okeReviews-barGraph-layer--background"></div>
6589<div class="okeReviews-barGraph-layer okeReviews-barGraph-layer--foreground" style="width: 4%"></div>
6590</div>
6591</div>
6592<div class="okeReviews-ratingDistribution-item-value-count">
65931 <span class="okeReviews-a11yText">Review</span>
6594</div>
6595</div>
6596</div>
6597</li>
6598</ul>
6599</div></div>
6600</div>
6601<div class="okeReviews-reviewsAggregate-primary">
6602<div class="okeReviews-reviewsAggregate-recommends">
6603<span class="okeReviews-reviewsAggregate-recommends-badge okeReviews-badge okeReviews-badge--recommended">96%</span>
6604<span>
6605of reviewers would recommend this product to a friend
6606</span>
6607</div>
6608<div class="okeReviews-reviewsAggregate-mod">
6609<div class="okeReviews-reviewsAggregate-mod-itm okeReviews-reviewsAggregate-mod-itm--medAgg">
6610<div class="okeReviews-mediaAggregate">
6611<span class="okeReviews-a11yText">Customer photos and videos</span>
6612<div class="okeReviews-mediaStrip is-overflow">
6613<a href="https://media-dynamic.okendo.io/images/6e683df2-08da-4c40-a14c-c765d5257fcf/5012bf66-bacd-4218-b0d8-f0935aca39b0.jpg?d&#x3D;1600x1600" class="okeReviews-mediaStrip-item js-okeReviews-mediaStrip-item" data-oke-ga-click-action="Review Aggregate Photo Click" role="button">
6614<img class="okeReviews-mediaStrip-item-media js-okeReviews-mediaStrip-media" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-oke-reviews-lazy-image-url="https://media-dynamic.okendo.io/images/6e683df2-08da-4c40-a14c-c765d5257fcf/5012bf66-bacd-4218-b0d8-f0935aca39b0.jpg?d&#x3D;120x120&amp;crop&#x3D;center" alt="Open user-uploaded photo and review in a modal" data-oke-reviews-media-id="5012bf66-bacd-4218-b0d8-f0935aca39b0" data-oke-reviews-mode="aggregate">
6615</a>
6616<a href="https://media-dynamic.okendo.io/images/6e683df2-08da-4c40-a14c-c765d5257fcf/a11a215c-792b-4227-8f2d-2edd69d139d6.jpg?d&#x3D;1600x1600" class="okeReviews-mediaStrip-item js-okeReviews-mediaStrip-item" data-oke-ga-click-action="Review Aggregate Photo Click" role="button">
6617<img class="okeReviews-mediaStrip-item-media js-okeReviews-mediaStrip-media" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-oke-reviews-lazy-image-url="https://media-dynamic.okendo.io/images/6e683df2-08da-4c40-a14c-c765d5257fcf/a11a215c-792b-4227-8f2d-2edd69d139d6.jpg?d&#x3D;120x120&amp;crop&#x3D;center" alt="Open user-uploaded photo and review in a modal" data-oke-reviews-media-id="a11a215c-792b-4227-8f2d-2edd69d139d6" data-oke-reviews-mode="aggregate">
6618</a>
6619<a href="https://media-dynamic.okendo.io/images/6e683df2-08da-4c40-a14c-c765d5257fcf/1de762f6-0883-4795-9da3-70030d0971e3.jpg?d&#x3D;1600x1600" class="okeReviews-mediaStrip-item js-okeReviews-mediaStrip-item" data-oke-ga-click-action="Review Aggregate Photo Click" role="button">
6620<img class="okeReviews-mediaStrip-item-media js-okeReviews-mediaStrip-media" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-oke-reviews-lazy-image-url="https://media-dynamic.okendo.io/images/6e683df2-08da-4c40-a14c-c765d5257fcf/1de762f6-0883-4795-9da3-70030d0971e3.jpg?d&#x3D;120x120&amp;crop&#x3D;center" alt="Open user-uploaded photo and review in a modal" data-oke-reviews-media-id="1de762f6-0883-4795-9da3-70030d0971e3" data-oke-reviews-mode="aggregate">
6621</a>
6622<a href="https://media-dynamic.okendo.io/images/6e683df2-08da-4c40-a14c-c765d5257fcf/ed198f5a-f393-4219-a2cc-0ce470b7e4cf.jpg?d&#x3D;1600x1600" class="okeReviews-mediaStrip-item js-okeReviews-mediaStrip-item" data-oke-ga-click-action="Review Aggregate Photo Click" role="button">
6623<img class="okeReviews-mediaStrip-item-media js-okeReviews-mediaStrip-media" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-oke-reviews-lazy-image-url="https://media-dynamic.okendo.io/images/6e683df2-08da-4c40-a14c-c765d5257fcf/ed198f5a-f393-4219-a2cc-0ce470b7e4cf.jpg?d&#x3D;120x120&amp;crop&#x3D;center" alt="Open user-uploaded photo and review in a modal" data-oke-reviews-media-id="ed198f5a-f393-4219-a2cc-0ce470b7e4cf" data-oke-reviews-mode="aggregate">
6624</a>
6625<a href="https://media-dynamic.okendo.io/images/6e683df2-08da-4c40-a14c-c765d5257fcf/662b6e89-58ac-435f-a1ae-1fce87eedc9e.jpg?d&#x3D;1600x1600" class="okeReviews-mediaStrip-item js-okeReviews-mediaStrip-item" data-oke-ga-click-action="Review Aggregate Photo Click" role="button">
6626<img class="okeReviews-mediaStrip-item-media js-okeReviews-mediaStrip-media" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-oke-reviews-lazy-image-url="https://media-dynamic.okendo.io/images/6e683df2-08da-4c40-a14c-c765d5257fcf/662b6e89-58ac-435f-a1ae-1fce87eedc9e.jpg?d&#x3D;120x120&amp;crop&#x3D;center" alt="Open user-uploaded photo and review in a modal" data-oke-reviews-media-id="662b6e89-58ac-435f-a1ae-1fce87eedc9e" data-oke-reviews-mode="aggregate">
6627</a>
6628<a href="https://media-dynamic.okendo.io/images/6e683df2-08da-4c40-a14c-c765d5257fcf/c5e4a7e6-d189-47e9-a11a-87e6bbf4456e.jpg?d&#x3D;1600x1600" class="okeReviews-mediaStrip-item js-okeReviews-mediaStrip-item" data-oke-ga-click-action="Review Aggregate Photo Click" role="button">
6629<img class="okeReviews-mediaStrip-item-media js-okeReviews-mediaStrip-media" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-oke-reviews-lazy-image-url="https://media-dynamic.okendo.io/images/6e683df2-08da-4c40-a14c-c765d5257fcf/c5e4a7e6-d189-47e9-a11a-87e6bbf4456e.jpg?d&#x3D;120x120&amp;crop&#x3D;center" alt="Open user-uploaded photo and review in a modal" data-oke-reviews-media-id="c5e4a7e6-d189-47e9-a11a-87e6bbf4456e" data-oke-reviews-mode="aggregate">
6630</a>
6631</div>
6632</div>
6633</div></div>
6634</div>
6635</div>
6636</div>
6637<div class="okeReviews-reviewsWidget-reviews js-okeReviews-reviewsContainer">
6638<div class="okeReviews-reviews">
6639<div class="okeReviews-reviews-controls">
6640<div class="okeReviews-reviews-controls-filterToggle">
6641<button class="okeReviews-filterToggle okeReviews-button is-okeReviews-hidden js-okeReviews-filterToggle" aria-controls="filters" aria-expanded="false" data-oke-ga-click-action="Filter Toggle Click">
6642Filters
6643<span class="okeReviews-filterToggle-count js-okeReviews-filterCount is-okeReviews-hidden"></span>
6644</button></div>
6645<div class="okeReviews-reviews-controls-sort">
6646<div class="okeReviews-reviews-controls-reviewCount">
664723 Reviews
6648</div>
6649<div class="okeReviews-reviews-controls-select">
6650<span class="okeReviews-select js-okeReviews-select">
6651<label for="okeReviews-reviews-controls-sort" class="okeReviews-a11yText">Sort by</label>
6652<select id="okeReviews-reviews-controls-sort" class="okeReviews-select-input js-okeReviews-select-input" data-oke-ga-change-action="Review Sort">
6653<option value="date desc">Most Recent</option>
6654<option value="date asc">Oldest</option>
6655<option value="has_media desc" >Photos &amp; Videos</option>
6656<option value="rating desc" >Highest Rating</option>
6657<option value="rating asc">Lowest Rating</option>
6658<option value="helpful desc" >Most Helpful</option>
6659<option value="unhelpful desc">Least Helpful</option>
6660</select>
6661</span>
6662</div></div>
6663<div class="okeReviews-reviews-controls-filters">
6664<div class="okeReviews-filters js-okeReviews-filters is-okeReviews-hidden">
6665</div>
6666</div>
6667</div>
6668<div class="okeReviews-reviews-alert okeReviews-reviews-alert--top okeReviews-alert okeReviews-alert--top js-okeReviews-topAlert" aria-hidden="true">
6669<div class="okeReviews-reviews-alert-inner okeReviews-alert-inner js-okeReviews-alertInner">
6670</div>
6671</div><div class="okeReviews-reviews-main js-okeReviews-reviews-main">
6672<div class="okeReviews-reviews-review">
6673<article data-oke-reviews-version="2.19.0" class="okeReviews-review js-okeReviews-review" data-oke-reviews-review-id="3b3b17a6-6fd0-4f40-a048-749a6b5d594d" data-oke-reviews-reviewer-name="Brett o."
6674 data-oke-ga-click-label="WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)" 
6675>
6676<div class="okeReviews-review-side">
6677<div class="okeReviews-review-side-inner">
6678<div class="okeReviews-review-reviewer">
6679<div class="okeReviews-review-reviewer-profile js-okeReviews-reviewerProfile">
6680<div class="okeReviews-review-reviewer-profile-avatar">
6681<div class="okeReviews-avatar okeReviews-avatar--reviewer ">
6682<div class="okeReviews-avatar-placeholder" aria-hidden="true">
6682BO</div>
6683</div>
6684</div>
6685<div class="okeReviews-review-reviewer-profile-details">
6686<div class="okeReviews-review-reviewer-profile-details-inner">
6687<span class="okeReviews-review-reviewer-profile-name" aria-hidden="true">Brett o.</span>
6688<span class="okeReviews-a11yText">Reviewed by Brett o.</span>
6689</div>
6690<div class="okeReviews-review-reviewer-profile-status okeReviews-review-reviewer-profile-status--verified">
6691Verified Buyer
6692</div>
6693</div>
6694</div>
6695<div class="okeReviews-review-recommendation okeReviews-review-recommendation--yes">I recommend this product</div>
6696</div>
6697</div>
6698</div>
6699<div class="okeReviews-review-primary">
6700<div class="okeReviews-review-meta js-okeReviews-reviewMeta">
6701<div class="okeReviews-review-starRating">
6702<div class="okeReviews-starRating">
6703<span class="okeReviews-a11yText">Rated 5 out of 5</span>
6704<span class="okeReviews-starRating-indicator" role="presentation">
6705<span class="okeReviews-starRating-indicator-layer"></span>
6706<span class="okeReviews-starRating-indicator-layer okeReviews-starRating-indicator-layer--foreground" style="width: 100%;"></span>
6707</span>
6708</div>
6709</div><div class="okeReviews-review-date">
6710<span class="okeReviews-a11yText">Review posted</span><span data-oke-reviews-date="2026-09-17T14:17:53.027Z"></span>
6711</div></div><div class="okeReviews-review-main js-okeReviews-reviewMain " data-oke-reviews-review-id="3b3b17a6-6fd0-4f40-a048-749a6b5d594d">
6712<h2 class="okeReviews-review-main-heading">
6713They are exactly what I expected
6714</h2>
6715<div class="okeReviews-review-main-content">
6716<div class="js-okeReviews-reviewContent okeReviews-review-main-content-body">
6717<p>Fit well and provide ample displacement. If you go with bags like this I found out about siphoning on the lake. I had to install ball valves on every line, 1 way check valves would have worked as well on the fill and. I’d fill and they would drain out so just something to be aware off, my boat has aerator style pumps for fill and drain. </p>
6718</div>
6719<div class="okeReviews-review-main-content-controls">
6720<span class="okeReviews-review-main-content-loader">Loading...</span>
6721<button class="okeReviews-review-main-content-untruncate okeReviews-review-main-content-readMore js-okeReviews-readMore" aria-hidden="true">Read more</button>
6722</div>
6723</div>
6724</div>
6725<div class="okeReviews-review-helpful okeReviews-helpful js-okeReviews-reviewHelpful">
6726<span class="okeReviews-review-helpful-question okeReviews-helpful-question">Was this helpful?</span>
6727<div class="okeReviews-review-helpful-vote okeReviews-helpful-vote">
6728<button class="okeReviews-review-helpful-vote-button okeReviews-review-helpful-vote-button--positive okeReviews-helpful-vote-button okeReviews-helpful-vote-button--positive js-okeReviews-review-helpful-vote-button" aria-label="Yes" aria-describedby="okeReviews-helpful-vote-counter-positive-3b3b17a6-6fd0-4f40-a048-749a6b5d594d" data-oke-reviews-vote="positive" data-oke-reviews-review-id="3b3b17a6-6fd0-4f40-a048-749a6b5d594d" data-oke-ga-click-action="Review Upvote">
6729<span id="okeReviews-helpful-vote-counter-positive-3b3b17a6-6fd0-4f40-a048-749a6b5d594d" class="okeReviews-review-helpful-vote-counter okeReviews-helpful-vote-counter">
6730<span class="js-okeReviews-review-helpful-vote-counter-positive" data-oke-reviews-review-id="3b3b17a6-6fd0-4f40-a048-749a6b5d594d">0</span> <span class="okeReviews-a11yText">people voted yes</span>
6731</span>
6732</button>
6733<button class="okeReviews-review-helpful-vote-button okeReviews-review-helpful-vote-button--negative okeReviews-helpful-vote-button okeReviews-helpful-vote-button--negative js-okeReviews-review-helpful-vote-button" aria-label="No" aria-describedby="okeReviews-helpful-vote-counter-negative-3b3b17a6-6fd0-4f40-a048-749a6b5d594d" data-oke-reviews-vote="negative" data-oke-reviews-review-id="3b3b17a6-6fd0-4f40-a048-749a6b5d594d" data-oke-ga-click-action="Review Downvote">
6734<span id="okeReviews-helpful-vote-counter-negative-3b3b17a6-6fd0-4f40-a048-749a6b5d594d" class="okeReviews-review-helpful-vote-counter okeReviews-helpful-vote-counter">
6735<span class="js-okeReviews-review-helpful-vote-counter-negative" data-oke-reviews-review-id="3b3b17a6-6fd0-4f40-a048-749a6b5d594d">0</span> <span class="okeReviews-a11yText">people voted no</span>
6736</span>
6737</button>
6738</div>
6739</div>
6740
6741</div>
6742</article>
6743</div>
6744<div class="okeReviews-reviews-review">
6745<article data-oke-reviews-version="2.19.0" class="okeReviews-review js-okeReviews-review" data-oke-reviews-review-id="dcac79ee-680c-49ef-9883-55dc2f26515f" data-oke-reviews-reviewer-name="Brian"
6746 data-oke-ga-click-label="WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)" 
6747>
6748<div class="okeReviews-review-side">
6749<div class="okeReviews-review-side-inner">
6750<div class="okeReviews-review-reviewer">
6751<div class="okeReviews-review-reviewer-profile js-okeReviews-reviewerProfile">
6752<div class="okeReviews-review-reviewer-profile-avatar">
6753<div class="okeReviews-avatar okeReviews-avatar--reviewer ">
6754<div class="okeReviews-avatar-placeholder" aria-hidden="true">B</div>
6755</div>
6756</div>
6757<div class="okeReviews-review-reviewer-profile-details">
6758<div class="okeReviews-review-reviewer-profile-details-inner">
6759<span class="okeReviews-review-reviewer-profile-name" aria-hidden="true">Brian</span>
6760<span class="okeReviews-a11yText">Reviewed by Brian</span>
6761</div>
6762</div>
6763</div>
6764<div class="okeReviews-review-recommendation okeReviews-review-recommendation--yes">I recommend this product</div>
6765</div>
6766</div>
6767</div>
6768<div class="okeReviews-review-primary">
6769<div class="okeReviews-review-meta js-okeReviews-reviewMeta">
6770<div class="okeReviews-review-starRating">
6771<div class="okeReviews-starRating">
6772<span class="okeReviews-a11yText">Rated 4 out of 5</span>
6773<span class="okeReviews-starRating-indicator" role="presentation">
6774<span class="okeReviews-starRating-indicator-layer"></span>
6775<span class="okeReviews-starRating-indicator-layer okeReviews-starRating-indicator-layer
6775--foreground" style="width: 80%;"></span>
6776</span>
6777</div>
6778</div><div class="okeReviews-review-date">
6779<span class="okeReviews-a11yText">Review posted</span><span data-oke-reviews-date="2026-09-02T00:34:49.000Z"></span>
6780</div></div><div class="okeReviews-review-main js-okeReviews-reviewMain " data-oke-reviews-review-id="dcac79ee-680c-49ef-9883-55dc2f26515f">
6781<h2 class="okeReviews-review-main-heading">
67824 Stars
6783</h2>
6784<div class="okeReviews-review-main-content">
6785<div class="js-okeReviews-reviewContent okeReviews-review-main-content-body">
6786<p>Thoguht they came with fittinfs but definitely did not so had to order those now also</p>
6787</div>
6788<div class="okeReviews-review-main-content-controls">
6789<span class="okeReviews-review-main-content-loader">Loading...</span>
6790<button class="okeReviews-review-main-content-untruncate okeReviews-review-main-content-readMore js-okeReviews-readMore" aria-hidden="true">Read more</button>
6791</div>
6792</div>
6793</div>
6794<div class="okeReviews-review-helpful okeReviews-helpful js-okeReviews-reviewHelpful">
6795<span class="okeReviews-review-helpful-question okeReviews-helpful-question">Was this helpful?</span>
6796<div class="okeReviews-review-helpful-vote okeReviews-helpful-vote">
6797<button class="okeReviews-review-helpful-vote-button okeReviews-review-helpful-vote-button--positive okeReviews-helpful-vote-button okeReviews-helpful-vote-button--positive js-okeReviews-review-helpful-vote-button" aria-label="Yes" aria-describedby="okeReviews-helpful-vote-counter-positive-dcac79ee-680c-49ef-9883-55dc2f26515f" data-oke-reviews-vote="positive" data-oke-reviews-review-id="dcac79ee-680c-49ef-9883-55dc2f26515f" data-oke-ga-click-action="Review Upvote">
6798<span id="okeReviews-helpful-vote-counter-positive-dcac79ee-680c-49ef-9883-55dc2f26515f" class="okeReviews-review-helpful-vote-counter okeReviews-helpful-vote-counter">
6799<span class="js-okeReviews-review-helpful-vote-counter-positive" data-oke-reviews-review-id="dcac79ee-680c-49ef-9883-55dc2f26515f">0</span> <span class="okeReviews-a11yText">people voted yes</span>
6800</span>
6801</button>
6802<button class="okeReviews-review-helpful-vote-button okeReviews-review-helpful-vote-button--negative okeReviews-helpful-vote-button okeReviews-helpful-vote-button--negative js-okeReviews-review-helpful-vote-button" aria-label="No" aria-describedby="okeReviews-helpful-vote-counter-negative-dcac79ee-680c-49ef-9883-55dc2f26515f" data-oke-reviews-vote="negative" data-oke-reviews-review-id="dcac79ee-680c-49ef-9883-55dc2f26515f" data-oke-ga-click-action="Review Downvote">
6803<span id="okeReviews-helpful-vote-counter-negative-dcac79ee-680c-49ef-9883-55dc2f26515f" class="okeReviews-review-helpful-vote-counter okeReviews-helpful-vote-counter">
6804<span class="js-okeReviews-review-helpful-vote-counter-negative" data-oke-reviews-review-id="dcac79ee-680c-49ef-9883-55dc2f26515f">0</span> <span class="okeReviews-a11yText">people voted no</span>
6805</span>
6806</button>
6807</div>
6808</div>
6809<div class="okeReviews-review-shopBadge okeReviews-shopBadge">
6810<svg width="100" height="21" viewBox="0 0 173 36" fill="none" xmlns="http://www.w3.org/2000/svg">
6811<path d="M0 7.99999C0 3.58172 3.58172 0 7.99999 0H164.731C169.149 0 172.731 3.58172 172.731 7.99999V28C172.731 32.4183 169.149 36 164.731 36H7.99998C3.58171 36 0 32.4183 0 28V7.99999Z" fill="#F0F0F0"/>
6812<path d="M16.3636 25H13.7636L8.62359 9.40002H11.0436L15.0636 22.52L19.0836 9.40002H21.4836L16.3636 25ZM26.2372 25.32C23.1572 25.32 21.0972 23.02 21.0972 19.78C21.0972 16.58 23.0972 14.28 26.2372 14.28C28.7772 14.28 30.9172 16.22 30.9172 19.66V20.48H23.3372C23.4772 22.36 24.4172 23.58 26.2372 23.58C27.5572 23.58 28.4572 22.8 28.6372 22.06H30.8172C30.4972 23.84 28.6772 25.32 26.2372 25.32ZM23.3572 18.98H28.7172C28.6572 17.3 27.6372 16.16 26.1772 16.16C24.4772 16.16 23.5972 17.26 23.3572 18.98ZM35.4331 25H33.3331V14.6H35.4331V17.3C36.1131 15.18 37.5331 14.48 39.6331 14.48V16.56C37.1731 16.56 35.4331 17.3 35.4331 19.9V25ZM42.3428 12.38C41.4628 12.38 40.8628 11.78 40.8628 10.9C40.8628 10.02 41.4628 9.44002 42.3428 9.44002C43.2428 9.44002 43.8228 10.02 43.8228 10.9C43.8228 11.78 43.2428 12.38 42.3428 12.38ZM43.4428 25H41.2628V14.6H43.4428V25ZM49.8404 25H47.6604V16.48H45.4004V14.6H47.6604V13.42C47.6604 10.52 48.9604 9.04002 51.6404 9.20002L52.4004 9.22002V11.1H52.0004C50.4604 11.1 49.8604 11.66 49.8404 13.18V14.6H52.4204V16.48H49.8404V25ZM55.5068 12.38C54.6268 12.38 54.0268 11.78 54.0268 10.9C54.0268 10.02 54.62
681268 9.44002 55.5068 9.44002C56.4068 9.44002 56.9868 10.02 56.9868 10.9C56.9868 11.78 56.4068 12.38 55.5068 12.38ZM56.6068 25H54.4268V14.6H56.6068V25ZM64.2644 25.32C61.1845 25.32 59.1245 23.02 59.1245 19.78C59.1245 16.58 61.1245 14.28 64.2644 14.28C66.8044 14.28 68.9444 16.22 68.9444 19.66V20.48H61.3645C61.5045 22.36 62.4445 23.58 64.2644 23.58C65.5844 23.58 66.4844 22.8 66.6644 22.06H68.8444C68.5244 23.84 66.7044 25.32 64.2644 25.32ZM61.3845 18.98H66.7444C66.6844 17.3 65.6644 16.16 64.2044 16.16C62.5045 16.16 61.6245 17.26 61.3845 18.98ZM75.6785 25.32C72.8985 25.32 71.0385 23.12 71.0385 19.76C71.0385 16.44 72.8985 14.28 75.6785 14.28C77.0185 14.28 78.5385 15.04 79.2585 16.24V9.20002H81.4385V25H79.2585V23.34C78.5585 24.56 77.0185 25.32 75.6785 25.32ZM76.1385 23.44C78.0385 23.44 79.3185 22 79.3185 19.78C79.3185 17.58 78.0385 16.16 76.1385 16.16C74.3985 16.16 73.2385 17.58 73.2385 19.78C73.2385 22 74.3985 23.44 76.1385 23.44ZM95.0691 25.32C93.7291 25.32 92.1891 24.56 91.4891 23.34V25H89.3091V9.20002H91.4891V16.24C92.2091 15.04 93.7291 14.28 95.0691 14.28C97.8491 14.28 99.7091 16.44 99.7091 19.76C99.7091 23.12 97.8491 25.32 95.0691 25.32ZM94.6091 23.44C96.3491 23.44 97.5091 22 97.5091 19.78C97.5091 17.58 96.3491 16.16 94.6091 16.16C92.7091 16.16 91.4291 17.58 91.4291 19.78C91.4291 22 92.7091 23.44 94.6091 23.44ZM101.559 29V27.1C103.059 27.1 103.719 26.86 104.319 25.28L100.559 14.6H102.919L105.459 22.58L107.979 14.6H110.299L106.379 25.68C105.419 28.4 104.179 29 101.559 29Z" fill="black"/>
6813<g clip-path="url(#clip0_14247_21265)">
6814<path d="M121.804 17.9961C119.846 17.572 118.973 17.406 118.973 16.6526C118.973 15.9439 119.564 15.5909 120.744 15.5909C121.783 15.5909 122.542 16.044 123.101 16.9318C123.143 17.0003 123.23 17.024 123.301 16.9871L125.505 15.8754C125.584 15.8359 125.613 15.7358 125.568 15.6594C124.653 14.0762 122.964 13.2095 120.739 13.2095C117.816 13.2095 116 14.6478 116 16.9344C116 19.3633 118.211 19.9771 120.172 20.4012C122.134 20.8254 123.009 20.9913 123.009 21.7448C123.009 22.4982 122.371 22.8538 121.098 22.8538C119.922 22.8538 119.05 22.3164 118.522 21.2732C118.483 21.1968 118.391 21.1652 118.314 21.2047L116.116 22.2927C116.04 22.3322 116.008 22.4244 116.047 22.5035C116.92 24.2553 118.71 25.2405 121.1 25.2405C124.145 25.2405 125.984 23.8259 125.984 21.4682C125.984 19.1104 123.762 18.4255 121.804 18.0014V17.9961Z" fill="black"/>
6815<path d="M133.613 13.2096C132.364 13.2096 131.259 13.6521 130.466 14.4398C130.416 14.4872 130.334 14.453 130.334 14.3845V9.3555C130.334 9.26857 130.266 9.20007 130.179 9.20007H127.422C127.335 9.20007 127.266 9.26857 127.266 9.3555V24.964C127.266 25.0509 127.335 25.1194 127.422 25.1194H130.179C130.266 25.1194 130.334 25.0509 130.334 24.964V18.1173C130.334 16.7949 131.349 15.7807 132.717 15.7807C134.085 15.7807 135.076 16.7738 135.076 18.1173V24.964C135.076 25.0509 135.145 25.1194 135.232 25.1194H137.989C138.076 25.1194 138.144 25.0509 138.144 24.964V18.1173C138.144 15.2406 136.257 13.2096 133.613 13.2096Z" fill="black"/>
6816<path d="M143.737 12.7618C142.24 12.7618 140.838 13.2202 139.831 13.8814C139.762 13.9262 139.739 14.0184 139.781 14.0896L140.996 16.1628C141.041 16.2365 141.136 16.2629 141.209 16.2181C141.974 15.7571 142.849 15.5174 143.742 15.5226C146.149 15.5226 147.918 17.2192 147.918 19.461C147.918 21.3709 146.502 22.7855 144.707 22.7855C143.244 22.7855 142.229 21.9346 142.229 20.7334C142.229 20.0458 142.522 19.4821 143.284 19.0843C143.363 19.0421 143.392 18.9447 143.344 18.8683L142.198 16.9294C142.161 16.8662 142.082 16.8372 142.011 16.8635C140.474 17.4325 139.396 18.8024 139.396 20.6412C139.396 23.423 141.613 25.4989 144.705 25.4989C148.316 25.4989 150.912 22.9989 150.912 19.4136C150.912 15.5701 147.891 12.7618 143.737 12.7618Z" fill="black"/>
6817<path d="M158.977 13.1858C157.583 13.1858 156.336 13.7021 155.427 14.6083C155.376 14.6584 155.295 14.6215 155.295 14.553V13.4624C155.295 13.3755 155.226 13.307 155.139 13.307H152.453C152.366 13.307 152.298 13.3755 152.298 13.4624V29.0472C152.298 29.1341 152.366 29.2026 152.453 29.2026H155.21C155.297 29.2026 155.366 29.1341 155.366 29.0472V23.9366C155.366 23.8681 155.448 23.8338 155.498 23.8786C156.404 24.7216 157.604 25.2142 158.977 25.2142C162.211 25.2142 164.734 22.5983 164.734 19.2C164.734 15.8017 162.209 13.1858 158.977 13.1858ZM158.455 22.5746C1
681756.615 22.5746 155.221 21.1125 155.221 19.1789C155.221 17.2453 156.613 15.7833 158.455 15.7833C160.298 15.7833 161.687 17.2216 161.687 19.1789C161.687 21.1363 160.316 22.5746 158.452 22.5746H158.455Z" fill="black"/>
6818</g>
6819<defs>
6820<clipPath id="clip0_14247_21265">
6821<rect width="48.7309" height="20" fill="white" transform="translate(116 9.20007)"/>
6822</clipPath>
6823</defs>
6824</svg>
6825</div>
6826</div>
6827</article>
6828</div>
6829<div class="okeReviews-reviews-review">
6830<article data-oke-reviews-version="2.19.0" class="okeReviews-review js-okeReviews-review" data-oke-reviews-review-id="d2217133-d149-477f-98b1-73fcadf93982" data-oke-reviews-reviewer-name="Brian"
6831 data-oke-ga-click-label="WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)" 
6832>
6833<div class="okeReviews-review-side">
6834<div class="okeReviews-review-side-inner">
6835<div class="okeReviews-review-reviewer">
6836<div class="okeReviews-review-reviewer-profile js-okeReviews-reviewerProfile">
6837<div class="okeReviews-review-reviewer-profile-avatar">
6838<div class="okeReviews-avatar okeReviews-avatar--reviewer ">
6839<div class="okeReviews-avatar-placeholder" aria-hidden="true">B</div>
6840</div>
6841</div>
6842<div class="okeReviews-review-reviewer-profile-details">
6843<div class="okeReviews-review-reviewer-profile-details-inner">
6844<span class="okeReviews-review-reviewer-profile-name" aria-hidden="true">Brian</span>
6845<span class="okeReviews-a11yText">Reviewed by Brian</span>
6846</div>
6847</div>
6848</div>
6849<div class="okeReviews-review-recommendation okeReviews-review-recommendation--yes">I recommend this product</div>
6850</div>
6851</div>
6852</div>
6853<div class="okeReviews-review-primary">
6854<div class="okeReviews-review-meta js-okeReviews-reviewMeta">
6855<div class="okeReviews-review-starRating">
6856<div class="okeReviews-starRating">
6857<span class="okeReviews-a11yText">Rated 4 out of 5</span>
6858<span class="okeReviews-starRating-indicator" role="presentation">
6859<span class="okeReviews-starRating-indicator-layer"></span>
6860<span class="okeReviews-starRating-indicator-layer okeReviews-starRating-indicator-layer--foreground" style="width: 80%;"></span>
6861</span>
6862</div>
6863</div><div class="okeReviews-review-date">
6864<span class="okeReviews-a11yText">Review posted</span><span data-oke-reviews-date="2026-09-02T00:34:25.000Z"></span>
6865</div></div><div class="okeReviews-review-main js-okeReviews-reviewMain " data-oke-reviews-review-id="d2217133-d149-477f-98b1-73fcadf93982">
6866<h2 class="okeReviews-review-main-heading">
68674 Stars
6868</h2>
6869<div class="okeReviews-review-main-content">
6870<div class="js-okeReviews-reviewContent okeReviews-review-main-content-body">
6871<p>Thought it came with fittings definitely did not so had to order those also</p>
6872</div>
6873<div class="okeReviews-review-main-content-controls">
6874<span class="okeReviews-review-main-content-loader">Loading...</span>
6875<button class="okeReviews-review-main-content-untruncate okeReviews-review-main-content-readMore js-okeReviews-readMore" aria-hidden="true">Read more</button>
6876</div>
6877</div>
6878</div>
6879<div class="okeReviews-review-helpful okeReviews-helpful js-okeReviews-reviewHelpful">
6880<span class="okeReviews-review-helpful-question okeReviews-helpful-question">Was this helpful?</span>
6881<div class="okeReviews-review-helpful-vote okeReviews-helpful-vote">
6882<button class="okeReviews-review-helpful-vote-button okeReviews-review-helpful-vote-button--positive okeReviews-helpful-vote-button okeReviews-helpful-vote-button--positive js-okeReviews-review-helpful-vote-button" aria-label="Yes" aria-describedby="okeReviews-helpful-vote-counter-positive-d2217133-d149-477f-98b1-73fcadf93982" data-oke-reviews-vote="positive" data-oke-reviews-review-id="d2217133-d149-477f-98b1-73fcadf93982" data-oke-ga-click-action="Review Upvote">
6883<span id="okeReviews-helpful-vote-counter-positive-d2217133-d149-477f-98b1-73fcadf93982" class="okeReviews-review-helpful-vote-counter okeReviews-helpful-vote-counter">
6884<span class="js-okeReviews-review-helpful-vote-counter-positive" data-oke-reviews-review-id="d2217133-d149-477f-98b1-73fcadf93982">0</span> <span class="okeReviews-a11yText">people voted yes</span>
6885</span>
6886</button>
6887<button class="okeReviews-review-helpful-vote-button okeReviews-review-helpful-vote-button--negative okeReviews-helpful-vote-button okeReviews-helpful-vote-button--negative js-okeReviews-review-helpful-vote-button" aria-label="No" aria-describedby="okeReviews-helpful-vote-counter-negative-d2217133-d149-477f-98b1-73fcadf93982" data-oke-reviews-vote="negative" data-oke-reviews-review-id="d2217133-d149-477f-98b1-73fcadf93982" data-oke-ga-click-action="Review Downvote">
6888<span id="okeReviews-helpful-vote-counter-negative-d2217133-d149-477f-98b1-73fcadf93982" class="okeReviews-review-helpful-vote-counter okeReviews-helpful-vote-counter">
6889<span class="js-okeReviews-review-helpful-vote-counter-negative" data-oke-reviews-review-id="d2217133-d149-477f-98b1-73fcadf93982">0</span> <span class="okeReviews-a11yText">people voted no</span>
6890</span>
6891</button>
6892</div>
6893</div>
6894<div class="okeReviews-review-shopBadge okeReviews-shopBadge">
6895<svg width="100" height="21" viewBox="0 0 173 36" fill="none" xmlns="http://www.w3.org/2000/svg">
6896<path d="M0 7.99999C0 3.58172 3.58172 0 7.99999 0H164.731C169.149 0 172.731 3.58172 172.731 7.99999V28C172.731 32.4183 169.149 36 164.731 36H7.99998C3.58171 36 0 32.4183 0 28V7.99999Z" fill="#F0F0F0"/>
6897<path d="M16.3636 25H13.7636L8.62359 9.40002H11.0436L15.0636 22.52L19.0836 9.40002H21.4836L16.3636 25ZM26.2372 25.32C23.1572 25.32 21.0972 23.02 21.0972 19.78C21.0972 16.58 23.0972 14.28 26.2372 14.28C28.7772 14.28 30.9172 16.22 30.9172 19.66V20.48H23.3372C23.4772 22.36 24.4172 23.58 26.2372 23.58C27.5572 23.58 28.4572 22.8 28.6372 22.06
6897H30.8172C30.4972 23.84 28.6772 25.32 26.2372 25.32ZM23.3572 18.98H28.7172C28.6572 17.3 27.6372 16.16 26.1772 16.16C24.4772 16.16 23.5972 17.26 23.3572 18.98ZM35.4331 25H33.3331V14.6H35.4331V17.3C36.1131 15.18 37.5331 14.48 39.6331 14.48V16.56C37.1731 16.56 35.4331 17.3 35.4331 19.9V25ZM42.3428 12.38C41.4628 12.38 40.8628 11.78 40.8628 10.9C40.8628 10.02 41.4628 9.44002 42.3428 9.44002C43.2428 9.44002 43.8228 10.02 43.8228 10.9C43.8228 11.78 43.2428 12.38 42.3428 12.38ZM43.4428 25H41.2628V14.6H43.4428V25ZM49.8404 25H47.6604V16.48H45.4004V14.6H47.6604V13.42C47.6604 10.52 48.9604 9.04002 51.6404 9.20002L52.4004 9.22002V11.1H52.0004C50.4604 11.1 49.8604 11.66 49.8404 13.18V14.6H52.4204V16.48H49.8404V25ZM55.5068 12.38C54.6268 12.38 54.0268 11.78 54.0268 10.9C54.0268 10.02 54.6268 9.44002 55.5068 9.44002C56.4068 9.44002 56.9868 10.02 56.9868 10.9C56.9868 11.78 56.4068 12.38 55.5068 12.38ZM56.6068 25H54.4268V14.6H56.6068V25ZM64.2644 25.32C61.1845 25.32 59.1245 23.02 59.1245 19.78C59.1245 16.58 61.1245 14.28 64.2644 14.28C66.8044 14.28 68.9444 16.22 68.9444 19.66V20.48H61.3645C61.5045 22.36 62.4445 23.58 64.2644 23.58C65.5844 23.58 66.4844 22.8 66.6644 22.06H68.8444C68.5244 23.84 66.7044 25.32 64.2644 25.32ZM61.3845 18.98H66.7444C66.6844 17.3 65.6644 16.16 64.2044 16.16C62.5045 16.16 61.6245 17.26 61.3845 18.98ZM75.6785 25.32C72.8985 25.32 71.0385 23.12 71.0385 19.76C71.0385 16.44 72.8985 14.28 75.6785 14.28C77.0185 14.28 78.5385 15.04 79.2585 16.24V9.20002H81.4385V25H79.2585V23.34C78.5585 24.56 77.0185 25.32 75.6785 25.32ZM76.1385 23.44C78.0385 23.44 79.3185 22 79.3185 19.78C79.3185 17.58 78.0385 16.16 76.1385 16.16C74.3985 16.16 73.2385 17.58 73.2385 19.78C73.2385 22 74.3985 23.44 76.1385 23.44ZM95.0691 25.32C93.7291 25.32 92.1891 24.56 91.4891 23.34V25H89.3091V9.20002H91.4891V16.24C92.2091 15.04 93.7291 14.28 95.0691 14.28C97.8491 14.28 99.7091 16.44 99.7091 19.76C99.7091 23.12 97.8491 25.32 95.0691 25.32ZM94.6091 23.44C96.3491 23.44 97.5091 22 97.5091 19.78C97.5091 17.58 96.3491 16.16 94.6091 16.16C92.7091 16.16 91.4291 17.58 91.4291 19.78C91.4291 22 92.7091 23.44 94.6091 23.44ZM101.559 29V27.1C103.059 27.1 103.719 26.86 104.319 25.28L100.559 14.6H102.919L105.459 22.58L107.979 14.6H110.299L106.379 25.68C105.419 28.4 104.179 29 101.559 29Z" fill="black"/>
6898<g clip-path="url(#clip0_14247_21265)">
6899<path d="M121.804 17.9961C119.846 17.572 118.973 17.406 118.973 16.6526C118.973 15.9439 119.564 15.5909 120.744 15.5909C121.783 15.5909 122.542 16.044 123.101 16.9318C123.143 17.0003 123.23 17.024 123.301 16.9871L125.505 15.8754C125.584 15.8359 125.613 15.7358 125.568 15.6594C124.653 14.0762 122.964 13.2095 120.739 13.2095C117.816 13.2095 116 14.6478 116 16.9344C116 19.3633 118.211 19.9771 120.172 20.4012C122.134 20.8254 123.009 20.9913 123.009 21.7448C123.009 22.4982 122.371 22.8538 121.098 22.8538C119.922 22.8538 119.05 22.3164 118.522 21.2732C118.483 21.1968 118.391 21.1652 118.314 21.2047L116.116 22.2927C116.04 22.3322 116.008 22.4244 116.047 22.5035C116.92 24.2553 118.71 25.2405 121.1 25.2405C124.145 25.2405 125.984 23.8259 125.984 21.4682C125.984 19.1104 123.762 18.4255 121.804 18.0014V17.9961Z" fill="black"/>
6900<path d="M133.613 13.2096C132.364 13.2096 131.259 13.6521 130.466 14.4398C130.416 14.4872 130.334 14.453 130.334 14.3845V9.3555C130.334 9.26857 130.266 9.20007 130.179 9.20007H127.422C127.335 9.20007 127.266 9.26857 127.266 9.3555V24.964C127.266 25.0509 127.335 25.1194 127.422 25.1194H130.179C130.266 25.1194 130.334 25.0509 130.334 24.964V18.1173C130.334 16.7949 131.349 15.7807 132.717 15.7807C134.085 15.7807 135.076 16.7738 135.076 18.1173V24.964C135.076 25.0509 135.145 25.1194 135.232 25.1194H137.989C138.076 25.1194 138.144 25.0509 138.144 24.964V18.1173C138.144 15.2406 136.257 13.2096 133.613 13.2096Z" fill="black"/>
6901<path d="M143.737 12.7618C142.24 12.7618 140.838 13.2202 139.831 13.8814C139.762 13.9262 139.739 14.0184 139.781 14.0896L140.996 16.1628C141.041 16.2365 141.136 16.2629 141.209 16.2181C141.974 15.7571 142.849 15.5174 143.742 15.5226C146.149 15.5226 147.918 17.2192 147.918 19.461C147.918 21.3709 146.502 22.7855 144.707 22.7855C143.244 22.7855 142.229 21.9346 142.229 20.7334C142.229 20.0458 142.522 19.4821 143.284 19.0843C143.363 19.0421 143.392 18.9447 143.344 18.8683L142.198 16.9294C142.161 16.8662 142.082 16.8372 142.011 16.8635C140.474 17.4325 139.396 18.8024 139.396 20.6412C139.396 23.423 141.613 25.4989 144.705 25.4989C148.316 25.4989 150.912 22.9989 150.912 19.4136C150.912 15.5701 147.891 12.7618 143.737 12.7618Z" fill="black"/>
6902<path d="M158.977 13.1858C157.583 13.1858 156.336 13.7021 155.427 14.6083C155.376 14.6584 155.295 14.6215 155.295 14.553V13.4624C155.295 13.3755 155.226 13.307 155.139 13.307H152.453C152.366 13.307 152.298 13.3755 152.298 13.4624V29.0472C152.298 29.1341 152.366 29.2026 152.453 29.2026H155.21C155.297 29.2026 155.366 29.1341 155.366 29.0472V23.9366C155.366 23.8681 155.448 23.8338 155.498 23.8786C156.404 24.7216 157.604 25.2142 158.977 25.2142C162.211 25.2142 164.734 22.5983 164.734 19.2C164.734 15.8017 162.209 13.1858 158.977 13.1858ZM158.455 22.5746C1
690256.615 22.5746 155.221 21.1125 155.221 19.1789C155.221 17.2453 156.613 15.7833 158.455 15.7833C160.298 15.7833 161.687 17.2216 161.687 19.1789C161.687 21.1363 160.316 22.5746 158.452 22.5746H158.455Z" fill="black"/>
6903</g>
6904<defs>
6905<clipPath id="clip0_14247_21265">
6906<rect width="48.7309" height="20" fill="white" transform="translate(116 9.20007)"/>
6907</clipPath>
6908</defs>
6909</svg>
6910</div>
6911</div>
6912</article>
6913</div>
6914<div class="okeReviews-reviews-review">
6915<article data-oke-reviews-version="2.19.0" class="okeReviews-review js-okeReviews-review" data-oke-reviews-review-id="8d4f113b-659d-4972-833e-6e29a665f040" data-oke-reviews-reviewer-name="Ryan R."
6916 data-oke-ga-click-label="WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)" 
6917>
6918<div class="okeReviews-review-side">
6919<div class="okeReviews-review-side-inner">
6920<div class="okeReviews-review-reviewer">
6921<div class="okeReviews-review-reviewer-profile js-okeReviews-reviewerProfile">
6922<div class="okeReviews-review-reviewer-profile-avatar">
6923<div class="okeReviews-avatar okeReviews-avatar--reviewer ">
6924<div class="okeReviews-avatar-placeholder" aria-hidden="true">RR</div>
6925</div>
6926</div>
6927<div class="okeReviews-review-reviewer-profile-details">
6928<div class="okeReviews-review-reviewer-profile-details-inner">
6929<span class="okeReviews-review-reviewer-profile-name" aria-hidden="true">Ryan R.</span>
6930<span class="okeReviews-a11yText">Reviewed by Ryan R.</span>
6931</div>
6932<div class="okeReviews-review-reviewer-profile-status okeReviews-review-reviewer-profile-status--verified">
6933Verified Buyer
6934</div>
6935</div>
6936</div>
6937<div class="okeReviews-review-recommendation okeReviews-review-recommendation--no">I don&#x27;t recommend this product</div>
6938</div>
6939</div>
6940</div>
6941<div class="okeReviews-review-primary">
6942<div class="okeReviews-review-meta js-okeReviews-reviewMeta">
6943<div class="okeReviews-review-starRating">
6944<div class="okeReviews-starRating">
6945<span class="okeReviews-a11yText">Rated 1 out of 5</span>
6946<span class="okeReviews-starRating-indicator" role="presentation">
6947<span class="okeReviews-starRating-indicator-layer"></span>
6948<span class="okeReviews-starRating-indicator-layer okeReviews-starRating-indicator-layer--foreground" style="width: 20%;"></span>
6949</span>
6950</div>
6951</div><div class="okeReviews-review-date">
6952<span class="okeReviews-a11yText">Review posted</span><span data-oke-reviews-date="2024-07-28T22:40:38.456Z"></span>
6953</div></div><div class="okeReviews-review-main js-okeReviews-reviewMain " data-oke-reviews-review-id="8d4f113b-659d-4972-833e-6e29a665f040">
6954<h2 class="okeReviews-review-main-heading">
6955Wouldn’t recommend 
6956</h2>
6957<div class="okeReviews-review-main-content">
6958<div class="js-okeReviews-reviewContent okeReviews-review-main-content-body">
6959<p>It took over 4 months to receive the order for the ballast bag. The description clearly states the fittings are 1” NPT but they do not fit any other NPT fittings so you can only use specialty fittings</p>
6960</div>
6961<div class="okeReviews-review-main-content-controls">
6962<span class="okeReviews-review-main-content-loader">Loading...</span>
6963<button class="okeReviews-review-main-content-untruncate okeReviews-review-main-content-readMore js-okeReviews-readMore" aria-hidden="true">Read more</button>
6964</div>
6965</div>
6966</div>
6967<div class="okeReviews-review-helpful okeReviews-helpful js-okeReviews-reviewHelpful">
6968<span class="okeReviews-review-helpful-question okeReviews-helpful-question">Was this helpful?</span>
6969<div class="okeReviews-review-helpful-vote okeReviews-helpful-vote">
6970<button class="okeReviews-review-helpful-vote-button okeReviews-review-helpful-vote-button--positive okeReviews-helpful-vote-button okeReviews-helpful-vote-button--positive js-okeReviews-review-helpful-vote-button" aria-label="Yes" aria-describedby="okeReviews-helpful-vote-counter-positive-8d4f113b-659d-4972-833e-6e29a665f040" data-oke-reviews-vote="positive" data-oke-reviews-review-id="8d4f113b-659d-4972-833e-6e29a665f040" data-oke-ga-click-action="Review Upvote">
6971<span id="okeReviews-helpful-vote-counter-positive-8d4f113b-659d-4972-833e-6e29a665f040" class="okeReviews-review-helpful-vote-counter okeReviews-helpful-vote-counter">
6972<span class="js-okeReviews-review-helpful-vote-counter-positive" data-oke-reviews-review-id="8d4f113b-659d-4972-833e-6e29a665f040">1</span> <span class="okeReviews-a11yText">
6972person voted yes</span>
6973</span>
6974</button>
6975<button class="okeReviews-review-helpful-vote-button okeReviews-review-helpful-vote-button--negative okeReviews-helpful-vote-button okeReviews-helpful-vote-button--negative js-okeReviews-review-helpful-vote-button" aria-label="No" aria-describedby="okeReviews-helpful-vote-counter-negative-8d4f113b-659d-4972-833e-6e29a665f040" data-oke-reviews-vote="negative" data-oke-reviews-review-id="8d4f113b-659d-4972-833e-6e29a665f040" data-oke-ga-click-action="Review Downvote">
6976<span id="okeReviews-helpful-vote-counter-negative-8d4f113b-659d-4972-833e-6e29a665f040" class="okeReviews-review-helpful-vote-counter okeReviews-helpful-vote-counter">
6977<span class="js-okeReviews-review-helpful-vote-counter-negative" data-oke-reviews-review-id="8d4f113b-659d-4972-833e-6e29a665f040">0</span> <span class="okeReviews-a11yText">people voted no</span>
6978</span>
6979</button>
6980</div>
6981</div>
6982
6983</div>
6984</article>
6985</div>
6986<div class="okeReviews-reviews-review">
6987<article data-oke-reviews-version="2.19.0" class="okeReviews-review js-okeReviews-review" data-oke-reviews-review-id="ceb202ba-d0c4-4cac-8a52-210c55df5b55" data-oke-reviews-reviewer-name="Charles M."
6988 data-oke-ga-click-label="WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)" 
6989>
6990<div class="okeReviews-review-side">
6991<div class="okeReviews-review-side-inner">
6992<div class="okeReviews-review-reviewer">
6993<div class="okeReviews-review-reviewer-profile js-okeReviews-reviewerProfile">
6994<div class="okeReviews-review-reviewer-profile-avatar">
6995<div class="okeReviews-avatar okeReviews-avatar--reviewer ">
6996<div class="okeReviews-avatar-placeholder" aria-hidden="true">CM</div>
6997</div>
6998</div>
6999<div class="okeReviews-review-reviewer-profile-details">
7000<div class="okeReviews-review-reviewer-profile-details-inner">
7001<span class="okeReviews-review-reviewer-profile-name" aria-hidden="true">Charles M.</span>
7002<span class="okeReviews-a11yText">Reviewed by Charles M.</span>
7003</div>
7004<div class="okeReviews-review-reviewer-profile-status okeReviews-review-reviewer-profile-status--verified">
7005Verified Buyer
7006</div>
7007</div>
7008</div>
7009<div class="okeReviews-review-recommendation okeReviews-review-recommendation--yes">I recommend this product</div>
7010</div>
7011</div>
7012</div>
7013<div class="okeReviews-review-primary">
7014<div class="okeReviews-review-meta js-okeReviews-reviewMeta">
7015<div class="okeReviews-review-starRating">
7016<div class="okeReviews-starRating">
7017<span class="okeReviews-a11yText">Rated 5 out of 5</span>
7018<span class="okeReviews-starRating-indicator" role="presentation">
7019<span class="okeReviews-starRating-indicator-layer"></span>
7020<span class="okeReviews-starRating-indicator-layer okeReviews-starRating-indicator-layer--foreground" style="width: 100%;"></span>
7021</span>
7022</div>
7023</div><div class="okeReviews-review-date">
7024<span class="okeReviews-a11yText">Review posted</span><span data-oke-reviews-date="2024-07-05T18:31:01.072Z"></span>
7025</div></div><div class="okeReviews-review-main js-okeReviews-reviewMain " data-oke-reviews-review-id="ceb202ba-d0c4-4cac-8a52-210c55df5b55">
7026<h2 class="okeReviews-review-main-heading">
7027The extra weight that the boat needed 
7028</h2>
7029<div class="okeReviews-review-main-content">
7030<div class="js-okeReviews-reviewContent okeReviews-review-main-content-body">
7031<p>These bags gave my xt 20 the extra weight it needed to give the wave that extra height and push </p>
7032</div>
7033<div class="okeReviews-review-main-content-controls">
7034<span class="okeReviews-review-main-content-loader">Loading...</span>
7035<button class="okeReviews-review-main-content-untruncate okeReviews-review-main-content-readMore js-okeReviews-readMore" aria-hidden="true">Read more</button>
7036</div>
7037</div>
7038</div>
7039<div class="okeReviews-review-media">
7040<div class="okeReviews-mediaStrip">
7041<a href="https://media-dynamic.okendo.io/images/6e683df2-08da-4c40-a14c-c765d5257fcf/5012bf66-bacd-4218-b0d8-f0935aca39b0.jpg?d&#x3D;1600x1600" class="okeReviews-mediaStrip-item js-okeReviews-mediaStrip-item" data-oke-ga-click-action="Review Photo Click" role="button">
7042<img class="okeReviews-mediaStrip-item-media js-okeReviews-mediaStrip-media" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-oke-reviews-lazy-image-url="https://media-dynamic.okendo.io/images/6e683df2-08da-4c40-a14c-c765d5257fcf/5012bf66-bacd-4218-b0d8-f0935aca39b0.jpg?d&#x3D;120x120&amp;crop&#x3D;center" alt="Open Image by Charles M. in a modal" data-oke-reviews-review-id="ceb202ba-d0c4-4cac-8a52-210c55df5b55" data-oke-reviews-media-id="5012bf66-bacd-4218-b0d8-f0935aca39b0">
7043</a>
7044</div>
7045</div>
7046<div class="okeReviews-review-helpful okeReviews-helpful js-okeReviews-reviewHelpful">
7047<span class="okeReviews-review-helpful-question okeReviews-helpful-question">Was this helpful?</span>
7048<div class="okeReviews-review-helpful-vote okeReviews-helpful-vote">
7049<button class="okeReviews-review-helpful-vote-button okeReviews-review-helpful-vote-button--positive okeReviews-helpful-vote-button okeReviews-helpful-vote-button--positive js-okeReviews-review-helpful-vote-button" aria-label="Yes" aria-describedby="okeReviews-helpful-vote-counter-positive-ceb202ba-d0c4-4cac-8a52-210c55df5b55" data-oke-reviews-vote="positive" data-oke-reviews-review-id="ceb202ba-d0c4-4cac-8a52-210c55df5b55" data-oke-ga-click-action="Review Upvote">
7050<span id="okeReviews-helpful-vote-counter-positive-ceb202ba-d0c4-4cac-8a52-210c55df5b55" class="okeReviews-review-helpful-vote-counter okeReviews-helpful-vote-counter">
7051<span class="js-okeReviews-review-helpful-vote-counter-positive" data-oke-reviews-review-id="ceb202ba-d0c4-4cac-8a52-210c55df5b55">0</span> <span class="okeReviews-a11yText">people voted yes</span>
7052</span>
7053</button>
7054<button class="okeReviews-review-helpful-vote-button okeReviews-review-helpful-vote-button--negative okeReviews-helpful-vote-button okeReviews-helpful-vote-button--negative js-okeReviews-review-helpful-vote-button" aria-label="No" aria-describedby="okeReviews-helpful-vote-counter-negative-ceb202ba-d0c4-4cac-8a52-210c55df5b55" data-oke-reviews-vote="negative" data-oke-reviews-review-id="ceb202ba-d0c4-4cac-8a52-210c55df5b55" data-oke-ga-click-action="Review Downvote">
7055<span id="okeReviews-helpful-vote-counter-negative-ceb202ba-d0c4-4cac-8a52-210c55df5b55" class="okeReviews-review-helpful-vote-counter okeReviews-helpful-vote-counter">
7056<span class="js-okeReviews-review-helpful-vote-counter-negative" data-oke-reviews-review-id="ceb202ba-d0c4-4cac-8a52-210c55df5b55">0</span> <span class="okeReviews-a11yText">people voted no</span>
7057</span>
7058</button>
7059</div>
7060</div>
7061
7062</div>
7063</article>
7064</div>
7065</div>
7066<div class="okeReviews-reviews-alert okeReviews-reviews-alert--bottom okeReviews-alert okeReviews-alert--bottom js-okeReviews-bottomAlert" aria-hidden="true">
7067<div class="okeReviews-reviews-alert-inner okeReviews-alert-inner js-okeReviews-alertInner">
7068</div>
7069</div><div class="okeReviews-reviews-footer js-okeReviews-footer js-okeReviews-reviews-footer is-okeReviews-hidden">
7070<button class="okeReviews-reviews-showMore okeReviews-showMore js-okeReviews-showMore" data-oke-reviews-next-uri="/stores/6e683df2-08da-4c40-a14c-c765d5257fcf/products/shopify-7759285649573/reviews?limit&#x3D;5&amp;orderBy&#x3D;date%20desc&amp;lastEvaluated&#x3D;%7B%22reviewId%22%3A%22ceb202ba-d0c4-4cac-8a52-210c55df5b55%22%2C%22subscriberId_productId%22%3A%226e683df2-08da-4c40-a14c-c765d5257fcf%3Ashopify-7759285649573%22%2C%22subscriberId%22%3A%226e683df2-08da-4c40-a14c-c765d5257fcf%22%2C%22dateCreated%22%3A%222024-07-05T18%3A31%3A01.072Z%22%7D" data-oke-ga-click-action="Review Load More">Show more</button>
7071</div>
7072</div>
7073</div>
7074</div>
7075</div>
7076<script>
7077!function(){function e(e){var d=e.getBoundingClientRect().width;d>=i.s&&d<i.m&&e.classList.add(s.m),d<i.m||e.classList.add(s.l)}var i={s:640,m:960},s={m:"is-okeReviews-reviewsWidget-medium",l:"is-okeReviews-reviewsWidget-large"};e(document.querySelector(".js-okeReviews-reviewsWidget"))}();
7078</script>
7078
7079</div>
7080                </div>
7081              </div>
7082            </div>
7083          </s-accordion>
7084          <s-accordion
7085            class="accordion product-description-content border-t border-gray border-solid desktop:pt-16"
7086            js-accordion
7087          >
7088            <div class="accordion-item desktop:pt-[203px] desktop:mt-[-203px]" js-accordion-item>
7089              <button
7090                id="product-faq"
7091                class="accordion-header product-description-content__header py-16 text-[24px] font-300 flex justify-between items-center desktop:pointer-events-none desktop:pt-[68px] desktop:mt-[-68px]"
7092                aria-expanded="true"
7093                aria-controls="product-faq-content"
7094                js-accordion-header
7095              >
7096                <span>Frequently Asked Questions</span>
7097                <div class="product-description-content__icon-carat w-20 h-auto mr-16 flex justify-between items-center desktop:hidden">
7098                  <svg class="icon icon--carat-down" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 9.14 5.24">
7099	
7100	<path d="M8.94.2a.69.69,0,0,0-1,0L4.57,3.61,1.16.2a.67.67,0,0,0-1,0,.67.67,0,0,0,0,1L4.08,5a.69.69,0,0,0,.48.2A.67.67,0,0,0,5,5l3.9-3.88A.69.69,0,0,0,8.94.2Z" />
7101</svg>
7102                </div>
7103              </button>
7104              <div
7105                id="product-faq-content"
7106                class="accordion-content rte text-16 border-b border-solid border-gray desktop:h-full"
7107                aria-hidden="false"
7108                js-accordion-content
7109              >
7110                <div class="mb-16">
7111                  <div data-oke-reviews-qanda data-oke-reviews-product-id="shopify-7759285649573"></div>
7112                </div>
7113              </div>
7114            </div>
7115          </s-accordion>
7116        </div>
7117        
7118        <div class="product__social-sharing py-32">
7119          <p class="text-[24px] font-300">Share this product with others.</p>
7120          <nav class="product__social w-full mt-16 grid grid-cols-[repeat(4,44px)] gap-8 justify-start">
7121  <a href="//www.facebook.com/sharer.php?u=https://www.wakemakers.com/products/wakemakers-rear-lbs-ballast-bag" target="_blank" rel="noopener noreferrer" class="product__social text-white block w-[44px] h-[44px] p-12 bg-black text-[0px] text-center focus:text-blue desktop:hover:text-blue" title="Facebook" aria-label="Facebook"><svg class="icon icon--facebook" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 264 512">
7122  
7123  <path d="M215.8 85H264V3.6C255.7 2.5 227.1 0 193.8 0 124.3 0 76.7 42.4 76.7 120.3V192H0v91h76.7v229h94V283h73.6l11.7-91h-85.3v-62.7c0-26.3 7.3-44.3 45.1-44.3z" />
7124</svg></a>
7125  <a href="//twitter.com/share?text=WakeMAKERS%20UniversalFIT%20Rear%20Locker%20Ballast%20Bags%20(Multiple%20Sizes)&amp;url=https://www.wakemakers.com/products/wakemakers-rear-lbs-ballast-bag" target="_blank"" target="_blank" rel="noopener noreferrer" class="product__social text-white block w-[44px] h-[44px] p-12 bg-black text-[0px] text-center focus:text-blue desktop:hover:text-blue" title="Twitter" aria-label="Twitter"><svg class="icon icon--twitter" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
7126  
7127  <path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z" />
7128</svg></a>
7129  <a href="//pinterest.com/pin/create/button/?url=https://www.wakemakers.com/products/wakemakers-rear-lbs-ballast-bag}&amp;media=//www.wakemakers.com/cdn/shop/files/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8_1024x1024.jpg?v=1731575349&amp;description=WakeMAKERS%20UniversalFIT%20Rear%20Locker%20Ballast%20Bags%20(Multiple%20Sizes)" target="_blank" rel="noopener noreferrer" class="product__social text-white block w-[44px] h-[44px] p-12 bg-black text-[0px] text-center focus:text-blue desktop:hover:text-blue" title="Pinterest" aria-label="Pinterest"><svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-pinterest" viewBox="0 0 17 18">
7130  <path fill="currentColor" d="M8.48.58a8.42 8.42 0 015.9 2.45 8.42 8.42 0 011.33 10.08 8.28 8.28 0 01-7.23 4.16 8.5 8.5 0 01-2.37-.32c.42-.68.7-1.29.85-1.8l.59-2.29c.14.28.41.52.8.73.4.2.8.31 1.24.31.87 0 1.65-.25 2.34-.75a4.87 4.87 0 001.6-2.05 7.3 7.3 0 00.56-2.93c0-1.3-.5-2.41-1.49-3.36a5.27 5.27 0 00-3.8-1.43c-.93 0-1.8.16-2.58.48A5.23 5.23 0 002.85 8.6c0 .75.14 1.41.43 1.98.28.56.7.96 1.27 1.2.1.04.19.04.26 0 .07-.03.12-.1.15-.2l.18-.68c.05-.15.02-.3-.11-.45a2.35 2.35 0 01-.57-1.63A3.96 3.96 0 018.6 4.8c1.09 0 1.94.3 2.54.89.61.6.92 1.37.92 2.32 0 .8-.11 1.54-.33 2.21a3.97 3.97 0 01-.93 1.62c-.4.4-.87.6-1.4.6-.43 0-.78-.15-1.06-.47-.27-.32-.36-.7-.26-1.13a111.14 111.14 0 01.47-1.6l.18-.73c.06-.26.09-.47.09-.65 0-.36-.1-.66-.28-.89-.2-.23-.47-.35-.83-.35-.45 0-.83.2-1.13.62-.3.41-.46.93-.46 1.56a4.1 4.1 0 00.18 1.15l.06.15c-.6 2.58-.95 4.1-1.08 4.54-.12.55-.16 1.2-.13 1.94a8.4 8.4 0 01-5-7.65c0-2.3.81-4.28 2.44-5.9A8.04 8.04 0 018.48.57z">
7131</svg>
7132</a>
7133</nav>
7134        </div>
7135      </div>
7136      <!-- .product__description-container -->
7137
7138      <button
7139        class="product__back-to-top hidden desktop:block fixed w-[180px] opacity-0 transition-opacity z-[2] bottom-12 right-12"
7140        js-back-to-top
7141      >
7142        <?xml version="1.0" encoding="utf-8"?>
7143<!-- Generator: Adobe Illustrator 26.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
7144<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
7145	 viewBox="0 0 612 792" style="enable-background:new 0 0 612 792;" xml:space="preserve">
7146<g id="Layer_2">
7147	<g>
7148		<path class="fill-[#0199FF]" d="M260,519.39v-27.46h-9.31v-6.45h26.31v6.45h-9.31v27.46H260z"/>
7149		<path class="fill-[#0199FF]" d="M294.64,520.01c-2.29,0-4.38-0.41-6.27-1.22c-1.89-0.81-3.51-1.98-4.86-3.51c-1.35-1.52-2.4-3.38-3.15-5.56
7150			c-0.75-2.18-1.12-4.66-1.12-7.44c0-2.77,0.37-5.24,1.12-7.41c0.75-2.17,1.79-3.99,3.15-5.46c1.35-1.47,2.97-2.6,4.86-3.38
7151			c1.89-0.78,3.98-1.17,6.27-1.17s4.38,0.39,6.27,1.17c1.89,0.78,3.51,1.92,4.86,3.41c1.35,1.49,2.4,3.32,3.15,5.49
7152			c0.75,2.17,1.12,4.62,1.12,7.36c0,2.77-0.37,5.25-1.12,7.44c-0.75,2.18-1.79,4.04-3.15,5.56c-1.35,1.53-2.97,2.7-4.86,3.51
7153			C299.01,519.6,296.92,520.01,294.64,520.01z M294.64,513.41c2.32,0,4.16-1,5.51-2.99c1.35-1.99,2.03-4.71,2.03-8.14
7154			c0-3.4-0.68-6.05-2.03-7.96c-1.35-1.91-3.19-2.86-5.51-2.86c-2.32,0-4.16,0.95-5.51,2.86c-1.35,1.91-2.03,4.56-2.03,7.96
7155			c0,3.43,0.68,6.15,2.03,8.14C290.48,512.41,292.31,513.41,294.64,513.41z"/>
7156		<path class="fill-[#0199FF]" d="M316.42,519.39v-33.9h11.65c1.87,0,3.62,0.18,5.25,0.55c1.63,0.36,3.05,0.97,4.26,1.82
7157			c1.21,0.85,2.17,1.98,2.89,3.38c0.71,1.4,1.07,3.13,1.07,5.17c0,1.98-0.36,3.69-1.07,5.15c-0.71,1.46-1.67,2.65-2.89,3.59
7158			c-1.21,0.94-2.62,1.63-4.21,2.08c-1.59,0.45-3.29,0.68-5.1,0.68h-4.21v11.49H316.42z M324.07,501.81h3.74
7159			c4.16,0,6.24-1.8,6.24-5.41c0-1.77-0.55-3.02-1.66-3.74c-1.11-0.73-2.7-1.09-4.78-1.09h-3.54V501.81z"/>
7160	</g>
7161	<path class="fill-[#0199FF]" d="M425.5,651.17c-25.42,0-60.22-12.15-76-26.53c-12.95-11.81-27.03-29.16-33.24-68.38l7.9-1.25
7162		c4.69,29.64,13.59,48.1,30.72,63.71c14.54,13.25,46.87,24.44,70.61,24.44V651.17z"/>
7163	<path class="fill-[#0199FF]" d="M170.72,651.11v-8c23.74,0,56.07-11.19,70.61-24.44c17.13-15.62,26.04-34.08,30.72-63.71l7.9,1.25
7164		c-6.2,39.21-20.28,56.57-33.24,68.38C230.94,638.96,196.13,651.11,170.72,651.11z"/>
7165	<path class="fill-[#0199FF]" d="M316.55,633.92c-7.88-22.11-12.31-45.42-14.35-75.55l-3.69,0.25l-4.51-0.3c-2.04,30.14-6.46,53.44-14.35,75.55
7166		c-7.33,20.57-19.13,37.83-45.09,65.98l5.88,5.42c26.78-29.03,39.01-47.02,46.75-68.72c4.81-13.5,8.37-27.4,10.9-42.88
7167		c2.54,15.51,6.1,29.43,10.91,42.94c7.74,21.7,19.97,39.68,46.75,68.72l5.88-5.42C335.68,671.75,323.88,654.49,316.55,633.92z"/>
7168</g>
7169<g id="Layer_3">
7170	<g>
7171		<path class="fill-[#ECEFF1]" d="M298.52,299.15l-39.15,0.38c-25.79,0.25-32.3-3.81-32.57,22.39c-0.26,26.2-0.89,87.78-0.89,87.78
7172			c2.55,2.68,6.5,5.34,32.29,5.09l39.15-0.38l-2.46,0.02l39.15-0.38c25.79-0.25,29.8-2.99,32.4-5.72c0,0,0.73-72.04,0.87-86.3
7173			c0.14-14.27-6.29-26.5-32.11-23.24l-39.15,0.38L298.52,299.15z"/>
7174		<path class="fill-[#D4D9DD]" d="M295.68,234.75h-37.49c-24.7,0-30.98-4.11-30.98,22.03s0,87.58,0,87.58c2.47,2.7,6.28,5.4,30.98,5.4h37.49
7175			h-2.36h37.49c24.7,0,29.51-2.7,31.98-5.4c0,0-1-71.87-1-86.1c0-14.23-6.28-26.5-30.98-23.5h-37.49H295.68z"/>
7176		<path class="fill-[#D4D9DD]" d="M294.61,450.05c-82.96,0-82.81-24.82-81.57-63.84c0.17-5.35,0.36-10.96,0.36-16.81l11.63,16.47
7177			c0-3.64,22.67-2.43,27.91-0.65c6.05,2.05,4.92,10.95,11.12,14.47c8.09,4.59,30.56,4.47,30.56,4.47h-0.21
7178			c0,0,21.77,0.13,30.56-4.47c6.32-3.3,5.37-11,10.68-14.56c3.68-2.47,28.09-2.71,28.09,0.93l12.21-16.65
7179			c0,5.85,0.19,11.47,0.36,16.81c1.24,39.01,1.39,63.84-81.57,63.84"/>
7180		<path class="fill-[#7B8084]" d="M237.47,246.4c0,0-10.08,11.74-10.08,40.21l-0.18,60.74l0.3,66.07c0,0,0.03,4.67,0.05,9.35
7181			c0.02,4.67-13.54-2.51-14.28-16.32c-0.49-9.28,0.04-21.31,0.04-37.02l-1.58-131.76c-1.14-70.63,31.64-106.39,56.57-126.73l0,0
7182			c0.93-0.76,1.92-1.48,2.85-2.23c2.8-2.26,11.23-8.96,23.44-19.36h0.11c12.21,10.4,20.64,17.1,23.44,19.36
7183			c0.93,0.75,1.92,1.47,2.85,2.23l0,0c24.93,20.34,57.71,56.1,56.57,126.73l-1.58,131.76c0,15.71,0.53,27.74,0.04,37.02
7184			c-0.74,13.81-14.3,20.99-14.28,16.32c0.02-4.67,0.05-9.35,0.05-9.35l0.3-66.07l-0.18-60.74c0-28.47-10.05-40.35-10.05-40.35
7185			l-27.83-13.26l-76.33,6.07L237.47,246.4z"/>
7186		<path class="fill-white" d="M251.77,346.66c-17.44,0.84-19.67-3.21-19.67-17.86l1-18h17.56c16.88,0,11.29,8.7,18.98,9.21
7187			c5.85,0.38,7.12-7.4,16.33-7.4h16.47c9.21,0,10.48,7.78,16.33,7.4c7.69-0.51,2.09-9.21,18.98-9.21h17.56l1,18
7188			c0,14.65-2.23,18.7-19.67,17.86H251.77z"/>
7189		<ellipse class="fill-[#7B8084]" cx="275.01" cy="240.93" rx="6.21" ry="4.29"/>
7190		<ellipse class="fill-[#7B8084]" cx="314" cy="240.93" rx="6.21" ry="4.29"/>
7191		<path class="fill-[#787D81]" d="M295.68,354.75h-37.49c-24.7,0-30.98-7.4-30.98-7.4v-3c2.47,2.7,6.28,5.4,30.98,5.4h37.49h-2.36h37.49
7192			c24.7,0,29-3.29,31.47-5.99v3c0,0-6.77,4.99-31.47,7.99h-37.49H295.68z"/>
7193		<ellipse class="fill-white" cx="336.05" cy="244.1" rx="10.19" ry="6.84"/>
7194		<g>
7195			<path class="fill-[#ECEFF1]" d="M247.44,260.38c0,0-0.08-3.51,4.33-4.23c0.28-0.05,12.7,0,12.7,0c4.47,0,4.33,4.23,4.33,4.23v24.53
7196				c0,0-21.63,0.28-21.35,0C247.73,284.63,247.44,260.38,247.44,260.38z"/>
7197			<path class="fill-[#B3B3B3]" d="M253.52,285.29c-6.18,0-6.24-0.14-6.3-0.28l-0.07-0.16l0.08-0.08c0.17-1.06,0.08-15.09-0.03-24.4l0,0
7198				c0-0.12,0.02-3.74,4.54-4.48c0.29-0.05,10.67-0.01,12.74,0c1.43,0,2.55,0.42,3.35,1.24c1.27,1.31,1.23,3.17,1.22,3.25v24.77
7199				l-0.25,0C261.52,285.26,256.7,285.29,253.52,285.29z M247.71,284.72c1.62,0.14,13.04,0.05,20.84-0.05v-24.29
7200				c0-0.02,0.04-1.74-1.08-2.9c-0.7-0.72-1.71-1.09-2.99-1.09c-4.92-0.02-12.35-0.03-12.67,0c-4.12,0.67-4.11,3.84-4.11,3.98v0
7201				C247.91,279.19,247.81,283.63,247.71,284.72z"/>
7202		</g>
7203		<g>
7204			<path class="fill-white" d="M253.21,291.54c-10.71,0-13.71-4.88-13.71-14.09v-6.84c0-2.87,0.99-5.46,2.09-6.7
7205				c4.74-5.3,8.51-4.74,8.51,4.88l0.14,9.35c0,5.28,5.44,5.02,5.44,5.02h4.36c0,0,5.44,0.23,5.44-5.02l0.14-9.35
7206				c0-9.63,3.77-10.19,8.51-4.88c1.11,1.24,2.09,3.83,2.09,6.7v6.84c0,9.21-3,14.09-13.71,14.09H253.21z"/>
7207			<path class="fill-[#B3B3B3]" d="M262.52,291.79h-9.31c-11.59,0-13.96-5.73-13.96-14.34v-6.84c0-3.08,1.08-5.66,2.16-6.86
7208				c2.46-2.75,4.6-3.88,6.21-3.27c1.82,0.7,2.74,3.49,2.74,8.32l0.14,9.34c0,1.46,0.43,2.61,1.28,3.43c1.51,1.44,3.87,1.35,3.9,1.35
7209				l4.37,0c0.04,0,2.41,0.08,3.92-1.38c0.84-0.81,1.27-1.96,1.27-3.4l0.14-9.35c0-4.82,0.92-7.62,2.74-8.31
7210				c1.6-0.61,3.75,0.52,6.21,3.27c1.07,1.2,2.16,3.79,2.16,6.86v6.84C276.48,286.06,274.1,291.79,262.52,291.79z M246.72,260.82
7211				c-1.31,0-3.03,1.13-4.94,3.26c-0.98,1.09-2.03,3.6-2.03,6.53v6.84c0,11.49,5.38,13.84,13.46,13.84h9.31
7212				c11.17,0,13.46-5.53,13.46-13.84v-6.84c0-2.93-1.05-5.44-2.03-6.53c-2.28-2.54-4.29-3.66-5.65-3.13
7213				c-1.58,0.6-2.42,3.32-2.42,7.85l-0.14,9.35c0,1.58-0.48,2.85-1.43,3.76c-1.67,1.6-4.17,1.52-4.27,1.51h-4.35
7214				c-0.09,0-2.58,0.1-4.25-1.49c-0.96-0.91-1.44-2.18-1.44-3.79l-0.14-9.34c0-4.53-0.84-7.25-2.42-7.85
7215				C247.21,260.86,246.97,260.82,246.72,260.82z"/>
7216		</g>
7217		<g>
7218			<path class="fill-[#ECEFF1]" d="M320.21,260.38c0,0-0.08-3.51,4.33-4.23c0.28-0.05,12.7,0,12.7,0c4.47,0,4.33,4.23,4.33,4.23v24.53
7219				c0,0-21.63,0.28-21.35,0C320.5,284.63,320.21,260.38,320.21,260.38z"/>
7220			<path class="fill-[#B3B3B3]" d="M326.29,285.29c-6.18,0-6.24-0.14-6.3-0.28l-0.07-0.16l0.08-0.08c0.17-1.06,0.08-15.09-0.03-24.4
7221				c0-0.12,0.02-3.74,4.54-4.48c0.29-0.05,10.67-0.01,12.74,0c1.43,0,2.55,0.42,3.35,1.24c1.27,1.31,1.23,3.17,1.22,3.25v24.77
7222				l-0.25,0C334.29,285.26,329.47,285.29,326.29,285.29z M320.48,284.72c1.62,0.14,13.04,0.05,20.84-0.05v-24.29
7223				c0-0.02,0.04-1.74-1.08-2.9c-0.7-0.72-1.71-1.09-2.99-1.09c-4.92-0.02-12.35-0.04-12.67,0c-4.12,0.67-4.11,3.84-4.11,3.98v0
7224				C320.68,279.19,320.58,283.63,320.48,284.72z"/>
7225		</g>
7226		<g>
7227			<path class="fill-white" d="M335.81,291.54c10.71,0,13.71-4.88,13.71-14.09v-6.84c0-2.87-0.99-5.46-2.09-6.7
7228				c-4.74-5.3-8.51-4.74-8.51,4.88l-0.14,9.35c0,5.28-5.44,5.02-5.44,5.02h-4.36c0,0-5.44,0.23-5.44-5.02l-0.14-9.35
7229				c0-9.63-3.77-10.19-8.51-4.88c-1.11,1.24-2.09,3.83-2.09,6.7v6.84c0,9.21,3,14.09,13.71,14.09H335.81z"/>
7230			<path class="fill-[#B3B3B3]" d="M335.81,291.79h-9.31c-11.59,0-13.96-5.73-13.96-14.34v-6.84c0-3.08,1.08-5.67,2.16-6.86
7231				c2.46-2.75,4.61-3.88,6.21-3.27c1.82,0.7,2.74,3.49,2.74,8.32l0.14,9.34c0,1.45,0.43,2.59,1.27,3.4
7232				c1.51,1.45,3.88,1.38,3.91,1.38h4.37c0.03,0,2.4,0.09,3.91-1.35c0.85-0.81,1.28-1.96,1.28-3.42l0.14-9.35
7233				c0-4.82,0.92-7.62,2.74-8.31c1.6-0.61,3.75,0.52,6.21,3.27c1.07,1.2,2.16,3.79,2.16,6.86v6.84
7234				C349.77,286.06,347.39,291.79,335.81,291.79z M320,260.82c-1.31,0-3.03,1.13-4.94,3.26c-0.98,1.09-2.03,3.6-2.03,6.53v6.84
7235				c0,11.49,5.38,13.84,13.46,13.84h9.31c11.17,0,13.46-5.53,13.46-13.84v-6.84c0-2.93-1.05-5.44-2.03-6.53
7236				c-2.28-2.54-4.29-3.66-5.65-3.13c-1.58,0.6-2.42,3.32-2.42,7.85l-0.14,9.35c0,1.6-0.48,2.87-1.44,3.78
7237				c-1.67,1.59-4.16,1.49-4.26,1.49l-4.35,0c-0.1,0-2.59,0.09-4.26-1.51c-0.95-0.91-1.43-2.17-1.43-3.76l-0.14-9.34
7238				c0-4.53-0.84-7.25-2.42-7.85C320.5,260.86,320.26,260.82,320,260.82z"/>
7239		</g>
7240		<path class="fill-white" d="M320.77,202.8h30c35.86,0-16.47-70.32-31.81-80.23h-48.9c-15.35,9.91-67.67,80.16-31.81,80.16l0,0
7241			C217.59,202.73,341.42,202.8,320.77,202.8z"/>
7242		<path class="fill-none stroke-black" style="stroke-miterlimit:10;" d="M257.12,125.01"/>
7243		<path class="fill-none stroke-black" style="stroke-miterlimit:10;" d="M257.8,121.4"/>
7244		<path class="fill-[#BBC4CB]" d="M316.17,130.24c15.35,9.91,55.26,72.56,34.6,72.56l0,0c35.86,0-16.47-70.32-31.81-80.23h-48.9
7245			c-15.35,9.91-67.67,80.16-31.81,80.16l0,0c-20.65,0,19.26-62.58,34.6-72.49H316.17z"/>
7246		<rect x="280.07" y="177.05" class="fill-[#D4D9DD]" width="28.85" height="32.16"/>
7247		<path class="fill-[#BBC4CB]" d="M301.93,179.53c5.86,0,7.02,0.94,7.02,8.06l-0.05,15.28h18.91c0,0-0.28-0.49-2.39-4.19
7248			c-2.11-3.7-1.58-19.6-1.58-19.6c0-18.28-11.06-22.88-21.91-22.88h-14.86c-10.85,0-21.91,4.6-21.91,22.88
7249			c0,0,0.98,14.86-1.07,19.74c-2.05,4.88-2.86,3.78-2.86,3.93c0,0.24,18.86,0.12,18.86,0.12l-0.05-15.28c0-7.12,1.16-8.06,7.02-8.06
7250			H301.93z"/>
7251		<path class="fill-[#1395ED]" d="M278.03,209.77c-56.51,0-54.58,24.14-54.58,53.72l0,0c0,0,6.98-13.49,18.7-19.12
7252			c7.37-3.54,20.56-3.07,35.88-3.07V209.77z"/>
7253		<path class="fill-[#1395ED]" d="M310.98,209.77c56.51,0,54.58,24.14,54.58,53.72l0,0c0,0-6.98-13.49-18.7-19.12
7254			c-7.37-3.54-20.56-3.07-35.88-3.07V209.77z"/>
7255		<path class="fill-none stroke-[#BBC4CB]" style="stroke-miterlimit: 10;" d="M261.77,202.75"/>
7256		<path class="fill-[#E1F3F5]" d="M278.03,238.03c0,3.77,0,3.53,3.74,3.53h25.46c3.74,0,3.74,0.23,3.74-3.53V211.8c0-3.77,0-3.53-3.74-3.53
7257			h-25.46c-3.74,0-3.74-0.23-3.74,3.53V238.03z"/>
7258	</g>
7259</g>
7260</svg>
7261
7262      </button>
7263      <!-- .product__back-to-top -->
7264    </div>
7265    
7265<script type="application/json" id="ProductJSON">
7266      {"id":7759285649573,"title":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)","handle":"wakemakers-rear-lbs-ballast-bag","description":"\u003cp\u003eOur exclusive WakeMAKERS UniversalFIT Rear Locker Ballast Bags are making a splash in the industry and forever changing how boaters look at ballast bags. The team of product designers and engineers at WakeMAKERS agreed that a 'one-size fits all' approach that other brands are taking isn't good enough. Seeking a better ballast solution than standard sized bags, we developed our series of UniversalFIT ballast bags, designed for specific zones of your boat and offered in incremental sizes to give you better fitment and improved wake performance.\u003c\/p\u003e\u003cp\u003eRanging from 400 to 1,200 lbs. in size, the UniversalFIT Rear Locker bags allow you to choose the dimensions of the bag in 5\" increments. The result is a much better fitting bag for your boat's rear locker, allowing you to fill to capacity and maximize added weight for the best possible wake. WakeMAKERS UniversalFIT ballast bags give you a nearly perfect fit without the expense of building a custom bag.\u003c\/p\u003e\u003cp\u003eAll WakeMAKERS ballast bags come standard with an industry-leading two year warranty. The bags are constructed of a DuraTEK, our proprietary material that is strong, durable, and puncture resistant. Once the material is cut, the bags are RF welded together with 1\" seams to ensure a clean look and watertight seal. There are five 1\" NPT ports on this ballast bag that feature a tapered thread pattern and bottom o-ring for a leak-free seal. The larger port size allows water to flow quicker for faster fill\/drain times. \u003c\/p\u003e\u003cp\u003eIf you are shopping for ballast bags to put in the rear lockers of your v-drive boat, the WakeMAKERS UniversalFIT ballast bags are a no-brainer decision. From the quality craftsmanship to the innovative design, these ballast bags are built to deliver improved wakes behind your boat.\u003c\/p\u003e\u003cp\u003eSold individually as seen here, these bags are also included our WakeMAKERS exclusive \u003ca href=\"https:\/\/www.wakemakers.com\/factory-wakeboard-ballast-upgrades\" title=\"Wakeboard boat ballast upgrade solutions\"\u003eFactory Ballast Upgrades\u003c\/a\u003e that integrate the bags into your boat's factory ballast system for automated filling\/draining. Use the dropdown tool to find available factory ballast upgrades for your year, make, and model boat.\u003c\/p\u003e\u003cp\u003eYou can also use our UniversalFIT Rear Locker ballast bags with a \u003ca href=\"https:\/\/www.wakemakers.com\/wakeboard-ballast-pumps?bag_compatibility=1533\" title=\"Shop for WakeMAKERS compatible portable ballast pumps\"\u003eportable ballast pump\u003c\/a\u003e or integrate them with a \u003ca href=\"https:\/\/www.wakemakers.com\/wakeboard-ballast-systems\" title=\"Shop for WakeMAKERS Complete Ballast Systems\"\u003eWakeMAKERS Complete Ballast System\u003c\/a\u003e for automated filling\/draining of the bags.\u003cbr\u003e\u003c\/p\u003e","published_at":"2024-12-31T00:09:21-08:00","created_at":"2022-05-31T09:09:26-07:00","vendor":"WakeMAKERS","type":"Ballast Bags","tags":["Hero"],"price":16999,"price_min":16999,"price_max":25999,"available":true,"price_varies":true,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":41675600920741,"title":"30\"L x 20\"W x 20\"H - 490lbs","option1":"30\"L x 20\"W x 20\"H - 490lbs","option2":null,"option3":null,"sku":"B0079","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 30\"L x 20\"W x 20\"H - 490lbs","public_title":"30\"L x 20\"W x 20\"H - 490lbs","options":["30\"L x 20\"W x 20\"H - 490lbs"],"price":18999,"weight":2667,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":41675600953509,"title":"45\"L x 25\"W x 20\"H - 910lbs","option1":"45\"L x 25\"W x 20\"H - 910lbs","option2":null,"option3":null,"sku":"B0080","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 45\"L x 25\"W x 20\"H - 910lbs","public_title":"45\"L x 25\"W x 20\"H - 910lbs","options":["45\"L x 25\"W x 20\"H - 910lbs"],"price":24999,"weight":3583,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":41675600986277,"title":"45\"L x 25\"W x 25\"H - 1,140lbs","option1":"45\"L x 25\"W x 25\"H - 1,140lbs","option2":null,"option3":null,"sku":"B0081","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 45\"L x 25\"W x 25\"H - 1,140lbs","public_title":"45\"L x 25\"W x 25\"H - 1,140lbs","options":["45\"L x 25\"W x 25\"H - 1,140lbs"],"price":25999,"weight":4137,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":41675601019045,"title":"45\"L x 20\"W x 25\"H - 910lbs","option1":"45\"L x 20\"W x 25\"H - 910lbs","option2":null,"option3":null,"sku":"B0082","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 45\"L x 20\"W x 25\"H - 910lbs","public_title":"45\"L x 20\"W x 25\"H - 910lbs","options":["45\"L x 20\"W x 25\"H - 910lbs"],"price":24999,"weight":4064,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}
7266,{"id":41675601051813,"title":"45\"L x 20\"W x 20\"H - 720lbs","option1":"45\"L x 20\"W x 20\"H - 720lbs","option2":null,"option3":null,"sku":"B0083","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 45\"L x 20\"W x 20\"H - 720lbs","public_title":"45\"L x 20\"W x 20\"H - 720lbs","options":["45\"L x 20\"W x 20\"H - 720lbs"],"price":22999,"weight":3379,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":41675601084581,"title":"40\"L x 25\"W x 15\"H - 610lbs","option1":"40\"L x 25\"W x 15\"H - 610lbs","option2":null,"option3":null,"sku":"B0088","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 40\"L x 25\"W x 15\"H - 610lbs","public_title":"40\"L x 25\"W x 15\"H - 610lbs","options":["40\"L x 25\"W x 15\"H - 610lbs"],"price":19999,"weight":2976,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":41675601117349,"title":"40\"L x 20\"W x 20\"H - 640lbs","option1":"40\"L x 20\"W x 20\"H - 640lbs","option2":null,"option3":null,"sku":"B0089","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 40\"L x 20\"W x 20\"H - 640lbs","public_title":"40\"L x 20\"W x 20\"H - 640lbs","options":["40\"L x 20\"W x 20\"H - 640lbs"],"price":19999,"weight":2957,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":41675601150117,"title":"40\"L x 25\"W x 20\"H - 820lbs","option1":"40\"L x 25\"W x 20\"H - 820lbs","option2":null,"option3":null,"sku":"B0090","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 40\"L x 25\"W x 20\"H - 820lbs","public_title":"40\"L x 25\"W x 20\"H - 820lbs","options":["40\"L x 25\"W x 20\"H - 820lbs"],"price":23999,"weight":3198,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":41675601182885,"title":"35\"L x 25\"W x 15\"H - 540lbs","option1":"35\"L x 25\"W x 15\"H - 540lbs","option2":null,"option3":null,"sku":"B0091","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 35\"L x 25\"W x 15\"H - 540lbs","public_title":"35\"L x 25\"W x 15\"H - 540lbs","options":["35\"L x 25\"W x 15\"H - 540lbs"],"price":18999,"weight":2622,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":41675601215653,"title":"50\"L x 25\"W x 15\"H - 740lbs","option1":"50\"L x 25\"W x 15\"H - 740lbs","option2":null,"option3":null,"sku":"B0092","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 50\"L x 25\"W x 15\"H - 740lbs","public_title":"50\"L x 25\"W x 15\"H - 740lbs","options":["50\"L x 25\"W x 15\"H - 740lbs"],"price":22999,"weight":4064,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":41675601248421,"title":"50\"L x 25\"W x 25\"H - 1,280lbs","option1":"50\"L x 25\"W x 25\"H - 1,280lbs","option2":null,"option3":null,"sku":"B0093","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 50\"L x 25\"W x 25\"H - 1,280lbs","public_title":"50\"L x 25\"W x 25\"H - 1,280lbs","options":["50\"L x 25\"W x 25\"H - 1,280lbs"],"price":24999,"weight":3896,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":41675601281189,"title":"30\"L x 25\"W x 15\"H - 460lbs","option1":"30\"L x 25\"W x 15\"H - 460lbs","option2":null,"option3":null,"sku":"B0096","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 30\"L x 25\"W x 15\"H - 460lbs","public_title":"30\"L x 25\"W x 15\"H - 460lbs","options":["30\"L x 25\"W x 15\"H - 460lbs"],"price":17999,"weight":4064,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":41675601313957,"title":"35\"L x 20\"W x 15\"H - 430lbs","option1":"35\"L x 20\"W x 15\"H - 430lbs","option2":null,"option3":null,"sku":"B0110","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 35\"L x 20\"W x 15\"H - 430lbs","public_title":"35\"L x 20\"W x 15\"H - 430lbs","options":["35\"L x 20\"W x 15\"H - 430lbs"],"price":16999,"weight":3116,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":41675601346725,"title":"30\"L x 25\"W x 25\"H - 765lbs","option1":"30\"L x 25\"W x 25\"H - 765lbs","option2":null,"option3":null,"sku":"B0121","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 30\"L x 25\"W x 25\"H - 765lbs","public_title":"30\"L x 25\"W x 25\"H - 765lbs","options":["30\"L x 25\"W x 25\"H - 765lbs"],"price":22999,"weight":4064,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":41675601379493,"title":"45\"L x 20\"W x 15\"H - 550lbs","option1":"45\"L x 20\"W x 15\"H - 550lbs","option2":null,"option3":null,"sku":"B0122","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 45\"L x 20\"W x 15\"H - 550lbs","public_title":"45\"L x 20\"W x 15\"H - 550lbs","options":["45\"L x 20\"W x 15\"H - 550lbs"],"price":18999,"weight":4064,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":41675601412261,"title":"35\"L x 25\"W x 20\"H - 710lbs","option1":"35\"L x 25\"W x 20\"H - 710lbs","option2":null,"option3":null,"sku":"B0144","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 35\"L x 25\"W x 20\"H - 710lbs","public_title":"35\"L x 25\"W x 20\"H - 710lbs","options":["35\"L x 25\"W x 20\"H - 710lbs"],"price":22999,"weight":3116,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":41675601445029,"title":"30\"L x 25\"W x 20\"H - 610lbs","option1":"30\"L x 25\"W x 20\"H - 610lbs","option2":null,"option3":null,"sku":"B0145","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 30\"L x 25\"W x 20\"H - 610lbs","public_title":"30\"L x 25\"W x 20\"H - 610lbs","options":["30\"L x 25\"W x 20\"H - 610lbs"],"price":19999,"weight":2953,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":41675601477797,"title":"50\"L x 25\"W x 20\"H - 1,020lbs","option1":"50\"L x 25\"W x 20\"H - 1,020lbs","option2":null,"option3":null,"sku":"B0146","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 50\"L x 25\"W x 20\"H - 1,020lbs","public_title":"50\"L x 25\"W x 20\"H - 1,020lbs","options":["50\"L x 25\"W x 20\"H - 1,020lbs"],"price":25999,"weight":4078,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":41675601510565,"title":"35\"L x 25\"W x 25\"H - 890lbs","option1":"35\"L x 25\"W x 25\"H - 890lbs","option2":null,"option3":null,"sku":"B0147","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 35\"L x 25\"W x 25\"H - 890lbs","public_title":"35\"L x 25\"W x 25\"H - 890lbs","options":["35\"L x 25\"W x 25\"H - 890lbs"],"price":24999,"weight":3524,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}],"images":["\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349","\/\/www.wakemakers.com\/cdn\/shop\/files\/media_5ae53fe7-bb7a-400e-90fa-f8808321d7f0.jpg?v=1731575349","\/\/www.wakemakers.com\/cdn\/shop\/files\/media_359cf2c8-823d-426a-a282-8aac94ceb420.jpg?v=1731575349","\/\/www.wakemakers.com\/cdn\/shop\/files\/media_d169f32a-a6fb-45ca-b844-c8ac49c8d783.jpg?v=1731575349"],"featured_image":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349","options":["Bag Size"],"media":[{"alt":null,"id":30354210390181,"position":1,"preview_image":{"aspect_ratio":0.999,"height":1001,"width":1000,"src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349"},"aspect_ratio":0.999,"height":1001,"media_type":"image","src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349","width":1000},{"alt":null,"id":30354210422949,"position":2,"preview_image":{"aspect_ratio":1.0,"height":1000,"width":1000,"src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_5ae53fe7-bb7a-400e-90fa-f8808321d7f0.jpg?v=1731575349"},"aspect_ratio":1.0,"height":1000,"media_type":"image","src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_5ae53fe7-bb7a-400e-90fa-f8808321d7f0.jpg?v=1731575349","width":1000},{"alt":null,"id":30354210455717,"position":3,"preview_image":{"aspect_ratio":1.0,"height":1000,"width":1000,"src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_359cf2c8-823d-426a-a282-8aac94ceb420.jpg?v=1731575349"},"aspect_ratio":1.0,"height":1000,"media_type":"image","src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_359cf2c8-823d-426a-a282-8aac94ceb420.jpg?v=1731575349","width":1000},{"alt":null,"id":30354210488485,"position":4,"preview_image":{"aspect_ratio":0.999,"height":1001,"width":1000,"src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_d169f32a-a6fb-45ca-b844-c8ac49c8d783.jpg?v=1731575349"},"aspect_ratio":0.999,"height":1001,"media_type":"image","src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_d169f32a-a6fb-45ca-b844-c8ac49c8d783.jpg?v=1731575349","width":1000}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cp\u003eOur exclusive WakeMAKERS UniversalFIT Rear Locker Ballast Bags are making a splash in the industry and forever changing how boaters look at ballast bags. The team of product designers and engineers at WakeMAKERS agreed that a 'one-size fits all' approach that other brands are taking isn't good enough. Seeking a better ballast solution than standard sized bags, we developed our series of UniversalFIT ballast bags, designed for specific zones of your boat and offered in incremental sizes to give you better fitment and improved wake performance.\u003c\/p\u003e\u003cp\u003eRanging from 400 to 1,200 lbs. in size, the UniversalFIT Rear Locker bags allow you to choose the dimensions of the bag in 5\" increments. The result is a much better fitting bag for your boat's rear locker, allowing you to fill to capacity and maximize added weight for the best possible wake. WakeMAKERS UniversalFIT ballast bags give you a nearly perfect fit without the expense of building a custom bag.\u003c\/p\u003e\u003cp\u003eAll WakeMAKERS ballast bags come standard with an industry-leading two year warranty. The bags are constructed of a DuraTEK, our proprietary material that is strong, durable, and puncture resistant. Once the material is cut, the bags are RF welded together with 1\" seams to ensure a clean look and watertight seal. There are five 1\" NPT ports on this ballast bag that feature a tapered thread pattern and bottom o-ring for a leak-free seal. The larger port size allows water to flow quicker for faster fill\/drain times. \u003c\/p\u003e\u003cp\u003eIf you are shopping for ballast bags to put in the rear lockers of your v-drive boat, the WakeMAKERS UniversalFIT ballast bags are a no-brainer decision. From the quality craftsmanship to the innovative design, these ballast bags are built to deliver improved wakes behind your boat.\u003c\/p\u003e\u003cp\u003eSold individually as seen here, these bags are also included our WakeMAKERS exclusive \u003ca href=\"https:\/\/www.wakemakers.com\/factory-wakeboard-ballast-upgrades\" title=\"Wakeboard boat ballast upgrade solutions\"\u003eFactory Ballast Upgrades\u003c\/a\u003e that integrate the bags into your boat's factory ballast system for automated filling\/draining. Use the dropdown tool to find available factory ballast upgrades for your year, make, and model boat.\u003c\/p\u003e\u003cp\u003eYou can also use our UniversalFIT Rear Locker ballast bags with a \u003ca href=\"https:\/\/www.wakemakers.com\/wakeboard-ballast-pumps?bag_compatibility=1533\" title=\"Shop for WakeMAKERS compatible portable ballast pumps\"\u003eportable ballast pump\u003c\/a\u003e or integrate them with a \u003ca href=\"https:\/\/www.wakemakers.com\/wakeboard-ballast-systems\" title=\"Shop for WakeMAKERS Complete Ballast Systems\"\u003eWakeMAKERS Complete Ballast System\u003c\/a\u003e for automated filling\/draining of the bags.\u003cbr\u003e\u003c\/p\u003e"}
7267    </script>
7267
7268  </div>
7269</main-product><s-modal
7270  id="product-warning-proposition-65"
7271  open="[js-open-proposition-warning]"
7272  close="[js-close-proposition-warning]"
7273>
7274  <div class="p-16 relative">
7275    <button class="w-16 ml-auto absolute right-12 top-12" js-close-proposition-warning>
7276      <svg class="icon icon--close" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128">
7277  
7278  <path d="M75.4,64l50.24-50.24a8.06,8.06,0,1,0-11.4-11.4L64,52.6,13.76,2.36a8.06,8.06,0,0,0-11.4,11.4h0L52.6,64,2.36,114.24a8.06,8.06,0,0,0,11.4,11.4h0L64,75.4l50.24,50.24a8.06,8.06,0,0,0,11.4-11.4Z" />
7279</svg>
7280    </button>
7281    <h3 class="text-blue">WARNING</h3>
7282    <p>
7283      This product can expose you to chemicals including DINP (Diisononyl phthalate) and DIDP (Diisodecyl phthalate)
7284      which are known to the State of California to cause cancer. For more information go to
7285      <a href="https://www.p65warnings.ca.gov">https://www.p65warnings.ca.gov</a>.
7286    </p>
7287  </div>
7288</s-modal>
7289  <s-modal
7290    id="product-features--best-price-promise"
7291    class="product-features__modal w-full overflow-scroll bg-transparent !max-w-[80vh] !max-h-[60vh]"
7292    open="[js-open-feature-best-price-promise]"
7293    close="[js-close-feature-best-price-promise]"
7294  >
7295    <div class="p-32 bg-white relative m-16 desktop:m-0">
7296      <button class="w-16 h-auto text-black absolute top-16 right-16 z-[3]" js-close-feature-best-price-promise>
7297        <svg class="icon icon--close" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128">
7298  
7299  <path d="M75.4,64l50.24-50.24a8.06,8.06,0,1,0-11.4-11.4L64,52.6,13.76,2.36a8.06,8.06,0,0,0-11.4,11.4h0L52.6,64,2.36,114.24a8.06,8.06,0,0,0,11.4,11.4h0L64,75.4l50.24,50.24a8.06,8.06,0,0,0,11.4-11.4Z" />
7300</svg>
7301      </button>
7302      <div class="product-features__content">
7303        <h3 class="title">Best Price Promise</h3>
7304        <p>
7305          We want you to receive the best possible deal on your boating products. We match any authorized dealer's
7306          advertised price for the same in-stock item. What does that mean for you? If you find the same product in
7307          stock at another authorized retailer we'll gladly match their price delivered price. Don't forget that on top
7308          of our free fast shipping (on any order over $99 shipped to the Continental US) we also offer our exclusive
7309          lifetime technical support.
7310        </p>
7311        <ul class="list-default">
7312          <li>WakeMAKERS Best Price Promise is only valid on products sold by factory authorized internet dealers.</li>
7313          <li>WakeMAKERS Best Price Promise is not available with any coupons or individual discounts.</li>
7314          <li>
7315            WakeMAKERS Best Price Promise is based on the delivered price for the item and will factor in shipping and
7316            tax charges.
7317          </li>
7318          <li>
7319            WakeMAKERS Best Price Promise is only available on an exact, in stock product with a displayed internet
7320            price (not price implied after promotions and coupons)
7321          </li>
7322          <li>
7323            WakeMAKERS Best Price Promise is not available to be applied retroactively, so please contact us us BEFORE
7324            placing your order.
7325          </li>
7326        </ul>
7327        <p>
7328          If you have any questions about our price match policy, or if you would like us to match a price for you,
7329          simply <a href="https://www.wakemakers.com/contact-us" title="Contact us">contact us</a>.
7330        </p>
7331        <p>
7332          <span class="subtitle text-14 font-700 uppercase flex justify-start items-center">
7333            <span class="icon-custom text-[#39f] icon-custom-warning mr-8"></span>
7334            <span class="subtitle-text pb-[1px]">Note</span>
7335          </span>
7336          We have the right to refuse price matching at any time for any reason. In order to qualify for price matching,
7337          the item must be identical make, model, year, and part number, and must be in stock. Price matching excludes
7338          sale items and previously purchased products.
7339        </p>
7340      </div>
7341    </div>
7342  </s-modal>
7343  <s-modal
7344    id="product-features--365-day-returns"
7345    class="product-features__modal w-full overflow-scroll bg-transparent !max-w-[80vh] !max-h-[60vh]"
7346    open="[js-open-feature-product-features--365-day-returns]"
7347    close="[js-close-feature-product-features--365-day-returns]"
7348  >
7349    <div class="p-32 bg-white relative m-16 desktop:m-0">
7350      <button
7351        class="w-16 h-auto text-black absolute top-16 right-16 z-[3]"
7352        js-close-feature-product-features--365-day-returns
7353      >
7354        <svg class="icon icon--close" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128">
7355  
7356  <path d="M75.4,64l50.24-50.24a8.06,8.06,0,1,0-11.4-11.4L64,52.6,13.76,2.36a8.06,8.06,0,0,0-11.4,11.4h0L52.6,64,2.36,114.24a8.06,8.06,0,0,0,11.4,11.4h0L64,75.4l50.24,50.24a8.06,8.06,0,0,0,11.4-11.4Z" />
7357</svg>
7358      </button>
7359      <div class="product-features__content">
7360        <h3 class="title">365 Day Returns</h3>
7361        <p>
7362          <span class="subtitle text-14 font-700 uppercase flex justify-start items-center">
7363            <span class="icon-custom text-[#39f] icon-custom-return mr-8"></span>
7364            <span class="subtitle-text pb-[1px]">365 Day Returns</span>
7365          </span>
7366          Your satisfaction is our biggest priority, which is why we gladly accept returns on any new product for up to
7367          365 days from the date your order ships. Refunds will be issued to the original payment method for up to 30
7368          days from the original ship date. Returns on orders older than 30 days up to 365 days will be processed as
7369          store credit that can be applied to a future order.
7370        </p>
7371        <p>
7372          For the full details of our 365 Return Policy, including any restrictions or exclusions, please visit the
7373          <a
7374            href="https://www.wakemakers.com/pages/customer-service#returns-exchanges"
7375            title="Return &amp; Exchanges Policy"
7376            class="disclaimer text-[#39f]"
7377            >Returns & Exchanges section</a
7378          >
7379          on Customer Service page.
7380        </p>
7381      </div>
7382    </div>
7383  </s-modal>
7384  <s-modal
7385    id="product-features--lifetime-expert-advice-support"
7386    class="product-features__modal w-full overflow-scroll bg-transparent !max-w-[80vh] !max-h-[60vh]"
7387    open="[js-open-feature-lifetime-expert-advice-support]"
7388    close="[js-close-feature-lifetime-expert-advice-support]"
7389  >
7390    <div class="p-32 bg-white relative m-16 desktop:m-0">
7391      <button
7392        class="w-16 h-auto text-black absolute top-16 right-16 z-[3]"
7393        js-close-feature-lifetime-expert-advice-support
7394      >
7395        <svg class="icon icon--close" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128">
7396  
7397  <path d="M75.4,64l50.24-50.24a8.06,8.06,0,1,0-11.4-11.4L64,52.6,13.76,2.36a8.06,8.06,0,0,0-11.4,11.4h0L52.6,64,2.36,114.24a8.06,8.06,0,0,0,11.4,11.4h0L64,75.4l50.24,50.24a8.06,8.06,0,0,0,11.4-11.4Z" />
7398</svg>
7399      </button>
7400      <div class="product-features__content">
7401        <h3 class="title">Expert Advice</h3>
7402        <p>
7403          Our product experts bring over 40+ years of real-world experience and knowledge of the boating industry. They
7404          really know the gear, because they spend their free time out on the water with friends and family testing the
7405          products out.
7406        </p>
7407        <p>
7408          <span class="subtitle text-14 font-700 uppercase flex justify-start items-center">
7409            <span class="icon-custom text-[#39f] icon-custom-phone mr-8"></span>
7410            <span class="subtitle-text pb-[1px]">Product Expert Phone Hours</span>
7411          </span>
7412          <span class="indented pl-32">9am - 5pm (PST) Monday - Friday</span>
7413        </p>
7414        <p>
7415          <span class="subtitle text-14 font-700 uppercase flex justify-start items-center">
7416            <span class="icon-custom text-[#39f] icon-custom-mail mr-8"></span>
7417            <span class="subtitle-text pb-[1px]">Product Expert Email</span>
7418          </span>
7419          <span class="indented pl-32">We respond to most emails within 24-48 hours.</span>
7420        </p>
7421        <p>
7422          Looking for specific installation guides or instructional videos? Check out our
7423          <a href="/blogs/news" class="text-[#39f] italic">Resource Section</a> for detailed information.
7424        </p>
7425        <p>
7426          <span class="subtitle text-14 font-700 uppercase flex justify-start items-center">
7427            <span class="subtitle-text">WakeMAKERS Online Shopping Tools</span>
7428          </span>
7429          Our Finder tools are designed to help you pick the perfect product. We've simplified the complex process of
7430          finding the right ballast or prop for you boating style and made it easy by doing the research for you.
7431        </p>
7432        <ul class="indented !list-none">
7433          <li>
7434            <a
7435              href="/collections/wakemakers-factory-ballast-upgrades"
7436              class="text-14 uppercase flex justify-start items-center"
7437            >
7438              <span class="icon-custom text-[#39f] icon-custom-boat mr-8"></span>
7439              <span class="text-[#39f]">Factory Ballast Upgrade Finder</span>
7440            </a>
7441          </li>
7442          <li>
7443            <a
7444              href="/collections/wakeboard-boat-propeller-finder"
7445              class="text-14 uppercase flex justify-start items-center"
7446            >
7447              <span class="icon-custom text-[#39f] icon-custom-prop mr-8"></span>
7448              <span class="text-[#39f]">Prop Finder</span>
7449            </a>
7450          </li>
7451          <li>
7452            <a href="/collections/wakesurf-boards" class="text-14 uppercase flex justify-start items-center">
7453              <span class="icon-custom text-[#39f] icon-custom-surf mr-8"></span>
7454              <span class="text-[#39f]">Wakesurf Finder</span>
7455            </a>
7456          </li>
7457        </ul>
7458        <p>Our goal is simple; provide the best product, at the best price, with the best customer support.</p>
7459      </div>
7460    </div>
7461  </s-modal>
7462  <s-modal
7463    id="product-features--free-shipping"
7464    class="product-features__modal w-full overflow-scroll bg-transparent !max-w-[80vh] !max-h-[60vh]"
7465    open="[js-open-feature-free-shipping]"
7466    close="[js-close-feature-free-shipping]"
7467  >
7468    <div class="p-32 bg-white relative m-16 desktop:m-0">
7469      <button class="w-16 h-auto text-black absolute top-16 right-16 z-[3]" js-close-feature-free-shipping>
7470        <svg class="icon icon--close" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128">
7471  
7472  <path d="M75.4,64l50.24-50.24a8.06,8.06,0,1,0-11.4-11.4L64,52.6,13.76,2.36a8.06,8.06,0,0,0-11.4,11.4h0L52.6,64,2.36,114.24a8.06,8.06,0,0,0,11.4,11.4h0L64,75.4l50.24,50.24a8.06,8.06,0,0,0,11.4-11.4Z" />
7473</svg>
7474      </button>
7475      <div class="product-features__content">
7476        <h3 class="title">Free Shipping On Orders Over $99</h3>
7477        <p>
7478          The last thing you want to do is pay to have your order shipped when shopping online, which is why we include
7479          free shipping on all orders over $99*.
7480        </p>
7481        <p class="disclaimer text-[#39f] italic">
7482          *Free shipping offer applies to orders over $99 shipped within the Continental United States and cannot be
7483          combined with other discounts or promotions (including coupon codes).
7484        </p>
7485      </div>
7486    </div>
7487  </s-modal>
7488
7489
7490
7491<script type="application/ld+json">
7492  {
7493    "@context": "http://schema.org/",
7494    "@type": "Product",
7495    "name": "WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)",
7496    "url": "https:\/\/www.wakemakers.com\/products\/wakemakers-rear-lbs-ballast-bag",
7497    "image": "https://www.wakemakers.com/cdn/shop/files/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8_grande.jpg?v=1731575349",
7498    "description": "Our exclusive WakeMAKERS UniversalFIT Rear Locker Ballast Bags are making a splash in the industry and forever changing how boaters look at ballast bags. The team of product designers and engineers at WakeMAKERS agreed that a 'one-size fits all' approach that other brands are taking isn't good enough. Seeking a better ballast solution than standard sized bags, we developed our series of UniversalFIT ballast bags, designed for specific zones of your boat and offered in incremental sizes to give you better fitment and improved wake performance.Ranging from 400 to 1,200 lbs. in size, the UniversalFIT Rear Locker bags allow you to choose the dimensions of the bag in 5\" increments. The result is a much better fitting bag for your boat's rear locker, allowing you to fill to capacity and maximize added weight for the best possible wake. WakeMAKERS UniversalFIT ballast bags give you a nearly perfect fit without the expense of building a custom bag.All WakeMAKERS ballast bags come standard with an industry-leading two year warranty. The bags are constructed of a DuraTEK, our proprietary material that is strong, durable, and puncture resistant. Once the material is cut, the bags are RF welded together with 1\" seams to ensure a clean look and watertight seal. There are five 1\" NPT ports on this ballast bag that feature a tapered thread pattern and bottom o-ring for a leak-free seal. The larger port size allows water to flow quicker for faster fill\/drain times. If you are shopping for ballast bags to put in the rear lockers of your v-drive boat, the WakeMAKERS UniversalFIT ballast bags are a no-brainer decision. From the quality craftsmanship to the innovative design, these ballast bags are built to deliver improved wakes behind your boat.Sold individually as seen here, these bags are also included our WakeMAKERS exclusive Factory Ballast Upgrades that integrate the bags into your boat's factory ballast system for automated filling\/draining. Use the dropdown tool to find available factory ballast upgrades for your year, make, and model boat.You can also use our UniversalFIT Rear Locker ballast bags with a portable ballast pump or integrate them with a WakeMAKERS Complete Ballast System for automated filling\/draining of the bags.",
7499    "gtin12": "",
7500    "brand": {
7501      "@type": "Brand",
7502      "name": "WakeMAKERS"
7503    },
7504    
7505      "aggregateRating": {
7506        "@type": "AggregateRating",
7507        "ratingValue": "4.6",
7508        "ratingCount": "23"
7509      },
7510    
7511    "offers": [{
7512          "@type" : "Offer","sku": "B0079",
7513                "availability" : "http://schema.org/InStock",
7514              
7515          "price" : 189.99,
7516          "priceCurrency" : "USD",
7517          "url" : "https:\/\/www.wakemakers.com\/products\/wakemakers-rear-lbs-ballast-bag?variant=41675600920741",
7518          "priceValidUntil": "2027-09-25"
7519        },
7520{
7521          "@type" : "Offer","sku": "B0080",
7522                "availability" : "http://schema.org/InStock",
7523              
7524          "price" : 249.99,
7525          "priceCurrency" : "USD",
7526          "url" : "https:\/\/www.wakemakers.com\/products\/wakemakers-rear-lbs-ballast-bag?variant=41675600953509",
7527          "priceValidUntil": "2027-09-25"
7528        },
7529{
7530          "@type" : "Offer","sku": "B0081",
7531                "availability" : "http://schema.org/InStock",
7532              
7533          "price" : 259.99,
7534          "priceCurrency" : "USD",
7535          "url" : "https:\/\/www.wakemakers.com\/products\/wakemakers-rear-lbs-ballast-bag?variant=41675600986277",
7536          "priceValidUntil": "2027-09-25"
7537        },
7538{
7539          "@type" : "Offer","sku": "B0082",
7540                "availability" : "http://schema.org/InStock",
7541              
7542          "price" : 249.99,
7543          "priceCurrency" : "USD",
7544          "url" : "https:\/\/www.wakemakers.com\/products\/wakemakers-rear-lbs-ballast-bag?variant=41675601019045",
7545          "priceValidUntil": "2027-09-25"
7546        },
7547{
7548          "@type" : "Offer","sku": "B0083",
7549                "availability" : "http://schema.org/InStock",
7550              
7551          "price" : 229.99,
7552          "priceCurrency" : "USD",
7553          "url" : "https:\/\/www.wakemakers.com\/products\/wakemakers-rear-lbs-ballast-bag?variant=41675601051813",
7554          "priceValidUntil": "2027-09-25"
7555        },
7556{
7557          "@type" : "Offer","sku": "B0088",
7558                "availability" : "http://schema.org/InStock",
7559              
7560          "price" : 199.99,
7561          "priceCurrency" : "USD",
7562          "url" : "https:\/\/www.wakemakers.com\/products\/wakemakers-rear-lbs-ballast-bag?variant=41675601084581",
7563          "priceValidUntil": "2027-09-25"
7564        },
7565{
7566          "@type" : "Offer","sku": "B0089",
7567                "availability" : "http://schema.org/InStock",
7568              
7569          "price" : 199.99,
7570          "priceCurrency" : "USD",
7571          "url" : "https:\/\/www.wakemakers.com\/products\/wakemakers-rear-lbs-ballast-bag?variant=41675601117349",
7572          "priceValidUntil": "2027-09-25"
7573        },
7574{
7575          "@type" : "Offer","sku": "B0090",
7576                "availability" : "http://schema.org/InStock",
7577              
7578          "price" : 239.99,
7579          "priceCurrency" : "USD",
7580          "url" : "https:\/\/www.wakemakers.com\/products\/wakemakers-rear-lbs-ballast-bag?variant=41675601150117",
7581          "priceValidUntil": "2027-09-25"
7582        },
7583{
7584          "@type" : "Offer","sku": "B0091",
7585                "availability" : "http://schema.org/InStock",
7586              
7587          "price" : 189.99,
7588          "priceCurrency" : "USD",
7589          "url" : "https:\/\/www.wakemakers.com\/products\/wakemakers-rear-lbs-ballast-bag?variant=41675601182885",
7590          "priceValidUntil": "2027-09-25"
7591        },
7592{
7593          "@type" : "Offer","sku": "B0092",
7594                "availability" : "http://schema.org/InStock",
7595              
7596          "price" : 229.99,
7597          "priceCurrency" : "USD",
7598          "url" : "https:\/\/www.wakemakers.com\/products\/wakemakers-rear-lbs-ballast-bag?variant=41675601215653",
7599          "priceValidUntil": "2027-09-25"
7600        },
7601{
7602          "@type" : "Offer","sku": "B0093",
7603                "availability" : "http://schema.org/InStock",
7604              
7605          "price" : 249.99,
7606          "priceCurrency" : "USD",
7607          "url" : "https:\/\/www.wakemakers.com\/products\/wakemakers-rear-lbs-ballast-bag?variant=41675601248421",
7608          "priceValidUntil": "2027-09-25"
7609        },
7610{
7611          "@type" : "Offer","sku": "B0096",
7612                "availability" : "http://schema.org/InStock",
7613              
7614          "price" : 179.99,
7615          "priceCurrency" : "USD",
7616          "url" : "https:\/\/www.wakemakers.com\/products\/wakemakers-rear-lbs-ballast-bag?variant=41675601281189",
7617          "priceValidUntil": "2027-09-25"
7618        },
7619{
7620          "@type" : "Offer","sku": "B0110",
7621                "availability" : "http://schema.org/InStock",
7622              
7623          "price" : 169.99,
7624          "priceCurrency" : "USD",
7625          "url" : "https:\/\/www.wakemakers.com\/products\/wakemakers-rear-lbs-ballast-bag?variant=41675601313957",
7626          "priceValidUntil": "2027-09-25"
7627        },
7628{
7629          "@type" : "Offer","sku": "B0121",
7630                "availability" : "http://schema.org/InStock",
7631              
7632          "price" : 229.99,
7633          "priceCurrency" : "USD",
7634          "url" : "https:\/\/www.wakemakers.com\/products\/wakemakers-rear-lbs-ballast-bag?variant=41675601346725",
7635          "priceValidUntil": "2027-09-25"
7636        },
7637{
7638          "@type" : "Offer","sku": "B0122",
7639                "availability" : "http://schema.org/InStock",
7640              
7641          "price" : 189.99,
7642          "priceCurrency" : "USD",
7643          "url" : "https:\/\/www.wakemakers.com\/products\/wakemakers-rear-lbs-ballast-bag?variant=41675601379493",
7644          "priceValidUntil": "2027-09-25"
7645        },
7646{
7647          "@type" : "Offer","sku": "B0144",
7648                "availability" : "http://schema.org/InStock",
7649              
7650          "price" : 229.99,
7651          "priceCurrency" : "USD",
7652          "url" : "https:\/\/www.wakemakers.com\/products\/wakemakers-rear-lbs-ballast-bag?variant=41675601412261",
7653          "priceValidUntil": "2027-09-25"
7654        },
7655{
7656          "@type" : "Offer","sku": "B0145",
7657                "availability" : "http://schema.org/InStock",
7658              
7659          "price" : 199.99,
7660          "priceCurrency" : "USD",
7661          "url" : "https:\/\/www.wakemakers.com\/products\/wakemakers-rear-lbs-ballast-bag?variant=41675601445029",
7662          "priceValidUntil": "2027-09-25"
7663        },
7664{
7665          "@type" : "Offer","sku": "B0146",
7666                "availability" : "http://schema.org/InStock",
7667              
7668          "price" : 259.99,
7669          "priceCurrency" : "USD",
7670          "url" : "https:\/\/www.wakemakers.com\/products\/wakemakers-rear-lbs-ballast-bag?variant=41675601477797",
7671          "priceValidUntil": "2027-09-25"
7672        },
7673{
7674          "@type" : "Offer","sku": "B0147",
7675                "availability" : "http://schema.org/InStock",
7676              
7677          "price" : 249.99,
7678          "priceCurrency" : "USD",
7679          "url" : "https:\/\/www.wakemakers.com\/products\/wakemakers-rear-lbs-ballast-bag?variant=41675601510565",
7680          "priceValidUntil": "2027-09-25"
7681        }
7682]
7683  }
7684</script>
7684
7685
7686
7687</section><section id="shopify-section-template--21893123571877__16576020719375aa6a" class="shopify-section spaced-section"><div class="page-width"><div id="shopify-block-AQmdLSnQ1VDVLT1g0O__e6ffa6f7-0ee9-4736-b3ae-2d38c2e241a4" class="shopify-block shopify-app-block">
7688  <div
7689    data-rebuy-id="45551"
7690    data-rebuy-shopify-product-ids="7759285649573"
7691    >
7692  </div>
7693
7694
7695</div>
7696<div id="shopify-block-AK3czZlJSMnVGemlsO__4578b95d-b45f-414b-8639-970c6553b7dc" class="shopify-block shopify-app-block">
7697  <div
7698    data-rebuy-id="38302"
7699    data-rebuy-shopify-product-ids="7759285649573"
7700    >
7701  </div>
7702
7703
7704</div>
7705</div>
7706
7707
7708</section><section id="shopify-section-template--21893123571877__174069776374f8a2f5" class="shopify-section spaced-section"><div class=""></div>
7709
7710
7711</section>
7712	<noscript class="endOfLayoutContentX" type="text/mark"></noscript>
7713      </main>
7714  
7715      <footer class="site-footer">
7716  <div class="site-footer__main-container bg-gray-dark">
7717    <section class="site-footer__main text-white p-16 w-full max-w-[1140px] mx-auto tabletl:grid tabletl:grid-cols-[1fr,375px] tabletl:grid-rows-[auto,1fr] tabletl:gap-16 tabletl:py-32">
7718      <nav class="site-footer__nav landscape-all:grid landscape-all:grid-cols-3 landscape-all:gap-16 tabletp:grid tabletp:grid-cols-3 tabletp:row-span-2 tabletp:gap-16">
7719        
7720          <div class="site-footer-nav__group flex flex-col justify-center items-center mb-32 self-start landscape-all:items-start tabletp:items-start tabletl:mb-0">
7721            <span class="site-footer-nav__header text-blue mb-16 font-300">ABOUT US</span>
7722            
7723              <a href="/pages/about-us"  class="site-footer-nav__link font-300 mb-12 focus:underline desktop:hover:underline" >Who we are</a>
7724            
7725              <a href="https://www.wakemakers.com/blogs/resources/tagged/buyers-guide"  class="site-footer-nav__link font-300 mb-12 focus:underline desktop:hover:underline" >Buyer's Guides</a>
7726            
7727              <a href="/pages/brands"  class="site-footer-nav__link font-300 mb-12 focus:underline desktop:hover:underline" >Shop by Brand</a>
7728            
7729              <a href="/blogs/project-boat/2004-malibu-wakesetter-vlx"  class="site-footer-nav__link font-300 mb-12 focus:underline desktop:hover:underline" >Project Boat</a>
7730            
7731              <a href="/pages/careers"  class="site-footer-nav__link font-300 mb-12 focus:underline desktop:hover:underline" >Careers</a>
7732            
7733          </div>
7734        
7735          <div class="site-footer-nav__group flex flex-col justify-center items-center mb-32 self-start landscape-all:items-start tabletp:items-start tabletl:mb-0">
7736            <span class="site-footer-nav__header text-blue mb-16 font-300">CUSTOMER SERVICE</span>
7737            
7738              <a href="/pages/customer-service"  class="site-footer-nav__link font-300 mb-12 focus:underline desktop:hover:underline" >Customer Service</a>
7739            
7740              <a href="/pages/discounts-coupon-codes"  class="site-footer-nav__link font-300 mb-12 focus:underline desktop:hover:underline" >Discounts, Promotions, Coupons</a>
7741            
7742              <a href="/apps/parcelpanel"  class="site-footer-nav__link font-300 mb-12 focus:underline desktop:hover:underline" >Order Status</a>
7743            
7744              <a href="https://www.wakemakers.com/pages/customer-service#returns-exchanges"  class="site-footer-nav__link font-300 mb-12 focus:underline desktop:hover:underline" >Returns</a>
7745            
7746              <a href="/products/gift-certificate-dep"  class="site-footer-nav__link font-300 mb-12 focus:underline desktop:hover:underline" >Gift Cards</a>
7747            
7748          </div>
7749        
7750          <div class="site-footer-nav__group flex flex-col justify-center items-center mb-32 self-start landscape-all:items-start tabletp:items-start tabletl:mb-0">
7751            <span class="site-footer-nav__header text-blue mb-16 font-300">CONTACT US</span>
7752            
7753              <a href="https://support.wakemakers.com/hc/en-us/requests/new"  class="site-footer-nav__link font-300 mb-12 focus:underline desktop:hover:underline" >[email protected]</a>
7754            
7755              <a href="#"  class="site-footer-nav__link font-300 mb-12 focus:underline desktop:hover:underline" >(888) 338-6085</a>
7756            
7757              <a href="/contact-us"  class="site-footer-nav__link font-300 mb-12 focus:underline desktop:hover:underline" ><span class="text-green">Get Help</span></a>
7758            
7759              <a href="/pages/about-us"  class="site-footer-nav__link font-300 mb-12 focus:underline desktop:hover:underline" >Bend, OR</a>
7760            
7761              <a href="https://order.wakemakers.com/customer/account/login/"  class="site-footer-nav__link font-300 mb-12 focus:underline desktop:hover:underline" >Dealer Portal</a>
7762            
7763          </div>
7764        
7765      </nav>
7766      <form method="post" action="/contact#contact_form" id="contact_form" accept-charset="UTF-8" class="relative text-center text-white mb-32 tabletl:mb-0"><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="✓" />
7767        
7768<input type="hidden" name="contact[tags]" value="newsletter">
7769          <div class="site-footer-signup__container relative w-full max-w-[375px] mx-auto">
7770            <label for="NewsletterFormEmail--footer" class="visually-hidden">Email</label>
7771            <input
7772              id="NewsletterFormEmail--footer"
7773              class="bg-black pl-12 py-16 pr-72 w-full focus:bg-white focus:text-black transition-colors duration-200"
7774              type="email"
7775              name="contact[email]"
7776              value=""
7777              aria-required="true"
7778              autocorrect="off"
7779              autocomplete="email"
7780              
7781              placeholder="Sign up for deals and news"
7782              required
7783            >
7784            <button class="bg-blue text-white w-[60px] h-full flex items-center justify-center absolute right-0 top-0" type="submit" name="commit" id="NewletterFormSubscribe--footer">></button>
7785          </div>
7786        
7787      </form>
7788      <div class="flex flex-col items-end justify-start">
7789        <nav class="site-footer__socials grid grid-cols-[repeat(4,44px)] gap-8 justify-center tabletl:ju
7789stify-end">
7790          <a href="https://www.facebook.com/wakemakers" target="_blank" rel="noopener noreferrer" class="site-footer__social block w-[44px] h-[44px] p-12 bg-black text-gray-light text-[0px] text-center focus:text-blue desktop:hover:text-blue" title="Facebook" aria-label="Facebook"><svg class="icon icon--facebook" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 264 512">
7791  
7792  <path d="M215.8 85H264V3.6C255.7 2.5 227.1 0 193.8 0 124.3 0 76.7 42.4 76.7 120.3V192H0v91h76.7v229h94V283h73.6l11.7-91h-85.3v-62.7c0-26.3 7.3-44.3 45.1-44.3z" />
7793</svg></a>
7794          <a href="https://twitter.com/wakemakers" target="_blank" rel="noopener noreferrer" class="site-footer__social block w-[44px] h-[44px] p-12 bg-black text-gray-light text-[0px] text-center focus:text-blue desktop:hover:text-blue" title="Twitter" aria-label="Twitter"><svg class="icon icon--twitter" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
7795  
7796  <path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z" />
7797</svg></a>
7798          <a href="https://www.instagram.com/wakemakers/" target="_blank" rel="noopener noreferrer" class="site-footer__social block w-[44px] h-[44px] p-12 bg-black text-gray-light text-[0px] text-center focus:text-blue desktop:hover:text-blue" title="Instagram" aria-label="Instagram"><svg class="icon icon--instagram" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
7799  
7800  <path d="M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z" />
7801</svg></a>
7802          <a href="https://www.youtube.com/c/Wakemakers" target="_blank" rel="noopener noreferrer" class="site-footer__social block w-[44px] h-[44px] p-12 bg-black text-gray-light text-[0px] text-center focus:text-blue desktop:hover:text-blue" title="YouTube" aria-label="YouTube"><svg class="icon icon--youtube" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512">
7803  
7804  <path d="M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"/>
7805</svg></a>
7806        </nav>
7807        <a href="http://www.shopperapproved.com/reviews/WakeMAKERS.com/" class="shopperlink site-footer-nav__link font-300 mt-16 focus:underline desktop:hover:underline">
7808          <img src="//www.shopperapproved.com/seals/6613-r.gif" style="border: 0" alt="Customer Reviews" oncontextmenu="var d = new Date(); 
7809            alert('Copying Prohibited by Law - This image and all included logos are copyrighted by Shopper Approved \251 '+d.getFullYear()+'.'); 
7810            return false;" />
7811        </a>
7812        
7812<script type="text/javascript">(function() { 
7813          var js = window.document.createElement("script"); 
7814          js.src = '//www.shopperapproved.com/seals/certificate.js'; js.type = "text/javascript"; 
7815          document.getElementsByTagName("head")[0].appendChild(js); })();
7816        </script>
7816    
7817        
7818      </div>
7819    </section>
7820  </div>
7821  <div class="site-footer__copyright-container bg-black">
7822    <section class="site-footer__copyright text-gray-light py-24 px-16 text-14 w-full max-w-[1140px] mx-auto landscape-all:flex landscape-all:items-center landscape-all:justify-between tabletp:flex tabletp:items-center tabletp:justify-between">
7823      <span class="site-footer-copyright block text-center font-300">
7824        &copy; 2026 WakeMAKERS.com
7825      </span>
7826      
7827        <nav class="site-footer-copyright__nav w-[100%] flex items-center justify-center mt-16 landscape-all:w-auto landscape-all:mt-0 tabletp:w-auto tabletp:mt-0">
7828          
7829            <a href="/pages/terms-of-service" class="site-footer-copyright__link px-8 focus:underline desktop:hover:underline">TERMS</a>
7830          
7831            <a href="/pages/privacy-policy" class="site-footer-copyright__link px-8 focus:underline desktop:hover:underline">LEGAL</a>
7832          
7833        </nav>
7834      
7835    </section>
7836  </div>
7837</footer>
7838  
7839      <ul hidden>
7840        <li id="a11y-refresh-page-message">Choosing a selection results in a full page refresh.</li>
7841      </ul>
7842  
7843      
7843<script>
7844        window.routes = {
7845          cart_add_url: '/cart/add',
7846          cart_change_url: '/cart/change',
7847          cart_update_url: '/cart/update',
7848          predictive_search_url: '/search/suggest'
7849        };
7850      </script>
7850
7851  
7852      <!-- BEGIN: Gleam.io Smart Offer -->
7853      
7853<script async src="https://js.gleam.io/oi-IfJz11ip.js"></script>
7853
7854      <!-- END: Gleam.io Smart Offer -->
7855      <!-- Start of WakeMAKERS Zendesk Widget script -->
7856<script id="ze-snippet" src="https://static.zdassets.com/ekr/snippet.js?key=636f3ace-1ce7-48bb-b7a3-309ae7432892"> </script>
7856
7857<!-- End of wakeshops Zendesk Widget script -->
7858
7859<script>
7860    zE('webWidget:on', 'chat:status', function (status) {
7861        if (!status) {
7862            return;
7863        }
7864
7865        document.querySelectorAll('[js-contact-btn]').forEach(function(el) {
7866            if (! el.dataset.origText) {
7867                el.dataset.origText = el.innerHTML;
7868            }
7869
7870            if (status === 'online') {
7871                if (el.dataset.onlineText) {
7872                    el.innerHTML = el.dataset.onlineText;
7873                }
7874                el.classList.add('btn--green');
7875                el.classList.remove('btn--gray');
7876
7877                el.addEventListener('click', function(event) {
7878                    zE('webWidget', 'open');
7879                    event.preventDefault();
7880                });
7881            } else {
7882                el.innerHTML = el.dataset.origText;
7883                el.classList.add('btn--gray');
7884                el.classList.remove('btn--green');
7885                el.stopObserving('click');
7886            }
7887        });
7888    })
7889</script>
7889
7890
7891      
7891<script defer src="//www.wakemakers.com/cdn/shop/t/336/assets/vendor.js?v=28876009874998393401788387214"></script>
7891
7892      
7892<script defer src="//www.wakemakers.com/cdn/shop/t/336/assets/theme.js?v=176150862818859460731790316796"></script>
7892
7893      <!---------Shopper Approved------->
7894<script type="text/javascript">
7895  function saLoadScript(src) { var js = window.document.createElement('script'); 
7896  js.src = src; js.type = 'text/javascript'; document.getElementsByTagName("head")[0].appendChild(js); } 
7897  saLoadScript('//www.shopperapproved.com/widgets/group2.0/6613.js'); 
7898</script>
7898
7899<style>
7900    .group-stars .ind_cnt {
7901    font-size: 12px;
7902    display: initial;
7903    width: 100%;
7904    text-align: center;
7905    margin: 0 auto;
7906    margin-left: 10px;
7907}
7908    #merchant_page #sa_sort {
7909    display: inline;
7910    width: inherit;
7911    height: 32px;
7912    font-size: 12px;
7913}
7914    #product_page #sa_sort {
7915    display: inline;
7916    width: inherit;
7917    height: 16px;
7918    font-size: 13px;
7919}
7920    </style>
7921<!-----------End Shopper Approved------>     
7922
7923      
7923<script src="https://a.klaviyo.com/media/js/onsite/onsite.js"></script>
7923
7924      
7924<script>
7925          var klaviyo = klaviyo || [];
7926          klaviyo.init({
7927            account: "qBA9D8",
7928            platform: "shopify"
7929          });
7930          klaviyo.enable("backinstock",{ 
7931          trigger: {
7932            product_page_text: "Notify Me When Available",
7933            product_page_class: "relative btn btn--orange w-full uppercase text-[20px] h-[60px] mt-16 flex justify-center items-center",
7934            product_page_text_align: "center",
7935            product_page_margin: "15px 0px",
7936            replace_anchor: true
7937          },
7938          modal: {
7939           headline: "{product_name}",
7940           body_content: "Register to receive a notification when this item comes back in stock.",
7941           email_field_label: "Email",
7942           button_label: "Notify me when available",
7943           subscription_success_label: "You're in! We'll let you know when it's back.",
7944           footer_content: '',
7945           additional_styles: "@import url('https://fonts.googleapis.com/css?family=Helvetica+Neue');",
7946           drop_background_color: "#000",
7947           background_color: "#fff",
7948           text_color: "#222",
7949           button_text_color: "#fff",
7950           button_background_color: "#39f",
7951           close_button_color: "#ccc",
7952           error_background_color: "#fcd6d7",
7953           error_text_color: "#C72E2F",
7954           success_background_color: "#d3efcd",
7955           success_text_color: "#1B9500"
7956          }
7957        });
7958      </script>
7958
7959
7960      
7961    
7962<!-- "snippets/swymSnippet.liquid" was not rendered, the associated app was uninstalled -->
7963
7964<script>
7965  document.addEventListener('fg-gifts:updated', async () => {
7966    CartAPI.update();
7967  });
7968</script>
7968
7969
7970
7971<div id="shopify-block-AcFN1M1hVN1RCVTB6Y__5057006142565981955" class="shopify-block shopify-app-block">
7971<script type="text/javascript">
7972  const promoConfig = {
7973    fontSize: '16',
7974    logoType: 'logo',
7975    logoColor: 'blue',
7976    pageType: 'cart',
7977    textAlign: 'left'
7978  };
7979  const drawerAppData = '{"theme_app_configuration"=>Metafields::MetafieldDrop}';
7980  const drawerPromoAppConfig = (drawerAppData == '{}') ? {} : JSON.parse('{"region_public_keys":{"us":"NWY0L4OUY56YERNZ","ca":""}}') ;
7981  const drawerHasRegionKeys = drawerPromoAppConfig.hasOwnProperty('region_public_keys');
7982  let drawerPublicKey = null;
7983  if (Shopify.country == 'US') 
7984    drawerPublicKey = (drawerHasRegionKeys) ? drawerPromoAppConfig.region_public_keys.us : null;
7985  if (Shopify.country == 'CA') 
7986    drawerPublicKey = (drawerHasRegionKeys) ? drawerPromoAppConfig.region_public_keys.ca : null;      
7987  const affirmPublicApiKeyCartDrawer = ('') ? '' : drawerPublicKey;
7988  const customDrawerTotalSelector = ('') ? '' : null;
7989  const customAdjacentElementSelector = ('') ? '' : null;
7990  const customAddToCartSelector = ('') ? '' : null;
7991  const customCartDrawerSelector = ('') ? '' : null;
7992  const publicKeyEntered = ('') ? '' : null;
7993</script>
7993
7994
7995</div><div id="shopify-block-ASThiUjVaeFB0dEwrT__9482890028372019417" class="shopify-block shopify-app-block camouflage-hide-oos-global">
7995<script>
7996    // This function modifies the href of the given DOM element, by adding the availability filter to the href.
7997    var CAMOUFLAGE_SCRIPT = window.CAMOUFLAGE_SCRIPT || {
7998        update_collection_links: "true" === "true",
7999        t_collection_link_selectors: ``,
8000        m_collection_link_selectors: ``,
8001        theme_name: "seed",
8002        quickview_enabled: "no" === "yes" ? true: false,
8003        col_swatch_action: "", // hide, strike-through
8004        col_swatch_option_to_hide: "",
8005        col_handle: "",
8006    }
8007
8008</script>
8008
8009
8010<script src="https://cdn.shopify.com/extensions/01a08a21-5062-724b-a3f6-05b9f88f68da/3.12.3/assets/scripts.min.js" defer></script>
8010
8011
8012</div><div id="shopify-block-AWXFqMDFtQTRGTUxNT__914574027208035924" class="shopify-block shopify-app-block camouflage-hide-oos">
8013
8014
8015
8016<style data-script_priority="low">
8017
8018
8019
8020
8021    .camouflage-grid-disable, input.camouflage-grid-disable + label {
8022        display: none;
8023    }
8024
8025</style>
8026
8027
8028<!-- BEGIN app snippet: camouflage-data -->
8028<script>
8029    (function() {
8030        if(!window.loaded_script_hoos_obj) {
8031            window.loaded_script_hoos_obj = {};
8032        }
8033        window.hoosObj = null; // resetting value for quick views
8034        
8035            window.hide_oos_enabled = "codecrux hide oos";
8036        
8037        window.current_date_time = "Friday, September 25, 2026  1:19 am -0700";const codecrux_settings = {"selector_type":"select","theme_name":"seed","other_theme_name":"Seed","unavailable_class":"","hide_oos_variants":true,"strikethrough_oos_variants":false,"variant_action":"hide","hide_oos_check_qty":false,"quickview_enabled":"no","featured_product_enabled":"yes","product_grid_enabled":"","load_available_script":"","hsoi":"c","integrates_with":"","update_collection_links":"no","collection_link_delay":0,"hide_if_no_image":"","hide_if_price_zero":"","custom_js":"{\n    \"hide_oos_query_selectors\": {\n        \"selector_type\": \"select\",\n        \"input_selector\": \"select\",\n        \"field_selector\": \"product-options select\",\n        \"mainContainer\": \"body\"\n    },\n    \"hide_oos_extras\": {\n        \"disabled\": false,\n        \"make_a_selection_required\": true\n    }\n}","hide_unavailable":"yes","more_scripts_v2":"yes","hide_in_safari":"hide","version":"v2","always_hide_show_field":"variant_title","include_only_hide_show_field":""} || {};
8038        const requested_page = { "design_mode": "false", "host": "www.wakemakers.com", "locale": "en", "origin": "https://www.wakemakers.com", "page_type": "product", "path": "/products/wakemakers-rear-lbs-ballast-bag", "visual_preview_mode": "false"}
8039    
8040    
8041        const hide_variants_options_arr = '';
8042        let hide_oos_extras = window.hide_oos_extras || null;
8043        let hide_oos_query_selectors = window.hide_oos_query_selectors || null;
8044        let custom_js = {}; // custom_js is custom_json configuration
8045        if (codecrux_settings && codecrux_settings.custom_js) {
8046            custom_js = codecrux_settings.custom_js || '';
8047            if (typeof custom_js === "string") {
8048                try {
8049                    custom_js = JSON.parse(custom_js) || {};
8050                } catch(error) {
8051                    console.error(error);
8052                }
8053            }
8054    
8055            // giving priority to window object
8056            if (typeof custom_js === "object") {
8057                custom_js.hide_oos_extras = window.hide_oos_extras || custom_js.hide_oos_extras;
8058                custom_js.hide_oos_query_selectors = window.hide_oos_query_selectors || custom_js.hide_oos_query_selectors;
8059                custom_js.product_grid = window.hide_oos_product_grid || custom_js.product_grid;
8060                custom_js.quick_view = window.hide_oos_quick_view || custom_js.quick_view;
8061                custom_js.featured_product = window.hide_oos_featured_product || custom_js.featured_product;
8062                custom_js.image_hide = window.hide_oos_image_hide || custom_js.image_hide;
8063            }
8064        }
8065    
8066        window.hide_oos_t_settings = {"theme_name":"other","selector_type":"select","hide_oos_variants":true,"strikethrough_oos_variants":false,"other_file_name":"","reverse_options":false} || {};
8067    
8068        delete codecrux_settings.custom_css;
8069        delete codecrux_settings.custom_js;
8070        delete codecrux_settings.global_custom_css;
8071    
8072        window.hide_oos_m_settings = {
8073            ...codecrux_settings,
8074            variant_action: "hide"
8075        }
8076    
8077        window.camouflage_global_config = {
8078            hide_oos_m_settings: hide_oos_m_settings,
8079            hide_oos_t_settings: hide_oos_t_settings,
8080            hide_variants_options_arr: hide_variants_options_arr,
8081            key: "",
8082            request: requested_page,
8083            logLevel: "fakeLog",
8084            current_country: "US",
8085            money_format: "${{amount}}",
8086            collection_id: null,
8087            collection_handle: null,
8088            collection_product_count: null,
8089            collection_products: [],
8090            ...custom_js
8091        };
8092
8093        console.fakeLog = () => {};
8094
8095        
8096})();
8097
8098</script>
8098
8099
8100
8101<script id="camouflage_customer_tags">
8102    window.camouflageCustomerTags = window.camouflageCustomerTags || [];</script>
8102<!-- END app snippet --><!-- BEGIN app snippet: hide-oos-variants-snippet --><style>
8103    option.hide-oos-disable {
8104        color: grey;
8105    }
8106            .price--sold-out .price__badge--sold-out, .hide-oos-disable, .hide_oos--parent-hidden, variant-swatch-king ul li.swatch-item-unavailable {
8107                display: none !important;
8108            }
8109            
8110                . {
8111                    display: none !important;
8112                }
8113            
8114
8115            .pf-option-swatches {
8116                gap: 0!important;
8117            }
8118            .pf-option-swatches .pf-vs-label {
8119                margin-right: 16px;
8120            }
8121            
8122            label.swatches__form--label img.swatches__sold-out--image.crossed-out {
8123                display: none;
8124            }
8125            .variant-wrapper fieldset.variant-input-wrap label.disabled.hide-oos-disable {
8126                color: inherit;
8127            }
8128            .variant-wrapper fieldset.variant-input-wrap label.disabled.hide-oos-disable:after {
8129                display: none;
8130            }
8131            variant-picker color-swatches-picker div:has( > label.hide-oos-disable), variant-picker fieldset label.variant-option__button-label:has( > .hide-oos-disable) {
8132                display: none !important;
8133            }
8134    
8135
8136    
8137        .camouflage-unavailable {
8138            display: none !important;
8139        }
8140    
8141
8142    
8143
8144    .camouflage-special-swatch-A, .camouflage-special-swatch-B {
8145        position: relative;
8146        text-decoration: none !important;
8147        overflow: hidden;
8148    }
8149    .camouflage-special-swatch-B.hide-oos-disable, .camouflage-special-swatch-A.hide-oos-disable, .camouflage-special-swatch-A.hide-oos-disable > *, .camouflage-special-swatch-B.hide-oos-disable > * {
8150        text-decoration: none !important;
8151    }
8152    .camouflage-special-swatch-A:after, .camouflage-special-swatch-B:before {
8153        content: "";
8154        display: block;
8155        position: absolute;
8156        top: 0;
8157        left: 0;
8158        width: 100%;
8159        height: 100%;
8160        background: linear-gradient(to bottom right,transparent calc(50% - 1px),#000 50%,transparent calc(50% + 1px)) no-repeat;
8161        opacity: 1;
8162    }
8163
8164    
8165    .HorizontalList__Item label.camouflage-special-swatch-A {
8166        overflow: initial;
8167    }
8168    li.HorizontalList__Item.camouflage-special-swatch-A, li.HorizontalList__Item label.camouflage-special-swatch-A {
8169        overflow: initial;
8170    }
8171    li.HorizontalList__Item.camouflage-special-swatch-A:after {
8172        content: initial;
8173    }
8174    
8175</style>
8175<script src="https://cdn.shopify.com/extensions/01a08a21-5062-724b-a3f6-05b9f88f68da/3.12.3/assets/2ab921a.js" class="camouflage-script" data-producthandle="wakemakers-rear-lbs-ballast-bag" data-productid="7759285649573"  defer  data-script_priority="low"></script>
8175
8176
8177<script class="camouflage-script" data-producthandle="wakemakers-rear-lbs-ballast-bag" data-productid="7759285649573">
8178    (function() {
8179        const camouflage_product = {"id":7759285649573,"title":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes)","handle":"wakemakers-rear-lbs-ballast-bag","description":"\u003cp\u003eOur exclusive WakeMAKERS UniversalFIT Rear Locker Ballast Bags are making a splash in the industry and forever changing how boaters look at ballast bags. The team of product designers and engineers at WakeMAKERS agreed that a 'one-size fits all' approach that other brands are taking isn't good enough. Seeking a better ballast solution than standard sized bags, we developed our series of UniversalFIT ballast bags, designed for specific zones of your boat and offered in incremental sizes to give you better fitment and improved wake performance.\u003c\/p\u003e\u003cp\u003eRanging from 400 to 1,200 lbs. in size, the UniversalFIT Rear Locker bags allow you to choose the dimensions of the bag in 5\" increments. The result is a much better fitting bag for your boat's rear locker, allowing you to fill to capacity and maximize added weight for the best possible wake. WakeMAKERS UniversalFIT ballast bags give you a nearly perfect fit without the expense of building a custom bag.\u003c\/p\u003e\u003cp\u003eAll WakeMAKERS ballast bags come standard with an industry-leading two year warranty. The bags are constructed of a DuraTEK, our proprietary material that is strong, durable, and puncture resistant. Once the material is cut, the bags are RF welded together with 1\" seams to ensure a clean look and watertight seal. There are five 1\" NPT ports on this ballast bag that feature a tapered thread pattern and bottom o-ring for a leak-free seal. The larger port size allows water to flow quicker for faster fill\/drain times. \u003c\/p\u003e\u003cp\u003eIf you are shopping for ballast bags to put in the rear lockers of your v-drive boat, the WakeMAKERS UniversalFIT ballast bags are a no-brainer decision. From the quality craftsmanship to the innovative design, these ballast bags are built to deliver improved wakes behind your boat.\u003c\/p\u003e\u003cp\u003eSold individually as seen here, these bags are also included our WakeMAKERS exclusive \u003ca href=\"https:\/\/www.wakemakers.com\/factory-wakeboard-ballast-upgrades\" title=\"Wakeboard boat ballast upgrade solutions\"\u003eFactory Ballast Upgrades\u003c\/a\u003e that integrate the bags into your boat's factory ballast system for automated filling\/draining. Use the dropdown tool to find available factory ballast upgrades for your year, make, and model boat.\u003c\/p\u003e\u003cp\u003eYou can also use our UniversalFIT Rear Locker ballast bags with a \u003ca href=\"https:\/\/www.wakemakers.com\/wakeboard-ballast-pumps?bag_compatibility=1533\" title=\"Shop for WakeMAKERS compatible portable ballast pumps\"\u003eportable ballast pump\u003c\/a\u003e or integrate them with a \u003ca href=\"https:\/\/www.wakemakers.com\/wakeboard-ballast-systems\" title=\"Shop for WakeMAKERS Complete Ballast Systems\"\u003eWakeMAKERS Complete Ballast System\u003c\/a\u003e for automated filling\/draining of the bags.\u003cbr\u003e\u003c\/p\u003e","published_at":"2024-12-31T00:09:21-08:00","created_at":"2022-05-31T09:09:26-07:00","vendor":"WakeMAKERS","type":"Ballast Bags","tags":["Hero"],"price":16999,"price_min":16999,"price_max":25999,"available":true,"price_varies":true,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":41675600920741,"title":"30\"L x 20\"W x 20\"H - 490lbs","option1":"30\"L x 20\"W x 20\"H - 490lbs","option2":null,"option3":null,"sku":"B0079","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 30\"L x 20\"W x 20\"H - 490lbs","public_title":"30\"L x 20\"W x 20\"H - 490lbs","options":["30\"L x 20\"W x 20\"H - 490lbs"],"price":18999,"weight":2667,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":41675600953509,"title":"45\"L x 25\"W x 20\"H - 910lbs","option1":"45\"L x 25\"W x 20\"H - 910lbs","option2":null,"option3":null,"sku":"B0080","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 45\"L x 25\"W x 20\"H - 910lbs","public_title":"45\"L x 25\"W x 20\"H - 910lbs","options":["45\"L x 25\"W x 20\"H - 910lbs"],"price":24999,"weight":3583,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":41675600986277,"title":"45\"L x 25\"W x 25\"H - 1,140lbs","option1":"45\"L x 25\"W x 25\"H - 1,140lbs","option2":null,"option3":null,"sku":"B0081","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 45\"L x 25\"W x 25\"H - 1,140lbs","public_title":"45\"L x 25\"W x 25\"H - 1,140lbs","options":["45\"L x 25\"W x 25\"H - 1,140lbs"],"price":25999,"weight":4137,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":41675601019045,"title":"45\"L x 20\"W x 25\"H - 910lbs","option1":"45\"L x 20\"W x 25\"H - 910lbs","option2":null,"option3":null,"sku":"B0082","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 45\"L x 20\"W x 25\"H - 910lbs","public_title":"45\"L x 20\"W x 25\"H - 910lbs","options":["45\"L x 20\"W x 25\"H - 910lbs"],"price":24999,"weight":4064,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}
8179,{"id":41675601051813,"title":"45\"L x 20\"W x 20\"H - 720lbs","option1":"45\"L x 20\"W x 20\"H - 720lbs","option2":null,"option3":null,"sku":"B0083","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 45\"L x 20\"W x 20\"H - 720lbs","public_title":"45\"L x 20\"W x 20\"H - 720lbs","options":["45\"L x 20\"W x 20\"H - 720lbs"],"price":22999,"weight":3379,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":41675601084581,"title":"40\"L x 25\"W x 15\"H - 610lbs","option1":"40\"L x 25\"W x 15\"H - 610lbs","option2":null,"option3":null,"sku":"B0088","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 40\"L x 25\"W x 15\"H - 610lbs","public_title":"40\"L x 25\"W x 15\"H - 610lbs","options":["40\"L x 25\"W x 15\"H - 610lbs"],"price":19999,"weight":2976,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":41675601117349,"title":"40\"L x 20\"W x 20\"H - 640lbs","option1":"40\"L x 20\"W x 20\"H - 640lbs","option2":null,"option3":null,"sku":"B0089","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 40\"L x 20\"W x 20\"H - 640lbs","public_title":"40\"L x 20\"W x 20\"H - 640lbs","options":["40\"L x 20\"W x 20\"H - 640lbs"],"price":19999,"weight":2957,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":41675601150117,"title":"40\"L x 25\"W x 20\"H - 820lbs","option1":"40\"L x 25\"W x 20\"H - 820lbs","option2":null,"option3":null,"sku":"B0090","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 40\"L x 25\"W x 20\"H - 820lbs","public_title":"40\"L x 25\"W x 20\"H - 820lbs","options":["40\"L x 25\"W x 20\"H - 820lbs"],"price":23999,"weight":3198,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":41675601182885,"title":"35\"L x 25\"W x 15\"H - 540lbs","option1":"35\"L x 25\"W x 15\"H - 540lbs","option2":null,"option3":null,"sku":"B0091","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 35\"L x 25\"W x 15\"H - 540lbs","public_title":"35\"L x 25\"W x 15\"H - 540lbs","options":["35\"L x 25\"W x 15\"H - 540lbs"],"price":18999,"weight":2622,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":41675601215653,"title":"50\"L x 25\"W x 15\"H - 740lbs","option1":"50\"L x 25\"W x 15\"H - 740lbs","option2":null,"option3":null,"sku":"B0092","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 50\"L x 25\"W x 15\"H - 740lbs","public_title":"50\"L x 25\"W x 15\"H - 740lbs","options":["50\"L x 25\"W x 15\"H - 740lbs"],"price":22999,"weight":4064,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":41675601248421,"title":"50\"L x 25\"W x 25\"H - 1,280lbs","option1":"50\"L x 25\"W x 25\"H - 1,280lbs","option2":null,"option3":null,"sku":"B0093","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 50\"L x 25\"W x 25\"H - 1,280lbs","public_title":"50\"L x 25\"W x 25\"H - 1,280lbs","options":["50\"L x 25\"W x 25\"H - 1,280lbs"],"price":24999,"weight":3896,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":41675601281189,"title":"30\"L x 25\"W x 15\"H - 460lbs","option1":"30\"L x 25\"W x 15\"H - 460lbs","option2":null,"option3":null,"sku":"B0096","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 30\"L x 25\"W x 15\"H - 460lbs","public_title":"30\"L x 25\"W x 15\"H - 460lbs","options":["30\"L x 25\"W x 15\"H - 460lbs"],"price":17999,"weight":4064,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":41675601313957,"title":"35\"L x 20\"W x 15\"H - 430lbs","option1":"35\"L x 20\"W x 15\"H - 430lbs","option2":null,"option3":null,"sku":"B0110","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 35\"L x 20\"W x 15\"H - 430lbs","public_title":"35\"L x 20\"W x 15\"H - 430lbs","options":["35\"L x 20\"W x 15\"H - 430lbs"],"price":16999,"weight":3116,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":41675601346725,"title":"30\"L x 25\"W x 25\"H - 765lbs","option1":"30\"L x 25\"W x 25\"H - 765lbs","option2":null,"option3":null,"sku":"B0121","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 30\"L x 25\"W x 25\"H - 765lbs","public_title":"30\"L x 25\"W x 25\"H - 765lbs","options":["30\"L x 25\"W x 25\"H - 765lbs"],"price":22999,"weight":4064,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":41675601379493,"title":"45\"L x 20\"W x 15\"H - 550lbs","option1":"45\"L x 20\"W x 15\"H - 550lbs","option2":null,"option3":null,"sku":"B0122","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 45\"L x 20\"W x 15\"H - 550lbs","public_title":"45\"L x 20\"W x 15\"H - 550lbs","options":["45\"L x 20\"W x 15\"H - 550lbs"],"price":18999,"weight":4064,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":41675601412261,"title":"35\"L x 25\"W x 20\"H - 710lbs","option1":"35\"L x 25\"W x 20\"H - 710lbs","option2":null,"option3":null,"sku":"B0144","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 35\"L x 25\"W x 20\"H - 710lbs","public_title":"35\"L x 25\"W x 20\"H - 710lbs","options":["35\"L x 25\"W x 20\"H - 710lbs"],"price":22999,"weight":3116,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":41675601445029,"title":"30\"L x 25\"W x 20\"H - 610lbs","option1":"30\"L x 25\"W x 20\"H - 610lbs","option2":null,"option3":null,"sku":"B0145","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 30\"L x 25\"W x 20\"H - 610lbs","public_title":"30\"L x 25\"W x 20\"H - 610lbs","options":["30\"L x 25\"W x 20\"H - 610lbs"],"price":19999,"weight":2953,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":41675601477797,"title":"50\"L x 25\"W x 20\"H - 1,020lbs","option1":"50\"L x 25\"W x 20\"H - 1,020lbs","option2":null,"option3":null,"sku":"B0146","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 50\"L x 25\"W x 20\"H - 1,020lbs","public_title":"50\"L x 25\"W x 20\"H - 1,020lbs","options":["50\"L x 25\"W x 20\"H - 1,020lbs"],"price":25999,"weight":4078,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":41675601510565,"title":"35\"L x 25\"W x 25\"H - 890lbs","option1":"35\"L x 25\"W x 25\"H - 890lbs","option2":null,"option3":null,"sku":"B0147","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"WakeMAKERS UniversalFIT Rear Locker Ballast Bags (Multiple Sizes) - 35\"L x 25\"W x 25\"H - 890lbs","public_title":"35\"L x 25\"W x 25\"H - 890lbs","options":["35\"L x 25\"W x 25\"H - 890lbs"],"price":24999,"weight":3524,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}],"images":["\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349","\/\/www.wakemakers.com\/cdn\/shop\/files\/media_5ae53fe7-bb7a-400e-90fa-f8808321d7f0.jpg?v=1731575349","\/\/www.wakemakers.com\/cdn\/shop\/files\/media_359cf2c8-823d-426a-a282-8aac94ceb420.jpg?v=1731575349","\/\/www.wakemakers.com\/cdn\/shop\/files\/media_d169f32a-a6fb-45ca-b844-c8ac49c8d783.jpg?v=1731575349"],"featured_image":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349","options":["Bag Size"],"media":[{"alt":null,"id":30354210390181,"position":1,"preview_image":{"aspect_ratio":0.999,"height":1001,"width":1000,"src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349"},"aspect_ratio":0.999,"height":1001,"media_type":"image","src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg?v=1731575349","width":1000},{"alt":null,"id":30354210422949,"position":2,"preview_image":{"aspect_ratio":1.0,"height":1000,"width":1000,"src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_5ae53fe7-bb7a-400e-90fa-f8808321d7f0.jpg?v=1731575349"},"aspect_ratio":1.0,"height":1000,"media_type":"image","src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_5ae53fe7-bb7a-400e-90fa-f8808321d7f0.jpg?v=1731575349","width":1000},{"alt":null,"id":30354210455717,"position":3,"preview_image":{"aspect_ratio":1.0,"height":1000,"width":1000,"src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_359cf2c8-823d-426a-a282-8aac94ceb420.jpg?v=1731575349"},"aspect_ratio":1.0,"height":1000,"media_type":"image","src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_359cf2c8-823d-426a-a282-8aac94ceb420.jpg?v=1731575349","width":1000},{"alt":null,"id":30354210488485,"position":4,"preview_image":{"aspect_ratio":0.999,"height":1001,"width":1000,"src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_d169f32a-a6fb-45ca-b844-c8ac49c8d783.jpg?v=1731575349"},"aspect_ratio":0.999,"height":1001,"media_type":"image","src":"\/\/www.wakemakers.com\/cdn\/shop\/files\/media_d169f32a-a6fb-45ca-b844-c8ac49c8d783.jpg?v=1731575349","width":1000}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cp\u003eOur exclusive WakeMAKERS UniversalFIT Rear Locker Ballast Bags are making a splash in the industry and forever changing how boaters look at ballast bags. The team of product designers and engineers at WakeMAKERS agreed that a 'one-size fits all' approach that other brands are taking isn't good enough. Seeking a better ballast solution than standard sized bags, we developed our series of UniversalFIT ballast bags, designed for specific zones of your boat and offered in incremental sizes to give you better fitment and improved wake performance.\u003c\/p\u003e\u003cp\u003eRanging from 400 to 1,200 lbs. in size, the UniversalFIT Rear Locker bags allow you to choose the dimensions of the bag in 5\" increments. The result is a much better fitting bag for your boat's rear locker, allowing you to fill to capacity and maximize added weight for the best possible wake. WakeMAKERS UniversalFIT ballast bags give you a nearly perfect fit without the expense of building a custom bag.\u003c\/p\u003e\u003cp\u003eAll WakeMAKERS ballast bags come standard with an industry-leading two year warranty. The bags are constructed of a DuraTEK, our proprietary material that is strong, durable, and puncture resistant. Once the material is cut, the bags are RF welded together with 1\" seams to ensure a clean look and watertight seal. There are five 1\" NPT ports on this ballast bag that feature a tapered thread pattern and bottom o-ring for a leak-free seal. The larger port size allows water to flow quicker for faster fill\/drain times. \u003c\/p\u003e\u003cp\u003eIf you are shopping for ballast bags to put in the rear lockers of your v-drive boat, the WakeMAKERS UniversalFIT ballast bags are a no-brainer decision. From the quality craftsmanship to the innovative design, these ballast bags are built to deliver improved wakes behind your boat.\u003c\/p\u003e\u003cp\u003eSold individually as seen here, these bags are also included our WakeMAKERS exclusive \u003ca href=\"https:\/\/www.wakemakers.com\/factory-wakeboard-ballast-upgrades\" title=\"Wakeboard boat ballast upgrade solutions\"\u003eFactory Ballast Upgrades\u003c\/a\u003e that integrate the bags into your boat's factory ballast system for automated filling\/draining. Use the dropdown tool to find available factory ballast upgrades for your year, make, and model boat.\u003c\/p\u003e\u003cp\u003eYou can also use our UniversalFIT Rear Locker ballast bags with a \u003ca href=\"https:\/\/www.wakemakers.com\/wakeboard-ballast-pumps?bag_compatibility=1533\" title=\"Shop for WakeMAKERS compatible portable ballast pumps\"\u003eportable ballast pump\u003c\/a\u003e or integrate them with a \u003ca href=\"https:\/\/www.wakemakers.com\/wakeboard-ballast-systems\" title=\"Shop for WakeMAKERS Complete Ballast Systems\"\u003eWakeMAKERS Complete Ballast System\u003c\/a\u003e for automated filling\/draining of the bags.\u003cbr\u003e\u003c\/p\u003e"};
8180        if (!camouflage_product) return;
8181        
8182        const product_metafields = {} || {};
8183        const options_with_values = [];options_with_values.push({
8184                name: "Bag Size",
8185                values: [{name: "30\"L x 20\"W x 20\"H - 490lbs", id: 788604616869, available: true, swatch_color: null, swatch_link: null },{name: "45\"L x 25\"W x 20\"H - 910lbs", id: 117971189925, available: true, swatch_color: null, swatch_link: null },{name: "45\"L x 25\"W x 25\"H - 1,140lbs", id: 788604649637, available: true, swatch_color: null, swatch_link: null },{name: "45\"L x 20\"W x 25\"H - 910lbs", id: 788604682405, available: true, swatch_color: null, swatch_link: null },{name: "45\"L x 20\"W x 20\"H - 720lbs", id: 788604715173, available: true, swatch_color: null, swatch_link: null },{name: "40\"L x 25\"W x 15\"H - 610lbs", id: 788604747941, available: true, swatch_color: null, swatch_link: null },{name: "40\"L x 20\"W x 20\"H - 640lbs", id: 788604780709, available: true, swatch_color: null, swatch_link: null },{name: "40\"L x 25\"W x 20\"H - 820lbs", id: 788604813477, available: true, swatch_color: null, swatch_link: null },{name: "35\"L x 25\"W x 15\"H - 540lbs", id: 788604846245, available: true, swatch_color: null, swatch_link: null },{name: "50\"L x 25\"W x 15\"H - 740lbs", id: 788604879013, available: true, swatch_color: null, swatch_link: null },{name: "50\"L x 25\"W x 25\"H - 1,280lbs", id: 788604911781, available: true, swatch_color: null, swatch_link: null },{name: "30\"L x 25\"W x 15\"H - 460lbs", id: 788604944549, available: true, swatch_co
8185lor: null, swatch_link: null },{name: "35\"L x 20\"W x 15\"H - 430lbs", id: 788604977317, available: true, swatch_color: null, swatch_link: null },{name: "30\"L x 25\"W x 25\"H - 765lbs", id: 788605010085, available: true, swatch_color: null, swatch_link: null },{name: "45\"L x 20\"W x 15\"H - 550lbs", id: 788605042853, available: true, swatch_color: null, swatch_link: null },{name: "35\"L x 25\"W x 20\"H - 710lbs", id: 788605075621, available: true, swatch_color: null, swatch_link: null },{name: "30\"L x 25\"W x 20\"H - 610lbs", id: 788605108389, available: true, swatch_color: null, swatch_link: null },{name: "50\"L x 25\"W x 20\"H - 1,020lbs", id: 788605141157, available: true, swatch_color: null, swatch_link: null },{name: "35\"L x 25\"W x 25\"H - 890lbs", id: 788605173925, available: true, swatch_color: null, swatch_link: null },],
8186                id: null
8187            });const product_metafields_app = {} || {};
8188        const final_metafields = { ...product_metafields, ...product_metafields_app };
8189        const selected_or_first_available_variant_id = "41675600920741";
8190        camouflage_product.product_images_with_id = [{"image_id": "38230099361957","media_id": "","url": "files/media_66e73eb8-1fa4-4b44-80bf-257379ba87a8.jpg"},{"image_id": "38230099394725","media_id": "","url": "files/media_5ae53fe7-bb7a-400e-90fa-f8808321d7f0.jpg"},{"image_id": "38230099427493","media_id": "","url": "files/media_359cf2c8-823d-426a-a282-8aac94ceb420.jpg"},{"image_id": "38230099460261","media_id": "","url": "files/media_d169f32a-a6fb-45ca-b844-c8ac49c8d783.jpg"},]
8191        camouflage_product.hide_oos_variant_qty = [5,22,4,0,5,0,7,17,0,6,0,21,2,3,0,5,0,0,0,];
8192        const hide_oos_variant_qty = camouflage_product.hide_oos_variant_qty || [];
8193        camouflage_product.options_with_values = options_with_values;
8194        camouflage_product.variants_count = 19;
8195
8196        const variant_camouflage_metafields = {};
8197        const variant_info = {};variant_camouflage_metafields[41675600920741] = {};
8198            variant_info[41675600920741] = {inventory_policy: "continue"};variant_camouflage_metafields[41675600953509] = {};
8199            variant_info[41675600953509] = {inventory_policy: "continue"};variant_camouflage_metafields[41675600986277] = {};
8200            variant_info[41675600986277] = {inventory_policy: "continue"};variant_camouflage_metafields[41675601019045] = {};
8201            variant_info[41675601019045] = {inventory_policy: "continue"};variant_camouflage_metafields[41675601051813] = {};
8202            variant_info[41675601051813] = {inventory_policy: "continue"};variant_camouflage_metafields[41675601084581] = {};
8203            variant_info[41675601084581] = {inventory_policy: "continue"};variant_camouflage_metafields[41675601117349] = {};
8204            variant_info[41675601117349] = {inventory_policy: "continue"};variant_camouflage_metafields[41675601150117] = {};
8205            variant_info[41675601150117] = {inventory_policy: "continue"};variant_camouflage_metafields[41675601182885] = {};
8206            variant_info[41675601182885] = {inventory_policy: "continue"};variant_camouflage_metafields[41675601215653] = {};
8207            variant_info[41675601215653] = {inventory_policy: "continue"};variant_camouflage_metafields[41675601248421] = {};
8208            variant_info[41675601248421] = {inventory_policy: "continue"};variant_camouflage_metafields[41675601281189] = {};
8209            variant_info[41675601281189] = {inventory_policy: "continue"};variant_camouflage_metafields[41675601313957] = {};
8210            variant_info[41675601313957] = {inventory_policy: "continue"};variant_camouflage_metafields[41675601346725] = {};
8211            variant_info[41675601346725] = {inventory_policy: "continue"};variant_camouflage_metafields[41675601379493] = {};
8212            variant_info[41675601379493] = {inventory_policy: "continue"};variant_camouflage_metafields[41675601412261] = {};
8213            variant_info[41675601412261] = {inventory_policy: "continue"};variant_camouflage_metafields[41675601445029] = {};
8214            variant_info[41675601445029] = {inventory_policy: "continue"};variant_camouflage_metafields[41675601477797] = {};
8215            variant_info[41675601477797] = {inventory_policy: "continue"};variant_camouflage_metafields[41675601510565] = {};
8216            variant_info[41675601510565] = {inventory_policy: "continue"};camouflage_product.variant_camouflage_metafields = variant_camouflage_metafields;
8217        if (variant_camouflage_metafields) {
8218            for (let camo_id = 0; camo_id < camouflage_product.variants.length; camo_id++) {
8219                const camo_variant = camouflage_product.variants[camo_id];
8220                if (camo_variant.id in variant_camouflage_metafields) {
8221                    camouflage_product.variants[camo_id] = {...camo_variant, ...variant_camouflage_metafields[camo_variant.id]};
8222                }
8223            }
8224        }
8225        for (let camo_id = 0; camo_id < camouflage_product.variants.length; camo_id++) {
8226            const camo_variant = camouflage_product.variants[camo_id];
8227            if (camo_variant.id in variant_info) {
8228                camouflage_product.variants[camo_id].inventory_policy = variant_info[camo_variant.id].inventory_policy;
8229            }
8230        }
8231        
8232        // backward compatibility
8233        if (window.hide_oos_t_settings) {
8234            window.hide_oos_t_settings.product = camouflage_product;
8235        }
8236
8237        window.camouflage_global_config.variant_action = "hide" || window.camouflage_global_config.variant_action;
8238
8239        // keep this above camouflageParams
8240        try {
8241            
8242        } catch(error) {
8243            console.error(error);
8244            console.error('error custom_js2');
8245        }
8246
8247        const camouflageParams = {
8248            ...window.camouflage_global_config,
8249            product: camouflage_product,
8250            selected_or_first_available_variant_id: selected_or_first_available_variant_id,
8251            hide_oos_variant_qty: hide_oos_variant_qty, // not required if variant.inventory_quantity is set
8252            ...final_metafields // sets always_hide, always_show, schedule_hide and always_hide_show_field
8253        };
8254
8255        const camouflageParamsLoaded = new CustomEvent('hoos:camouflage_params_built', {
8256            detail: camouflageParams
8257        });
8258        document.dispatchEvent(camouflageParamsLoaded);
8259
8260        const runCamouflageInit = () => {
8261            const currentPageUrl = new URL(window.location.href);
8262            if (currentPageUrl.searchParams.get('skip_camouflage') == 'true') {
8263                window.skip_camouflage = true;
8264            }
8265            if (window.skip_camouflage === true) {
8266                return;
8267            }
8268            window.initCamouflage(camouflageParams);
8269            window.hide_oos_initiated = true;
8270        }
8271        
8272        if (typeof window.initCamouflage === "function") {
8273            runCamouflageInit(camouflageParams);
8274        } else {
8275            document.addEventListener('hoos:scriptloaded', (event) => {
8276                if (window.CAMOUFLAGEE.script_executed_via_event) return;
8277                if(event.detail && event.detail.currentTime && window.loaded_script_hoos_obj) {
8278                    if(window.loaded_script_hoos_obj[event.detail.currentTime]) {
8279                        return;
8280                    }
8281                    window.loaded_script_hoos_obj[event.detail.currentTime] = 1;
8282                }
8283                runCamouflageInit(camouflageParams);
8284                window.CAMOUFLAGEE.script_executed_via_event = true;
8285            });
8286        }
8287    })();
8288</script>
8288
8289<!-- END app snippet --><!-- BEGIN app snippet: more-scripts-v2 -->
8289<script src="https://cdn.shopify.com/extensions/01a08a21-5062-724b-a3f6-05b9f88f68da/3.12.3/assets/scripts-v2.min.js" defer></script>
8289<!-- END app snippet --><!-- BEGIN app snippet: swatch-snippet --><!-- END app snippet -->
8290    
8290<script id="camouflage-custom-js-global">
8291        const tickInStockFilter = (availabilityInput) => {
8292  if (availabilityInput && (!availabilityInput.value || availabilityInput.value === 'none')) {
8293    const inStockOption = availabilityInput.querySelector('option[value="1"]');
8294    if (inStockOption) {
8295      inStockOption.selected = true;
8296    }
8297    availabilityInput.value = '1';
8298    const inputEvent = new Event('input', { bubbles: true });
8299    availabilityInput.dispatchEvent(inputEvent);
8300    const changeEvent = new Event('change', { bubbles: true });
8301    availabilityInput.dispatchEvent(changeEvent);
8302
8303    availabilityInput.classList.add('camouflage-filter-checked');
8304    const hoosEvent = new CustomEvent('hoos:collection_filter_checked', {
8305      detail: availabilityInput,
8306    });
8307    document.dispatchEvent(hoosEvent);
8308  }
8309};
8310
8311function setInStockFilterOnLoad() {
8312  document.addEventListener("DOMContentLoaded", () => {
8313    document.querySelectorAll('select[name="filter.v.availability"]').forEach(availabilityInput => {
8314      if (availabilityInput && !availabilityInput.classList.contains('camouflage-filter-checked')) {
8315        tickInStockFilter(availabilityInput);
8316      }
8317    })
8318  });
8319
8320  let lapsedTime = 0;
8321  let intervalDuration = 100;
8322  const intervalTimer = setInterval(() => {
8323    lapsedTime += intervalDuration;
8324    document.querySelectorAll('select[name="filter.v.availability"]').forEach(availabilityInput => {
8325      if (availabilityInput && !availabilityInput.classList.contains('camouflage-filter-checked')) {
8326        tickInStockFilter(availabilityInput);
8327      }
8328    });
8329    if (lapsedTime >= 4000) {
8330      clearInterval(intervalTimer);
8331    }
8332  }, intervalDuration);
8333}
8334
8335document.addEventListener('hoos:script2loaded', () => {
8336  if (typeof window.CAMOUFLAGEE.setInStockFilterOnLoad === "function") {
8337    if (!window.location.search.includes('filter.v.availability')) {
8338      // setInStockFilterOnLoad();
8339    }
8340  }
8341});
8342    </script>
8342
8343
8344
8345
8346
8347
8348
8349</div>
8349<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
8349
8350</body>
8351  </html>
8352  

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.