<!DOCTYPE html>
<!-- saved from url=(0072)https://asset.gomoxie.solutions/concierge/rbc/client/storage_bridge.html -->
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head><body>
<script type="text/javascript">/* Copyright 2014-2021 © Moxie Software. All Rights Reserved. Concierge Version: v1.26.2 */
!function(){"use strict";var e="",s=null,t=null,r=null,i=["moxie_cc"],n={ls:[],ss:[]},o={ls:{},ss:{}},a=!1,l=function(e){void 0!==window.GoMoxie&&"undefined"!==window.GoMoxie.console?window.GoMoxie.console.log(e):void 0!==window.console&&window.console.log(e)},g=function(e,s){l(e+s.stack?s.stack:s.message)},u=function(e){return e.signature="moxie_concierge",e};function c(e){if(null===e)return null;try{var s=e.charAt(0);return"{"===s||"["===s||'"'===s?JSON.parse(e):e}catch(e){return l("JSON: StorageBridge unable to parse: "),""}}function d(e,s){var t=e.indexOf(s);return t>=0?e.splice(t,1):null}function f(){var s=JSON.stringify(Date.now());localStorage.setItem(e+"|update-time",s),a&&sessionStorage.setItem("ls-"+e+"|update-time",s)}function S(e){var s=e.indexOf("|");return s>0&&(e=e.slice(s+1)),e}function m(e,s,t){var r=e.getItem(s);return r!==t&&e.setItem(s,t),r}function v(e,s){for(var t,r=s.length,i=[],n=0;n<r;n++)0===(t=s.key(n)).indexOf(e)&&i.push(t);return i}function y(){var s,t=localStorage.getItem(e+"|update-time"),r=sessionStorage.getItem("ls-"+e+"|update-time"),i=!!t,n={ssUpdateTime:r,updateTime:t,ssUpdateTimeNumber:Number(r),updateTimeNumber:Number(t),shouldCopy:r&&(!t||Number(r)>Number(t))};if(l("Check to copy: "+JSON.stringify(n)),r){if(!t||Number(r)>Number(t)){l("Copying shared keys from session_storage into local_storage");var o=function(e){for(var s=[],t=e.length,r=0;r<t;r++)s[r]=S(e[r]);return s}(v(e+"|",localStorage));d(o,"client-keys"),d(o,"update-time");var a=sessionStorage.getItem("ls-"+e+"|client-keys");if(a){var g=c(a);for(s=0;s<g.length;s++){var u=S(g[s]);d(o,u);var f=sessionStorage.getItem("ls-"+e+"|"+u);m(localStorage,e+"|"+u,f)}for(m(localStorage,e+"|client-keys",a),s=o.length;s>0;s--)localStorage.removeItem(o[s-1])}i=!1}t&&Number(r)===Number(t)&&(i=!1)}return i}function p(s,t){var r,i,a,l,g,u=s?localStorage:sessionStorage;if(r=u.getItem(e+"|client-keys"))for(n[t]=i=c(r),a=0;a<i.length;a++)g=S(i[a]),s&&0===g.indexOf("ls-")||(s||"update-time"!==g)&&(l=u.getItem(e+"|"+g),o[t][g]=c(l))}function k(e,s){return e=e||{},s.requesterId&&(e.requesterId=s.requesterId),s.requestId&&(e.requestId=s.requestId),e.bridgeName="storage_bridge",e}function w(i,g){if(e)l('StorageBridge: initClient has already been invoked for "'+e+'"" event: "'+i.client+'"');else{e=i.client,s=g.source,t=g.origin,r=i.requesterId;var u=!1;(a=i.shadowInSessionStorage||!1)&&(u=y()),p(!0,"ls"),p(!1,"ss"),u&&function(s){for(var t=0;t<s.length;t++){var r=S(s[t]),i=localStorage.getItem(e+"|"+r);m(sessionStorage,"ls-"+e+"|"+r,i)}m(sessionStorage,"ls-"+e+"|client-keys",JSON.stringify(s)),f()}(n.ls)}return k({request:"initResponse",lsValue:o.ls,ssValue:o.ss},i)}function N(e,s){for(var t=v(e,s),r=t.length,i=0;i<r;i++)s.removeItem(t[i])}function h(s){var t,r,i=s.data;if("string"==typeof i)try{i=JSON.parse(i)}catch(e){return void g("StorageBridge: handleRequest parsing error: ",e)}if(s.origin,"moxie_concierge"===i.signature)try{switch(i.request){case"init":s.source.postMessage(JSON.stringify(u(w(i,s))),s.origin);break;case"clear":s.source.postMessage(JSON.stringify(u((t=i,N(r=e+"|",sessionStorage),N(r,localStorage),a&&(N("ls-"+r,localStorage),N("ls-"+r,sessionStorage)),n.ls=[],n.ss=[],m(sessionStorage,e+"|client-keys","[]"),m(localStorage,e+"|client-keys","[]"),a&&m(sessionStorage,"ls-"+e+"|client-keys","[]"),f(),k({request:"ack"},t)))),s.origin);break;case"store":s.source.postMessage(JSON.stringify(u(function(s){var t=e+"|"+s.key,r=s.persist?"ls":"ss",i=s.persist?localStorage:sessionStorage,o=JSON.stringify(s.value);if(m(i,t,o),n[r].indexOf(t)<0){n[r].push(t);var l=JSON.stringify(n[r]);m(i,e+"|client-keys",l),s.persist&&a&&m(sessionStorage,"ls-"+e+"|client-keys",l)}return s.persist&&(f(),a&&m(sessionStorage,"ls-"+s.client+"|"+s.key,o)),k({request:"ack"},s)}(i))),s.origin);break;case"remove":s.source.postMessage(JSON.stringify(u(function(s){var t=e+"|"+s.key,r=s.persist?"ls":"ss",i=s.persist?localStorage:sessionStorage;if(n[r].indexOf(t)>=0){n[r].splice(n[r].indexOf(t),1);var o=JSON.stringify(n[r]);m(i,e+"|client-keys",o),i.removeItem(t),s.persist&&(f(),a&&(m(sessionStorage,"ls-"+e+"|client-keys",o),sessionStorage.removeItem("ls-"+e+"|"+s.key)))}return k({request:"ack"},s)}(i))),s.origin)}}catch(e){g("StorageBridge.handleRequest: error: ",e),s.source.postMessage(JSON.stringify(u(k({error:{message:e.message,stack:e.stack}},i))),s.origin)}}function I(n){try{var o=n.key,a=o.indexOf("|");if(a>0){var l=o.slice(0,a),g=o.slice(a+1);if(l===e&&i.indexOf(g)>=0){if(null!==s){var c=u(k({request:"updated",key:g,oldValue:n.oldValue,newValue:n.newValue},{requesterId:r}));s.postMessage(JSON.stringify(c),t)}return}}}catch(e){}}window.addEventListener?(window.addEventListener("message",h),window.addEventListener("storage",I)):window.attachEvent&&(window.attachEvent("onmessage",h),window.attachEvent("onstorage",I))}();
</script>
</body></html>