var __defProp = Object.defineProperty; var __defProps = Object.defineProperties; var __getOwnPropDescs = Object.getOwnPropertyDescriptors; var __getOwnPropSymbols = Object.getOwnPropertySymbols; var __hasOwnProp = Object.prototype.hasOwnProperty; var __propIsEnum = Object.prototype.propertyIsEnumerable; var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __spreadValues = (a4, b3) => { for (var prop in b3 || (b3 = {})) if (__hasOwnProp.call(b3, prop)) __defNormalProp(a4, prop, b3[prop]); if (__getOwnPropSymbols) for (var prop of __getOwnPropSymbols(b3)) { if (__propIsEnum.call(b3, prop)) __defNormalProp(a4, prop, b3[prop]); } return a4; }; var __spreadProps = (a4, b3) => __defProps(a4, __getOwnPropDescs(b3)); var __objRest = (source, exclude) => { var target = {}; for (var prop in source) if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0) target[prop] = source[prop]; if (source != null && __getOwnPropSymbols) for (var prop of __getOwnPropSymbols(source)) { if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop)) target[prop] = source[prop]; } return target; }; var __async = (__this, __arguments, generator) => { return new Promise((resolve, reject) => { var fulfilled = (value) => { try { step(generator.next(value)); } catch (e4) { reject(e4); } }; var rejected = (value) => { try { step(generator.throw(value)); } catch (e4) { reject(e4); } }; var step = (x3) => x3.done ? resolve(x3.value) : Promise.resolve(x3.value).then(fulfilled, rejected); step((generator = generator.apply(__this, __arguments)).next()); }); }; // frontend/node_modules/preact/dist/preact.module.js var n; var l; var u; var i; var t; var r; var o; var f; var e = {}; var c = []; var s = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i; function a(n4, l4) { for (var u4 in l4) n4[u4] = l4[u4]; return n4; } function h(n4) { var l4 = n4.parentNode; l4 && l4.removeChild(n4); } function v(l4, u4, i4) { var t5, r4, o5, f4 = {}; for (o5 in u4) o5 == "key" ? t5 = u4[o5] : o5 == "ref" ? r4 = u4[o5] : f4[o5] = u4[o5]; if (arguments.length > 2 && (f4.children = arguments.length > 3 ? n.call(arguments, 2) : i4), typeof l4 == "function" && l4.defaultProps != null) for (o5 in l4.defaultProps) f4[o5] === void 0 && (f4[o5] = l4.defaultProps[o5]); return y(l4, f4, t5, r4, null); } function y(n4, i4, t5, r4, o5) { var f4 = { type: n4, props: i4, key: t5, ref: r4, __k: null, __: null, __b: 0, __e: null, __d: void 0, __c: null, __h: null, constructor: void 0, __v: o5 == null ? ++u : o5 }; return o5 == null && l.vnode != null && l.vnode(f4), f4; } function d(n4) { return n4.children; } function _(n4, l4) { this.props = n4, this.context = l4; } function k(n4, l4) { if (l4 == null) return n4.__ ? k(n4.__, n4.__.__k.indexOf(n4) + 1) : null; for (var u4; l4 < n4.__k.length; l4++) if ((u4 = n4.__k[l4]) != null && u4.__e != null) return u4.__e; return typeof n4.type == "function" ? k(n4) : null; } function b(n4) { var l4, u4; if ((n4 = n4.__) != null && n4.__c != null) { for (n4.__e = n4.__c.base = null, l4 = 0; l4 < n4.__k.length; l4++) if ((u4 = n4.__k[l4]) != null && u4.__e != null) { n4.__e = n4.__c.base = u4.__e; break; } return b(n4); } } function m(n4) { (!n4.__d && (n4.__d = true) && t.push(n4) && !g.__r++ || o !== l.debounceRendering) && ((o = l.debounceRendering) || r)(g); } function g() { for (var n4; g.__r = t.length; ) n4 = t.sort(function(n5, l4) { return n5.__v.__b - l4.__v.__b; }), t = [], n4.some(function(n5) { var l4, u4, i4, t5, r4, o5; n5.__d && (r4 = (t5 = (l4 = n5).__v).__e, (o5 = l4.__P) && (u4 = [], (i4 = a({}, t5)).__v = t5.__v + 1, j(o5, t5, i4, l4.__n, o5.ownerSVGElement !== void 0, t5.__h != null ? [r4] : null, u4, r4 == null ? k(t5) : r4, t5.__h), z(u4, t5), t5.__e != r4 && b(t5))); }); } function w(n4, l4, u4, i4, t5, r4, o5, f4, s4, a4) { var h3, v3, p3, _2, b3, m4, g3, w3 = i4 && i4.__k || c, A2 = w3.length; for (u4.__k = [], h3 = 0; h3 < l4.length; h3++) if ((_2 = u4.__k[h3] = (_2 = l4[h3]) == null || typeof _2 == "boolean" ? null : typeof _2 == "string" || typeof _2 == "number" || typeof _2 == "bigint" ? y(null, _2, null, null, _2) : Array.isArray(_2) ? y(d, { children: _2 }, null, null, null) : _2.__b > 0 ? y(_2.type, _2.props, _2.key, null, _2.__v) : _2) != null) { if (_2.__ = u4, _2.__b = u4.__b + 1, (p3 = w3[h3]) === null || p3 && _2.key == p3.key && _2.type === p3.type) w3[h3] = void 0; else for (v3 = 0; v3 < A2; v3++) { if ((p3 = w3[v3]) && _2.key == p3.key && _2.type === p3.type) { w3[v3] = void 0; break; } p3 = null; } j(n4, _2, p3 = p3 || e, t5, r4, o5, f4, s4, a4), b3 = _2.__e, (v3 = _2.ref) && p3.ref != v3 && (g3 || (g3 = []), p3.ref && g3.push(p3.ref, null, _2), g3.push(v3, _2.__c || b3, _2)), b3 != null ? (m4 == null && (m4 = b3), typeof _2.type == "function" && _2.__k === p3.__k ? _2.__d = s4 = x(_2, s4, n4) : s4 = P(n4, _2, p3, w3, b3, s4), typeof u4.type == "function" && (u4.__d = s4)) : s4 && p3.__e == s4 && s4.parentNode != n4 && (s4 = k(p3)); } for (u4.__e = m4, h3 = A2; h3--; ) w3[h3] != null && (typeof u4.type == "function" && w3[h3].__e != null && w3[h3].__e == u4.__d && (u4.__d = k(i4, h3 + 1)), N(w3[h3], w3[h3])); if (g3) for (h3 = 0; h3 < g3.length; h3++) M(g3[h3], g3[++h3], g3[++h3]); } function x(n4, l4, u4) { for (var i4, t5 = n4.__k, r4 = 0; t5 && r4 < t5.length; r4++) (i4 = t5[r4]) && (i4.__ = n4, l4 = typeof i4.type == "function" ? x(i4, l4, u4) : P(u4, i4, i4, t5, i4.__e, l4)); return l4; } function A(n4, l4) { return l4 = l4 || [], n4 == null || typeof n4 == "boolean" || (Array.isArray(n4) ? n4.some(function(n5) { A(n5, l4); }) : l4.push(n4)), l4; } function P(n4, l4, u4, i4, t5, r4) { var o5, f4, e4; if (l4.__d !== void 0) o5 = l4.__d, l4.__d = void 0; else if (u4 == null || t5 != r4 || t5.parentNode == null) n: if (r4 == null || r4.parentNode !== n4) n4.appendChild(t5), o5 = null; else { for (f4 = r4, e4 = 0; (f4 = f4.nextSibling) && e4 < i4.length; e4 += 2) if (f4 == t5) break n; n4.insertBefore(t5, r4), o5 = r4; } return o5 !== void 0 ? o5 : t5.nextSibling; } function C(n4, l4, u4, i4, t5) { var r4; for (r4 in u4) r4 === "children" || r4 === "key" || r4 in l4 || H(n4, r4, null, u4[r4], i4); for (r4 in l4) t5 && typeof l4[r4] != "function" || r4 === "children" || r4 === "key" || r4 === "value" || r4 === "checked" || u4[r4] === l4[r4] || H(n4, r4, l4[r4], u4[r4], i4); } function $(n4, l4, u4) { l4[0] === "-" ? n4.setProperty(l4, u4) : n4[l4] = u4 == null ? "" : typeof u4 != "number" || s.test(l4) ? u4 : u4 + "px"; } function H(n4, l4, u4, i4, t5) { var r4; n: if (l4 === "style") if (typeof u4 == "string") n4.style.cssText = u4; else { if (typeof i4 == "string" && (n4.style.cssText = i4 = ""), i4) for (l4 in i4) u4 && l4 in u4 || $(n4.style, l4, ""); if (u4) for (l4 in u4) i4 && u4[l4] === i4[l4] || $(n4.style, l4, u4[l4]); } else if (l4[0] === "o" && l4[1] === "n") r4 = l4 !== (l4 = l4.replace(/Capture$/, "")), l4 = l4.toLowerCase() in n4 ? l4.toLowerCase().slice(2) : l4.slice(2), n4.l || (n4.l = {}), n4.l[l4 + r4] = u4, u4 ? i4 || n4.addEventListener(l4, r4 ? T : I, r4) : n4.removeEventListener(l4, r4 ? T : I, r4); else if (l4 !== "dangerouslySetInnerHTML") { if (t5) l4 = l4.replace(/xlink[H:h]/, "h").replace(/sName$/, "s"); else if (l4 !== "href" && l4 !== "list" && l4 !== "form" && l4 !== "tabIndex" && l4 !== "download" && l4 in n4) try { n4[l4] = u4 == null ? "" : u4; break n; } catch (n5) { } typeof u4 == "function" || (u4 != null && (u4 !== false || l4[0] === "a" && l4[1] === "r") ? n4.setAttribute(l4, u4) : n4.removeAttribute(l4)); } } function I(n4) { this.l[n4.type + false](l.event ? l.event(n4) : n4); } function T(n4) { this.l[n4.type + true](l.event ? l.event(n4) : n4); } function j(n4, u4, i4, t5, r4, o5, f4, e4, c4) { var s4, h3, v3, y4, p3, k3, b3, m4, g3, x3, A2, P2 = u4.type; if (u4.constructor !== void 0) return null; i4.__h != null && (c4 = i4.__h, e4 = u4.__e = i4.__e, u4.__h = null, o5 = [e4]), (s4 = l.__b) && s4(u4); try { n: if (typeof P2 == "function") { if (m4 = u4.props, g3 = (s4 = P2.contextType) && t5[s4.__c], x3 = s4 ? g3 ? g3.props.value : s4.__ : t5, i4.__c ? b3 = (h3 = u4.__c = i4.__c).__ = h3.__E : ("prototype" in P2 && P2.prototype.render ? u4.__c = h3 = new P2(m4, x3) : (u4.__c = h3 = new _(m4, x3), h3.constructor = P2, h3.render = O), g3 && g3.sub(h3), h3.props = m4, h3.state || (h3.state = {}), h3.context = x3, h3.__n = t5, v3 = h3.__d = true, h3.__h = []), h3.__s == null && (h3.__s = h3.state), P2.getDerivedStateFromProps != null && (h3.__s == h3.state && (h3.__s = a({}, h3.__s)), a(h3.__s, P2.getDerivedStateFromProps(m4, h3.__s))), y4 = h3.props, p3 = h3.state, v3) P2.getDerivedStateFromProps == null && h3.componentWillMount != null && h3.componentWillMount(), h3.componentDidMount != null && h3.__h.push(h3.componentDidMount); else { if (P2.getDerivedStateFromProps == null && m4 !== y4 && h3.componentWillReceiveProps != null && h3.componentWillReceiveProps(m4, x3), !h3.__e && h3.shouldComponentUpdate != null && h3.shouldComponentUpdate(m4, h3.__s, x3) === false || u4.__v === i4.__v) { h3.props = m4, h3.state = h3.__s, u4.__v !== i4.__v && (h3.__d = false), h3.__v = u4, u4.__e = i4.__e, u4.__k = i4.__k, u4.__k.forEach(function(n5) { n5 && (n5.__ = u4); }), h3.__h.length && f4.push(h3); break n; } h3.componentWillUpdate != null && h3.componentWillUpdate(m4, h3.__s, x3), h3.componentDidUpdate != null && h3.__h.push(function() { h3.componentDidUpdate(y4, p3, k3); }); } h3.context = x3, h3.props = m4, h3.state = h3.__s, (s4 = l.__r) && s4(u4), h3.__d = false, h3.__v = u4, h3.__P = n4, s4 = h3.render(h3.props, h3.state, h3.context), h3.state = h3.__s, h3.getChildContext != null && (t5 = a(a({}, t5), h3.getChildContext())), v3 || h3.getSnapshotBeforeUpdate == null || (k3 = h3.getSnapshotBeforeUpdate(y4, p3)), A2 = s4 != null && s4.type === d && s4.key == null ? s4.props.children : s4, w(n4, Array.isArray(A2) ? A2 : [A2], u4, i4, t5, r4, o5, f4, e4, c4), h3.base = u4.__e, u4.__h = null, h3.__h.length && f4.push(h3), b3 && (h3.__E = h3.__ = null), h3.__e = false; } else o5 == null && u4.__v === i4.__v ? (u4.__k = i4.__k, u4.__e = i4.__e) : u4.__e = L(i4.__e, u4, i4, t5, r4, o5, f4, c4); (s4 = l.diffed) && s4(u4); } catch (n5) { u4.__v = null, (c4 || o5 != null) && (u4.__e = e4, u4.__h = !!c4, o5[o5.indexOf(e4)] = null), l.__e(n5, u4, i4); } } function z(n4, u4) { l.__c && l.__c(u4, n4), n4.some(function(u5) { try { n4 = u5.__h, u5.__h = [], n4.some(function(n5) { n5.call(u5); }); } catch (n5) { l.__e(n5, u5.__v); } }); } function L(l4, u4, i4, t5, r4, o5, f4, c4) { var s4, a4, v3, y4 = i4.props, p3 = u4.props, d4 = u4.type, _2 = 0; if (d4 === "svg" && (r4 = true), o5 != null) { for (; _2 < o5.length; _2++) if ((s4 = o5[_2]) && "setAttribute" in s4 == !!d4 && (d4 ? s4.localName === d4 : s4.nodeType === 3)) { l4 = s4, o5[_2] = null; break; } } if (l4 == null) { if (d4 === null) return document.createTextNode(p3); l4 = r4 ? document.createElementNS("http://www.w3.org/2000/svg", d4) : document.createElement(d4, p3.is && p3), o5 = null, c4 = false; } if (d4 === null) y4 === p3 || c4 && l4.data === p3 || (l4.data = p3); else { if (o5 = o5 && n.call(l4.childNodes), a4 = (y4 = i4.props || e).dangerouslySetInnerHTML, v3 = p3.dangerouslySetInnerHTML, !c4) { if (o5 != null) for (y4 = {}, _2 = 0; _2 < l4.attributes.length; _2++) y4[l4.attributes[_2].name] = l4.attributes[_2].value; (v3 || a4) && (v3 && (a4 && v3.__html == a4.__html || v3.__html === l4.innerHTML) || (l4.innerHTML = v3 && v3.__html || "")); } if (C(l4, p3, y4, r4, c4), v3) u4.__k = []; else if (_2 = u4.props.children, w(l4, Array.isArray(_2) ? _2 : [_2], u4, i4, t5, r4 && d4 !== "foreignObject", o5, f4, o5 ? o5[0] : i4.__k && k(i4, 0), c4), o5 != null) for (_2 = o5.length; _2--; ) o5[_2] != null && h(o5[_2]); c4 || ("value" in p3 && (_2 = p3.value) !== void 0 && (_2 !== y4.value || _2 !== l4.value || d4 === "progress" && !_2) && H(l4, "value", _2, y4.value, false), "checked" in p3 && (_2 = p3.checked) !== void 0 && _2 !== l4.checked && H(l4, "checked", _2, y4.checked, false)); } return l4; } function M(n4, u4, i4) { try { typeof n4 == "function" ? n4(u4) : n4.current = u4; } catch (n5) { l.__e(n5, i4); } } function N(n4, u4, i4) { var t5, r4; if (l.unmount && l.unmount(n4), (t5 = n4.ref) && (t5.current && t5.current !== n4.__e || M(t5, null, u4)), (t5 = n4.__c) != null) { if (t5.componentWillUnmount) try { t5.componentWillUnmount(); } catch (n5) { l.__e(n5, u4); } t5.base = t5.__P = null; } if (t5 = n4.__k) for (r4 = 0; r4 < t5.length; r4++) t5[r4] && N(t5[r4], u4, typeof n4.type != "function"); i4 || n4.__e == null || h(n4.__e), n4.__e = n4.__d = void 0; } function O(n4, l4, u4) { return this.constructor(n4, u4); } function S(u4, i4, t5) { var r4, o5, f4; l.__ && l.__(u4, i4), o5 = (r4 = typeof t5 == "function") ? null : t5 && t5.__k || i4.__k, f4 = [], j(i4, u4 = (!r4 && t5 || i4).__k = v(d, null, [u4]), o5 || e, e, i4.ownerSVGElement !== void 0, !r4 && t5 ? [t5] : o5 ? null : i4.firstChild ? n.call(i4.childNodes) : null, f4, !r4 && t5 ? t5 : o5 ? o5.__e : i4.firstChild, r4), z(f4, u4); } function B(l4, u4, i4) { var t5, r4, o5, f4 = a({}, l4.props); for (o5 in u4) o5 == "key" ? t5 = u4[o5] : o5 == "ref" ? r4 = u4[o5] : f4[o5] = u4[o5]; return arguments.length > 2 && (f4.children = arguments.length > 3 ? n.call(arguments, 2) : i4), y(l4.type, f4, t5 || l4.key, r4 || l4.ref, null); } n = c.slice, l = { __e: function(n4, l4) { for (var u4, i4, t5; l4 = l4.__; ) if ((u4 = l4.__c) && !u4.__) try { if ((i4 = u4.constructor) && i4.getDerivedStateFromError != null && (u4.setState(i4.getDerivedStateFromError(n4)), t5 = u4.__d), u4.componentDidCatch != null && (u4.componentDidCatch(n4), t5 = u4.__d), t5) return u4.__E = u4; } catch (l5) { n4 = l5; } throw n4; } }, u = 0, i = function(n4) { return n4 != null && n4.constructor === void 0; }, _.prototype.setState = function(n4, l4) { var u4; u4 = this.__s != null && this.__s !== this.state ? this.__s : this.__s = a({}, this.state), typeof n4 == "function" && (n4 = n4(a({}, u4), this.props)), n4 && a(u4, n4), n4 != null && this.__v && (l4 && this.__h.push(l4), m(this)); }, _.prototype.forceUpdate = function(n4) { this.__v && (this.__e = true, n4 && this.__h.push(n4), m(this)); }, _.prototype.render = d, t = [], r = typeof Promise == "function" ? Promise.prototype.then.bind(Promise.resolve()) : setTimeout, g.__r = 0, f = 0; // frontend/node_modules/preact/devtools/dist/devtools.module.js typeof window != "undefined" && window.__PREACT_DEVTOOLS__ && window.__PREACT_DEVTOOLS__.attachPreact("10.6.4", l, { Fragment: d, Component: _ }); // frontend/node_modules/preact/debug/dist/debug.module.js var o2 = {}; function a2(n4) { return n4.type === d ? "Fragment" : typeof n4.type == "function" ? n4.type.displayName || n4.type.name : typeof n4.type == "string" ? n4.type : "#text"; } var i2 = []; var s2 = []; function c2() { return i2.length > 0 ? i2[i2.length - 1] : null; } var l2 = false; function u2(n4) { return typeof n4.type == "function" && n4.type != d; } function f2(n4) { for (var t5 = [n4], e4 = n4; e4.__o != null; ) t5.push(e4.__o), e4 = e4.__o; return t5.reduce(function(n5, t6) { n5 += " in " + a2(t6); var e5 = t6.__source; return e5 ? n5 += " (at " + e5.fileName + ":" + e5.lineNumber + ")" : l2 || (l2 = true, console.warn("Add @babel/plugin-transform-react-jsx-source to get a more detailed component stack. Note that you should not add it to production builds of your App for bundle size reasons.")), n5 + "\n"; }, ""); } var p = typeof WeakMap == "function"; var d2 = _.prototype.setState; _.prototype.setState = function(n4, t5) { return this.__v == null ? this.state == null && console.warn('Calling "this.setState" inside the constructor of a component is a no-op and might be a bug in your application. Instead, set "this.state = {}" directly.\n\n' + f2(c2())) : this.__P == null && console.warn(`Can't call "this.setState" on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in the componentWillUnmount method. ` + f2(this.__v)), d2.call(this, n4, t5); }; var h2 = _.prototype.forceUpdate; function y2(n4) { var t5 = n4.props, e4 = a2(n4), o5 = ""; for (var r4 in t5) if (t5.hasOwnProperty(r4) && r4 !== "children") { var i4 = t5[r4]; typeof i4 == "function" && (i4 = "function " + (i4.displayName || i4.name) + "() {}"), i4 = Object(i4) !== i4 || i4.toString ? i4 + "" : Object.prototype.toString.call(i4), o5 += " " + r4 + "=" + JSON.stringify(i4); } var s4 = t5.children; return "<" + e4 + o5 + (s4 && s4.length ? ">.." : " />"); } _.prototype.forceUpdate = function(n4) { return this.__v == null ? console.warn('Calling "this.forceUpdate" inside the constructor of a component is a no-op and might be a bug in your application.\n\n' + f2(c2())) : this.__P == null && console.warn(`Can't call "this.forceUpdate" on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in the componentWillUnmount method. ` + f2(this.__v)), h2.call(this, n4); }, function() { !function() { var t6 = l.__b, e5 = l.diffed, o5 = l.__, r5 = l.vnode, a4 = l.__r; l.diffed = function(n4) { u2(n4) && s2.pop(), i2.pop(), e5 && e5(n4); }, l.__b = function(n4) { u2(n4) && i2.push(n4), t6 && t6(n4); }, l.__ = function(n4, t7) { s2 = [], o5 && o5(n4, t7); }, l.vnode = function(n4) { n4.__o = s2.length > 0 ? s2[s2.length - 1] : null, r5 && r5(n4); }, l.__r = function(n4) { u2(n4) && s2.push(n4), a4 && a4(n4); }; }(); var t5 = false, e4 = l.__b, r4 = l.diffed, c4 = l.vnode, l4 = l.__e, d4 = l.__, h3 = l.__h, m4 = p ? { useEffect: new WeakMap(), useLayoutEffect: new WeakMap(), lazyPropTypes: new WeakMap() } : null, v3 = []; l.__e = function(n4, t6, e5) { if (t6 && t6.__c && typeof n4.then == "function") { var o5 = n4; n4 = new Error("Missing Suspense. The throwing component was: " + a2(t6)); for (var r5 = t6; r5; r5 = r5.__) if (r5.__c && r5.__c.__c) { n4 = o5; break; } if (n4 instanceof Error) throw n4; } try { l4(n4, t6, e5), typeof n4.then != "function" && setTimeout(function() { throw n4; }); } catch (n5) { throw n5; } }, l.__ = function(n4, t6) { if (!t6) throw new Error("Undefined parent passed to render(), this is the second argument.\nCheck if the element is available in the DOM/has the correct id."); var e5; switch (t6.nodeType) { case 1: case 11: case 9: e5 = true; break; default: e5 = false; } if (!e5) { var o5 = a2(n4); throw new Error("Expected a valid HTML node as a second argument to render. Received " + t6 + " instead: render(<" + o5 + " />, " + t6 + ");"); } d4 && d4(n4, t6); }, l.__b = function(n4) { var r5 = n4.type, i4 = function n5(t6) { return t6 ? typeof t6.type == "function" ? n5(t6.__) : t6 : {}; }(n4.__); if (t5 = true, r5 === void 0) throw new Error("Undefined component passed to createElement()\n\nYou likely forgot to export your component or might have mixed up default and named imports" + y2(n4) + "\n\n" + f2(n4)); if (r5 != null && typeof r5 == "object") { if (r5.__k !== void 0 && r5.__e !== void 0) throw new Error("Invalid type passed to createElement(): " + r5 + "\n\nDid you accidentally pass a JSX literal as JSX twice?\n\n let My" + a2(n4) + " = " + y2(r5) + ";\n let vnode = ;\n\nThis usually happens when you export a JSX literal and not the component.\n\n" + f2(n4)); throw new Error("Invalid type passed to createElement(): " + (Array.isArray(r5) ? "array" : r5)); } if (r5 !== "thead" && r5 !== "tfoot" && r5 !== "tbody" || i4.type === "table" ? r5 === "tr" && i4.type !== "thead" && i4.type !== "tfoot" && i4.type !== "tbody" && i4.type !== "table" ? console.error("Improper nesting of table. Your should have a parent." + y2(n4) + "\n\n" + f2(n4)) : r5 === "td" && i4.type !== "tr" ? console.error("Improper nesting of table. Your should have a parent." + y2(n4) + "\n\n" + f2(n4)) : r5 === "th" && i4.type !== "tr" && console.error("Improper nesting of table. Your should have a ." + y2(n4) + "\n\n" + f2(n4)) : console.error("Improper nesting of table. Your should have a parent." + y2(n4) + "\n\n" + f2(n4)), n4.ref !== void 0 && typeof n4.ref != "function" && typeof n4.ref != "object" && !("$$typeof" in n4)) throw new Error(`Component's "ref" property should be a function, or an object created by createRef(), but got [` + typeof n4.ref + "] instead\n" + y2(n4) + "\n\n" + f2(n4)); if (typeof n4.type == "string") { for (var s4 in n4.props) if (s4[0] === "o" && s4[1] === "n" && typeof n4.props[s4] != "function" && n4.props[s4] != null) throw new Error(`Component's "` + s4 + '" property should be a function, but got [' + typeof n4.props[s4] + "] instead\n" + y2(n4) + "\n\n" + f2(n4)); } if (typeof n4.type == "function" && n4.type.propTypes) { if (n4.type.displayName === "Lazy" && m4 && !m4.lazyPropTypes.has(n4.type)) { var c5 = "PropTypes are not supported on lazy(). Use propTypes on the wrapped component itself. "; try { var l5 = n4.type(); m4.lazyPropTypes.set(n4.type, true), console.warn(c5 + "Component wrapped in lazy() is " + a2(l5)); } catch (n5) { console.warn(c5 + "We will log the wrapped component's name once it is loaded."); } } var u4 = n4.props; n4.type.__f && delete (u4 = function(n5, t6) { for (var e5 in t6) n5[e5] = t6[e5]; return n5; }({}, u4)).ref, function(n5, t6, e5, r6, a4) { Object.keys(n5).forEach(function(e6) { var i5; try { i5 = n5[e6](t6, e6, r6, "prop", null, "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"); } catch (n6) { i5 = n6; } !i5 || i5.message in o2 || (o2[i5.message] = true, console.error("Failed prop type: " + i5.message + (a4 && "\n" + a4() || ""))); }); }(n4.type.propTypes, u4, 0, a2(n4), function() { return f2(n4); }); } e4 && e4(n4); }, l.__h = function(n4, e5, o5) { if (!n4 || !t5) throw new Error("Hook can only be invoked from render methods."); h3 && h3(n4, e5, o5); }; var b3 = function(n4, t6) { return { get: function() { var e5 = "get" + n4 + t6; v3 && v3.indexOf(e5) < 0 && (v3.push(e5), console.warn("getting vnode." + n4 + " is deprecated, " + t6)); }, set: function() { var e5 = "set" + n4 + t6; v3 && v3.indexOf(e5) < 0 && (v3.push(e5), console.warn("setting vnode." + n4 + " is not allowed, " + t6)); } }; }, w3 = { nodeName: b3("nodeName", "use vnode.type"), attributes: b3("attributes", "use vnode.props"), children: b3("children", "use vnode.props.children") }, g3 = Object.create({}, w3); l.vnode = function(n4) { var t6 = n4.props; if (n4.type !== null && t6 != null && ("__source" in t6 || "__self" in t6)) { var e5 = n4.props = {}; for (var o5 in t6) { var r5 = t6[o5]; o5 === "__source" ? n4.__source = r5 : o5 === "__self" ? n4.__self = r5 : e5[o5] = r5; } } n4.__proto__ = g3, c4 && c4(n4); }, l.diffed = function(n4) { if (n4.__k && n4.__k.forEach(function(t6) { if (t6 && t6.type === void 0) { delete t6.__, delete t6.__b; var e6 = Object.keys(t6).join(","); throw new Error("Objects are not valid as a child. Encountered an object with the keys {" + e6 + "}.\n\n" + f2(n4)); } }), t5 = false, r4 && r4(n4), n4.__k != null) for (var e5 = [], o5 = 0; o5 < n4.__k.length; o5++) { var a4 = n4.__k[o5]; if (a4 && a4.key != null) { var i4 = a4.key; if (e5.indexOf(i4) !== -1) { console.error('Following component has two or more children with the same key attribute: "' + i4 + '". This may cause glitches and misbehavior in rendering process. Component: \n\n' + y2(n4) + "\n\n" + f2(n4)); break; } e5.push(i4); } } }; }(); // frontend/node_modules/@babel/runtime/helpers/esm/extends.js function _extends() { _extends = Object.assign || function(target) { for (var i4 = 1; i4 < arguments.length; i4++) { var source = arguments[i4]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } // frontend/node_modules/resolve-pathname/esm/resolve-pathname.js function isAbsolute(pathname) { return pathname.charAt(0) === "/"; } function spliceOne(list, index) { for (var i4 = index, k3 = i4 + 1, n4 = list.length; k3 < n4; i4 += 1, k3 += 1) { list[i4] = list[k3]; } list.pop(); } function resolvePathname(to, from) { if (from === void 0) from = ""; var toParts = to && to.split("/") || []; var fromParts = from && from.split("/") || []; var isToAbs = to && isAbsolute(to); var isFromAbs = from && isAbsolute(from); var mustEndAbs = isToAbs || isFromAbs; if (to && isAbsolute(to)) { fromParts = toParts; } else if (toParts.length) { fromParts.pop(); fromParts = fromParts.concat(toParts); } if (!fromParts.length) return "/"; var hasTrailingSlash; if (fromParts.length) { var last = fromParts[fromParts.length - 1]; hasTrailingSlash = last === "." || last === ".." || last === ""; } else { hasTrailingSlash = false; } var up = 0; for (var i4 = fromParts.length; i4 >= 0; i4--) { var part = fromParts[i4]; if (part === ".") { spliceOne(fromParts, i4); } else if (part === "..") { spliceOne(fromParts, i4); up++; } else if (up) { spliceOne(fromParts, i4); up--; } } if (!mustEndAbs) for (; up--; up) fromParts.unshift(".."); if (mustEndAbs && fromParts[0] !== "" && (!fromParts[0] || !isAbsolute(fromParts[0]))) fromParts.unshift(""); var result = fromParts.join("/"); if (hasTrailingSlash && result.substr(-1) !== "/") result += "/"; return result; } var resolve_pathname_default = resolvePathname; // frontend/node_modules/tiny-warning/dist/tiny-warning.esm.js var isProduction = false; function warning(condition, message) { if (!isProduction) { if (condition) { return; } var text = "Warning: " + message; if (typeof console !== "undefined") { console.warn(text); } try { throw Error(text); } catch (x3) { } } } var tiny_warning_esm_default = warning; // frontend/node_modules/tiny-invariant/dist/tiny-invariant.esm.js var isProduction2 = false; var prefix = "Invariant failed"; function invariant(condition, message) { if (condition) { return; } if (isProduction2) { throw new Error(prefix); } var provided = typeof message === "function" ? message() : message; var value = provided ? prefix + ": " + provided : prefix; throw new Error(value); } // frontend/node_modules/history/esm/history.js function addLeadingSlash(path) { return path.charAt(0) === "/" ? path : "/" + path; } function stripLeadingSlash(path) { return path.charAt(0) === "/" ? path.substr(1) : path; } function hasBasename(path, prefix2) { return path.toLowerCase().indexOf(prefix2.toLowerCase()) === 0 && "/?#".indexOf(path.charAt(prefix2.length)) !== -1; } function stripBasename(path, prefix2) { return hasBasename(path, prefix2) ? path.substr(prefix2.length) : path; } function stripTrailingSlash(path) { return path.charAt(path.length - 1) === "/" ? path.slice(0, -1) : path; } function parsePath(path) { var pathname = path || "/"; var search = ""; var hash = ""; var hashIndex = pathname.indexOf("#"); if (hashIndex !== -1) { hash = pathname.substr(hashIndex); pathname = pathname.substr(0, hashIndex); } var searchIndex = pathname.indexOf("?"); if (searchIndex !== -1) { search = pathname.substr(searchIndex); pathname = pathname.substr(0, searchIndex); } return { pathname, search: search === "?" ? "" : search, hash: hash === "#" ? "" : hash }; } function createPath(location2) { var pathname = location2.pathname, search = location2.search, hash = location2.hash; var path = pathname || "/"; if (search && search !== "?") path += search.charAt(0) === "?" ? search : "?" + search; if (hash && hash !== "#") path += hash.charAt(0) === "#" ? hash : "#" + hash; return path; } function createLocation(path, state, key, currentLocation) { var location2; if (typeof path === "string") { location2 = parsePath(path); location2.state = state; } else { location2 = _extends({}, path); if (location2.pathname === void 0) location2.pathname = ""; if (location2.search) { if (location2.search.charAt(0) !== "?") location2.search = "?" + location2.search; } else { location2.search = ""; } if (location2.hash) { if (location2.hash.charAt(0) !== "#") location2.hash = "#" + location2.hash; } else { location2.hash = ""; } if (state !== void 0 && location2.state === void 0) location2.state = state; } try { location2.pathname = decodeURI(location2.pathname); } catch (e4) { if (e4 instanceof URIError) { throw new URIError('Pathname "' + location2.pathname + '" could not be decoded. This is likely caused by an invalid percent-encoding.'); } else { throw e4; } } if (key) location2.key = key; if (currentLocation) { if (!location2.pathname) { location2.pathname = currentLocation.pathname; } else if (location2.pathname.charAt(0) !== "/") { location2.pathname = resolve_pathname_default(location2.pathname, currentLocation.pathname); } } else { if (!location2.pathname) { location2.pathname = "/"; } } return location2; } function createTransitionManager() { var prompt = null; function setPrompt(nextPrompt) { true ? tiny_warning_esm_default(prompt == null, "A history supports only one prompt at a time") : void 0; prompt = nextPrompt; return function() { if (prompt === nextPrompt) prompt = null; }; } function confirmTransitionTo(location2, action, getUserConfirmation, callback) { if (prompt != null) { var result = typeof prompt === "function" ? prompt(location2, action) : prompt; if (typeof result === "string") { if (typeof getUserConfirmation === "function") { getUserConfirmation(result, callback); } else { true ? tiny_warning_esm_default(false, "A history needs a getUserConfirmation function in order to use a prompt message") : void 0; callback(true); } } else { callback(result !== false); } } else { callback(true); } } var listeners = []; function appendListener(fn) { var isActive = true; function listener() { if (isActive) fn.apply(void 0, arguments); } listeners.push(listener); return function() { isActive = false; listeners = listeners.filter(function(item) { return item !== listener; }); }; } function notifyListeners() { for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } listeners.forEach(function(listener) { return listener.apply(void 0, args); }); } return { setPrompt, confirmTransitionTo, appendListener, notifyListeners }; } var canUseDOM = !!(typeof window !== "undefined" && window.document && window.document.createElement); function getConfirmation(message, callback) { callback(window.confirm(message)); } function supportsGoWithoutReloadUsingHash() { return window.navigator.userAgent.indexOf("Firefox") === -1; } var HashChangeEvent$1 = "hashchange"; var HashPathCoders = { hashbang: { encodePath: function encodePath(path) { return path.charAt(0) === "!" ? path : "!/" + stripLeadingSlash(path); }, decodePath: function decodePath(path) { return path.charAt(0) === "!" ? path.substr(1) : path; } }, noslash: { encodePath: stripLeadingSlash, decodePath: addLeadingSlash }, slash: { encodePath: addLeadingSlash, decodePath: addLeadingSlash } }; function stripHash(url) { var hashIndex = url.indexOf("#"); return hashIndex === -1 ? url : url.slice(0, hashIndex); } function getHashPath() { var href = window.location.href; var hashIndex = href.indexOf("#"); return hashIndex === -1 ? "" : href.substring(hashIndex + 1); } function pushHashPath(path) { window.location.hash = path; } function replaceHashPath(path) { window.location.replace(stripHash(window.location.href) + "#" + path); } function createHashHistory(props) { if (props === void 0) { props = {}; } !canUseDOM ? true ? invariant(false, "Hash history needs a DOM") : invariant(false) : void 0; var globalHistory = window.history; var canGoWithoutReload = supportsGoWithoutReloadUsingHash(); var _props = props, _props$getUserConfirm = _props.getUserConfirmation, getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm, _props$hashType = _props.hashType, hashType = _props$hashType === void 0 ? "slash" : _props$hashType; var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : ""; var _HashPathCoders$hashT = HashPathCoders[hashType], encodePath2 = _HashPathCoders$hashT.encodePath, decodePath2 = _HashPathCoders$hashT.decodePath; function getDOMLocation() { var path2 = decodePath2(getHashPath()); true ? tiny_warning_esm_default(!basename || hasBasename(path2, basename), 'You are attempting to use a basename on a page whose URL path does not begin with the basename. Expected path "' + path2 + '" to begin with "' + basename + '".') : void 0; if (basename) path2 = stripBasename(path2, basename); return createLocation(path2); } var transitionManager = createTransitionManager(); function setState(nextState) { _extends(history2, nextState); history2.length = globalHistory.length; transitionManager.notifyListeners(history2.location, history2.action); } var forceNextPop = false; var ignorePath = null; function locationsAreEqual$$1(a4, b3) { return a4.pathname === b3.pathname && a4.search === b3.search && a4.hash === b3.hash; } function handleHashChange() { var path2 = getHashPath(); var encodedPath2 = encodePath2(path2); if (path2 !== encodedPath2) { replaceHashPath(encodedPath2); } else { var location2 = getDOMLocation(); var prevLocation = history2.location; if (!forceNextPop && locationsAreEqual$$1(prevLocation, location2)) return; if (ignorePath === createPath(location2)) return; ignorePath = null; handlePop(location2); } } function handlePop(location2) { if (forceNextPop) { forceNextPop = false; setState(); } else { var action = "POP"; transitionManager.confirmTransitionTo(location2, action, getUserConfirmation, function(ok) { if (ok) { setState({ action, location: location2 }); } else { revertPop(location2); } }); } } function revertPop(fromLocation) { var toLocation = history2.location; var toIndex = allPaths.lastIndexOf(createPath(toLocation)); if (toIndex === -1) toIndex = 0; var fromIndex = allPaths.lastIndexOf(createPath(fromLocation)); if (fromIndex === -1) fromIndex = 0; var delta = toIndex - fromIndex; if (delta) { forceNextPop = true; go(delta); } } var path = getHashPath(); var encodedPath = encodePath2(path); if (path !== encodedPath) replaceHashPath(encodedPath); var initialLocation = getDOMLocation(); var allPaths = [createPath(initialLocation)]; function createHref(location2) { var baseTag = document.querySelector("base"); var href = ""; if (baseTag && baseTag.getAttribute("href")) { href = stripHash(window.location.href); } return href + "#" + encodePath2(basename + createPath(location2)); } function push(path2, state) { true ? tiny_warning_esm_default(state === void 0, "Hash history cannot push state; it is ignored") : void 0; var action = "PUSH"; var location2 = createLocation(path2, void 0, void 0, history2.location); transitionManager.confirmTransitionTo(location2, action, getUserConfirmation, function(ok) { if (!ok) return; var path3 = createPath(location2); var encodedPath2 = encodePath2(basename + path3); var hashChanged = getHashPath() !== encodedPath2; if (hashChanged) { ignorePath = path3; pushHashPath(encodedPath2); var prevIndex = allPaths.lastIndexOf(createPath(history2.location)); var nextPaths = allPaths.slice(0, prevIndex + 1); nextPaths.push(path3); allPaths = nextPaths; setState({ action, location: location2 }); } else { true ? tiny_warning_esm_default(false, "Hash history cannot PUSH the same path; a new entry will not be added to the history stack") : void 0; setState(); } }); } function replace(path2, state) { true ? tiny_warning_esm_default(state === void 0, "Hash history cannot replace state; it is ignored") : void 0; var action = "REPLACE"; var location2 = createLocation(path2, void 0, void 0, history2.location); transitionManager.confirmTransitionTo(location2, action, getUserConfirmation, function(ok) { if (!ok) return; var path3 = createPath(location2); var encodedPath2 = encodePath2(basename + path3); var hashChanged = getHashPath() !== encodedPath2; if (hashChanged) { ignorePath = path3; replaceHashPath(encodedPath2); } var prevIndex = allPaths.indexOf(createPath(history2.location)); if (prevIndex !== -1) allPaths[prevIndex] = path3; setState({ action, location: location2 }); }); } function go(n4) { true ? tiny_warning_esm_default(canGoWithoutReload, "Hash history go(n) causes a full page reload in this browser") : void 0; globalHistory.go(n4); } function goBack() { go(-1); } function goForward() { go(1); } var listenerCount = 0; function checkDOMListeners(delta) { listenerCount += delta; if (listenerCount === 1 && delta === 1) { window.addEventListener(HashChangeEvent$1, handleHashChange); } else if (listenerCount === 0) { window.removeEventListener(HashChangeEvent$1, handleHashChange); } } var isBlocked = false; function block(prompt) { if (prompt === void 0) { prompt = false; } var unblock = transitionManager.setPrompt(prompt); if (!isBlocked) { checkDOMListeners(1); isBlocked = true; } return function() { if (isBlocked) { isBlocked = false; checkDOMListeners(-1); } return unblock(); }; } function listen(listener) { var unlisten = transitionManager.appendListener(listener); checkDOMListeners(1); return function() { checkDOMListeners(-1); unlisten(); }; } var history2 = { length: globalHistory.length, action: "POP", location: initialLocation, createHref, push, replace, go, goBack, goForward, block, listen }; return history2; } // frontend/node_modules/htm/dist/htm.module.js var n2 = function(t5, s4, r4, e4) { var u4; s4[0] = 0; for (var h3 = 1; h3 < s4.length; h3++) { var p3 = s4[h3++], a4 = s4[h3] ? (s4[0] |= p3 ? 1 : 2, r4[s4[h3++]]) : s4[++h3]; p3 === 3 ? e4[0] = a4 : p3 === 4 ? e4[1] = Object.assign(e4[1] || {}, a4) : p3 === 5 ? (e4[1] = e4[1] || {})[s4[++h3]] = a4 : p3 === 6 ? e4[1][s4[++h3]] += a4 + "" : p3 ? (u4 = t5.apply(a4, n2(t5, a4, r4, ["", null])), e4.push(u4), a4[0] ? s4[0] |= 2 : (s4[h3 - 2] = 0, s4[h3] = u4)) : e4.push(a4); } return e4; }; var t2 = new Map(); function htm_module_default(s4) { var r4 = t2.get(this); return r4 || (r4 = new Map(), t2.set(this, r4)), (r4 = n2(this, r4.get(s4) || (r4.set(s4, r4 = function(n4) { for (var t5, s5, r5 = 1, e4 = "", u4 = "", h3 = [0], p3 = function(n5) { r5 === 1 && (n5 || (e4 = e4.replace(/^\s*\n\s*|\s*\n\s*$/g, ""))) ? h3.push(0, n5, e4) : r5 === 3 && (n5 || e4) ? (h3.push(3, n5, e4), r5 = 2) : r5 === 2 && e4 === "..." && n5 ? h3.push(4, n5, 0) : r5 === 2 && e4 && !n5 ? h3.push(5, 0, true, e4) : r5 >= 5 && ((e4 || !n5 && r5 === 5) && (h3.push(r5, 0, e4, s5), r5 = 6), n5 && (h3.push(r5, n5, 0, s5), r5 = 6)), e4 = ""; }, a4 = 0; a4 < n4.length; a4++) { a4 && (r5 === 1 && p3(), p3(a4)); for (var l4 = 0; l4 < n4[a4].length; l4++) t5 = n4[a4][l4], r5 === 1 ? t5 === "<" ? (p3(), h3 = [h3], r5 = 3) : e4 += t5 : r5 === 4 ? e4 === "--" && t5 === ">" ? (r5 = 1, e4 = "") : e4 = t5 + e4[0] : u4 ? t5 === u4 ? u4 = "" : e4 += t5 : t5 === '"' || t5 === "'" ? u4 = t5 : t5 === ">" ? (p3(), r5 = 1) : r5 && (t5 === "=" ? (r5 = 5, s5 = e4, e4 = "") : t5 === "/" && (r5 < 5 || n4[a4][l4 + 1] === ">") ? (p3(), r5 === 3 && (h3 = h3[0]), r5 = h3, (h3 = h3[0]).push(2, 0, r5), r5 = 0) : t5 === " " || t5 === " " || t5 === "\n" || t5 === "\r" ? (p3(), r5 = 2) : e4 += t5), r5 === 3 && e4 === "!--" && (r5 = 4, h3 = h3[0]); } return p3(), h3; }(s4)), r4), arguments, [])).length > 1 ? r4 : r4[0]; } // frontend/node_modules/htm/preact/index.module.js var m2 = htm_module_default.bind(v); // frontend/node_modules/preact-router/dist/preact-router.es.js var EMPTY$1 = {}; function assign(obj, props) { for (var i4 in props) { obj[i4] = props[i4]; } return obj; } function exec(url, route2, opts) { var reg = /(?:\?([^#]*))?(#.*)?$/, c4 = url.match(reg), matches = {}, ret; if (c4 && c4[1]) { var p3 = c4[1].split("&"); for (var i4 = 0; i4 < p3.length; i4++) { var r4 = p3[i4].split("="); matches[decodeURIComponent(r4[0])] = decodeURIComponent(r4.slice(1).join("=")); } } url = segmentize(url.replace(reg, "")); route2 = segmentize(route2 || ""); var max = Math.max(url.length, route2.length); for (var i$1 = 0; i$1 < max; i$1++) { if (route2[i$1] && route2[i$1].charAt(0) === ":") { var param = route2[i$1].replace(/(^:|[+*?]+$)/g, ""), flags = (route2[i$1].match(/[+*?]+$/) || EMPTY$1)[0] || "", plus = ~flags.indexOf("+"), star = ~flags.indexOf("*"), val = url[i$1] || ""; if (!val && !star && (flags.indexOf("?") < 0 || plus)) { ret = false; break; } matches[param] = decodeURIComponent(val); if (plus || star) { matches[param] = url.slice(i$1).map(decodeURIComponent).join("/"); break; } } else if (route2[i$1] !== url[i$1]) { ret = false; break; } } if (opts.default !== true && ret === false) { return false; } return matches; } function pathRankSort(a4, b3) { return a4.rank < b3.rank ? 1 : a4.rank > b3.rank ? -1 : a4.index - b3.index; } function prepareVNodeForRanking(vnode, index) { vnode.index = index; vnode.rank = rankChild(vnode); return vnode.props; } function segmentize(url) { return url.replace(/(^\/+|\/+$)/g, "").split("/"); } function rankSegment(segment) { return segment.charAt(0) == ":" ? 1 + "*+?".indexOf(segment.charAt(segment.length - 1)) || 4 : 5; } function rank(path) { return segmentize(path).map(rankSegment).join(""); } function rankChild(vnode) { return vnode.props.default ? 0 : rank(vnode.props.path); } var customHistory = null; var ROUTERS = []; var subscribers = []; var EMPTY = {}; function setUrl(url, type) { if (type === void 0) type = "push"; if (customHistory && customHistory[type]) { customHistory[type](url); } else if (typeof history !== "undefined" && history[type + "State"]) { history[type + "State"](null, null, url); } } function getCurrentUrl() { var url; if (customHistory && customHistory.location) { url = customHistory.location; } else if (customHistory && customHistory.getCurrentLocation) { url = customHistory.getCurrentLocation(); } else { url = typeof location !== "undefined" ? location : EMPTY; } return "" + (url.pathname || "") + (url.search || ""); } function route(url, replace) { if (replace === void 0) replace = false; if (typeof url !== "string" && url.url) { replace = url.replace; url = url.url; } if (canRoute(url)) { setUrl(url, replace ? "replace" : "push"); } return routeTo(url); } function canRoute(url) { for (var i4 = ROUTERS.length; i4--; ) { if (ROUTERS[i4].canRoute(url)) { return true; } } return false; } function routeTo(url) { var didRoute = false; for (var i4 = 0; i4 < ROUTERS.length; i4++) { if (ROUTERS[i4].routeTo(url) === true) { didRoute = true; } } for (var i$1 = subscribers.length; i$1--; ) { subscribers[i$1](url); } return didRoute; } function routeFromLink(node) { if (!node || !node.getAttribute) { return; } var href = node.getAttribute("href"), target = node.getAttribute("target"); if (!href || !href.match(/^\//g) || target && !target.match(/^_?self$/i)) { return; } return route(href); } function handleLinkClick(e4) { if (e4.ctrlKey || e4.metaKey || e4.altKey || e4.shiftKey || e4.button !== 0) { return; } routeFromLink(e4.currentTarget || e4.target || this); return prevent(e4); } function prevent(e4) { if (e4) { if (e4.stopImmediatePropagation) { e4.stopImmediatePropagation(); } if (e4.stopPropagation) { e4.stopPropagation(); } e4.preventDefault(); } return false; } function delegateLinkHandler(e4) { if (e4.ctrlKey || e4.metaKey || e4.altKey || e4.shiftKey || e4.button !== 0) { return; } var t5 = e4.target; do { if (String(t5.nodeName).toUpperCase() === "A" && t5.getAttribute("href")) { if (t5.hasAttribute("native")) { return; } if (routeFromLink(t5)) { return prevent(e4); } } } while (t5 = t5.parentNode); } var eventListenersInitialized = false; function initEventListeners() { if (eventListenersInitialized) { return; } if (typeof addEventListener === "function") { if (!customHistory) { addEventListener("popstate", function() { routeTo(getCurrentUrl()); }); } addEventListener("click", delegateLinkHandler); } eventListenersInitialized = true; } var Router = function(Component$$1) { function Router2(props) { Component$$1.call(this, props); if (props.history) { customHistory = props.history; } this.state = { url: props.url || getCurrentUrl() }; initEventListeners(); } if (Component$$1) Router2.__proto__ = Component$$1; Router2.prototype = Object.create(Component$$1 && Component$$1.prototype); Router2.prototype.constructor = Router2; Router2.prototype.shouldComponentUpdate = function shouldComponentUpdate(props) { if (props.static !== true) { return true; } return props.url !== this.props.url || props.onChange !== this.props.onChange; }; Router2.prototype.canRoute = function canRoute2(url) { var children = A(this.props.children); return this.getMatchingChildren(children, url, false).length > 0; }; Router2.prototype.routeTo = function routeTo2(url) { this.setState({ url }); var didRoute = this.canRoute(url); if (!this.updating) { this.forceUpdate(); } return didRoute; }; Router2.prototype.componentWillMount = function componentWillMount() { ROUTERS.push(this); this.updating = true; }; Router2.prototype.componentDidMount = function componentDidMount() { var this$1 = this; if (customHistory) { this.unlisten = customHistory.listen(function(location2) { this$1.routeTo("" + (location2.pathname || "") + (location2.search || "")); }); } this.updating = false; }; Router2.prototype.componentWillUnmount = function componentWillUnmount() { if (typeof this.unlisten === "function") { this.unlisten(); } ROUTERS.splice(ROUTERS.indexOf(this), 1); }; Router2.prototype.componentWillUpdate = function componentWillUpdate() { this.updating = true; }; Router2.prototype.componentDidUpdate = function componentDidUpdate() { this.updating = false; }; Router2.prototype.getMatchingChildren = function getMatchingChildren(children, url, invoke) { return children.filter(prepareVNodeForRanking).sort(pathRankSort).map(function(vnode) { var matches = exec(url, vnode.props.path, vnode.props); if (matches) { if (invoke !== false) { var newProps = { url, matches }; assign(newProps, matches); delete newProps.ref; delete newProps.key; return B(vnode, newProps); } return vnode; } }).filter(Boolean); }; Router2.prototype.render = function render(ref, ref$1) { var children = ref.children; var onChange = ref.onChange; var url = ref$1.url; var active = this.getMatchingChildren(A(children), url, true); var current = active[0] || null; var previous = this.previousUrl; if (url !== previous) { this.previousUrl = url; if (typeof onChange === "function") { onChange({ router: this, url, previous, active, current }); } } return current; }; return Router2; }(_); var Link = function(props) { return v("a", assign({ onClick: handleLinkClick }, props)); }; var Route = function(props) { return v(props.component, props); }; Router.subscribers = subscribers; Router.getCurrentUrl = getCurrentUrl; Router.route = route; Router.Router = Router; Router.Route = Route; Router.Link = Link; Router.exec = exec; var preact_router_es_default = Router; // frontend/src/utils/http.js var request = (url, options) => __async(void 0, null, function* () { const headers = __spreadValues({ "Content-Type": "application/json" }, options.headers); const response = yield fetch(url, __spreadProps(__spreadValues({}, options), { headers })); if (response.status < 300) { try { return yield response.json(); } catch (e4) { try { return yield response.body(); } catch (e22) { return null; } } } else throw response; }); var qs = (obj = {}) => new URLSearchParams(obj).toString(); var get = (url, body = {}, options = {}) => request(`${url}${body ? `?${qs(body)}` : ""}`, __spreadProps(__spreadValues({}, options), { method: "GET" })); var post = (url, body = {}, options = {}) => request(url, __spreadProps(__spreadValues({}, options), { body: JSON.stringify(body), method: "POST" })); var put = (url, body = {}, options = {}) => request(url, __spreadProps(__spreadValues({}, options), { body: JSON.stringify(body), method: "PUT" })); // frontend/src/utils/analytics.js var trackEvent = (event) => post("https://logstash.internal.tkevents.io", event); // frontend/node_modules/preact/hooks/dist/hooks.module.js var t3; var u3; var r2; var o3 = 0; var i3 = []; var c3 = l.__b; var f3 = l.__r; var e2 = l.diffed; var a3 = l.__c; var v2 = l.unmount; function m3(t5, r4) { l.__h && l.__h(u3, t5, o3 || r4), o3 = 0; var i4 = u3.__H || (u3.__H = { __: [], __h: [] }); return t5 >= i4.__.length && i4.__.push({}), i4.__[t5]; } function l3(n4) { return o3 = 1, p2(w2, n4); } function p2(n4, r4, o5) { var i4 = m3(t3++, 2); return i4.t = n4, i4.__c || (i4.__ = [o5 ? o5(r4) : w2(void 0, r4), function(n5) { var t5 = i4.t(i4.__[0], n5); i4.__[0] !== t5 && (i4.__ = [t5, i4.__[1]], i4.__c.setState({})); }], i4.__c = u3), i4.__; } function y3(r4, o5) { var i4 = m3(t3++, 3); !l.__s && k2(i4.__H, o5) && (i4.__ = r4, i4.__H = o5, u3.__H.__h.push(i4)); } function s3(n4) { return o3 = 5, d3(function() { return { current: n4 }; }, []); } function d3(n4, u4) { var r4 = m3(t3++, 7); return k2(r4.__H, u4) && (r4.__ = n4(), r4.__H = u4, r4.__h = n4), r4.__; } function x2() { var t5; for (i3.sort(function(n4, t6) { return n4.__v.__b - t6.__v.__b; }); t5 = i3.pop(); ) if (t5.__P) try { t5.__H.__h.forEach(g2), t5.__H.__h.forEach(j2), t5.__H.__h = []; } catch (u4) { t5.__H.__h = [], l.__e(u4, t5.__v); } } l.__b = function(n4) { u3 = null, c3 && c3(n4); }, l.__r = function(n4) { f3 && f3(n4), t3 = 0; var r4 = (u3 = n4.__c).__H; r4 && (r4.__h.forEach(g2), r4.__h.forEach(j2), r4.__h = []); }, l.diffed = function(t5) { e2 && e2(t5); var o5 = t5.__c; o5 && o5.__H && o5.__H.__h.length && (i3.push(o5) !== 1 && r2 === l.requestAnimationFrame || ((r2 = l.requestAnimationFrame) || function(n4) { var t6, u4 = function() { clearTimeout(r4), b2 && cancelAnimationFrame(t6), setTimeout(n4); }, r4 = setTimeout(u4, 100); b2 && (t6 = requestAnimationFrame(u4)); })(x2)), u3 = null; }, l.__c = function(t5, u4) { u4.some(function(t6) { try { t6.__h.forEach(g2), t6.__h = t6.__h.filter(function(n4) { return !n4.__ || j2(n4); }); } catch (r4) { u4.some(function(n4) { n4.__h && (n4.__h = []); }), u4 = [], l.__e(r4, t6.__v); } }), a3 && a3(t5, u4); }, l.unmount = function(t5) { v2 && v2(t5); var u4, r4 = t5.__c; r4 && r4.__H && (r4.__H.__.forEach(function(n4) { try { g2(n4); } catch (n5) { u4 = n5; } }), u4 && l.__e(u4, r4.__v)); }; var b2 = typeof requestAnimationFrame == "function"; function g2(n4) { var t5 = u3, r4 = n4.__c; typeof r4 == "function" && (n4.__c = void 0, r4()), u3 = t5; } function j2(n4) { var t5 = u3; n4.__c = n4.__(), u3 = t5; } function k2(n4, t5) { return !n4 || n4.length !== t5.length || t5.some(function(t6, u4) { return t6 !== n4[u4]; }); } function w2(n4, t5) { return typeof t5 == "function" ? t5(n4) : t5; } // frontend/node_modules/jwt-decode/build/jwt-decode.esm.js function e3(e4) { this.message = e4; } e3.prototype = new Error(), e3.prototype.name = "InvalidCharacterError"; var r3 = typeof window != "undefined" && window.atob && window.atob.bind(window) || function(r4) { var t5 = String(r4).replace(/=+$/, ""); if (t5.length % 4 == 1) throw new e3("'atob' failed: The string to be decoded is not correctly encoded."); for (var n4, o5, a4 = 0, i4 = 0, c4 = ""; o5 = t5.charAt(i4++); ~o5 && (n4 = a4 % 4 ? 64 * n4 + o5 : o5, a4++ % 4) ? c4 += String.fromCharCode(255 & n4 >> (-2 * a4 & 6)) : 0) o5 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(o5); return c4; }; function t4(e4) { var t5 = e4.replace(/-/g, "+").replace(/_/g, "/"); switch (t5.length % 4) { case 0: break; case 2: t5 += "=="; break; case 3: t5 += "="; break; default: throw "Illegal base64url string!"; } try { return function(e5) { return decodeURIComponent(r3(e5).replace(/(.)/g, function(e6, r4) { var t6 = r4.charCodeAt(0).toString(16).toUpperCase(); return t6.length < 2 && (t6 = "0" + t6), "%" + t6; })); }(t5); } catch (e5) { return r3(t5); } } function n3(e4) { this.message = e4; } function o4(e4, r4) { if (typeof e4 != "string") throw new n3("Invalid token specified"); var o5 = (r4 = r4 || {}).header === true ? 0 : 1; try { return JSON.parse(t4(e4.split(".")[o5])); } catch (e5) { throw new n3("Invalid token specified: " + e5.message); } } n3.prototype = new Error(), n3.prototype.name = "InvalidTokenError"; var jwt_decode_esm_default = o4; // frontend/src/utils/hooks.js var useLocalStorage = (keyName) => { const [value, updateValue] = l3(JSON.parse(window.localStorage.getItem(keyName)) || null); const listener = (event) => { const { key, newValue } = event; if (key == keyName) { updateValue(newValue); } }; y3(() => { window.addEventListener("storage", listener); return () => window.removeEventListener("storage", listener); }, []); const setValue = (newValue) => { updateValue(newValue); window.localStorage.setItem(keyName, JSON.stringify(newValue)); }; return [value, setValue]; }; var useHeartbeats = (packet, frequency) => { y3(() => { trackEvent(packet); const intervalID = setInterval(() => trackEvent(packet), frequency); return () => clearInterval(intervalID); }, [packet, frequency]); }; var useInterval = (callback, delay2 = 1e3, ...args) => { const savedCallback = s3(); y3(() => { savedCallback.current = callback; }, [callback]); y3(() => { function tick() { if (savedCallback.current) { savedCallback.current(...args); } } const id = setInterval(tick, delay2); return () => clearInterval(id); }, [callback.toString(), delay2]); }; var useJitsi = (options, domain = "meet.jit.si", meetingConfig = { allowComunication: true, onDisconnect: () => { } }) => { const [isAPILoaded, setIsAPILoaded] = l3(false); const jitsiAPIRef = s3(null); const comunicationConfig = [ "microphone", "camera", "raisehand", "mute-everyone", "mute-video-everyone", "shareaudio", "sharedvideo", "desktop", "toggle-camera" ]; y3(() => { const jitsiScript = document.createElement("script"); jitsiScript.setAttribute("src", "https://8x8.vc/external_api.js"); jitsiScript.setAttribute("id", "jitsiScript"); document.head.appendChild(jitsiScript); return () => document.getElementById("jitsiScript").remove(); }, []); y3(() => { const apiCheckInterval = setInterval(() => { if (window.JitsiMeetExternalAPI != void 0) { setIsAPILoaded(true); clearInterval(apiCheckInterval); } }, 100); return () => clearInterval(apiCheckInterval); }, []); y3(() => { if (isAPILoaded && options.jwt !== "") { if (jitsiAPIRef.current) { jitsiAPIRef.current.dispose(); } if (options.roomName === null) { jitsiAPIRef.current = null; } else { const jitsiAPI = new window.JitsiMeetExternalAPI(domain, __spreadProps(__spreadValues({}, options), { configOverwrite: { remoteVideoMenu: { disableKick: !meetingConfig.allowComunication }, startWithAudioMuted: !meetingConfig.allowComunication, disableInviteFunctions: true, disableRemoteMute: !meetingConfig.allowComunication, toolbarButtons: [...[ "closedcaptions", "chat", "download", "embedmeeting", "etherpad", "feedback", "filmstrip", "fullscreen", "hangup", "help", "participants-pane", "profile", "recording", "select-background", "settings", "shortcuts", "tileview", "__end" ], ...meetingConfig.allowComunication ? comunicationConfig : []] } })); jitsiAPI.addListener("readyToClose", () => { if (typeof meetingConfig.onDisconnect === "function") meetingConfig.onDisconnect(); return jitsiAPI.dispose(); }); jitsiAPIRef.current = jitsiAPI; } } return () => { if (jitsiAPIRef.current) { jitsiAPIRef.current.dispose(); } jitsiAPIRef.current = null; }; }, [ isAPILoaded, domain, JSON.stringify(options) ]); }; var useDateTime = (resolution = "minute") => { const [time, updateTime] = l3(new Date()); y3(() => window.setInterval(() => updateTime(new Date()), resolution === "day" ? 864e5 : resolution === "hour" ? 36e5 : resolution === "minute" ? 6e4 : 1e3), [resolution]); return time; }; // frontend/src/utils/fw.js var triggerGamificationRule = (actionName, debounce = 0) => { const eventId3 = window.dataLayer[0]["Event ID"]; const regId3 = window.dataLayer[0]["Registrant ID"]; const firstName = window.dataLayer[0]["First Name"]; const lastName = window.dataLayer[0]["Last Name"]; const email = window.dataLayer[0]["Email Address"]; const optedIn = window.dataLayer[0]["I would like to opt in to the Leaderboard competition"] === "Yes"; const lastTriggered = window.localStorage.getItem(`rule-${actionName}`) || "2021"; if (new Date() < new Date(lastTriggered / 1 + debounce)) { return false; } else { window.localStorage.setItem(`rule-${actionName}`, new Date().valueOf()); } const registrantId = `${regId3}_${firstName}_${lastName}_${email}`; const query = { actionName, eventId: eventId3, registrantId, swoogoAccess: false }; if (optedIn) { get("https://sponsor-gamification.herokuapp.com/dynamic", query); } }; var TimeSwitch = ({ children }) => { var _a; const now = useDateTime("minute"); return ((_a = children.find((child) => new Date(child.starts) < now && new Date(child.ends) > now)) == null ? void 0 : _a.content) || children[0].content || /* @__PURE__ */ v("h1", null, "Something went wrong. If you feel helpful, please refresh the page and let the helpdesk know!"); }; var DisplayOnce = (_a) => { var _b = _a, { id, children } = _b, rest = __objRest(_b, ["id", "children"]); const [isDisplayed, setIsDisplayed] = useLocalStorage(`displayOnce-${id}`); if (!isDisplayed) { return /* @__PURE__ */ v(Modal, __spreadProps(__spreadValues({}, rest), { key: `${id}-modal`, dismiss: () => setIsDisplayed(true) }), children); } else { return null; } }; var Background = ({ imgURL, style }) => imgURL.match(/\.mp4$/) ? m2`` : m2``; var Modal = ({ children, style = {}, dismiss, dismissHTML = null, dismissStyle }) => m2`
${children} ${dismissHTML} `; var ElfsightPopup = ({ trigger, ID }) => m2` ${trigger && m2`
`}
`; var Link2 = ({ href = null, target = null, onClick = () => null, width, height, left, top, label, title = "", elfsightPopupID = null, modal = null, roomName = "", CometChatID = null, CometChatUserID = null, flyzooChatName = "unnamed", children = null, position = "absolute", isExternal = void 0, gameRule = null, gameRuleCooldown = 0, modalOverrides = {}, gaAction = "Link Click", hoverMessage = null }) => { const optionals = {}; const [modalVisible, toggleModal] = l3(false); const isRedirectTrackingLink = !isExternal && (href == null ? void 0 : href.length) && !href.startsWith("http") && !href.startsWith("/"); let generatedOnClick = () => { }; if (modal) { generatedOnClick = () => { toggleModal(!modalVisible); }; } else if (CometChatID) { generatedOnClick = () => { window.CometChatWidget.openOrCloseChat(true); window.CometChatWidget.chatWithGroup(CometChatID); }; } else if (CometChatUserID) { generatedOnClick = () => { window.CometChatWidget.openOrCloseChat(true); window.CometChatWidget.chatWithUser(CometChatUserID); }; } else if (isRedirectTrackingLink) { generatedOnClick = () => { window.redirectTracking(href, 1); }; } if (!isRedirectTrackingLink && href) { optionals.href = href; } const className = roomName ? "_gtm-event" : ""; return m2` { if (onClick) { onClick(); generatedOnClick(); } if (gameRule) { triggerGamificationRule(gameRule, gameRuleCooldown); } }} data-text=${hoverMessage} id=${label} data-event-category=${roomName} data-event-action=${gaAction} data-event-label=${label} title=${label} aria-label=${label} class=${className} style=" width: ${width}; height: ${height}; left: ${left}; top: ${top}; position:${position}; cursor: pointer; text-decoration: none; " ...${optionals} >${children} ${modal && modalVisible && m2`<${Modal} ...${modalOverrides} dismiss=${() => toggleModal(false)}>${modal}`} ${elfsightPopupID && m2`<${ElfsightPopup} ID=${elfsightPopupID} />`} `; }; var Links = ({ links, roomName }) => m2`${links.map((link) => m2`<${Link2} ...${link} key=${link.label} roomName=${roomName} />`)} `; var MappedImage = ({ imageURL = "", imageFunction = () => "", links = [], imageStyle = "", children = null, roomName = null }) => { useDateTime("minute"); const image = imageURL || imageFunction(); return m2`
<${Background} imgURL=${image} style=${imageStyle} /> <${Links} links=${links} roomName=${roomName} /> ${children}
`; }; var VimeoFrame = ({ vidId, wrapperStyle = {} }) => m2`
`; var Clue = ({ letter }) => m2`

Congratulations, you found the letter ${letter}

`; // frontend/src/55913/components/CometChat.js var CometChat = () => { const regID = window.dataLayer[0]["Registrant ID"]; const fullName = window.dataLayer[0]["First & Last Name"]; var company = window.dataLayer[0]["Company (Subsidiary)"]; var userName = `${fullName} - ${company}`; const picture = window.dataLayer[0]["Please make it more personal by uploading a head and shoulders photo:"] || "https://upload.wikimedia.org/wikipedia/commons/thumb/4/47/Linecons_user-avatar.svg/600px-Linecons_user-avatar.svg.png"; const regUid = regID.toString(); y3(() => { window.openDM = (chatGuid) => { window.CometChatWidget.openOrCloseChat(true); window.CometChatWidget.chatWithUser(chatGuid); }; }); const loadStage4 = () => { window.CometChatWidget.launch({ alignment: "right", docked: "true", height: "550px", roundedCorners: "true", widgetID: "6cfac693-5632-4cde-8475-93cc3736ebb1", width: "400px" }); if (window.dataLayer[0]["Registrant Type"] === "Non-Member") { get(`https://isf2021.swoogo-retrofit.tkevents.io/chat/addToNonMemberChats`, { id: regUid }); } else { get(`https://isf2021.swoogo-retrofit.tkevents.io/chat/addToMemberChats`, { id: regUid }); } }; const loadStage3 = () => { window.CometChatWidget.login({ uid: regUid }).then(loadStage4); }; const loadStage2 = () => { window.CometChatWidget.createOrUpdateUser({ avatar: picture, name: userName, uid: regUid }).then(loadStage3); }; const loadStage1 = () => { window.CometChatWidget.init(window.dataLayer[0]["Registrant Type"] === "Non-Member" ? { widgetID: "edc922f5-80ef-4192-8bbc-4dd4d3ec9816", appID: "1947156a6654742b", appRegion: "eu", authKey: "ce7eeed2c96c82fe1debbac88327e04246ba58e1" } : { widgetID: "6cfac693-5632-4cde-8475-93cc3736ebb1", appID: "1947156a6654742b", appRegion: "eu", authKey: "ce7eeed2c96c82fe1debbac88327e04246ba58e1" }).then(loadStage2); }; const bootChatIfReady = () => { if (window.CometChatWidget === void 0) { setTimeout(bootChatIfReady, 250); } else { loadStage1(); } }; bootChatIfReady(); return /* @__PURE__ */ v("script", { defer: true, src: "https://widget-js.cometchat.io/v3/cometchatwidget.js" }); }; window.openChat = (chatGuid) => { window.CometChatWidget.openOrCloseChat(true); window.CometChatWidget.chatWithGroup(chatGuid); }; // frontend/src/55913/data/agendas.js var allAgendas = [ { start: "2023-08-03 08:50:00+01:00", end: "2023-08-03 09:00:00+01:00", title: "Official opening and welcome", room: "Auditorium", path: "/auditorium" }, { start: "2023-08-03 09:00:00+01:00", end: "2023-08-03 10:00:00+01:00", title: "Brian Cox: Is information the foundation of reality?", room: "Auditorium", path: "/auditorium" }, { start: "2023-08-03 13:00:00+01:00", end: "2023-08-03 13:30:00+01:00", title: "Getting the most from the ISF", room: "Interactive lounge", path: "/lounge" }, { start: "2023-08-03 13:00:00+01:00", end: "2023-08-03 13:30:00+01:00", title: "OneTrust", room: "Exhibition hall, Sponsor theatre", path: "/sponsor-theatre" }, { start: "2023-08-03 13:30:00+01:00", end: "2023-08-03 14:00:00+01:00", title: "BitSight - Third party risk management with security ratings", room: "Exhibition hall, Sponsor theatre", path: "/sponsor-theatre" }, { start: "2023-08-03 13:30:00+01:00", end: "2023-08-03 14:00:00+01:00", title: "ISF Security Assessment and Roadmap", room: "Interactive lounge", path: "/lounge" }, { start: "2023-08-03 14:00:00+01:00", end: "2023-08-03 15:00:00+01:00", title: "Steve Wozniak in conversation with Steve Durbin", room: "Auditorium", path: "/auditorium" }, { start: "2023-08-03 15:00:00+01:00", end: "2023-08-03 16:30:00+01:00", title: "4.5 Supply Chain Security: Interactive training workshop - Part 1", room: "Exploration zone", path: "/exploration-zone" }, { start: "2023-08-03 16:00:00+01:00", end: "2023-08-03 17:30:00+01:00", title: "5.3 Translating Risk: An ISF Learning Espresso session", room: "Exploration zone", path: "/exploration-zone" }, { start: "2023-08-03 16:00:00+01:00", end: "2023-08-03 17:30:00+01:00", title: "5.5 Threat Horizon 2024 workshop", room: "Exploration zone", path: "/exploration-zone" }, { start: "2023-08-03 17:00:00+01:00", end: "2023-08-03 17:30:00+01:00", title: "ISF round up", room: "Interactive lounge", path: "/lounge" }, { start: "2023-08-03 17:00:00+01:00", end: "2023-08-03 17:30:00+01:00", title: "KPMG - Understanding the real impact of an industrial cyber-attack with hands-on example", room: "Exhibition hall, Sponsor theatre", path: "/sponsor-theatre" }, { start: "2023-08-03 17:30:00+01:00", end: "2023-08-03 17:50:00+01:00", title: "Exclusive magic show", room: "Interactive lounge", path: "/lounge" }, { start: "2023-08-03 17:50:00+01:00", end: "2023-08-03 18:00:00+01:00", title: "Official opening and welcome", room: "Auditorium", path: "/auditorium" }, { start: "2023-08-03 18:00:00+01:00", end: "2023-08-03 19:00:00+01:00", title: "Brian Cox: Is information the foundation of reality?", room: "Auditorium", path: "/auditorium" }, { start: "2023-08-03 21:00:00+01:00", end: "2023-08-03 22:00:00+01:00", title: "Steve Wozniak in conversation with Steve Durbin", room: "Auditorium", path: "/auditorium" }, { start: "2023-08-04 01:50:00+01:00", end: "2023-08-04 02:00:00+01:00", title: "Official opening and welcome", room: "Auditorium", path: "/auditorium" }, { start: "2023-08-04 02:00:00+01:00", end: "2023-08-04 03:00:00+01:00", title: "Brian Cox: Is information the foundation of reality?", room: "Auditorium", path: "/auditorium" }, { start: "2023-08-04 06:00:00+01:00", end: "2023-08-04 07:00:00+01:00", title: "Steve Wozniak in conversation with Steve Durbin", room: "Auditorium", path: "/auditorium" }, { start: "2023-08-04 09:00:00+01:00", end: "2023-08-04 10:00:00+01:00", title: "Viviane Reding: The future of digital governance", room: "Auditorium", path: "/auditorium" }, { start: "2023-08-04 14:00:00+01:00", end: "2023-08-04 15:00:00+01:00", title: "Rachel Botsman: Rethinking Trust", room: "Auditorium", path: "/auditorium" }, { start: "2023-08-04 18:00:00+01:00", end: "2023-08-04 19:00:00+01:00", title: "Viviane Reding: The future of digital governance", room: "Auditorium", path: "/auditorium" }, { start: "2023-08-04 21:00:00+01:00", end: "2023-08-04 22:00:00+01:00", title: "Rachel Botsman: Rethinking Trust", room: "Auditorium", path: "/auditorium" }, { start: "2023-08-04 13:00:00+01:00", end: "2023-08-04 13:30:00+01:00", title: "Huawei Technologies", room: "Exhibition hall, Sponsor theatre", path: "/sponsor-theatre" }, { start: "2023-08-04 13:00:00+01:00", end: "2023-08-04 13:30:00+01:00", title: "SentinelOne - The genesis of XDR: Why simplification is key to the future of threat prevention", room: "Exhibition hall, Sponsor theatre", path: "/sponsor-theatre" }, { start: "2023-08-04 13:30:00+01:00", end: "2023-08-04 14:00:00+01:00", title: "ImmuniWeb - Consolidating ASM, CSPM and DFIR to cut costs and boost efficiency", room: "Exhibition hall, Sponsor theatre", path: "/sponsor-theatre" }, { start: "2023-08-04 13:30:00+01:00", end: "2023-08-04 14:00:00+01:00", title: "SureCloud - The evolution of IT compliance: Developing a continuous compliance programme", room: "Exhibition hall, Sponsor theatre", path: "/sponsor-theatre" }, { start: "2023-08-04 17:00:00+01:00", end: "2023-08-04 17:30:00+01:00", title: "BeyondTrust - Endpoint privilege management demonstration", room: "Exhibition hall, Sponsor theatre", path: "/sponsor-theatre" }, { start: "2023-08-04 17:00:00+01:00", end: "2023-08-04 17:30:00+01:00", title: "IBM Security - Reduce the risk of insider threat with zero trust", room: "Exhibition hall, Sponsor theatre", path: "/sponsor-theatre" }, { start: "2023-08-04 17:30:00+01:00", end: "2023-08-04 18:00:00+01:00", title: "CybelAngel - Secure your digital world with CybelAngel", room: "Exhibition hall, Sponsor theatre", path: "/sponsor-theatre" }, { start: "2023-08-04 17:30:00+01:00", end: "2023-08-04 18:00:00+01:00", title: "SecurityScorecard - Security Ratings in action", room: "Exhibition hall, Sponsor theatre", path: "/sponsor-theatre" }, { start: "2023-08-04 07:00:00+01:00", end: "2023-08-04 08:30:00+01:00", title: "4.5 Supply Chain Security: Interactive training workshop - Part 1", room: "Exploration zone", path: "/exploration-zone" }, { start: "2023-08-04 07:00:00+01:00", end: "2023-08-04 08:30:00+01:00", title: "4.6 Threat Horizon 2024 workshop", room: "Exploration zone", path: "/exploration-zone" }, { start: "2023-08-04 08:00:00+01:00", end: "2023-08-04 09:30:00+01:00", title: "5.3 Translating Risk: An ISF Learning Espresso session", room: "Exploration zone", path: "/exploration-zone" }, { start: "2023-08-04 12:00:00+01:00", end: "2023-08-04 13:30:00+01:00", title: "8.5 Surviving an extinction level attack workshop", room: "Exploration zone", path: "/exploration-zone" }, { start: "2023-08-04 15:00:00+01:00", end: "2023-08-04 16:00:00+01:00", title: "9.3 ISF Standard of Good Practice: exploring the new SOGP WebApp", room: "Exploration zone", path: "/exploration-zone" }, { start: "2023-08-04 15:00:00+01:00", end: "2023-08-04 16:30:00+01:00", title: "9.5 Supply Chain Security: Interactive training workshop - Part 2", room: "Exploration zone", path: "/exploration-zone" }, { start: "2023-08-04 22:00:00+01:00", end: "2023-08-04 23:30:00+01:00", title: "8.5 Translating Risk: An ISF Learning Espresso session", room: "Exploration zone", path: "/exploration-zone" }, { start: "2023-08-04 23:00:00+01:00", end: "2023-08-04 23:59:00+01:00", title: "9.3 ISF Standard of Good Practice: exploring the new SOGP WebApp", room: "Exploration zone", path: "/exploration-zone" }, { start: "2023-08-04 01:00:00+01:00", end: "2023-08-04 01:30:00+01:00", title: "Getting the most from the ISF", room: "Interactive lounge", path: "/lounge" }, { start: "2023-08-04 13:00:00+01:00", end: "2023-08-04 13:30:00+01:00", title: "Cyber Awareness \u2013 ISF resources to engage audiences", room: "Interactive lounge", path: "/lounge" }, { start: "2023-08-04 13:30:00+01:00", end: "2023-08-04 14:00:00+01:00", title: "KPMG Drop in - Accelerating cyber innovation", room: "Interactive lounge", path: "/lounge" }, { start: "2023-08-04 17:00:00+01:00", end: "2023-08-04 17:30:00+01:00", title: "Getting the most from the ISF", room: "Interactive lounge", path: "/lounge" }, { start: "2023-08-04 17:00:00+01:00", end: "2023-08-04 17:30:00+01:00", title: "ISF round up", room: "Interactive lounge", path: "/lounge" }, { start: "2023-08-04 17:30:00+01:00", end: "2023-08-04 17:50:00+01:00", title: "Exclusive magic show", room: "Interactive lounge", path: "/lounge" }, { start: "2023-08-05 01:00:00+01:00", end: "2023-08-05 02:00:00+01:00", title: "Viviane Reding: The future of digital governance", room: "Auditorium", path: "/auditorium" }, { start: "2023-08-05 05:00:00+01:00", end: "2023-08-05 05:30:00+01:00", title: "ISF Security Assessment and Roadmap", room: "Interactive lounge", path: "/lounge" }, { start: "2023-08-05 05:30:00+01:00", end: "2023-08-05 06:00:00+01:00", title: "Cyber Awareness \u2013 ISF resources to engage audiences", room: "Interactive lounge", path: "/lounge" }, { start: "2023-08-05 06:00:00+01:00", end: "2023-08-05 07:00:00+01:00", title: "Rachel Botsman: Rethinking Trust", room: "Auditorium", path: "/auditorium" }, { start: "2023-08-05 07:00:00+01:00", end: "2023-08-05 08:00:00+01:00", title: "9.3 ISF Standard of Good Practice: exploring the new SOGP WebApp", room: "Exploration zone", path: "/exploration-zone" }, { start: "2023-08-05 07:00:00+01:00", end: "2023-08-05 08:30:00+01:00", title: "9.5 Supply Chain Security: Interactive training workshop - Part 2", room: "Exploration zone", path: "/exploration-zone" }, { start: "2023-08-05 09:00:00+01:00", end: "2023-08-05 10:30:00+01:00", title: "11.5 Surviving an extinction level attack workshop", room: "Exploration zone", path: "/exploration-zone" }, { start: "2023-08-05 11:00:00+01:00", end: "2023-08-05 12:00:00+01:00", title: "13.5 Backdoors and breaches: Cyber security exercise", room: "Exploration zone", path: "/exploration-zone" }, { start: "2023-08-05 12:00:00+01:00", end: "2023-08-05 13:00:00+01:00", title: "Sadie Creese: Ransomware: past, present and future", room: "Auditorium", path: "/auditorium" }, { start: "2023-08-05 13:00:00+01:00", end: "2023-08-05 13:30:00+01:00", title: "Crowdstrike", room: "Exhibition hall, Sponsor theatre", path: "/sponsor-theatre" }, { start: "2023-08-05 13:00:00+01:00", end: "2023-08-05 13:30:00+01:00", title: "ISF QIRA Demonstration", room: "Interactive lounge", path: "/lounge" }, { start: "2023-08-05 13:00:00+01:00", end: "2023-08-05 13:30:00+01:00", title: "ISF Security Assessment and Roadmap", room: "Interactive lounge", path: "/lounge" }, { start: "2023-08-05 13:00:00+01:00", end: "2023-08-05 13:30:00+01:00", title: "Synopsys", room: "Exhibition hall, Sponsor theatre", path: "/sponsor-theatre" }, { start: "2023-08-05 13:30:00+01:00", end: "2023-08-05 14:00:00+01:00", title: "Cyber Awareness \u2013 ISF resources to engage audiences", room: "Interactive lounge", path: "/lounge" }, { start: "2023-08-05 13:30:00+01:00", end: "2023-08-05 14:00:00+01:00", title: "Keysight Technologies", room: "Exhibition hall, Sponsor theatre", path: "/sponsor-theatre" }, { start: "2023-08-05 13:30:00+01:00", end: "2023-08-05 14:00:00+01:00", title: "KPMG Drop in - Why we should invest in Identity Management", room: "Interactive lounge", path: "/lounge" }, { start: "2023-08-05 13:30:00+01:00", end: "2023-08-05 14:00:00+01:00", title: "Veracode - How to speed up AppSec testing?", room: "Exhibition hall, Sponsor theatre", path: "/sponsor-theatre" }, { start: "2023-08-05 14:00:00+01:00", end: "2023-08-05 15:00:00+01:00", title: "14.4 Information security in Mergers and Acquisitions", room: "Exploration zone", path: "/exploration-zone" }, { start: "2023-08-05 16:00:00+01:00", end: "2023-08-05 17:00:00+01:00", title: "Max McKeown: How to adapt and thrive in an age of opportunities, shocks, and change", room: "Auditorium", path: "/auditorium" }, { start: "2023-08-05 17:00:00+01:00", end: "2023-08-05 17:30:00+01:00", title: "ISF round up", room: "Interactive lounge", path: "/lounge" }, { start: "2023-08-05 17:15:00+01:00", end: "2023-08-05 17:45:00+01:00", title: "Crossword CyberSecurity - Stay on top of cyber security and supply chain risk with Rizikon Assurance", room: "Exhibition hall, Sponsor theatre", path: "/sponsor-theatre" }, { start: "2023-08-05 17:15:00+01:00", end: "2023-08-05 17:45:00+01:00", title: "KPMG Drop in - From enforcer to influencer: earning your spot in the C Suite\xA0", room: "Interactive lounge", path: "/lounge" }, { start: "2023-08-05 17:15:00+01:00", end: "2023-08-05 17:45:00+01:00", title: "Tessian", room: "Exhibition hall, Sponsor theatre", path: "/sponsor-theatre" }, { start: "2023-08-05 20:00:00+01:00", end: "2023-08-05 21:00:00+01:00", title: "Sadie Creese: Ransomware: past, present and future", room: "Auditorium", path: "/auditorium" }, { start: "2023-08-05 21:00:00+01:00", end: "2023-08-05 22:00:00+01:00", title: "13.5 Backdoors and breaches: Cyber security exercise", room: "Exploration zone", path: "/exploration-zone" }, { start: "2023-08-05 22:00:00+01:00", end: "2023-08-05 23:00:00+01:00", title: "14.4 Information security in Mergers and Acquisitions", room: "Exploration zone", path: "/exploration-zone" }, { start: "2023-08-05 01:00:00+01:00", end: "2023-08-05 02:00:00+01:00", title: "Viviane Reding: The future of digital governance", room: "Auditorium", path: "/auditorium" }, { start: "2023-08-05 05:00:00+01:00", end: "2023-08-05 05:30:00+01:00", title: "ISF Security Assessment and Roadmap", room: "Interactive lounge", path: "/lounge" }, { start: "2023-08-05 05:30:00+01:00", end: "2023-08-05 06:00:00+01:00", title: "Cyber Awareness \u2013 ISF resources to engage audiences", room: "Interactive lounge", path: "/lounge" }, { start: "2023-08-05 06:00:00+01:00", end: "2023-08-05 07:00:00+01:00", title: "Rachel Botsman: Rethinking Trust", room: "Auditorium", path: "/auditorium" }, { start: "2023-08-05 07:00:00+01:00", end: "2023-08-05 08:00:00+01:00", title: "9.3 ISF Standard of Good Practice: exploring the new SOGP WebApp", room: "Exploration zone", path: "/exploration-zone" }, { start: "2023-08-05 07:00:00+01:00", end: "2023-08-05 08:30:00+01:00", title: "9.5 Supply Chain Security: Interactive training workshop - Part 2", room: "Exploration zone", path: "/exploration-zone" }, { start: "2023-08-05 09:00:00+01:00", end: "2023-08-05 10:30:00+01:00", title: "11.5 Surviving an extinction level attack workshop", room: "Exploration zone", path: "/exploration-zone" }, { start: "2023-08-05 11:00:00+01:00", end: "2023-08-05 12:00:00+01:00", title: "13.5 Backdoors and breaches: Cyber security exercise", room: "Exploration zone", path: "/exploration-zone" }, { start: "2023-08-05 12:00:00+01:00", end: "2023-08-05 13:00:00+01:00", title: "Sadie Creese: Ransomware: past, present and future", room: "Auditorium", path: "/auditorium" }, { start: "2023-08-05 13:00:00+01:00", end: "2023-08-05 13:30:00+01:00", title: "Crowdstrike", room: "Exhibition hall, Sponsor theatre", path: "/sponsor-theatre" }, { start: "2023-08-05 13:00:00+01:00", end: "2023-08-05 13:30:00+01:00", title: "ISF QIRA Demonstration", room: "Interactive lounge", path: "/lounge" }, { start: "2023-08-05 13:00:00+01:00", end: "2023-08-05 13:30:00+01:00", title: "ISF Security Assessment and Roadmap", room: "Interactive lounge", path: "/lounge" }, { start: "2023-08-05 13:00:00+01:00", end: "2023-08-05 13:30:00+01:00", title: "Synopsys", room: "Exhibition hall, Sponsor theatre", path: "/sponsor-theatre" }, { start: "2023-08-05 13:30:00+01:00", end: "2023-08-05 14:00:00+01:00", title: "Cyber Awareness \u2013 ISF resources to engage audiences", room: "Interactive lounge", path: "/lounge" }, { start: "2023-08-05 13:30:00+01:00", end: "2023-08-05 14:00:00+01:00", title: "Keysight Technologies", room: "Exhibition hall, Sponsor theatre", path: "/sponsor-theatre" }, { start: "2023-08-05 13:30:00+01:00", end: "2023-08-05 14:00:00+01:00", title: "KPMG Drop in - Why we should invest in Identity Management", room: "Interactive lounge", path: "/lounge" }, { start: "2023-08-05 13:30:00+01:00", end: "2023-08-05 14:00:00+01:00", title: "Veracode - How to speed up AppSec testing?", room: "Exhibition hall, Sponsor theatre", path: "/sponsor-theatre" }, { start: "2023-08-05 14:00:00+01:00", end: "2023-08-05 15:00:00+01:00", title: "14.4 Information security in Mergers and Acquisitions", room: "Exploration zone", path: "/exploration-zone" }, { start: "2023-08-05 16:00:00+01:00", end: "2023-08-05 17:00:00+01:00", title: "Max McKeown: How to adapt and thrive in an age of opportunities, shocks, and change", room: "Auditorium", path: "/auditorium" }, { start: "2023-08-05 17:00:00+01:00", end: "2023-08-05 17:30:00+01:00", title: "ISF round up", room: "Interactive lounge", path: "/lounge" }, { start: "2023-08-05 17:15:00+01:00", end: "2023-08-05 17:45:00+01:00", title: "Crossword CyberSecurity - Stay on top of cyber security and supply chain risk with Rizikon Assurance", room: "Exhibition hall, Sponsor theatre", path: "/sponsor-theatre" }, { start: "2023-08-05 17:15:00+01:00", end: "2023-08-05 17:45:00+01:00", title: "KPMG Drop in - From enforcer to influencer: earning your spot in the C Suite\xA0", room: "Interactive lounge", path: "/lounge" }, { start: "2023-08-05 17:15:00+01:00", end: "2023-08-05 17:45:00+01:00", title: "Tessian", room: "Exhibition hall, Sponsor theatre", path: "/sponsor-theatre" }, { start: "2023-08-05 20:00:00+01:00", end: "2023-08-05 21:00:00+01:00", title: "Sadie Creese: Ransomware: past, present and future", room: "Auditorium", path: "/auditorium" }, { start: "2023-08-05 21:00:00+01:00", end: "2023-08-05 22:00:00+01:00", title: "13.5 Backdoors and breaches: Cyber security exercise", room: "Exploration zone", path: "/exploration-zone" }, { start: "2023-08-05 22:00:00+01:00", end: "2023-08-05 23:00:00+01:00", title: "14.4 Information security in Mergers and Acquisitions", room: "Exploration zone", path: "/exploration-zone" }, { start: "2023-08-06 00:00:00+01:00", end: "2023-08-06 01:00:00+01:00", title: "Max McKeown: How to adapt and thrive in an age of opportunities, shocks, and change", room: "Auditorium", path: "/auditorium" }, { start: "2023-08-06 04:00:00+01:00", end: "2023-08-06 05:00:00+01:00", title: "Sadie Creese: Ransomware: past, present and future", room: "Auditorium", path: "/auditorium" }, { start: "2023-08-06 06:00:00+01:00", end: "2023-08-06 07:00:00+01:00", title: "14.4 Information security in Mergers and Acquisitions", room: "Exploration zone", path: "/exploration-zone" }, { start: "2023-08-06 08:00:00+01:00", end: "2023-08-06 09:00:00+01:00", title: "Max McKeown: How to adapt and thrive in an age of opportunities, shocks, and change", room: "Auditorium", path: "/auditorium" }, { start: "2023-08-03T10:00+01:00", end: "2023-08-03T11:00+01:00", room: "Breakout One", path: "/breakout-one", title: "1.1 Doing the right thing: How TalkTalk helps customers to stay secure" }, { start: "2023-08-03T11:00+01:00", end: "2023-08-03T12:00+01:00", room: "Breakout One", path: "/breakout-one", title: "2.1 Human centered security: Strengthening the weakest link" }, { start: "2023-08-03T12:00+01:00", end: "2023-08-03T13:00+01:00", room: "Breakout One", path: "/breakout-one", title: "3.1 Improve your security posture: Expect more from your Internal Audit function" }, { start: "2023-08-03T15:00+01:00", end: "2023-08-03T16:00+01:00", room: "Breakout One", path: "/breakout-one", title: "4.1 Tips for preparing and running a successful Security Healthcheck and Benchmarking assessment" }, { start: "2023-08-03T16:00+01:00", end: "2023-08-03T17:00+01:00", room: "Breakout One", path: "/breakout-one", title: "5.1 Your guide to building a cyber security roadmap" }, { start: "2023-08-03T19:00+01:00", end: "2023-08-03T20:00+01:00", room: "Breakout One", path: "/breakout-one", title: "1.1 Doing the right thing: How TalkTalk helps customers to stay secure" }, { start: "2023-08-03T20:00+01:00", end: "2023-08-03T21:00+01:00", room: "Breakout One", path: "/breakout-one", title: "2.1 Human centered security: Strengthening the weakest link" }, { start: "2023-08-03T22:00+01:00", end: "2023-08-03T23:00+01:00", room: "Breakout One", path: "/breakout-one", title: "3.1 Improve your security posture: Expect more from your Internal Audit function" }, { start: "2023-08-03T23:00+01:00", end: "2023-08-03T23:59+01:00", room: "Breakout One", path: "/breakout-one", title: "4.1 Tips for preparing and running a successful Security Healthcheck and Benchmarking assessment" }, { start: "2023-08-04T00:00+01:00", end: "2023-08-04T01:00+01:00", room: "Breakout One", path: "/breakout-one", title: "5.1 Your guide to building a cyber security roadmap" }, { start: "2023-08-04T03:00+01:00", end: "2023-08-04T04:00+01:00", room: "Breakout One", path: "/breakout-one", title: "1.1 Doing the right thing: How TalkTalk helps customers to stay secure" }, { start: "2023-08-04T04:00+01:00", end: "2023-08-04T05:00+01:00", room: "Breakout One", path: "/breakout-one", title: "2.1 Human centered security: Strengthening the weakest link" }, { start: "2023-08-04T05:00+01:00", end: "2023-08-04T06:00+01:00", room: "Breakout One", path: "/breakout-one", title: "3.1 Improve your security posture: Expect more from your Internal Audit function" }, { start: "2023-08-04T07:00+01:00", end: "2023-08-04T08:00+01:00", room: "Breakout One", path: "/breakout-one", title: "4.1 Tips for preparing and running a successful Security Healthcheck and Benchmarking assessment" }, { start: "2023-08-04T08:00+01:00", end: "2023-08-04T09:00+01:00", room: "Breakout One", path: "/breakout-one", title: "5.1 Your guide to building a cyber security roadmap" }, { start: "2023-08-04T10:00+01:00", end: "2023-08-04T11:00+01:00", room: "Breakout One", path: "/breakout-one", title: "6.1 Navigating safely through the storm: Proactively managing threats in the supply chain" }, { start: "2023-08-04T11:00+01:00", end: "2023-08-04T12:00+01:00", room: "Breakout One", path: "/breakout-one", title: "7.1 Democratisation of IT: Embrace innovation while managing risk" }, { start: "2023-08-04T12:00+01:00", end: "2023-08-04T13:00+01:00", room: "Breakout One", path: "/breakout-one", title: "8.1 Driving behaviour change: Developing a positive security awareness and education programme" }, { start: "2023-08-04T15:00+01:00", end: "2023-08-04T16:00+01:00", room: "Breakout One", path: "/breakout-one", title: "9.1 My home is my castle: Implementing an information security strategy" }, { start: "2023-08-04T16:00+01:00", end: "2023-08-04T17:00+01:00", room: "Breakout One", path: "/breakout-one", title: "10.1 Data Classification made simple: A show case of how it works in practice" }, { start: "2023-08-04T19:00+01:00", end: "2023-08-04T20:00+01:00", room: "Breakout One", path: "/breakout-one", title: "6.1 Navigating safely through the storm: Proactively managing threats in the supply chain" }, { start: "2023-08-04T20:00+01:00", end: "2023-08-04T21:00+01:00", room: "Breakout One", path: "/breakout-one", title: "7.1 Democratisation of IT: Embrace innovation while managing risk" }, { start: "2023-08-04T22:00+01:00", end: "2023-08-04T23:00+01:00", room: "Breakout One", path: "/breakout-one", title: "8.1 Driving behaviour change: Developing a positive security awareness and education programme" }, { start: "2023-08-04T23:00+01:00", end: "2023-08-04T23:59+01:00", room: "Breakout One", path: "/breakout-one", title: "9.1 My home is my castle: Implementing an information security strategy" }, { start: "2023-08-05T00:00+01:00", end: "2023-08-05T01:00+01:00", room: "Breakout One", path: "/breakout-one", title: "10.1 Data Classification made simple: A show case of how it works in practice" }, { start: "2023-08-05T02:00+01:00", end: "2023-08-05T03:00+01:00", room: "Breakout One", path: "/breakout-one", title: "6.1 Navigating safely through the storm: Proactively managing threats in the supply chain" }, { start: "2023-08-05T03:00+01:00", end: "2023-08-05T04:00+01:00", room: "Breakout One", path: "/breakout-one", title: "7.1 Democratisation of IT: Embrace innovation while managing risk" }, { start: "2023-08-05T04:00+01:00", end: "2023-08-05T05:00+01:00", room: "Breakout One", path: "/breakout-one", title: "8.1 Driving behaviour change: Developing a positive security awareness and education programme" }, { start: "2023-08-05T07:00+01:00", end: "2023-08-05T08:00+01:00", room: "Breakout One", path: "/breakout-one", title: "9.1 My home is my castle: Implementing an information security strategy" }, { start: "2023-08-05T08:00+01:00", end: "2023-08-05T09:00+01:00", room: "Breakout One", path: "/breakout-one", title: "10.1 Data Classification made simple: A show case of how it works in practice" }, { start: "2023-08-05T09:00+01:00", end: "2023-08-05T10:00+01:00", room: "Breakout One", path: "/breakout-one", title: "11.1 Thwarting extortion: New and existing methods for ransomware detection and prevention" }, { start: "2023-08-05T10:00+01:00", end: "2023-08-05T11:00+01:00", room: "Breakout One", path: "/breakout-one", title: "12.1 How does my organisation survive its move to the cloud?" }, { start: "2023-08-05T11:00+01:00", end: "2023-08-05T12:00+01:00", room: "Breakout One", path: "/breakout-one", title: "13.1 Tessian - The paradigm shift of data-loss prevention: From rules-based to machine learning powered" }, { start: "2023-08-05T14:00+01:00", end: "2023-08-05T15:00+01:00", room: "Breakout One", path: "/breakout-one", title: "14.1 Cyberterrorism: An emerging threat" }, { start: "2023-08-05T15:00+01:00", end: "2023-08-05T16:00+01:00", room: "Breakout One", path: "/breakout-one", title: "15.1 Continuous compliance: Automating controls and enabling DevOps" }, { start: "2023-08-05T18:00+01:00", end: "2023-08-05T19:00+01:00", room: "Breakout One", path: "/breakout-one", title: "11.1 Thwarting extortion: New and existing methods for ransomware detection and prevention" }, { start: "2023-08-05T19:00+01:00", end: "2023-08-05T20:00+01:00", room: "Breakout One", path: "/breakout-one", title: "12.1 How does my organisation survive its move to the cloud?" }, { start: "2023-08-05T21:00+01:00", end: "2023-08-05T22:00+01:00", room: "Breakout One", path: "/breakout-one", title: "13.1 Tessian - The paradigm shift of data-loss prevention: From rules-based to machine learning powered" }, { start: "2023-08-05T22:00+01:00", end: "2023-08-05T23:00+01:00", room: "Breakout One", path: "/breakout-one", title: "14.1 Cyberterrorism: An emerging threat" }, { start: "2023-08-05T23:00+01:00", end: "2023-08-05T23:59+01:00", room: "Breakout One", path: "/breakout-one", title: "15.1 Continuous compliance: Automating controls and enabling DevOps" }, { start: "2023-08-06T02:00+01:00", end: "2023-08-06T03:00+01:00", room: "Breakout One", path: "/breakout-one", title: "11.1 Thwarting extortion: New and existing methods for ransomware detection and prevention" }, { start: "2023-08-06T03:00+01:00", end: "2023-08-06T04:00+01:00", room: "Breakout One", path: "/breakout-one", title: "12.1 How does my organisation survive its move to the cloud?" }, { start: "2023-08-06T05:00+01:00", end: "2023-08-06T06:00+01:00", room: "Breakout One", path: "/breakout-one", title: "13.1 Tessian - The paradigm shift of data-loss prevention: From rules-based to machine learning powered" }, { start: "2023-08-06T06:00+01:00", end: "2023-08-06T07:00+01:00", room: "Breakout One", path: "/breakout-one", title: "14.1 Cyberterrorism: An emerging threat" }, { start: "2023-08-06T07:00+01:00", end: "2023-08-06T08:00+01:00", room: "Breakout One", path: "/breakout-one", title: "15.1 Continuous compliance: Automating controls and enabling DevOps" }, { start: "2023-08-03T10:00+01:00", end: "2023-08-03T11:00+01:00", room: "Breakout Two", path: "/breakout-two", title: "1.2 Purple team operations, or, ensuring continuous security improvement" }, { start: "2023-08-03T11:00+01:00", end: "2023-08-03T12:00+01:00", room: "Breakout Two", path: "/breakout-two", title: "2.2 Addressing the multi-cloud security challenge: Lessons from the field" }, { start: "2023-08-03T12:00+01:00", end: "2023-08-03T13:00+01:00", room: "Breakout Two", path: "/breakout-two", title: "3.2 How to augment zero trust architecture using blockchain" }, { start: "2023-08-03T15:00+01:00", end: "2023-08-03T16:00+01:00", room: "Breakout Two", path: "/breakout-two", title: "4.2 Implementing an effective Information Security Awareness Campaign using a research based approach" }, { start: "2023-08-03T16:00+01:00", end: "2023-08-03T17:00+01:00", room: "Breakout Two", path: "/breakout-two", title: "5.2 Third party security risk management from humble beginnings" }, { start: "2023-08-03T19:00+01:00", end: "2023-08-03T20:00+01:00", room: "Breakout Two", path: "/breakout-two", title: "1.2 Purple team operations, or, ensuring continuous security improvement" }, { start: "2023-08-03T20:00+01:00", end: "2023-08-03T21:00+01:00", room: "Breakout Two", path: "/breakout-two", title: "2.2 Addressing the multi-cloud security challenge: Lessons from the field" }, { start: "2023-08-03T22:00+01:00", end: "2023-08-03T23:00+01:00", room: "Breakout Two", path: "/breakout-two", title: "3.2 How to augment zero trust architecture using blockchain" }, { start: "2023-08-03T23:00+01:00", end: "2023-08-03T23:59+01:00", room: "Breakout Two", path: "/breakout-two", title: "4.2 Implementing an effective Information Security Awareness Campaign using a research based approach" }, { start: "2023-08-04T00:00+01:00", end: "2023-08-04T01:00+01:00", room: "Breakout Two", path: "/breakout-two", title: "5.2 Third party security risk management from humble beginnings" }, { start: "2023-08-04T03:00+01:00", end: "2023-08-04T04:00+01:00", room: "Breakout Two", path: "/breakout-two", title: "1.2 Purple team operations, or, ensuring continuous security improvement" }, { start: "2023-08-04T04:00+01:00", end: "2023-08-04T05:00+01:00", room: "Breakout Two", path: "/breakout-two", title: "2.2 Addressing the multi-cloud security challenge: Lessons from the field" }, { start: "2023-08-04T05:00+01:00", end: "2023-08-04T06:00+01:00", room: "Breakout Two", path: "/breakout-two", title: "3.2 How to augment zero trust architecture using blockchain" }, { start: "2023-08-04T07:00+01:00", end: "2023-08-04T08:00+01:00", room: "Breakout Two", path: "/breakout-two", title: "4.2 Implementing an effective Information Security Awareness Campaign using a research based approach" }, { start: "2023-08-04T08:00+01:00", end: "2023-08-04T09:00+01:00", room: "Breakout Two", path: "/breakout-two", title: "5.2 Third party security risk management from humble beginnings" }, { start: "2023-08-04T10:00+01:00", end: "2023-08-04T11:00+01:00", room: "Breakout Two", path: "/breakout-two", title: "6.2 Backdoors and breaches: Simulating cyber security incidents" }, { start: "2023-08-04T11:00+01:00", end: "2023-08-04T12:00+01:00", room: "Breakout Two", path: "/breakout-two", title: "7.2 Cloud technologies: It's OK to ask the business what they feel about it" }, { start: "2023-08-04T12:00+01:00", end: "2023-08-04T13:00+01:00", room: "Breakout Two", path: "/breakout-two", title: "8.2 Scaling the hill: Personal experiences with IRAM2" }, { start: "2023-08-04T15:00+01:00", end: "2023-08-04T16:00+01:00", room: "Breakout Two", path: "/breakout-two", title: "9.2 Data-driven security risk reporting as a means to justify security investments" }, { start: "2023-08-04T16:00+01:00", end: "2023-08-04T17:00+01:00", room: "Breakout Two", path: "/breakout-two", title: "10.2 Manage risks fast, fail faster and adapt fastest" }, { start: "2023-08-04T19:00+01:00", end: "2023-08-04T20:00+01:00", room: "Breakout Two", path: "/breakout-two", title: "6.2 Backdoors and breaches: Simulating cyber security incidents" }, { start: "2023-08-04T20:00+01:00", end: "2023-08-04T21:00+01:00", room: "Breakout Two", path: "/breakout-two", title: "7.2 Cloud technologies: It's OK to ask the business what they feel about it" }, { start: "2023-08-04T22:00+01:00", end: "2023-08-04T23:00+01:00", room: "Breakout Two", path: "/breakout-two", title: "8.2 Scaling the hill: Personal experiences with IRAM2" }, { start: "2023-08-04T23:00+01:00", end: "2023-08-04T23:59+01:00", room: "Breakout Two", path: "/breakout-two", title: "9.2 Data-driven security risk reporting as a means to justify security investments" }, { start: "2023-08-05T00:00+01:00", end: "2023-08-05T01:00+01:00", room: "Breakout Two", path: "/breakout-two", title: "10.2 Manage risks fast, fail faster and adapt fastest" }, { start: "2023-08-05T02:00+01:00", end: "2023-08-05T03:00+01:00", room: "Breakout Two", path: "/breakout-two", title: "6.2 Backdoors and breaches: Simulating cyber security incidents" }, { start: "2023-08-05T03:00+01:00", end: "2023-08-05T04:00+01:00", room: "Breakout Two", path: "/breakout-two", title: "7.2 Cloud technologies: It's OK to ask the business what they feel about it" }, { start: "2023-08-05T04:00+01:00", end: "2023-08-05T05:00+01:00", room: "Breakout Two", path: "/breakout-two", title: "8.2 Scaling the hill: Personal experiences with IRAM2" }, { start: "2023-08-05T07:00+01:00", end: "2023-08-05T08:00+01:00", room: "Breakout Two", path: "/breakout-two", title: "9.2 Data-driven security risk reporting as a means to justify security investments" }, { start: "2023-08-05T08:00+01:00", end: "2023-08-05T09:00+01:00", room: "Breakout Two", path: "/breakout-two", title: "10.2 Manage risks fast, fail faster and adapt fastest" }, { start: "2023-08-05T09:00+01:00", end: "2023-08-05T10:00+01:00", room: "Breakout Two", path: "/breakout-two", title: "11.2 Transferring risk: The critical role of cyber insurance" }, { start: "2023-08-05T10:00+01:00", end: "2023-08-05T11:00+01:00", room: "Breakout Two", path: "/breakout-two", title: "12.2 Working against the clock: Fighting cyber fraud" }, { start: "2023-08-05T11:00+01:00", end: "2023-08-05T12:00+01:00", room: "Breakout Two", path: "/breakout-two", title: "13.2 Enhancing and visualising data driven, risk management, decision making for ICS" }, { start: "2023-08-05T14:00+01:00", end: "2023-08-05T15:00+01:00", room: "Breakout Two", path: "/breakout-two", title: "14.2 Privacy in practice: Cutting through the noise" }, { start: "2023-08-05T15:00+01:00", end: "2023-08-05T16:00+01:00", room: "Breakout Two", path: "/breakout-two", title: "15.2 Lessons and insights: Automated vulnerability and patch management in real time" }, { start: "2023-08-05T18:00+01:00", end: "2023-08-05T19:00+01:00", room: "Breakout Two", path: "/breakout-two", title: "11.2 Transferring risk: The critical role of cyber insurance" }, { start: "2023-08-05T19:00+01:00", end: "2023-08-05T20:00+01:00", room: "Breakout Two", path: "/breakout-two", title: "12.2 Working against the clock: Fighting cyber fraud" }, { start: "2023-08-05T21:00+01:00", end: "2023-08-05T22:00+01:00", room: "Breakout Two", path: "/breakout-two", title: "13.2 Enhancing and visualising data driven, risk management, decision making for ICS" }, { start: "2023-08-05T22:00+01:00", end: "2023-08-05T23:00+01:00", room: "Breakout Two", path: "/breakout-two", title: "14.2 Privacy in practice: Cutting through the noise" }, { start: "2023-08-05T23:00+01:00", end: "2023-08-05T23:59+01:00", room: "Breakout Two", path: "/breakout-two", title: "15.2 Lessons and insights: Automated vulnerability and patch management in real time" }, { start: "2023-08-06T02:00+01:00", end: "2023-08-06T03:00+01:00", room: "Breakout Two", path: "/breakout-two", title: "11.2 Transferring risk: The critical role of cyber insurance" }, { start: "2023-08-06T03:00+01:00", end: "2023-08-06T04:00+01:00", room: "Breakout Two", path: "/breakout-two", title: "12.2 Working against the clock: Fighting cyber fraud" }, { start: "2023-08-06T05:00+01:00", end: "2023-08-06T06:00+01:00", room: "Breakout Two", path: "/breakout-two", title: "13.2 Enhancing and visualising data driven, risk management, decision making for ICS" }, { start: "2023-08-06T06:00+01:00", end: "2023-08-06T07:00+01:00", room: "Breakout Two", path: "/breakout-two", title: "14.2 Privacy in practice: Cutting through the noise" }, { start: "2023-08-06T07:00+01:00", end: "2023-08-06T08:00+01:00", room: "Breakout Two", path: "/breakout-two", title: "15.2 Lessons and insights: Automated vulnerability and patch management in real time" }, { start: "2023-08-03T10:00+01:00", end: "2023-08-03T11:00+01:00", room: "Breakout Three", path: "/breakout-three", title: "1.3 Crowdsourcing information security" }, { start: "2023-08-03T11:00+01:00", end: "2023-08-03T12:00+01:00", room: "Breakout Three", path: "/breakout-three", title: "2.3 Transforming security into a business partner" }, { start: "2023-08-03T12:00+01:00", end: "2023-08-03T13:00+01:00", room: "Breakout Three", path: "/breakout-three", title: "3.3 Risk Practice: the next generation \u2013 ISF Learning seminar" }, { start: "2023-08-03T15:00+01:00", end: "2023-08-03T16:00+01:00", room: "Breakout Three", path: "/breakout-three", title: "4.3 CybelAngel - Breaking the Chain: Hindering Ransomware\u2019s Killchain" }, { start: "2023-08-03T19:00+01:00", end: "2023-08-03T20:00+01:00", room: "Breakout Three", path: "/breakout-three", title: "1.3 Crowdsourcing information security" }, { start: "2023-08-03T20:00+01:00", end: "2023-08-03T21:00+01:00", room: "Breakout Three", path: "/breakout-three", title: "2.3 Transforming security into a business partner" }, { start: "2023-08-03T22:00+01:00", end: "2023-08-03T23:00+01:00", room: "Breakout Three", path: "/breakout-three", title: "3.3 Risk Practice: the next generation \u2013 ISF Learning seminar" }, { start: "2023-08-03T23:00+01:00", end: "2023-08-03T23:59+01:00", room: "Breakout Three", path: "/breakout-three", title: "4.3 CybelAngel - Breaking the Chain: Hindering Ransomware\u2019s Killchain" }, { start: "2023-08-04T03:00+01:00", end: "2023-08-04T04:00+01:00", room: "Breakout Three", path: "/breakout-three", title: "1.3 Crowdsourcing information security" }, { start: "2023-08-04T04:00+01:00", end: "2023-08-04T05:00+01:00", room: "Breakout Three", path: "/breakout-three", title: "2.3 Transforming security into a business partner" }, { start: "2023-08-04T05:00+01:00", end: "2023-08-04T06:00+01:00", room: "Breakout Three", path: "/breakout-three", title: "3.3 Risk Practice: the next generation \u2013 ISF Learning seminar" }, { start: "2023-08-04T07:00+01:00", end: "2023-08-04T08:00+01:00", room: "Breakout Three", path: "/breakout-three", title: "4.3 CybelAngel - Breaking the Chain: Hindering Ransomware\u2019s Killchain" }, { start: "2023-08-04T10:00+01:00", end: "2023-08-04T11:00+01:00", room: "Breakout Three", path: "/breakout-three", title: "6.3 Using the SOGP to deliver business-friendly security by design" }, { start: "2023-08-04T11:00+01:00", end: "2023-08-04T12:00+01:00", room: "Breakout Three", path: "/breakout-three", title: "7.3 Applying the new QIRA methodology: A Ransomware case study" }, { start: "2023-08-04T12:00+01:00", end: "2023-08-04T13:00+01:00", room: "Breakout Three", path: "/breakout-three", title: "8.3 Cyber Fusion: From buzzword to reality" }, { start: "2023-08-04T16:00+01:00", end: "2023-08-04T17:00+01:00", room: "Breakout Three", path: "/breakout-three", title: "10.3 You are a bully and your governance sucks: How (not) to shoot yourself in the foot when doing OT cyber security" }, { start: "2023-08-04T19:00+01:00", end: "2023-08-04T20:00+01:00", room: "Breakout Three", path: "/breakout-three", title: "6.3 Using the SOGP to deliver business-friendly security by design" }, { start: "2023-08-04T20:00+01:00", end: "2023-08-04T21:00+01:00", room: "Breakout Three", path: "/breakout-three", title: "7.3 Applying the new QIRA methodology: A Ransomware case study" }, { start: "2023-08-04T22:00+01:00", end: "2023-08-04T23:00+01:00", room: "Breakout Three", path: "/breakout-three", title: "8.3 Cyber Fusion: From buzzword to reality" }, { start: "2023-08-05T00:00+01:00", end: "2023-08-05T01:00+01:00", room: "Breakout Three", path: "/breakout-three", title: "10.3 You are a bully and your governance sucks: How (not) to shoot yourself in the foot when doing OT cyber security" }, { start: "2023-08-05T02:00+01:00", end: "2023-08-05T03:00+01:00", room: "Breakout Three", path: "/breakout-three", title: "6.3 Using the SOGP to deliver business-friendly security by design" }, { start: "2023-08-05T03:00+01:00", end: "2023-08-05T04:00+01:00", room: "Breakout Three", path: "/breakout-three", title: "7.3 Applying the new QIRA methodology: A Ransomware case study" }, { start: "2023-08-05T04:00+01:00", end: "2023-08-05T05:00+01:00", room: "Breakout Three", path: "/breakout-three", title: "8.3 Cyber Fusion: From buzzword to reality" }, { start: "2023-08-05T08:00+01:00", end: "2023-08-05T09:00+01:00", room: "Breakout Three", path: "/breakout-three", title: "10.3 You are a bully and your governance sucks: How (not) to shoot yourself in the foot when doing OT cyber security" }, { start: "2023-08-05T09:00+01:00", end: "2023-08-05T10:00+01:00", room: "Breakout Three", path: "/breakout-three", title: "11.3 Operational Technology Adventures: A W\xE4rtsil\xE4 story (security edition)" }, { start: "2023-08-05T10:00+01:00", end: "2023-08-05T11:00+01:00", room: "Breakout Three", path: "/breakout-three", title: "12.3 ISF Benchmark: Introduction and insights" }, { start: "2023-08-05T11:00+01:00", end: "2023-08-05T12:00+01:00", room: "Breakout Three", path: "/breakout-three", title: "13.3 IRAM2: Beginning a risk assessment" }, { start: "2023-08-05T14:00+01:00", end: "2023-08-05T15:00+01:00", room: "Breakout Three", path: "/breakout-three", title: "14.3 Maintaining security in a rapidly changing world" }, { start: "2023-08-05T15:00+01:00", end: "2023-08-05T16:00+01:00", room: "Breakout Three", path: "/breakout-three", title: "15.3 Quick fire: 2022 Research releases" }, { start: "2023-08-05T18:00+01:00", end: "2023-08-05T19:00+01:00", room: "Breakout Three", path: "/breakout-three", title: "11.3 Operational Technology Adventures: A W\xE4rtsil\xE4 story (security edition)" }, { start: "2023-08-05T19:00+01:00", end: "2023-08-05T20:00+01:00", room: "Breakout Three", path: "/breakout-three", title: "12.3 ISF Benchmark: Introduction and insights" }, { start: "2023-08-05T21:00+01:00", end: "2023-08-05T22:00+01:00", room: "Breakout Three", path: "/breakout-three", title: "13.3 IRAM2: Beginning a risk assessment" }, { start: "2023-08-05T22:00+01:00", end: "2023-08-05T23:00+01:00", room: "Breakout Three", path: "/breakout-three", title: "14.3 Maintaining security in a rapidly changing world" }, { start: "2023-08-05T23:00+01:00", end: "2023-08-05T23:59+01:00", room: "Breakout Three", path: "/breakout-three", title: "15.3 Quick fire: 2022 Research releases" }, { start: "2023-08-06T02:00+01:00", end: "2023-08-06T03:00+01:00", room: "Breakout Three", path: "/breakout-three", title: "11.3 Operational Technology Adventures: A W\xE4rtsil\xE4 story (security edition)" }, { start: "2023-08-06T03:00+01:00", end: "2023-08-06T04:00+01:00", room: "Breakout Three", path: "/breakout-three", title: "12.3 ISF Benchmark: Introduction and insights" }, { start: "2023-08-06T05:00+01:00", end: "2023-08-06T06:00+01:00", room: "Breakout Three", path: "/breakout-three", title: "13.3 IRAM2: Beginning a risk assessment" }, { start: "2023-08-06T06:00+01:00", end: "2023-08-06T07:00+01:00", room: "Breakout Three", path: "/breakout-three", title: "14.3 Maintaining security in a rapidly changing world" }, { start: "2023-08-06T07:00+01:00", end: "2023-08-06T08:00+01:00", room: "Breakout Three", path: "/breakout-three", title: "15.3 Quick fire: 2022 Research releases" }, { start: "2023-08-03T10:00+01:00", end: "2023-08-03T11:00+01:00", room: "Breakout Four", path: "/breakout-four", title: "1.4 KPMG - Operational readiness in a moving-target environment" }, { start: "2023-08-03T11:00+01:00", end: "2023-08-03T12:00+01:00", room: "Breakout Four", path: "/breakout-four", title: "2.4 IBM Security - Security risk quantification: Empowering better business decision making to address security risks" }, { start: "2023-08-03T12:00+01:00", end: "2023-08-03T13:00+01:00", room: "Breakout Four", path: "/breakout-four", title: "3.4 Veracode - The four innovation drivers for application security" }, { start: "2023-08-03T15:00+01:00", end: "2023-08-03T16:00+01:00", room: "Breakout Four", path: "/breakout-four", title: "4.4 SentinelOne - Supply chain attacks are the new high watermark of attacks" }, { start: "2023-08-03T16:00+01:00", end: "2023-08-03T17:00+01:00", room: "Breakout Four", path: "/breakout-four", title: "5.4 Crowdstrike - Staying in control of your growing attack surface" }, { start: "2023-08-03T19:00+01:00", end: "2023-08-03T20:00+01:00", room: "Breakout Four", path: "/breakout-four", title: "1.4 KPMG - Operational readiness in a moving-target environment" }, { start: "2023-08-03T20:00+01:00", end: "2023-08-03T21:00+01:00", room: "Breakout Four", path: "/breakout-four", title: "2.4 IBM Security - Security risk quantification: Empowering better business decision making to address security risks" }, { start: "2023-08-03T22:00+01:00", end: "2023-08-03T23:00+01:00", room: "Breakout Four", path: "/breakout-four", title: "3.4 Veracode - The four innovation drivers for application security" }, { start: "2023-08-03T23:00+01:00", end: "2023-08-03T23:59+01:00", room: "Breakout Four", path: "/breakout-four", title: "4.4 SentinelOne - Supply chain attacks are the new high watermark of attacks" }, { start: "2023-08-04T00:00+01:00", end: "2023-08-04T01:00+01:00", room: "Breakout Four", path: "/breakout-four", title: "5.4 Crowdstrike - Staying in control of your growing attack surface" }, { start: "2023-08-04T03:00+01:00", end: "2023-08-04T04:00+01:00", room: "Breakout Four", path: "/breakout-four", title: "1.4 KPMG - Operational readiness in a moving-target environment" }, { start: "2023-08-04T04:00+01:00", end: "2023-08-04T05:00+01:00", room: "Breakout Four", path: "/breakout-four", title: "2.4 IBM Security - Security risk quantification: Empowering better business decision making to address security risks" }, { start: "2023-08-04T05:00+01:00", end: "2023-08-04T06:00+01:00", room: "Breakout Four", path: "/breakout-four", title: "3.4 Veracode - The four innovation drivers for application security" }, { start: "2023-08-04T07:00+01:00", end: "2023-08-04T08:00+01:00", room: "Breakout Four", path: "/breakout-four", title: "4.4 SentinelOne - Supply chain attacks are the new high watermark of attacks" }, { start: "2023-08-04T08:00+01:00", end: "2023-08-04T09:00+01:00", room: "Breakout Four", path: "/breakout-four", title: "5.4 Crowdstrike - Staying in control of your growing attack surface" }, { start: "2023-08-04T10:00+01:00", end: "2023-08-04T11:00+01:00", room: "Breakout Four", path: "/breakout-four", title: "6.4 SureCloud -The organisational shift to continuous compliance" }, { start: "2023-08-04T11:00+01:00", end: "2023-08-04T12:00+01:00", room: "Breakout Four", path: "/breakout-four", title: "7.4 BitSight - Why managing vendor risk is an essential part of your security programme" }, { start: "2023-08-04T12:00+01:00", end: "2023-08-04T13:00+01:00", room: "Breakout Four", path: "/breakout-four", title: "8.4 Huawei Technologies - 5G security standardisation and knowledge base" }, { start: "2023-08-04T15:00+01:00", end: "2023-08-04T16:00+01:00", room: "Breakout Four", path: "/breakout-four", title: "9.4 BeyondTrust - The seven perils of privilege" }, { start: "2023-08-04T16:00+01:00", end: "2023-08-04T17:00+01:00", room: "Breakout Four", path: "/breakout-four", title: "10.4 SecurityScorecard - Trust, Collaborate, and Mitigate: Redefine third-party risk management with actionable insights" }, { start: "2023-08-04T19:00+01:00", end: "2023-08-04T20:00+01:00", room: "Breakout Four", path: "/breakout-four", title: "6.4 SureCloud -The organisational shift to continuous compliance" }, { start: "2023-08-04T20:00+01:00", end: "2023-08-04T21:00+01:00", room: "Breakout Four", path: "/breakout-four", title: "7.4 BitSight - Why managing vendor risk is an essential part of your security programme" }, { start: "2023-08-04T22:00+01:00", end: "2023-08-04T23:00+01:00", room: "Breakout Four", path: "/breakout-four", title: "8.4 Huawei Technologies - 5G security standardisation and knowledge base" }, { start: "2023-08-04T23:00+01:00", end: "2023-08-04T23:59+01:00", room: "Breakout Four", path: "/breakout-four", title: "9.4 BeyondTrust - The seven perils of privilege" }, { start: "2023-08-05T00:00+01:00", end: "2023-08-05T01:00+01:00", room: "Breakout Four", path: "/breakout-four", title: "10.4 SecurityScorecard - Trust, Collaborate, and Mitigate: Redefine third-party risk management with actionable insights" }, { start: "2023-08-05T02:00+01:00", end: "2023-08-05T03:00+01:00", room: "Breakout Four", path: "/breakout-four", title: "6.4 SureCloud -The organisational shift to continuous compliance" }, { start: "2023-08-05T03:00+01:00", end: "2023-08-05T04:00+01:00", room: "Breakout Four", path: "/breakout-four", title: "7.4 BitSight - Why managing vendor risk is an essential part of your security programme" }, { start: "2023-08-05T04:00+01:00", end: "2023-08-05T05:00+01:00", room: "Breakout Four", path: "/breakout-four", title: "8.4 Huawei Technologies - 5G security standardisation and knowledge base" }, { start: "2023-08-05T07:00+01:00", end: "2023-08-05T08:00+01:00", room: "Breakout Four", path: "/breakout-four", title: "9.4 BeyondTrust - The seven perils of privilege" }, { start: "2023-08-05T08:00+01:00", end: "2023-08-05T09:00+01:00", room: "Breakout Four", path: "/breakout-four", title: "10.4 SecurityScorecard - Trust, Collaborate, and Mitigate: Redefine third-party risk management with actionable insights" }, { start: "2023-08-05T09:00+01:00", end: "2023-08-05T10:00+01:00", room: "Breakout Four", path: "/breakout-four", title: "11.4 Keysight Technologies - Change your perspective: View your network like a hacker" }, { start: "2023-08-05T10:00+01:00", end: "2023-08-05T11:00+01:00", room: "Breakout Four", path: "/breakout-four", title: "12.4 Synopsys - The ultimate guide: Reduce risk with your software security initiative" }, { start: "2023-08-05T11:00+01:00", end: "2023-08-05T12:00+01:00", room: "Breakout Four", path: "/breakout-four", title: "13.4 OneTrust - Supply chain attacks: The rise of ransomware and how to reduce your risk" }, { start: "2023-08-05T15:00+01:00", end: "2023-08-05T16:00+01:00", room: "Breakout Four", path: "/breakout-four", title: "15.4 Crossword Cybersecurity - Cyber Risk in Supply Chains: The backdrop and managing your programme" }, { start: "2023-08-05T18:00+01:00", end: "2023-08-05T19:00+01:00", room: "Breakout Four", path: "/breakout-four", title: "11.4 Keysight Technologies - Change your perspective: View your network like a hacker" }, { start: "2023-08-05T19:00+01:00", end: "2023-08-05T20:00+01:00", room: "Breakout Four", path: "/breakout-four", title: "12.4 Synopsys - The ultimate guide: Reduce risk with your software security initiative" }, { start: "2023-08-05T21:00+01:00", end: "2023-08-05T22:00+01:00", room: "Breakout Four", path: "/breakout-four", title: "13.4 OneTrust - Supply chain attacks: The rise of ransomware and how to reduce your risk" }, { start: "2023-08-05T23:00+01:00", end: "2023-08-05T23:59+01:00", room: "Breakout Four", path: "/breakout-four", title: "15.4 Crossword Cybersecurity - Cyber Risk in Supply Chains: The backdrop and managing your programme" }, { start: "2023-08-06T02:00+01:00", end: "2023-08-06T03:00+01:00", room: "Breakout Four", path: "/breakout-four", title: "11.4 Keysight Technologies - Change your perspective: View your network like a hacker" }, { start: "2023-08-06T03:00+01:00", end: "2023-08-06T04:00+01:00", room: "Breakout Four", path: "/breakout-four", title: "12.4 Synopsys - The ultimate guide: Reduce risk with your software security initiative" }, { start: "2023-08-06T05:00+01:00", end: "2023-08-06T06:00+01:00", room: "Breakout Four", path: "/breakout-four", title: "13.4 OneTrust - Supply chain attacks: The rise of ransomware and how to reduce your risk" }, { start: "2023-08-06T07:00+01:00", end: "2023-08-06T08:00+01:00", room: "Breakout Four", path: "/breakout-four", title: "15.4 Crossword Cybersecurity - Cyber Risk in Supply Chains: The backdrop and managing your programme" } ]; var breakout1Agenda = allAgendas.filter((event) => event.room === "Breakout One"); var breakout2Agenda = allAgendas.filter((event) => event.room === "Breakout Two"); var breakout3Agenda = allAgendas.filter((event) => event.room === "Breakout Three"); var breakout4Agenda = allAgendas.filter((event) => event.room === "Breakout Four"); var auditoriumAgenda = allAgendas.filter((event) => event.room === "Auditorium"); // frontend/src/55913/utils.js var isMember = window.dataLayer[0]["Registrant Type"] !== "Non-Member"; var getJaaSToken = () => __async(void 0, null, function* () { const [{ "Registrant ID": id, "First & Last Name": name, "Email Address": email, "Please make it more personal by uploading a head and shoulders photo:": avatar }] = window.dataLayer; const response = yield get("https://isf2021.swoogo-retrofit.tkevents.io/rt/getToken", { avatar, email, id, name }); if (!response.token) { throw response; } else { console.log(response.token); return response.token; } }); var useDate = () => { const now = new Date(); const [year, updateYear] = l3(now.getUTCFullYear()); const [month, updateMonth] = l3(now.getUTCMonth()); const [date, updateDate] = l3(now.getUTCDate()); useInterval(() => { const newNow = new Date(); updateYear(newNow.getUTCFullYear()); updateMonth(newNow.getUTCMonth()); updateDate(newNow.getUTCDate()); }, 1e3 * 60 * 5); return { year, month, date }; }; var useTime = () => { const now = new Date(); const [hours, updateHours] = l3(now.getUTCHours()); const [minutes, updateMinutes] = l3(now.getUTCMinutes()); const [seconds, updateSeconds] = l3(now.getUTCSeconds()); useInterval(() => { const newNow = new Date(); updateHours(newNow.getUTCHours()); updateMinutes(newNow.getUTCMinutes()); updateSeconds(newNow.getUTCSeconds()); }, 5e3); return { hours, minutes, seconds }; }; var useDateTime2 = (resolution = "minute") => { const [time, updateTime] = l3(new Date()); y3(() => window.setInterval(() => updateTime(new Date()), resolution === "day" ? 864e5 : resolution === "hour" ? 36e5 : resolution === "minute" ? 6e4 : 1e3), [resolution]); return time; }; var useDayOfEvent = () => { const { date } = useDate(); return date % 5 + 1; }; var useSession = () => { const now = useDateTime2(); const location2 = window.location.hash.replace(/^#/g, ""); const currentSession = allAgendas.find((session) => session.path === location2 && new Date(session.start) < now && new Date(session.end) > now); return currentSession; }; // frontend/src/55913/components/Navbar.js var Navbar = () => /* @__PURE__ */ v("div", { class: "venue-navbar-wrapper" }, /* @__PURE__ */ v("div", { class: "topnavtk2 left-nav", id: "myTopnavtk2" }, /* @__PURE__ */ v("a", { href: "https://isfcongress.tkeventsregistration.com/digital2021", id: "LeaveEvent", class: "activetk2" }, "Leave Event"), isMember && /* @__PURE__ */ v(d, null, /* @__PURE__ */ v("div", { class: "dropdowntk2" }, /* @__PURE__ */ v("button", { class: "dropbtntk2" }, "Schedule", /* @__PURE__ */ v("i", { class: "fa fa-caret-down" })), /* @__PURE__ */ v("div", { class: "dropdown-contenttk2" }, /* @__PURE__ */ v("a", { href: "https://isfcongress.tkeventsregistration.com/digital2021/personalschedule", title: "Personal Agenda" }, "Personal Agenda"), /* @__PURE__ */ v("a", { href: "https://isfcongress.tkeventsregistration.com/digital2021/fullschedule", title: "Full Schedule" }, "Full Schedule")))), /* @__PURE__ */ v("a", { href: "/atrium", title: "Atrium" }, "Atrium"), /* @__PURE__ */ v("div", { class: "dropdowntk2" }, /* @__PURE__ */ v("button", { class: "dropbtntk2" }, "Room Navigation", /* @__PURE__ */ v("i", { class: "fa fa-caret-down" })), /* @__PURE__ */ v("div", { class: "dropdown-contenttk2" }, /* @__PURE__ */ v("a", { href: "/auditorium", title: "Auditorium", onClick: () => window.openChat("keynotes") }, "Auditorium"), /* @__PURE__ */ v("a", { href: "/breakouts", title: "Breakout Foyer" }, "Breakout Foyer"), isMember && /* @__PURE__ */ v(d, null, /* @__PURE__ */ v("a", { href: "/breakout-one", title: "Breakout 1", onClick: () => window.openChat("breakout-1") }, "Breakout 1"), /* @__PURE__ */ v("a", { href: "/breakout-two", title: "Breakout 2", onClick: () => window.openChat("breakout-2") }, "Breakout 2"), /* @__PURE__ */ v("a", { href: "/breakout-three", title: "Breakout 3", onClick: () => window.openChat("breakout-3") }, "Breakout 3")), /* @__PURE__ */ v("a", { href: "/breakout-four", title: "Breakout 4", onClick: () => window.openChat("breakout-4") }, "Breakout 4"), isMember && /* @__PURE__ */ v(d, null, /* @__PURE__ */ v("a", { href: "/engagement-sessions", title: "Engagement Sessions" }, "Engagement Sessions")), /* @__PURE__ */ v("a", { href: "/exhibition-hall", title: "Exhibition Hall" }, "Exhibition Hall"), isMember && /* @__PURE__ */ v(d, null, /* @__PURE__ */ v("a", { href: "/lounge", title: "Interactive Lounge" }, "Interactive Lounge"), /* @__PURE__ */ v("a", { href: "/exploration-zone", title: "ISF Exploration Zone", onClick: () => window.openChat("isf-exploration-zone") }, "ISF Exploration Zone"), /* @__PURE__ */ v("a", { href: "/roundtables", title: "Roundtable Sessions" }, "Roundtable Sessions"), /* @__PURE__ */ v("a", { href: "/speaker-gallery", title: "Speaker Gallery" }, "Speaker Gallery")), /* @__PURE__ */ v("a", { href: "/sponsor-theatre", title: "Sponsor Theatre" }, "Sponsor Theatre"))), isMember ? /* @__PURE__ */ v(d, null, /* @__PURE__ */ v("div", { class: "dropdowntk2" }, /* @__PURE__ */ v("button", { class: "dropbtntk2" }, "Directories", /* @__PURE__ */ v("i", { class: "fa fa-caret-down" })), /* @__PURE__ */ v("div", { class: "dropdown-contenttk2" }, /* @__PURE__ */ v("a", { href: "https://isfcongress.tkeventsregistration.com/digital2021/attendeedirectory", title: "Attendee Directory" }, "Attendee Directory"), /* @__PURE__ */ v("a", { href: "https://isfcongress.tkeventsregistration.com/digital2021/speakerdirectory", title: "Speaker Directory" }, "Speaker Directory"), /* @__PURE__ */ v("a", { href: "https://isfcongress.tkeventsregistration.com/digital2021/sponsordirectory", title: "Sponsor Directory" }, "Sponsor Directory"))), new Date() > new Date("2021-10-26 09:00+01:00") && /* @__PURE__ */ v("a", { href: "https://isfcongress.tkeventsregistration.com/digital2021/ondemand", target: "_blank", title: "Atrium" }, "On-Demand")) : /* @__PURE__ */ v("a", { href: "https://isfcongress.tkeventsregistration.com/digital2021/sponsordirectorynm", title: "Sponsor Directory" }, "Sponsor Directory")), isMember && window.dataLayer[0]["I would like to opt in to the Leaderboard competition"] === "Yes" && /* @__PURE__ */ v(d, null, /* @__PURE__ */ v("div", { class: "gamification-buttons-wrapper topnavtk2" }, /* @__PURE__ */ v("a", { class: "gamification-button", id: "how-to-earn", style: "cursor: pointer", title: "How to Earn Points" }, "How to Earn Points"), /* @__PURE__ */ v("a", { style: "cursor: pointer", onclick: () => { document.getElementById("Leaderboard").click(); }, title: "Leaderboard" }, "Leaderboard")))); // frontend/src/utils/times.js var second = 1e3; var minute = second * 60; var hour = minute * 60; var day = hour * 24; var week = day * 7; // frontend/src/55913/components/HookWrappers.js var UseHeartbeats = ({ page, data, frequency = minute }) => { useHeartbeats(__spreadValues({ from: page, type: "heartbeat" }, data), frequency); return null; }; // frontend/src/55913/components/Room.js var Room = (room) => { const session = useSession(); const [{ "First & Last Name": name, "Registrant ID": userID, "Event Name": eventID, "Registrant Type": regType }] = window.dataLayer; return /* @__PURE__ */ v("div", __spreadValues({ style: "position: relative" }, room), /* @__PURE__ */ v(UseHeartbeats, { page: room.name, data: __spreadValues({ eventID, name, userID, regType }, session && { session }) }), /* @__PURE__ */ v(MappedImage, { imageURL: room.background }, /* @__PURE__ */ v(Links, { links: room.links, roomName: room.name })), room.extras); }; // frontend/src/55913/styles.js var flex = { display: "flex" }; var fc = __spreadProps(__spreadValues({}, flex), { flexDirection: "column" }); var fr = __spreadProps(__spreadValues({}, flex), { flexDirection: "row" }); var fcenter = __spreadProps(__spreadValues({}, flex), { alignItems: "center", justifyContent: "center" }); var ffill = __spreadProps(__spreadValues({}, flex), { alignItems: "stretch", justifyContent: "space-around" }); var fullscreen = { height: "100vh", left: 0, position: "fixed", top: 0, width: "100vw", zIndex: 1 }; var colors = { orange: "#e31d48", purple: "#3c1d4a", white: "#fff" }; var rounded = { borderRadius: "1vw" }; var bg = (color) => ({ backgroundColor: color }); var whitewash = { backgroundColor: "rgba(255, 255, 255, 0.4" }; var pad = (size) => ({ padding: size }); var rel = { position: "relative" }; var abs = { position: "absolute" }; // frontend/src/55913/components/layout.js var Row = (_a) => { var _b = _a, { children, styleOverride = {} } = _b, props = __objRest(_b, ["children", "styleOverride"]); return /* @__PURE__ */ v("div", __spreadValues({ style: __spreadValues(__spreadValues({}, fr), styleOverride) }, props), children); }; var Column = (_a) => { var _b = _a, { children, styleOverride = {} } = _b, props = __objRest(_b, ["children", "styleOverride"]); return /* @__PURE__ */ v("div", __spreadValues({ style: __spreadValues(__spreadValues({}, fc), styleOverride) }, props), children); }; // frontend/src/55913/components/WhatsOn.js var hasStarted = (session) => new Date(session.start) < new Date(); var hasNotStarted = (session) => !hasStarted(session); var hasEnded = (session) => new Date(session.end) < new Date(); var hasNotEnded = (session) => !hasEnded(session); var isOnNow = (session) => hasStarted(session) && hasNotEnded(session); var isSessionInRoom = (room) => (session) => session.room === room; var getDisplayTime = (date) => `${date.getHours() >= 10 ? date.getHours() : `0${date.getHours()}`}:${date.getMinutes() > 10 ? date.getMinutes() : `0${date.getMinutes()}`}`; var uniqueReducer = (propertyName) => (acc, item) => acc.includes(item[propertyName]) ? [...acc] : [...acc, item[propertyName]]; var WhatsOnBreakouts = () => { const rooms2 = ["Breakout One", "Breakout Two", "Breakout Three", "Breakout Four"]; return /* @__PURE__ */ v(Row, { styleOverride: __spreadProps(__spreadValues({}, ffill), { maxWidth: "1000px", flexWrap: "wrap" }) }, rooms2.map((room) => /* @__PURE__ */ v(WhatsOn, { room }))); }; var WhatsOnEverywhere = () => { const rooms2 = allAgendas.reduce(uniqueReducer("room"), []); return /* @__PURE__ */ v(Row, { styleOverride: __spreadProps(__spreadValues({}, ffill), { maxWidth: "1000px", flexWrap: "wrap" }) }, rooms2.map((room) => /* @__PURE__ */ v(WhatsOn, { room }))); }; var WhatsOn = ({ room, containerStyle = {}, roomStyle = {} }) => { useDateTime2(); const eventStyle = __spreadValues(__spreadProps(__spreadValues(__spreadValues({}, fc), fcenter), { justifyContent: "center", margin: "5px 10px", padding: "5px 10px", textAlign: "center" }), roomStyle); const roomSessions = allAgendas.filter(isSessionInRoom(room)); const currentSession = roomSessions.find(isOnNow); const nextSession = roomSessions.find(hasNotStarted); return /* @__PURE__ */ v(Column, { class: "whatson", styleOverride: __spreadValues(__spreadProps(__spreadValues({}, flex), { alignContent: "stretch", justifyContent: "start", marginTop: "10px", marginBottom: "20px", color: "white", minWidth: "300px", maxWidth: "460px", flexBasis: "50%", flexGrow: 1 }), containerStyle) }, /* @__PURE__ */ v("h3", { style: { margin: 0, textAlign: "center" } }, room), currentSession ? /* @__PURE__ */ v(WhatsOnItem, { style: eventStyle, heading: "Now:", href: currentSession.path, title: currentSession.title }) : /* @__PURE__ */ v(WhatsOnItem, { style: eventStyle, heading: "Now:", title: "Currently idle" }), nextSession && /* @__PURE__ */ v(WhatsOnItem, { style: eventStyle, heading: `Next @ ${getDisplayTime(new Date(nextSession.start))}:`, href: nextSession.path, title: nextSession.title })); }; var WhatsOnItem = ({ heading, start, href, title, style = {} }) => { const onClick = href ? () => route(href) : null; const styleOverride = __spreadProps(__spreadValues({}, style), { cursor: href ? "pointer" : "initial" }); return /* @__PURE__ */ v(Column, { onClick, styleOverride, class: "event" }, /* @__PURE__ */ v("span", null, heading), /* @__PURE__ */ v("span", { style: { margin: "0" }, class: "name" }, title || "Nothing")); }; // frontend/src/55913/components/TimedPopup.js var TimedPopup = ({ id, firesAt, children }) => { const now = useDateTime2(); const [hasBeenDisplayed, setHasBeenDisplayed] = useLocalStorage(`timed-popup-${id}`); const shouldDisplay = now > new Date(firesAt) && now < new Date(firesAt) / 1 + 1e3 * 60 * 10 && !hasBeenDisplayed; return shouldDisplay ? /* @__PURE__ */ v(Modal, { dismiss: () => setHasBeenDisplayed(true) }, /* @__PURE__ */ v(ModalWrapper, { wrapperStyle: { padding: "40px", color: "white" } }, children)) : null; }; // frontend/src/55913/rooms/atrium.js var memberLinks = [ { height: "25.9%", href: "/speaker-gallery", label: "Speaker Gallery", left: "4.5%", top: "29.3%", width: "9.2%" }, { height: "25.5%", href: "/lounge", label: "Interactive Lounge", left: "4.5%", top: "55.9%", width: "8.5%" }, { height: "13.6%", label: "What's On", left: "48.3%", top: "77.7%", width: "5.4%", modal: /* @__PURE__ */ v(ModalWrapper, null, /* @__PURE__ */ v(WhatsOnEverywhere, null)) }, { label: "Exploration Zone", height: "24.2%", href: "/exploration-zone", onClick: () => window.openChat("isf-exploration-zone"), left: "56.2%", top: "12%", width: "13.6%" } ]; var atrium_default = { background: "https://assets.swoogo.com/uploads/full/1384328-6156014fa9af0.jpg", default: true, extras: /* @__PURE__ */ v(d, null, /* @__PURE__ */ v("video", { autoPlay: true, loop: true, id: "sponsor-banner-left", src: "https://assets.swoogo.com/uploads/1403258-6164d8588ec23.mp4" }), /* @__PURE__ */ v("video", { autoPlay: true, loop: true, id: "sponsor-banner-right", src: "https://assets.swoogo.com/uploads/1403258-6164d8588ec23.mp4" }), /* @__PURE__ */ v(TimedPopup, { id: "atrium-1", firesAt: "2022-08-03 08:30+01:00" }, /* @__PURE__ */ v("h1", null, "WELCOME TO DIGITAL 2021: DAY ONE"), /* @__PURE__ */ v("p", null, "Today's keynote speakers are Professor Brian Cox and Steve Wozniak."), /* @__PURE__ */ v("p", null, "Drop-in to the Roundtable room afer a breakout session to take part in the following discussion."), /* @__PURE__ */ v("p", null, "Visit the Exhibition Hall to learn how our sponsors can help you optimise managing your security landscape. Take part in the Passport to Prizes."), /* @__PURE__ */ v("p", null, "Visit the Interactive Lounge and discover how you can gain points and improve your ranking on the Leaderboard for your chance to win more prizes.")), /* @__PURE__ */ v(TimedPopup, { id: "atrium-2", firesAt: "2022-08-03 13:28+01:00" }, /* @__PURE__ */ v("p", null, "Join the ISF Round Up in the Roundtable room, Interactive Lounge for a discussion on recent sessions.")), /* @__PURE__ */ v(TimedPopup, { id: "atrium-3", firesAt: "2022-08-04 08:15+00:00" }, /* @__PURE__ */ v("h1", null, "WELCOME TO DIGITAL 2021: DAY TWO"), /* @__PURE__ */ v("p", null, "Today's keynote speakers are Viviane Reding and Professor Sadie Creese."), /* @__PURE__ */ v("p", null, "Visit the ISF Exploration Zone to access the latest reports and a wealth of resources available only to our Members and tap into the knowledge of the ISF team."), /* @__PURE__ */ v("p", null, "Remember to join the Roundtable sessions in the Interactive Lounge to discuss the latest information security trends.")), /* @__PURE__ */ v(TimedPopup, { id: "atrium-4", firesAt: "2022-08-04 13:50+01:00" }, /* @__PURE__ */ v("p", null, "Just launched: SOGP WebApp"), /* @__PURE__ */ v("p", null, "Look out for our email to learn more, and visit the Exploration Zone to watch our video and chat to us."), /* @__PURE__ */ v("p", null, "Join our session: ISF Standard of Good Practice: exploring the new SOGP WebApp - check the schedule for times.")), /* @__PURE__ */ v(TimedPopup, { id: "atrium-5", firesAt: "2022-08-04 17:00+01:00" }, /* @__PURE__ */ v("p", null, "Join the ISF Round Up in the Roundtable room, Interactive Lounge for a discussion on recent sessions.")), /* @__PURE__ */ v(TimedPopup, { id: "atrium-6", firesAt: "2022-08-05 08:15+01:00" }, /* @__PURE__ */ v("h1", null, "WELCOME TO DIGITAL 2021: DAY THREE"), /* @__PURE__ */ v("p", null, "Today's keynote speakers are Rachel Botsman and Dr Max McKeown."), /* @__PURE__ */ v("p", null, "If you haven't already, you can connect one-to-one with the ISF team in the Exploration Zone."), /* @__PURE__ */ v("p", null, "Today is the last chance to take part in the Passport to Prizes competition. Visit our sponsors in the Exhibition Hall to hunt for the letters. Enter before 17:00 UTC to win.")), /* @__PURE__ */ v(TimedPopup, { id: "atrium-7", firesAt: "2022-08-05 13:50+01:00" }, /* @__PURE__ */ v("p", null, "Just launched: QIRA Assistant"), /* @__PURE__ */ v("p", null, "Look out for our email to learn more, and visit the Exploration Zone to watch our video and chat to us."), /* @__PURE__ */ v("p", null, "Join our live drop in: ISF QIRA Assistant Demonstration - check the schedule for times.")), /* @__PURE__ */ v(TimedPopup, { id: "atrium-8", firesAt: "2022-08-05 17:00+01:00" }, /* @__PURE__ */ v("p", null, "Join the ISF Round Up in the Roundtable room, Interactive Lounge for a discussion on recent sessions.")), /* @__PURE__ */ v(TimedPopup, { id: "atrium-9", firesAt: "2022-08-06 08:15+01:00" }, /* @__PURE__ */ v("h1", null, "THANK YOU FOR ATTENDING DIGITAL 2021"), /* @__PURE__ */ v("p", null, "The Passport to Prizes draw has taken place and winners will be notified."), /* @__PURE__ */ v("p", null, "Look out for your CPE certificate - notifications will be sent to attendees in the next few days."), /* @__PURE__ */ v("p", null, "The Congress venue will remain open until Friday 19 November for you to browse content and watch sessions on demand."))), links: [ { height: "11.9%", label: "Keynote Screen", left: "14.5%", top: "45.8%", width: "10.8%", modal: /* @__PURE__ */ v(TimeSwitch, null, [ { starts: "2021-10-23T00:00+01:00", ends: "2022-08-04T07:00+01:00", content: /* @__PURE__ */ v(VimeoFrame, { vidId: "629251114?h=fdb3057c6f&autoplay=1" }) }, { starts: "2022-08-04T07:00+01:00", ends: "2022-08-05T07:00+01:00", content: /* @__PURE__ */ v(VimeoFrame, { vidId: "629249965?h=617238db45&autoplay=1" }) }, { starts: "2022-08-05T07:00+01:00", ends: "2022-08-06T07:00+01:00", content: /* @__PURE__ */ v(VimeoFrame, { vidId: "629250757?h=cdd12e39fd&autoplay=1" }) }, { starts: "2022-08-06T07:00+01:00", ends: "2021-10-30T07:00+01:00", content: /* @__PURE__ */ v(VimeoFrame, { vidId: "632833730?h=ec98f810a2&autoplay=1" }) } ]) }, { height: "18.7%", href: "/breakouts", label: "Breakouts", left: "29%", top: "37.2%", width: "6.1%" }, { height: "18%", href: "/exhibition-hall", label: "Exhibition Hall", left: "26.3%", top: "56.7%", width: "12.6%" }, { height: "5.9%", href: "https://assets.swoogo.com/uploads/1406989-6166f0ef4492c.pdf", isExternal: true, label: "FAQs", left: "23.2%", target: "_blank", top: "77.1%", width: "5.4%" }, { height: "7.9%", label: "Orientation Video", left: "23.2%", modal: /* @__PURE__ */ v(SmallVimeoFrame, { vidId: "621805366?h=246b81c4df&autoplay=1" }), top: "83.1%", width: "5.4%" }, { height: "18.5%", label: "Information/Help Desk", onClick: () => openSmartSupp(), left: "29.8%", top: "75.6%", width: "17.4%" }, { height: "23.2%", href: "/auditorium", onClick: () => window.openChat("keynotes"), label: "Main Auditorium", left: "57.5%", top: "52.6%", width: "11.9%" }, { height: "15%", label: "Highlights Screen", left: "71.8%", top: "50.6%", width: "13.1%", modal: /* @__PURE__ */ v(TimeSwitch, null, [ { starts: "2021-10-23T00:00+01:00", ends: "2022-08-04T07:00+01:00", content: /* @__PURE__ */ v(VimeoFrame, { vidId: "635166551?h=eb94bb8438&autoplay=1" }) }, { starts: "2022-08-04T07:00+01:00", ends: "2022-08-05T07:00+01:00", content: /* @__PURE__ */ v(VimeoFrame, { vidId: "635123270?h=891ceaab50&autoplay=1" }) }, { starts: "2022-08-05T07:00+01:00", ends: "2022-08-06T07:00+01:00", content: /* @__PURE__ */ v(VimeoFrame, { vidId: "635124610?h=8f84aecae8&autoplay=1" }) }, { starts: "2022-08-06T07:00+01:00", ends: "2021-10-30T07:00+01:00", content: /* @__PURE__ */ v(VimeoFrame, { vidId: "636323212?h=f328af67b1&autoplay=1" }) } ]) }, ...isMember ? memberLinks : [] ], name: "atrium" }; // frontend/src/55913/rooms/auditorium.js var memberLinks2 = [ { gameRule: "feedback-auditorium", gameRuleCooldown: 1e3 * 60 * 60, height: "15.7%", href: "https://isfcongress.tkeventsregistration.com/ffauditorium", isExternal: true, label: "Feedback", left: "42.3%", target: "_blank", top: "80.9%", width: "7.6%" }, { height: "15.7%", href: "/roundtables", label: "Roundtable Sessions", left: "50.3%", top: "80.9%", width: "7.6%" } ]; var auditorium_default = { background: "https://assets.swoogo.com/uploads/full/1386546-615761c078a8e.jpg", extras: /* @__PURE__ */ v(d, null, /* @__PURE__ */ v("iframe", { className: "auditorium-livestream", src: "https://livestream.com/accounts/11603075/events/9889539/player?width=640&height=360&enableInfoAndActivity=false&defaultDrawer=&autoPlay=true&mute=false", allowfullscreen: true })), links: [ { height: "66.1%", label: "Livestream", left: "21%", top: "0.3%", width: "58.2%" }, ...isMember ? memberLinks2 : [] ], name: "auditorium" }; // frontend/src/55913/components/AgendaSidebar.js var AgendaSidebar = ({ room }) => { const now = useDateTime2(); const events = allAgendas.filter((event) => event.room === room); const baseStyle = __spreadProps(__spreadValues({}, fcenter), { textDecoration: "none", fontSize: "0.55vw", marginBottom: "10px", lineHeight: 1.2 }); const rowStyles = [ __spreadProps(__spreadValues({}, baseStyle), { color: "#888" }), __spreadProps(__spreadValues({}, baseStyle), { fontWeight: "bold", color: "#3c1d4a" }), __spreadProps(__spreadValues({}, baseStyle), { color: "#3c1d4a" }) ]; const isPastPresentFuture = (event, i4, arr) => { const start = new Date(event.start); const end = new Date(event.end); const farEnd = new Date(new Date(event.end).valueOf() + 72e5); if (now > farEnd) return __spreadProps(__spreadValues({}, event), { style: { display: "none" } }); if (now > end) return __spreadProps(__spreadValues({}, event), { style: rowStyles[0] }); else if (now > start && now < end) return __spreadProps(__spreadValues({}, event), { style: rowStyles[1] }); else if (now < start) return __spreadProps(__spreadValues({}, event), { start, end, style: rowStyles[2] }); }; return /* @__PURE__ */ v(Column, { class: "breakout-agenda", styleOverride: { overflowX: "hidden", overflowY: "scroll", scrollbarWidth: "none", maxHeight: "100%" } }, events.map(isPastPresentFuture).map((event) => { const start = new Date(event.start); const end = new Date(event.end); return /* @__PURE__ */ v(Row, { styleOverride: event.style }, /* @__PURE__ */ v("span", { class: "agenda-time" }, start.getHours() >= 10 ? start.getHours() : `0${start.getHours()}`, ":", start.getMinutes() > 10 ? start.getMinutes() : `0${start.getMinutes()}`), /* @__PURE__ */ v("span", { class: "agenda-item", style: { marginLeft: "10px" } }, event.title)); })); }; // frontend/src/55913/rooms/breakout1.js var breakout1_default = { background: "https://assets.swoogo.com/uploads/full/1392099-615c90690c187.jpg", extras: /* @__PURE__ */ v(d, null, /* @__PURE__ */ v("iframe", { className: "breakouts-livestream", src: "https://livestream.com/accounts/11603075/events/9889538/player?width=640&height=360&enableInfoAndActivity=false&defaultDrawer=&autoPlay=true&mute=false", allowfullscreen: true })), links: [ { gameRule: "feedback-breakout-1", gameRuleCooldown: 1e3 * 60 * 60, label: "Feedback", href: "https://isfcongress.tkeventsregistration.com/ffbr1", isExternal: true, target: "_blank", width: "10.4%", height: "9.4%", left: "7.1%", top: "31.6%" }, { label: "Access Content & On-Demand Videos", href: "https://isfcongress.tkeventsregistration.com/digital2021/ondemand", target: "_blank", isExternal: true, width: "10.6%", height: "15.7%", left: "7.1%", top: "43.7%" }, { label: "Breakout One Screen", width: "49%", height: "55.7%", left: "25.4%", top: "8.5%" }, { label: "What's on", width: "12.3%", height: "46%", left: "81.7%", top: "13.5%", cursor: "default", children: /* @__PURE__ */ v(AgendaSidebar, { room: "Breakout One" }) }, { label: "Roundtables", href: "/roundtables", width: "9.4%", height: "16.8%", left: "45.5%", top: "81.8%" } ], name: "breakout-one" }; // frontend/src/55913/rooms/breakout2.js var breakout2_default = { background: "https://assets.swoogo.com/uploads/full/1392098-615c9068e67c7.jpg", extras: /* @__PURE__ */ v(d, null, /* @__PURE__ */ v("iframe", { className: "breakouts-livestream", src: "https://livestream.com/accounts/11603075/events/9889537/player?width=640&height=360&enableInfoAndActivity=false&defaultDrawer=&autoPlay=true&mute=false", allowfullscreen: true })), links: [ { gameRule: "feedback-breakout-2", gameRuleCooldown: 1e3 * 60 * 60, height: "9.4%", href: "https://isfcongress.tkeventsregistration.com/ffbr2", isExternal: true, label: "Feedback", left: "7.1%", target: "_blank", top: "31.6%", width: "10.4%" }, { height: "15.7%", href: "https://isfcongress.tkeventsregistration.com/digital2021/ondemand", isExternal: true, label: "Access Content & On-Demand Videos", left: "7.1%", target: "_blank", top: "43.7%", width: "10.6%" }, { height: "55.7%", label: "Breakout Two Screen", left: "25.4%", top: "8.5%", width: "49%" }, { height: "46%", label: "What's on", left: "81.3%", top: "13.5%", width: "12.3%", children: /* @__PURE__ */ v(AgendaSidebar, { room: "Breakout Two" }) }, { height: "16.8%", href: "/roundtables", label: "Roundtables", left: "45.5%", top: "81.8%", width: "9.4%" } ], name: "breakout-two" }; // frontend/src/55913/rooms/breakout3.js var breakout3_default = { background: "https://assets.swoogo.com/uploads/full/1392100-615c906900fdc.jpg", extras: /* @__PURE__ */ v(d, null, /* @__PURE__ */ v("iframe", { className: "breakouts-livestream", src: "https://livestream.com/accounts/11603075/events/9889536/player?width=640&height=360&enableInfoAndActivity=false&defaultDrawer=&autoPlay=true&mute=false", allowfullscreen: true })), links: [ { gameRule: "feedback-breakout-3", gameRuleCooldown: 1e3 * 60 * 60, height: "9.4%", href: "https://isfcongress.tkeventsregistration.com/ffbr3", isExternal: true, label: "Feedback", left: "7.1%", target: "_blank", top: "31.6%", width: "10.4%" }, { height: "15.7%", href: "https://isfcongress.tkeventsregistration.com/digital2021/ondemand", isExternal: true, label: "Access Content & On-Demand Videos", left: "7.1%", target: "_blank", top: "43.7%", width: "10.6%" }, { height: "55.7%", label: "Breakout Three Screen", left: "25.4%", top: "8.5%", width: "49%" }, { height: "46%", label: "What's on", left: "81.7%", top: "13.5%", width: "12.3%", children: /* @__PURE__ */ v(AgendaSidebar, { room: "Breakout Three" }) }, { height: "16.8%", href: "/roundtables", label: "Roundtables", left: "45.5%", top: "81.8%", width: "9.4%" } ], name: "breakout-three" }; // frontend/src/55913/components/IBMPopup.js var delay = (..._0) => __async(void 0, [..._0], function* (ms = interval) { return new Promise((res) => setTimeout(res, ms)); }); var IBMPopup = (currentPage) => { const day2 = useDayOfEvent(); const { hours: hour2 } = useTime(); const [lastDisplayed, updateLastDisplayed] = useLocalStorage("ibm-popup-displayed"); const [isEmailAllowed, setEmailAllowed] = l3(false); const [isPhoneAllowed, setPhoneAllowed] = l3(false); const [email, setEmail] = l3(""); const [phone, setPhone] = l3(""); const [errorText, setErrorText] = l3(""); const [isSubmitting, setSubmitting] = l3(false); const [{ "Registrant ID": id }] = window.dataLayer; const close = () => { updateLastDisplayed(__spreadProps(__spreadValues({}, lastDisplayed), { [window.location.hash]: { time: new Date() } })); }; const submit = () => __async(void 0, null, function* () { if (!(isEmailAllowed || isPhoneAllowed)) { setErrorText("Please accept either phone or email contacts if you are giving IBM permission to contact you. Otherwise, dismiss this dialog with the close button at the top-right corner."); return false; } if (isEmailAllowed && email === "") { setErrorText("Please provide an email address"); return false; } if (isPhoneAllowed && phone === "") { setErrorText("Please provide a phone number"); return false; } setSubmitting(true); setTimeout(() => setErrorText("Looks like something went wrong, please refresh the page and try again."), 5e3); try { const res = yield get(`https://isf2021.swoogo-retrofit.tkevents.io/misc/ibmsignup`, { id, email, phone }); if ((res == null ? void 0 : res.status) >= 300) { throw { status: res.status }; } yield delay(500); close(); } catch (e4) { console.error(e4); setErrorText("Looks like something went wrong, please refresh the page and try again."); } }); const shouldDisplayUnlessRecentlyOpened = window.location.hash.includes("breakout-four") && (day2 === 1 && hour2 === 10 || day2 === 1 && hour2 === 19 || day2 === 2 && hour2 === 3 || new Date().getUTCDate() === 23 && new Date().getUTCHours() === 11) || window.location.hash.includes("exhibition-hall-platinum") || (window.location.hash.includes("sponsor-theatre") && (day2 === 2 && hour2 === 16) || new Date().getUTCDate() === 23 && new Date().getUTCHours() === 11); const notRecentlyOpen = lastDisplayed === null || lastDisplayed[window.location.hash] === void 0 || new Date(lastDisplayed[window.location.hash]) < new Date() - 36e5; if (shouldDisplayUnlessRecentlyOpened && notRecentlyOpen && isMember) { return /* @__PURE__ */ v(Modal, { dismiss: close }, /* @__PURE__ */ v(ModalWrapper, { wrapperStyle: { padding: "40px" } }, /* @__PURE__ */ v(Column, { styleOverride: { maxWidth: "680px", width: "60vw", color: "white", alignItems: "stretch" } }, /* @__PURE__ */ v("img", { style: { margin: "0 auto", maxWidth: "100%", width: "400px" }, src: "https://assets.swoogo.com/uploads/medium/1381940-6154b5d9aac71.jpeg" }), /* @__PURE__ */ v("h4", null, "IBM may use my contact data to keep me informed of products, services and offerings:"), /* @__PURE__ */ v(Row, null, /* @__PURE__ */ v("input", { style: { margin: 0, padding: 0 }, type: "checkbox", onclick: () => setEmailAllowed(!isEmailAllowed), name: "IBM Email allowed", checked: isEmailAllowed }), /* @__PURE__ */ v("label", { style: { margin: "0 0 0 5px", padding: 0 }, for: "emailAllowed" }, "By email")), isEmailAllowed && /* @__PURE__ */ v("input", { style: { margin: "0 0 10px 0", padding: "3px", color: "black" }, type: "text", name: "emailAddress", placeholder: "Email address", onChange: ({ target: { value } }) => setEmail(value) }), /* @__PURE__ */ v(Row, null, /* @__PURE__ */ v("input", { style: { margin: 0, padding: 0 }, type: "checkbox", onclick: () => setPhoneAllowed(!isPhoneAllowed), name: "IBM Phone allowed", checked: isPhoneAllowed }), /* @__PURE__ */ v("label", { style: { margin: "0 0 0 5px", padding: 0 }, for: "phoneAllowed" }, "By phone")), isPhoneAllowed && /* @__PURE__ */ v("input", { style: { margin: 0, padding: "3px", color: "black" }, type: "text", name: "phoneNumber", placeholder: "Phone number", onChange: ({ target: { value } }) => setPhone(value) }), /* @__PURE__ */ v("p", { style: { marginTop: "10px" } }, "You can withdraw your marketing consent at any time by submitting ", /* @__PURE__ */ v("a", { target: "_blank", href: "https://www.ibm.com/account/reg/us-en/signup?formid=urx-42537" }, "an\xA0opt-out request"), ". Also you may unsubscribe from receiving marketing emails by clicking the unsubscribe link in each email."), /* @__PURE__ */ v("p", null, "More information on our processing can be found in the", /* @__PURE__ */ v("a", { target: "_blank", href: "http://www.ibm.com/privacy/sg/en/" }, "IBM Privacy Statement"), ".\xA0By submitting this form, I acknowledge that I have read and understand the IBM Privacy Statement."), /* @__PURE__ */ v("button", { style: { height: "48px", backgroundColor: "transparent", fontSize: "16px", color: "rgb(255, 255, 255)", overflow: "hidden", boxSizing: "border-box", justifyContent: "center", alignItems: "center", width: "100%", padding: "0 12px", outline: "none", whiteSpace: "nowrap", textOverflow: "ellipsis", fontWeight: "700", lineHeight: "1", border: "2px solid white", borderRadius: "6px" }, onClick: submit }, isSubmitting ? "Submitting..." : "Submit"), errorText.length > 1 && /* @__PURE__ */ v(d, null, /* @__PURE__ */ v("hr", null), /* @__PURE__ */ v("p", null, errorText))))); } else { return null; } }; // frontend/src/55913/rooms/breakout4.js var memberLinks3 = [ { gameRule: "feedback-breakout-4", gameRuleCooldown: 1e3 * 60 * 60, height: "9.4%", href: "https://isfcongress.tkeventsregistration.com/ffbr4", isExternal: true, label: "Feedback", left: "7.1%", target: "_blank", top: "31.6%", width: "10.4%" }, { height: "15.7%", href: "https://isfcongress.tkeventsregistration.com/digital2021/ondemand", isExternal: true, label: "Access Content & On-Demand Videos", left: "7.1%", target: "_blank", top: "43.7%", width: "10.6%" }, { height: "16.8%", href: "/roundtables", label: "Roundtables", left: "45.5%", top: "81.8%", width: "9.4%" } ]; var breakout4_default = { background: "https://assets.swoogo.com/uploads/full/1392101-615c906909f1e.jpg", extras: /* @__PURE__ */ v(d, null, /* @__PURE__ */ v("iframe", { className: "breakouts-livestream", src: "https://livestream.com/accounts/11603075/events/9889535/player?width=640&height=360&enableInfoAndActivity=false&defaultDrawer=&autoPlay=true&mute=false", allowfullscreen: true }), /* @__PURE__ */ v(IBMPopup, { room: "breakout-4" })), links: [ { height: "55.7%", label: "Breakout Four Screen", left: "25.4%", top: "8.5%", width: "49%" }, { height: "46%", label: "What's on", left: "81.7%", top: "13.5%", width: "12.3%", children: /* @__PURE__ */ v(AgendaSidebar, { room: "Breakout Four" }) }, ...isMember ? memberLinks3 : [] ], name: "breakout-four" }; // frontend/src/55913/rooms/breakouts.js var memberLinks4 = [ { height: "36.3%", href: "/breakout-one", onClick: () => window.openChat("breakout-1"), label: "Breakout 1", left: "0%", top: "36%", width: "15.5%" }, { height: "23.9%", href: "/breakout-two", onClick: () => window.openChat("breakout-2"), label: "Breakout 2", left: "22.8%", top: "33.8%", width: "10.7%" }, { height: "31.6%", href: "/breakout-three", onClick: () => window.openChat("breakout-3"), label: "Breakout 3", left: "66.2%", top: "35.1%", width: "13.5%" }, { height: "29.3%", href: "/engagement-sessions", label: "ISF Engagement Sessions", left: "15.9%", top: "59.5%", width: "8.8%" }, { height: "23.9%", label: "What's On Now", left: "84.5%", top: "71.5%", width: "10.1%", modal: /* @__PURE__ */ v(ModalWrapper, null, /* @__PURE__ */ v(WhatsOnBreakouts, null)) } ]; var breakouts_default = { background: "https://assets.swoogo.com/uploads/full/1386525-6157607aef1c5.jpg", links: [ { height: "35.3%", href: "/breakout-four", onClick: () => window.openChat("breakout-4"), label: "Breakout 4", left: "81.9%", top: "35.5%", width: "16.8%" }, ...isMember ? memberLinks4 : [] ], name: "breakouts" }; // frontend/src/55913/rooms/engagementSessions.js var between = (start, end) => new Date() > new Date(start) && new Date() < new Date(end); var changeMeeting = (id, password) => { document.getElementById("engagement-sessions-screen").src = `https://isfcongress.tkeventsregistration.com/digital2021/zoom?meetingPassword=${password}&meetingNumber=${id}`; }; var engagementSessions_default = { background: "https://assets.swoogo.com/uploads/full/1411154-6168a19d639fa.jpg", extras: /* @__PURE__ */ v(d, null, /* @__PURE__ */ v("iframe", { allowfullscreen: true, frameborder: "0", id: "engagement-sessions-screen", style: { width: "calc(65.6% * 1.33333)", height: "calc(74.6% * 1.33333)", left: "17.1%", top: ".8%", position: "absolute", cursor: "pointer", display: "block", zIndex: "5", overflow: "hidden", transformOrigin: "top left", transform: "scale(0.75)" }, src: "" })), links: [ { height: "7.7%", href: "https://isfcongress.tkeventsregistration.com/digital2021/engagementschedule", label: "Agenda", left: "0.5%", top: "3.3%", width: "16.1%" }, { height: "10.3%", label: "4.5 Supply Chain Security: Interactive Training Workshop - Part 1", left: "0.5%", top: "19.7%", width: "16.1%", onClick: () => { if (between("2021-10-25 14:00+01:00", "2021-10-25 16:30+01:00")) { changeMeeting("86591732561", "188141"); triggerGamificationRule("ES 4.5 1"); } else if (between("2021-10-26 06:00+01:00", "2021-10-26 08:30+01:00")) { changeMeeting("81236513169", "914529"); triggerGamificationRule("ES 4.5 2"); } } }, { height: "10.3%", label: "9.5 Supply Chain Security: Interactive Training Workshop - Part 2", left: "0.5%", top: "31.8%", width: "16.1%", onClick: () => { if (between("2021-10-26 14:00+01:00", "2021-10-26 16:30+01:00")) { changeMeeting("89409383680", "653452"); triggerGamificationRule("ES 9.5 1"); } else if (between("2021-10-27 06:00+01:00", "2021-10-27 08:30+01:00")) { changeMeeting("81991487965", "018616"); triggerGamificationRule("ES 9.5 2"); } } }, { height: "10.3%", label: "5.3 & 8.5 Translating Risk: An ISF Learning Espresso Session", left: "0.5%", top: "43.9%", width: "16.1%", onClick: () => { if (between("2021-10-25 15:00+01:00", "2021-10-25 17:30+01:00")) { changeMeeting("82061301867", "472125"); triggerGamificationRule("ES 5.3 1"); } else if (between("2021-10-26 07:00+01:00", "2021-10-26 09:30+01:00")) { changeMeeting("89742854311", "922210"); triggerGamificationRule("ES 5.3 2"); } else if (between("2021-10-26 21:00+01:00", "2021-10-26 23:30+01:00")) { changeMeeting("88328486331", "677313"); triggerGamificationRule("ES 8.5 1"); } } }, { height: "10.3%", label: "4.6 & 5.5 Threat Horizon 2024 Workshop", left: "0.5%", top: "56%", width: "16.1%", onClick: () => { if (between("2021-10-25 15:00+01:00", "2021-10-25 17:30+01:00")) { changeMeeting("83390804059", "008047"); triggerGamificationRule("ES 5.5 1"); } else if (between("2021-10-26 06:00+01:00", "2021-10-26 08:30+01:00")) { changeMeeting("81729040993", "615981"); triggerGamificationRule("ES 4.6 1"); } } }, { gameRule: "feedback-engagement", gameRuleCooldown: 1e3 * 60 * 60, height: "8%", href: "https://isfcongress.tkeventsregistration.com/ffengagement", isExternal: true, label: "Feedback", left: "83.3%", target: "_blank", top: "3%", width: "16%" }, { height: "9.8%", label: "8.5 & 11.5 Surviving An Extinction Level Attack Workshop", left: "83.5%", top: "19.7%", width: "15.9%", onClick: () => { if (between("2021-10-26 11:00+01:00", "2021-10-26 13:30+01:00")) { changeMeeting("82545079154", "264387"); triggerGamificationRule("ES 8.5 2"); } else if (between("2021-10-27 08:00+01:00", "2021-10-27 10:30+01:00")) { changeMeeting("85757976353", "559110"); triggerGamificationRule("ES 11.5 1"); } else if (between("2021-10-27 17:00+01:00", "2021-10-27 19:30+01:00")) { changeMeeting("89536735958", "835434"); triggerGamificationRule("ES 11.5 2"); } } }, { height: "9.8%", label: "9.3 ISF Standard of Good Practice: Exploring The New SOGP WebApp", left: "83.5%", top: "31.8%", width: "15.9%", onClick: () => { if (between("2021-10-26 14:00+01:00", "2021-10-26 16:00+01:00")) { changeMeeting("85738919613", "530429"); triggerGamificationRule("ES 9.3 1"); } else if (between("2021-10-26 22:00+01:00", "2021-10-27 00:00+01:00")) { changeMeeting("85738919613", "530429"); triggerGamificationRule("ES 9.3 1"); } else if (between("2021-10-27 06:00+01:00", "2021-10-27 08:00+01:00")) { changeMeeting("85738919613", "530429"); triggerGamificationRule("ES 9.3 1"); } } }, { height: "9.8%", label: "13.5 Backdoors and Breaches: Cyber Security Exercise", left: "83.5%", top: "44%", width: "15.9%", onClick: () => { if (between("2021-10-27 10:00+01:00", "2021-10-27 12:00+01:00")) { changeMeeting("83464749474", "646515"); triggerGamificationRule("ES 13.5 1"); } else if (between("2021-10-27 20:00+01:00", "2021-10-27 22:00+01:00")) { changeMeeting("86086468088", "131142"); triggerGamificationRule("ES 13.5 1"); } } }, { height: "9.8%", label: "14.4 Information Security In Mergers and Acquisitions", left: "83.5%", top: "56.4%", width: "15.9%", onClick: () => { if (between("2021-10-27 13:00+01:00", "2021-10-27 15:00+01:00")) { changeMeeting("81178955118", "600471"); triggerGamificationRule("ES 14.4 1"); } else if (between("2021-10-27 21:00+01:00", "2021-10-27 23:00+01:00")) { changeMeeting("81178955118", "600471"); triggerGamificationRule("ES 14.4 1"); } else if (between("2021-10-28 05:00+01:00", "2021-10-28 07:00+01:00")) { changeMeeting("81178955118", "600471"); triggerGamificationRule("ES 14.4 1"); } } } ], name: "engagement-sessions" }; // frontend/src/55913/rooms/explorationZone.js var explorationZone_default = { background: "https://assets.swoogo.com/uploads/full/1386577-6157667832222.jpg", links: [ { height: "31%", label: "Find out more about the services included in your ISF Membership", left: "10%", modal: /* @__PURE__ */ v(MappedImage, { imageURL: "https://assets.swoogo.com/uploads/full/1410185-616860cce8c1e.png", links: [ { gameRule: "explore-left-magazine-chapter", height: "5%", href: "https://assets.swoogo.com/uploads/1410556-61687712b4685.pdf", label: "ISF Chapter Programme 2022", left: "31%", target: "_blank", top: "19%", width: "40%" }, { gameRule: "explore-left-magazine-work", height: "5%", href: "https://assets.swoogo.com/uploads/1410549-6168770ff1cbf.pdf", label: "ISF Forward Work Programme", left: "31%", target: "_blank", top: "25.3%", width: "40%" }, { gameRule: "explore-left-magazine-learning", height: "5%", href: "https://assets.swoogo.com/uploads/1410555-616877116b35a.pdf", label: "ISF Learning", left: "31%", target: "_blank", top: "31.5%", width: "40%" }, { gameRule: "explore-left-magazine-risk", height: "5%", href: "https://assets.swoogo.com/uploads/1410552-61687710a428c.pdf", label: "ISF Risk Transformation Programme", left: "31%", target: "_blank", top: "37.8%", width: "40%" }, { gameRule: "explore-left-magazine-consult", height: "5%", href: "https://assets.swoogo.com/uploads/1410547-6168770d85188.pdf", label: "ISF Consultancy Services", left: "31%", target: "_blank", top: "44.1%", width: "40%" }, { gameRule: "explore-left-magazine-value", height: "5%", href: "https://assets.swoogo.com/uploads/1410548-6168770e93074.pdf", label: "How the ISF delivers added value", left: "31%", target: "_blank", top: "50.3%", width: "40%" }, { gameRule: "explore-left-magazine-membership", height: "5%", href: "https://assets.swoogo.com/uploads/1410551-616877109c467.pdf", label: "ISF Membership Benefits", left: "31%", target: "_blank", top: "56.6%", width: "40%" }, { gameRule: "explore-left-magazine-reward", height: "5%", href: "https://assets.swoogo.com/uploads/1410550-61687710a2273.pdf", label: "ISF Membership Referrals Reward Programme", left: "31%", target: "_blank", top: "62.9%", width: "40%" }, { gameRule: "explore-left-magazine-constitution", height: "5%", href: "https://assets.swoogo.com/uploads/1410554-61687710cf316.pdf", label: "ISF Constitution", left: "31%", target: "_blank", top: "69.1%", width: "40%" }, { gameRule: "explore-left-magazine-code", height: "5%", href: "https://assets.swoogo.com/uploads/1410553-6168771093ef5.pdf", label: "ISF Member Code of Conduct", left: "31%", target: "_blank", top: "75.4%", width: "40%" }, { gameRule: "explore-left-magazine-live", height: "4.9%", href: "https://www.isflive.org/s/communities", label: "Topical Communities", left: "35.7%", target: "_blank", top: "83.3%", width: "28.4%" } ] }), modalOverrides: { dismissStyle: { height: "6%", left: "68%", top: "12%", width: "4%" } }, top: "54%", width: "8%" }, { height: "31%", label: "The latest cyber security trends and how the ISF can help", left: "82%", modal: /* @__PURE__ */ v(MappedImage, { imageURL: "https://assets.swoogo.com/uploads/full/1434367-617213fc6e5fe.png", links: [ { gameRule: "explore-right-magazine-tools", width: "42.5%", height: "5.2%", left: "28.8%", top: "15.9%", href: "https://assets.swoogo.com/uploads/1412335-61698d4c82422.pdf", label: "ISF Aligned Tools Suite", target: "_blank" }, { gameRule: "explore-right-magazine-cyber", width: "42.5%", height: "5.2%", left: "28.8%", top: "22.1%", href: "https://assets.swoogo.com/uploads/1412333-61698d4a715d1.pdf", label: "Remote Working and Cyber Risk", target: "_blank" }, { gameRule: "explore-right-magazine-attack", width: "42.5%", height: "5.2%", left: "28.8%", top: "28.3%", href: "https://assets.swoogo.com/uploads/1412326-61698d4383005.pdf", label: "Be Ready for a Ransomware Attack", target: "_blank" }, { gameRule: "explore-right-magazine-aware", width: "42.5%", height: "5.2%", left: "28.8%", top: "34.7%", href: "https://assets.swoogo.com/uploads/1412330-61698d45686f5.pdf", label: "Changing Behaviours with Cyber Security Awareness", target: "_blank" }, { gameRule: "explore-right-magazine-shift", width: "42.5%", height: "5.2%", left: "28.8%", top: "40.9%", href: "https://assets.swoogo.com/uploads/1412327-61698d43abd95.pdf", label: "Managing Risk on Shifting Sands", target: "_blank" }, { gameRule: "explore-right-magazine-supply", width: "42.5%", height: "5.2%", left: "28.8%", top: "47.2%", href: "https://assets.swoogo.com/uploads/1412332-61698d49eec75.pdf", label: "Securing your Supply Chain", target: "_blank" }, { gameRule: "explore-right-magazine-railway", width: "42.5%", height: "5.2%", left: "28.8%", top: "53.4%", href: "https://assets.swoogo.com/uploads/1412331-61698d4887efd.pdf", label: "Securing European Railway Infrastructure", target: "_blank" }, { gameRule: "explore-right-magazine-menace", width: "42.5%", height: "5.2%", left: "28.8%", top: "59.8%", href: "https://assets.swoogo.com/uploads/1412334-61698d4bd9748.pdf", label: "Understanding the Ransomware Menace", target: "_blank" }, { gameRule: "explore-right-magazine-qira", width: "42.5%", height: "5.2%", left: "28.8%", top: "66.1%", href: "https://assets.swoogo.com/uploads/1412329-61698d443a4ec.pdf", label: "ISF Consultancy Services: QIRA", target: "_blank" }, { gameRule: "explore-right-magazine-security", width: "42.5%", height: "5.2%", left: "28.8%", top: "72.4%", href: "https://assets.swoogo.com/uploads/1412325-61698d4329a27.pdf", label: "ISF Consultancy Services: Security Healthcheck", target: "_blank" }, { gameRule: "explore-right-magazine-support", width: "42.5%", height: "5.2%", left: "28.8%", top: "78.7%", href: "https://assets.swoogo.com/uploads/1412328-61698d442b3e1.pdf", label: "ISF Consultancy Services: Controls, Policies and Standards support", target: "_blank" }, { gameRule: "explore-right-magazine-live", width: "28.5%", height: "5.2%", left: "35.4%", top: "86.1%", href: "https://www.isflive.org/", label: "ISF Live", target: "_blank" } ] }), modalOverrides: { dismissStyle: { height: "6%", left: "68%", top: "9%", width: "4%" } }, top: "54%", width: "8%" }, { gameRule: "explore-e-learning", label: "Discover ISF e-learning by completing our 25 minute taster", width: "9.1%", height: "12.0%", left: "68.0%", top: "27.1%", modal: /* @__PURE__ */ v(ModalWrapper, null, /* @__PURE__ */ v("iframe", { style: "width: 50vw; height: 80vh; border: none;", src: "https://static1.tkevents.io/content-2-e-learning/index.html" })) }, { label: "Discover how the ISF can help support your risk transformation programme", width: "10.5%", height: "12.8%", left: "77.4%", top: "25.3%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "630878001?h=6b6c5ba33e&autoplay=1" }) }, { height: "11%", label: "Cyber Awareness Month - Discover how the ISF can help you keep your organisation secure", left: "68%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "611706588?h=02f1d8939b&autoplay=1" }), top: "39%", width: "9%" }, { height: "11.4%", label: "Dicover how the QIRA product suite can help you quantify risk", left: "22.6%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "637435441?h=fce80c465d&autoplay=1" }), top: "27.9%", width: "9%" }, { height: "15%", label: "Quiz Hub - Participate in our surveys for a chance to win a prize and provide input into the ISF's programme of work", left: "31.6%", modal: /* @__PURE__ */ v(MappedImage, { imageURL: "https://assets.swoogo.com/uploads/full/1410606-61687b8511af1.png", links: [ { gameRule: "explore-quiz-work", height: "6%", href: "https://isfcongress.tkeventsregistration.com/ForwardWorkProgrammeSurvey", left: "29.9%", target: "_blank", top: "39.2%", width: "40%" }, { gameRule: "explore-quiz-risk", height: "6%", href: "https://isfcongress.tkeventsregistration.com/ISFRiskPractitionerCapabilitySurvey", left: "29.9%", target: "_blank", top: "45.2%", width: "40%" }, { gameRule: "explore-quiz-leadership", height: "6%", href: "https://isfcongress.tkeventsregistration.com/ISFSecurityLeadershipSurvey", left: "29.9%", target: "_blank", top: "51.5%", width: "40%" }, { gameRule: "explore-quiz-supply", height: "6%", href: "https://isfcongress.tkeventsregistration.com/FeedbackFormISFSupplyChainWebApp", left: "29.9%", target: "_blank", top: "57.5%", width: "40%" } ] }), modalOverrides: { dismissStyle: { right: "28.9%", top: "32.2%" } }, top: "52.2%", width: "4.4%" }, { label: "Chat With Us", width: "10.3%", height: "21.1%", left: "45.2%", top: "58.9%", CometChatID: "isf-exploration-zone" }, { height: "15%", label: "Discover the ISF Podcast library", left: "64.8%", modal: /* @__PURE__ */ v(MappedImage, { imageURL: "https://assets.swoogo.com/uploads/full/1428254-61707332606ea.png", links: [ { label: "ISF podcast fact sheet 2021", height: "4.8%", href: "https://assets.swoogo.com/uploads/1411420-6168bfa7b2d4e.pdf", left: "59.4%", target: "_blank", top: "3%", width: "20%" }, { height: "6.3%", href: "https://www.securityforum.org/spotlight-on/ai-automation-and-cyber-ethics-changing-the-game/", label: "Josh Jackson \u2013 AI, Automation, and Cyber Ethics: Changing the Game", left: "21.7%", target: "_blank", top: "9%", width: "57.7%" }, { height: "6.3%", href: "https://www.securityforum.org/spotlight-on/you-are-what-you-risk/", label: "Michele Wucker \u2013 You Are What You Risk", left: "21.7%", target: "_blank", top: "15.6%", width: "57.7%" }, { height: "6.3%", href: "https://www.securityforum.org/spotlight-on/influencing-security-behaviour/", label: "Dan Norman \u2013 Influencing Security Behaviour", left: "21.7%", target: "_blank", top: "22.2%", width: "57.7%" }, { height: "6.3%", href: "https://www.securityforum.org/spotlight-on/generations-in-security/", label: "Mehak Vohra & Richard Guida \u2013 Generations in Security", left: "21.7%", target: "_blank", top: "28.8%", width: "57.7%" }, { height: "6.3%", href: "https://www.securityforum.org/spotlight-on/exit-rich-the-6-p-method-to-sell-your-business/", label: "Michelle Seiler Tucker \u2013 Exit Rich: The 6P Method to Sell Your Business", left: "21.7%", target: "_blank", top: "35.4%", width: "57.7%" }, { height: "6.3%", href: "https://www.securityforum.org/spotlight-on/training-for-digital-transformation/", label: "Thomas Erl \u2013 Training for Digital Transformation", left: "21.7%", target: "_blank", top: "41.9%", width: "57.7%" }, { height: "6.3%", href: "https://www.securityforum.org/spotlight-on/remeasuring-values/", label: "Brigid Schulte \u2013 Remeasuring Values", left: "21.7%", target: "_blank", top: "48.5%", width: "57.7%" }, { height: "6.3%", href: "https://www.securityforum.org/spotlight-on/how-to-reset-rethink-and-refocus/", label: "Kate Montague \u2013 How to Rethink, Reset, and Refocus", left: "21.7%", target: "_blank", top: "55.1%", width: "57.7%" }, { height: "6.3%", href: "https://www.securityforum.org/spotlight-on/kate-stone-the-role-of-analogue-in-the-digital-age/", label: "Kate Stone \u2013 The Role of Analogue in the Digital Age", left: "21.7%", target: "_blank", top: "61.7%", width: "57.7%" }, { height: "6.3%", href: "https://www.securityforum.org/spotlight-on/leadership-in-a-time-of-transition/", label: "Steve Durbin \u2013 Leadership in a Time of Transition", left: "21.7%", target: "_blank", top: "68.3%", width: "57.7%" }, { height: "6.3%", href: "https://www.isflive.org/s/community-webcast/a2E6M000002Bo4hUAC/cyber-insurance-and-the-danger-of-silent-cyber", label: "Cyber Insurance and the danger of \u2018Silent Cyber\u2019 - Emma Mark Ward and Emma Bickerstaffe in conversation with Simon Meech, Cyber Practice Lead at insurance broker BMS Group.", left: "21.7%", target: "_blank", top: "74.9%", width: "57.7%" }, { height: "8%", href: "https://www.isflive.org/s/community-webcast/a2E6M000002Bo6YUAS/is-zero-trust-right-for-you", label: "Is Zero Trust right for you?", left: "21.7%", target: "_blank", top: "81.4%", width: "57.7%" }, { height: "6.3%", href: "https://www.isflive.org/s/community-webcast/a2E6M000002Bnv2UAC/securing-containers-with-people-process-and-technology", label: "Securing Containers with people, process and technology", left: "21.7%", target: "_blank", top: "89.7%", width: "57.7%" } ] }), modalOverrides: { dismissStyle: { right: "15.9%", top: "2.2%", width: "4%", height: "6%" } }, top: "52.2%", width: "4.4%" }, { height: "12.3%", label: "Give us your opinion on our research into upcoming threats", left: "11.8%", modal: /* @__PURE__ */ v(MappedImage, { imageURL: "https://assets.swoogo.com/uploads/full/1436108-6172c89481208.png", links: [ { gameRule: "explore-threat-crypto", height: "5.2%", left: "30.6%", onClick: () => document.getElementById("exploration-threat-crypto").click(), top: "26.8%", width: "40.1%" }, { gameRule: "explore-threat-hack", height: "5.2%", left: "30.6%", onClick: () => document.getElementById("exploration-threat-hacktivists").click(), top: "33.1%", width: "40.1%" }, { gameRule: "explore-threat-coding", height: "5.2%", left: "30.6%", onClick: () => document.getElementById("exploration-threat-coding").click(), top: "39.4%", width: "40.1%" }, { gameRule: "explore-threat-data", height: "5.2%", left: "30.6%", onClick: () => document.getElementById("exploration-threat-biased").click(), top: "45.8%", width: "40.1%" }, { gameRule: "explore-threat-ransoms", height: "5.2%", left: "30.6%", onClick: () => document.getElementById("exploration-threat-ransoms").click(), top: "52%", width: "40.1%" }, { gameRule: "explore-threat-virtual", height: "5.2%", left: "30.6%", onClick: () => document.getElementById("exploration-threat-virtual").click(), top: "58.2%", width: "40.1%" }, { gameRule: "explore-threat-cloudy", height: "5.2%", left: "30.6%", onClick: () => document.getElementById("exploration-threat-cloudy").click(), top: "64.4%", width: "40.1%" }, { gameRule: "explore-threat-polluted", height: "5.2%", left: "30.6%", onClick: () => document.getElementById("exploration-threat-polluted").click(), top: "70.8%", width: "40.1%" }, { gameRule: "explore-threat-soc", height: "5.2%", left: "30.6%", onClick: () => document.getElementById("exploration-threat-soc").click(), top: "77%", width: "40.1%" } ] }), modalOverrides: { dismissStyle: { height: "6%", right: "28%", top: "16%", width: "4%" } }, top: "38.4%", width: "10.7%" }, { height: "11.3%", label: "ISF In Bitesize - A five minute introduction to the ISF Benchmark, IRAM 2 and Supply Chain", left: "22.8%", modal: /* @__PURE__ */ v(MappedImage, { imageURL: "https://assets.swoogo.com/uploads/full/1434354-617212cb67deb.png", links: [ { label: "Risk Assessment: How IRAM2 can help.", height: "5.4%", left: "28.3%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "623411017?h=643528d7c0&autoplay=1" }), target: "_blank", top: "42.6%", width: "43%" }, { label: "Risk Assessment: Identify and action supply chain risk.", height: "5.4%", left: "28.3%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "623410183?h=d6c307c393&autoplay=1" }), target: "_blank", top: "49%", width: "43%" }, { label: "Security Assurance: Benchmark in bitesize.", height: "5.4%", left: "28.3%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "623410559?h=b98de280dc&autoplay=1" }), target: "_blank", top: "55.2%", width: "43%" } ] }), modalOverrides: { dismissStyle: { height: "7%", right: "27%", top: "34%", width: "5%" } }, top: "39%", width: "8.7%" }, { height: "38.0%", href: "/engagement-sessions", label: "ISF Engagement Sessions", left: "90.8%", top: "31.3%", width: "9.0%" }, { height: "12.5%", label: "Discover more on ISF Live, the Member website", left: "77.3%", modal: /* @__PURE__ */ v(MappedImage, { imageURL: "https://assets.swoogo.com/uploads/full/1411478-6168c3cbc8136.png", links: [ { height: "4.3%", href: "https://www.isflive.org/s/isf-videos-podcasts", label: "Podcast", left: "18.3%", target: "_blank", top: "43%", width: "29.7%" }, { height: "4.3%", href: "https://www.isflive.org/s/blog", label: "Blogs", left: "57.8%", target: "_blank", top: "43%", width: "29.7%" }, { height: "4.3%", href: "https://www.isflive.org/s/communities", label: "Topical Communities", left: "18.3%", target: "_blank", top: "76.6%", width: "29.7%" }, { height: "4.3%", href: "https://www.isflive.org/s/knowledge-library", label: "Library", left: "57.8%", target: "_blank", top: "76.6%", width: "29.7%" } ] }), modalOverrides: { dismissStyle: { height: "6%", right: "10%", top: "15%", width: "4%" } }, top: "38.5%", width: "10.9%" }, { height: "34.8%", href: "/isf-speakers", label: "Who's Who", left: "0.0%", top: "34.8%", width: "9.0%" }, { label: "Discover how the SOGP WebApp can help you", width: "10.8%", height: "12.3%", left: "11.7%", top: "25.5%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "637438659?h=94300269d4&autoplay=1" }) }, { height: "17.2%", label: "Recent releases - Access the latest ISF products", left: "32.3%", modal: /* @__PURE__ */ v(MappedImage, { imageURL: "https://assets.swoogo.com/uploads/full/1411493-6168c5ec283aa.png", links: [ { height: "7.5%", href: "https://www.isflive.org/s/community-webcast/a2E6M000002Bo6YUAS/is-zero-trust-right-for-you", label: "Demystifying Zero Trust - Briefing Paper", left: "18.8%", target: "_blank", top: "15%", width: "60.7%" }, { height: "7.5%", href: "https://www.isflive.org/s/community-webcast/a2E6M000002Bo4hUAC/cyber-insurance-and-the-danger-of-silent-cyber", label: "Cyber Insurance: Is it worth the risk? - Briefing Paper", left: "18.8%", target: "_blank", top: "23.4%", width: "60.7%" }, { height: "7.5%", href: "https://www.isflive.org/s/article/Quantitative-Information-Risk-Assessment-QIRA-Methodology", label: "Quantitative Information Risk Assessment (QIRA) \u2013 Methodology", left: "18.8%", target: "_blank", top: "31.9%", width: "60.7%" }, { height: "7.5%", href: "https://www.isflive.org/s/community-webcast/a2E6M000002Bnv2UAC/securing-containers-with-people-process-and-technology", label: "Securing Containers: Keeping pace with change - Briefing Paper", left: "18.8%", target: "_blank", top: "40.3%", width: "60.7%" }, { height: "7.5%", href: "https://www.isflive.org/s/article/Security-Architecture-Navigating-complexity-Report", label: "Security Architecture: Navigating complexity - Report", left: "18.8%", target: "_blank", top: "48.7%", width: "60.7%" }, { height: "7.5%", href: "https://www.isflive.org/s/article/Threat-Horizon-2023-Security-at-a-tipping-point-Report", label: "Threat Horizon 2023: Security at a tipping point - Report", left: "18.8%", target: "_blank", top: "57.2%", width: "60.7%" }, { height: "7.5%", href: "https://www.isflive.org/s/article/Extinction-Level-Attacks-A-survival-guide-Report", label: "Extinction Level Attacks: A survival guide - Report", left: "18.8%", target: "_blank", top: "65.6%", width: "60.7%" }, { height: "7.5%", href: "https://www.isflive.org/s/article/continuous-supply-chain-assurance-report", label: "Continuous Supply Chain Assurance: Monitoring supplier security - Report", left: "18.8%", target: "_blank", top: "74.1%", width: "60.7%" }, { height: "5.1%", href: "https://www.isflive.org/s/knowledge-library", label: "For more, please visit the ISF Library", left: "34.8%", target: "_blank", top: "84.1%", width: "28.5%" } ] }), modalOverrides: { dismissStyle: { height: "5%", right: "19%", top: "9%", width: "4%" } }, top: "35%", width: "8.3%" }, { height: "21.6%", label: "Management and people - Access ISF products related to this key area", left: "41.3%", modal: /* @__PURE__ */ v(MappedImage, { imageURL: "https://assets.swoogo.com/uploads/full/1411555-6168c89d33dde.png", links: [ { height: "7.5%", href: "https://www.isflive.org/s/article/Human-Centred-Security-Positively-influencing-security-beviour", label: "Human-Centred Security: Positively influencing security behaviour - Briefing Paper", left: "18.8%", target: "_blank", top: "21.1%", width: "60.7%" }, { height: "7.5%", href: "https://www.isflive.org/s/article/Becoming-a-next-generation-CISO", label: "Becoming a Next-Generation CISO - Briefing Paper", left: "18.8%", target: "_blank", top: "29.8%", width: "60.7%" }, { height: "7.5%", href: "https://www.isflive.org/s/article/Human-Centred-Security-Addressing-psychological-vulnerabilities", label: "Human-Centred Security: Addressing psychological vulnerabilities - Briefing Paper", left: "18.8%", target: "_blank", top: "38.2%", width: "60.7%" }, { height: "7.5%", href: "https://www.isflive.org/s/article/DOC-24113", label: "Building Tomorrow's Security Workforce - Briefing Paper", left: "18.8%", target: "_blank", top: "46.7%", width: "60.7%" }, { height: "10.7%", href: "https://www.isflive.org/s/article/DOC-10973", label: "From Promoting Awareness to Embedding Behaviours: Secure by choice, not by chance - Report", left: "18.8%", target: "_blank", top: "55.1%", width: "60.7%" }, { height: "7.5%", href: "https://www.isflive.org/s/article/DOC-6311", label: "Engaging with the Board: Balancing cyber risk and reward - Report", left: "18.8%", target: "_blank", top: "66.8%", width: "60.7%" }, { gameRule: "explore-books-people-more", height: "5.1%", href: "https://www.isflive.org/s/knowledge-library", label: "For more, please visit the ISF Library", left: "34.8%", target: "_blank", top: "77.2%", width: "28.5%" } ] }), modalOverrides: { dismissStyle: { height: "5%", right: "19%", top: "15%", width: "4%" } }, top: "35.5%", width: "8.2%" }, { height: "21.3%", label: "Compliance, assurance and governance - Access ISF products related to this key area", title: "Access ISF products related to this key area", left: "50.3%", modal: /* @__PURE__ */ v(MappedImage, { imageURL: "https://assets.swoogo.com/uploads/full/1411577-6168caa6a7f5e.png", links: [ { height: "7.5%", href: "https://www.isflive.org/s/article/Cyber-Insurance-Is-it-worth-the-risk", label: "Cyber Insurance: Is it worth the risk? Briefing Paper", left: "18.5%", target: "_blank", top: "18.4%", width: "60.7%" }, { height: "7.5%", href: "https://www.isflive.org/s/article/continuous-supply-chain-assurance-report", label: "Continuous Supply Chain Assurance: Monitoring supplier security - Report", left: "18.5%", target: "_blank", top: "26.9%", width: "60.7%" }, { height: "7.5%", href: "https://www.isflive.org/s/article/ISF-Benchmark?topicId=0TO0J0000009AOFWA2", label: "Benchmark", left: "18.5%", target: "_blank", top: "35.28%", width: "60.7%" }, { height: "7.5%", href: "https://www.isflive.org/s/article/Standard-of-Good-Practice-for-Information-Security-2020-PDF-Format", label: "Standard of Good Practice for Information Security 2020", left: "18.5%", target: "_blank", top: "43.8%", width: "60.7%" }, { height: "7.5%", href: "https://www.isflive.org/s/article/Legal-and-Regulatory-Implications-for-Information-Security", label: "Legal and Regulatory Implications for Information Security - Report", left: "18.5%", target: "_blank", top: "52%", width: "60.7%" }, { height: "10.6%", href: "https://www.isflive.org/s/article/Establishing-a-business-focused-security-assurance-programme-Report", label: "Establishing a Business-Focused Security Assurance Programme: Confidence in controls \u2013 Report", left: "18.5%", target: "_blank", top: "60.6%", width: "60.7%" }, { height: "7.5%", href: "https://www.isflive.org/s/article/DOC-24123", label: "Delivering an Effective Cyber Security Exercise - Report", left: "18.5%", target: "_blank", top: "72.4%", width: "60.7%" }, { height: "5.1%", href: "https://www.isflive.org/s/knowledge-library", label: "For more, please visit the ISF Library", left: "34.8%", target: "_blank", top: "83.2%", width: "28.5%" } ] }), modalOverrides: { dismissStyle: { height: "5%", right: "19%", top: "12%", width: "4%" } }, top: "35.5%", width: "8.5%" }, { height: "19.5%", label: "Risk management and technology - Access ISF products related to this key area", left: "59.2%", modal: /* @__PURE__ */ v(MappedImage, { imageURL: "https://assets.swoogo.com/uploads/full/1411600-6168ccb3e196e.png", links: [ { height: "6.5%", href: "https://www.isflive.org/s/article/Demystifying-Zero-Trust-Briefing-Paper", label: "Demystifying Zero Trust - Briefing Paper", left: "18.5%", target: "_blank", top: "12.5%", width: "60.7%" }, { height: "6.5%", href: "https://www.isflive.org/s/article/Quantitative-Information-Risk-Assessment-QIRA-Methodology", label: "Quantitative Information Risk Assessment (QIRA) \u2013 Methodology", left: "18.5%", target: "_blank", top: "20%", width: "60.7%" }, { height: "6.5%", href: "https://www.isflive.org/s/article/Securing-Containers-Keeping-pace-with-change-Briefing-paper", label: "Securing Containers: Keeping pace with change - Briefing Paper", left: "18.5%", target: "_blank", top: "27.5%", width: "60.7%" }, { height: "6.5%", href: "https://www.isflive.org/s/article/Security-Architecture-Navigating-complexity-Report", label: "Security Architecture: Navigating complexity - Report", left: "18.5%", target: "_blank", top: "35%", width: "60.7%" }, { height: "6.5%", href: "https://www.isflive.org/s/article/IRAM2-Web-App?topicId=0TO0J0000009AOBWA2", label: "Information Risk Assessment Methodology 2 WebApp", left: "18.5%", target: "_blank", top: "42.5%", width: "60.7%" }, { height: "6.5%", href: "https://www.isflive.org/s/article/Deploying-Open-Source-Software-Challenges-and-Rewards-Briefing-Paper", label: "Deploying Open Source Software: Challenges and rewards - Briefing Paper", left: "18.5%", target: "_blank", top: "50%", width: "60.7%" }, { height: "6.5%", href: "https://www.isflive.org/s/article/Using-Cloud-Services-Securely-Harnessing-core-controls-Report", label: "Using Cloud Services Securely: Harnessing core controls - Report", left: "18.5%", target: "_blank", top: "57.5%", width: "60.7%" }, { height: "6.5%", href: "https://www.isflive.org/s/article/Demystifying-Artificial-Intelligence-in-Information-Security", label: "Demystifying Artificial Intelligence in Information Security - Briefing Paper", left: "18.5%", target: "_blank", top: "65%", width: "60.7%" }, { height: "6.5%", href: "https://www.isflive.org/s/article/Securing-the-IoT-Taming-the-Connected-World-Briefing-paper", label: "Securing the IoT: Taming the connected world \u2013 Briefing Paper", left: "18.5%", target: "_blank", top: "72.5%", width: "60.7%" }, { height: "6.5%", href: "https://www.isflive.org/s/article/Building-a-Successful-SOC-detect-earlier-respond-faster-Report-ed", label: "Building a Successful SOC: Detect earlier, respond faster - Report", left: "18.5%", target: "_blank", top: "80%", width: "60.7%" }, { height: "5.1%", href: "https://www.isflive.org/s/knowledge-library", label: "For more, please visit the ISF Library", left: "34.8%", target: "_blank", top: "89.2%", width: "28.5%" } ] }), modalOverrides: { dismissStyle: { height: "5%", right: "19%", top: "6%", width: "4%" } }, top: "35.7%", width: "8.3%" } ], name: "exploration-zone" }; // frontend/src/55913/rooms/isfSpeakers.js var isfSpeakers_default = { background: "https://assets.swoogo.com/uploads/full/1391541-615c6b6b1875c.png", links: [ { height: "10.5%", href: "/sponsor-speakers", label: "Sponsor Speakers", left: "2.2%", top: "70.5%", width: "14.8%" }, { height: "10.5%", href: "/speaker-gallery", label: "Keynote Speakers", left: "82.2%", top: "70.5%", width: "14.8%" }, { height: "16.1%", label: "Alex Jordan", left: "6.2%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "621812024?h=32de138201&autoplay=1" }), top: "17.7%", width: "7%" }, { height: "16.1%", label: "Benoit Heynderickx", left: "14.1%", top: "17.7%", width: "7%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "621802758?h=c09e75d2ca&autoplay=1" }) }, { height: "16.1%", label: "Eleanor Thrower", left: "22.1%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "621816233?h=90ddfeb3cc&autoplay=1" }), top: "17.7%", width: "7%" }, { height: "16.1%", label: "Emma Bickerstaffe", left: "6.2%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "626322750?h=0ee73bb673&autoplay=1" }), top: "36%", width: "7%" }, { height: "16.1%", label: "Gareth Haken", left: "14.2%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "621803892?h=8bdcf0e7bb&autoplay=1" }), top: "36%", width: "7%" }, { height: "16.1%", label: "Mark Ward", left: "22.2%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "621797917?h=9ff756c417&autoplay=1" }), top: "36%", width: "7%" }, { height: "16.1%", label: "Paul Holland", left: "6.2%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "621804567?h=ac11a70149&autoplay=1" }), top: "54.3%", width: "7%" }, { height: "16.1%", label: "Paul Watts", left: "14.2%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "621816396?h=c2176f8f34&autoplay=1" }), top: "54.3%", width: "7%" }, { height: "16.1%", label: "Richard Absalom", left: "22.2%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "621798864?h=610105b5ba&autoplay=1" }), top: "54.3%", width: "7%" }, { height: "16.1%", label: "Carolyn Brown", left: "41.6%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "624378460?h=d894197d9d&autoplay=1" }), top: "17.8%", width: "7%" }, { height: "16.1%", label: "Erika De Brito", left: "49.6%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "624378545?h=0a76f523bf&autoplay=1" }), top: "17.8%", width: "7%" }, { height: "16.1%", label: "Ivo Gon\xE7alves", left: "41.6%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "624378685?h=a4f1e2f080&autoplay=1" }), top: "35.9%", width: "7%" }, { height: "16.1%", label: "Lucinda Libby", left: "49.6%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "624378953?h=0ae33499fd&autoplay=1" }), top: "35.9%", width: "7%" }, { height: "16.1%", label: "Sarah Taylor", left: "41.6%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "624379785?h=5f0bbdf102&autoplay=1" }), top: "54.3%", width: "7%" }, { height: "16.1%", label: "Steve Dobson", left: "49.6%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "621803447?h=93f49ccb03&autoplay=1" }), top: "54.3%", width: "7%" }, { height: "16.1%", label: "Aman Behl", left: "71.4%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "621802203?h=22ab103e06&autoplay=1" }), top: "17.8%", width: "7%" }, { height: "16.1%", label: "Bruce Page", left: "79.4%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "624378380?h=6e0cde555f&autoplay=1" }), top: "17.8%", width: "7%" }, { height: "16.1%", label: "Chronis Kapalidis", left: "87.4%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "621813188?h=9abd4000ed&autoplay=1" }), top: "17.8%", width: "7%" }, { height: "16.1%", label: "Dan Norman", left: "75.4%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "621796722?h=09bd36fc11&autoplay=1" }), top: "35.9%", width: "7%" }, { height: "16.1%", label: "Matt Brett", left: "83.4%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "624379586?h=c1eef45812&autoplay=1" }), top: "35.9%", width: "7%" }, { height: "16.1%", label: "Matt Kent", left: "71.4%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "624379683?h=b0af94055e&autoplay=1" }), top: "54.3%", width: "7%" }, { height: "16.1%", label: "Mark Chaplin", left: "79.4%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "621801261?h=38043b31ff&autoplay=1" }), top: "54.3%", width: "7%" }, { height: "16.1%", label: "Martin Tully", left: "87.4%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "624379358?h=a068f41c9e&autoplay=1" }), top: "54.3%", width: "7%" } ], extras: /* @__PURE__ */ v(DisplayOnce, { id: "isfspeakers-welcome" }, /* @__PURE__ */ v(ModalWrapper, null, /* @__PURE__ */ v("p", { style: { color: "white" } }, "Click on a frame to hear from these speakers"))), name: "isf-speakers" }; // frontend/src/55913/rooms/lounge.js var { "Event ID": eventId, "Registrant ID": regId } = window.dataLayer[0]; var lounge_default = { background: "https://assets.swoogo.com/uploads/full/1386533-615760fe59198.jpg", links: [ { height: "23.5%", label: "Play pacman!", left: "0%", top: "38%", width: "9.2%", onClick: () => { document.getElementById("lounge-pacman").click(), console.log("click pacman test"); if (new Date() > new Date("2021-10-23T00:00+01:00") && new Date() < new Date("2021-10-26T07:00+01:00")) { console.log("lounge-pacman-1"); triggerGamificationRule("lounge-pacman"); } else if (new Date() > new Date("2021-10-26T07:00+01:00") && new Date() < new Date("2021-10-27T07:00+01:00")) { console.log("lounge-pacman-2"); triggerGamificationRule("lounge-pacman-2"); } else if (new Date() > new Date("2021-10-27T07:00+01:00") && new Date() < new Date("2021-10-30T07:00+01:00")) { console.log("lounge-pacman-3"); triggerGamificationRule("lounge-pacman-2"); } } }, { height: "23.5%", label: "Play connect 4!", left: "10.4%", top: "38%", width: "10.2%", onClick: () => { document.getElementById("lounge-connect-4").click(), console.log("click connect-4 test"); if (new Date() > new Date("2021-10-23T00:00+01:00") && new Date() < new Date("2021-10-26T07:00+01:00")) { console.log("lounge-connect-4-1"); triggerGamificationRule("lounge-connect-4"); } else if (new Date() > new Date("2021-10-26T07:00+01:00") && new Date() < new Date("2021-10-27T07:00+01:00")) { console.log("lounge-connect-4-2"); triggerGamificationRule("lounge-connect-4-2"); } else if (new Date() > new Date("2021-10-27T07:00+01:00") && new Date() < new Date("2021-10-30T07:00+01:00")) { console.log("lounge-connect-4-3"); triggerGamificationRule("lounge-connect-4-3"); } } }, { height: "11.5%", label: "Play memory game!", left: "1%", top: "60.5%", width: "12.2%", onClick: () => { document.getElementById("lounge-memory").click(); if (new Date() > new Date("2021-10-23T00:00+01:00") && new Date() < new Date("2021-10-26T07:00+01:00")) { triggerGamificationRule("lounge-memory"); } else if (new Date() > new Date("2021-10-26T07:00+01:00") && new Date() < new Date("2021-10-27T07:00+01:00")) { triggerGamificationRule("lounge-memory-2"); } else if (new Date() > new Date("2021-10-27T07:00+01:00") && new Date() < new Date("2021-10-30T07:00+01:00")) { triggerGamificationRule("lounge-memory-3"); } } }, { onClick: () => { if (new Date() < new Date("2021-10-26T07:00+01:00")) { triggerGamificationRule("lounge-magic-1"); } else if (new Date() > new Date("2021-10-26T07:00+01:00") && new Date() < new Date("2021-10-27T07:00+01:00")) { triggerGamificationRule("lounge-magic-2"); } else if (new Date() > new Date("2021-10-27T07:00+01:00")) { triggerGamificationRule("lounge-magic-3"); } }, label: "Watch our magician - new tricks daily!", width: "7.2%", height: "24.5%", left: "21%", top: "43%", modal: /* @__PURE__ */ v(TimeSwitch, null, [ { starts: "2021-10-22T00:00+01:00", ends: "2021-10-26T07:00+01:00", content: /* @__PURE__ */ v(VimeoFrame, { vidId: "629290982?h=0c5e19d11a&autoplay=1" }) }, { starts: "2021-10-26T07:00+01:00", ends: "2021-10-27T07:00+01:00", content: /* @__PURE__ */ v(VimeoFrame, { vidId: "630006253?h=693050e4ec&autoplay=1" }) }, { starts: "2021-10-27T07:00+01:00", ends: "2050-10-30T07:00+01:00", content: /* @__PURE__ */ v(VimeoFrame, { vidId: "629289240?h=fa5793e222&autoplay=1" }) } ]) }, { height: "23.2%", label: "The top participators in Digital 2021", left: "29%", top: "30.2%", width: "20.4%", modal: /* @__PURE__ */ v(ModalWrapper, null, window.dataLayer[0]["I would like to opt in to the Leaderboard competition"] === "Yes" ? /* @__PURE__ */ v("iframe", { style: "width: 30vw; height: 35vh; border: none;", src: `https://sponsor-gamification.herokuapp.com/leaderboard?eventId=${eventId}®istrantId=${regId}&swoogoAccess=false` }) : /* @__PURE__ */ v("div", { style: "display: flex; flex-direction: column; justify-content: space-around; width: 650px; height: 130px; color: white;" }, /* @__PURE__ */ v("h1", { style: "font-size: 28px; margin: 0;" }, "Want to participate in the leaderboard competition?"), /* @__PURE__ */ v("p", { style: "font-size: 16px;" }, "You are not opted-in to the leaderboard gamification feature. To opt-in, please modify your registration ", /* @__PURE__ */ v("a", { href: "https://isfcongress.tkeventsregistration.com/digital2021" }, "here.")))) }, { height: "23.6%", href: "/sponsor-theatre", label: "Sponsor Theatre", left: "50.4%", top: "30.1%", width: "20.4%" }, { label: "Watch our artist draw today's keynotes", width: "10.1%", height: "11.9%", left: "67.8%", top: "54.4%", modal: /* @__PURE__ */ v(TimeSwitch, null, [ { starts: "2021-10-23T00:00", ends: "2021-10-26T07:00+01:00", content: /* @__PURE__ */ v(VimeoFrame, { vidId: "630926239?h=c3628bc3ac&autoplay=1" }) }, { starts: "2021-10-26T07:00+01:00", ends: "2021-10-27T07:00+01:00", content: /* @__PURE__ */ v(VimeoFrame, { vidId: "630927258?h=69b9e6bdb8&autoplay=1" }) }, { starts: "2021-10-27T07:00+01:00", ends: "2030-10-30T07:00+01:00", content: /* @__PURE__ */ v(VimeoFrame, { vidId: "630925933?h=64128e71da&autoplay=1" }) } ]) }, { height: "17.5%", label: "Try out today's recipes here", left: "78.3%", top: "48%", width: "11.3%", modal: /* @__PURE__ */ v(TimeSwitch, null, [ { starts: "2021-10-23T00:00+01:00", ends: "2021-10-26T07:00+01:00", content: /* @__PURE__ */ v(MappedImage, { imageURL: "https://assets.swoogo.com/uploads/full/1405180-6165d9755c353.png", links: [ { gameRule: "lounge-chef-day", height: "5.1%", label: "Video - Dish of the Day", left: "30%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "629296259?h=e64bc66de9&autoplay=1" }), top: "49.6%", width: "40.1%" }, { height: "5.6%", href: "https://assets.swoogo.com/uploads/1405214-6165db567b4d8.pdf", isExternal: true, label: "Try out today's recipe here!", left: "30%", target: "_blank", top: "55.7%", width: "40.1%" } ] }) }, { starts: "2021-10-26T07:00+01:00", ends: "2021-10-27T07:00+01:00", content: /* @__PURE__ */ v(MappedImage, { imageURL: "https://assets.swoogo.com/uploads/full/1405180-6165d9755c353.png", links: [ { gameRule: "lounge-chef-day-2", height: "5.1%", label: "Video - Dish of the Day", left: "30%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "629298235?h=f7b4e8bbaf&autoplay=1" }), top: "49.6%", width: "40.1%" }, { height: "5.6%", href: "https://assets.swoogo.com/uploads/1440302-6174989928c30.pdf", isExternal: true, label: "Try out today's recipe here!", left: "30%", target: "_blank", top: "55.7%", width: "40.1%" } ] }) }, { starts: "2021-10-27T07:00+01:00", ends: "2021-10-30T07:00+01:00", content: /* @__PURE__ */ v(MappedImage, { imageURL: "https://assets.swoogo.com/uploads/full/1405180-6165d9755c353.png", links: [ { gameRule: "lounge-chef-day-3", height: "5.1%", label: "Video - Dish of the Day", left: "30%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "629293589?h=f1de256de7&autoplay=1" }), top: "49.6%", width: "40.1%" }, { height: "5.6%", href: "https://assets.swoogo.com/uploads/1440303-617498ad1a701.pdf", isExternal: true, label: "Try out today's recipe here!", left: "30%", target: "_blank", top: "55.7%", width: "40.1%" } ] }) } ]), modalOverrides: { dismissStyle: { height: "65px", right: "27.5%", top: "15%", width: "65px" } } }, { height: "17.5%", label: "Join a yoga session and relax! New sessions daily", left: "89.3%", top: "52%", width: "10.3%", modal: /* @__PURE__ */ v(TimeSwitch, null, [ { starts: "2021-10-23T00:00+01:00", ends: "2021-10-26T07:00+01:00", content: /* @__PURE__ */ v(MappedImage, { imageURL: "https://assets.swoogo.com/uploads/full/1411791-6168f90091b25.png", links: [ { label: "Introduction", width: "40.4%", height: "5.3%", left: "29.8%", top: "37.4%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "629931972?h=94bb084b70&autoplay=1" }) }, { gameRule: "lounge-yoga-5", label: "5-minute yoga practice", width: "40.4%", height: "5.3%", left: "29.8%", top: "43.9%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "629930698?h=5953152d9c&autoplay=1" }) }, { gameRule: "lounge-yoga-10", label: "10-minute yoga practice", width: "40.4%", height: "5.3%", left: "29.8%", top: "50.4%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "629313380?h=ab8e681efc&autoplay=1" }) }, { gameRule: "lounge-yoga-20", label: "20-minute yoga practice", width: "40.4%", height: "5.3%", left: "29.8%", top: "57%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "629301605?h=83fc4996b0&autoplay=1" }) }, { label: "Yoga Disclaimer", href: "https://assets.swoogo.com/uploads/1411799-6168fc6a434d7.pdf", isExternal: true, target: "_blank", width: "40.1%", height: "5.6%", left: "30%", top: "63.6%" } ] }) }, { starts: "2021-10-26T07:00+01:00", ends: "2021-10-27T07:00+01:00", content: /* @__PURE__ */ v(MappedImage, { imageURL: "https://assets.swoogo.com/uploads/full/1411791-6168f90091b25.png", links: [ { label: "Introduction", width: "40.4%", height: "5.3%", left: "29.8%", top: "37.4%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "629931972?h=94bb084b70&autoplay=1" }) }, { gameRule: "lounge-yoga-5-2", label: "5-minute yoga practice", width: "40.4%", height: "5.3%", left: "29.8%", top: "43.9%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "629315862?h=6e47265379&autoplay=1" }) }, { gameRule: "lounge-yoga-10-2", label: "10-minute yoga practice", width: "40.4%", height: "5.3%", left: "29.8%", top: "50.4%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "629308069?h=3abdc6f5f5&autoplay=1" }) }, { gameRule: "lounge-yoga-20-2", label: "20-minute yoga practice", width: "40.4%", height: "5.3%", left: "29.8%", top: "57%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "629310128?h=e596ebfb94&autoplay=1" }) }, { label: "Yoga Disclaimer", href: "https://assets.swoogo.com/uploads/1411799-6168fc6a434d7.pdf", isExternal: true, target: "_blank", width: "40.1%", height: "5.6%", left: "30%", top: "63.6%" } ] }) }, { starts: "2021-10-27T07:00+01:00", ends: "2021-10-30T07:00+01:00", content: /* @__PURE__ */ v(MappedImage, { imageURL: "https://assets.swoogo.com/uploads/full/1411791-6168f90091b25.png", links: [ { label: "Introduction", width: "40.4%", height: "5.3%", left: "29.8%", top: "37.4%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "629931972?h=94bb084b70&autoplay=1" }) }, { gameRule: "lounge-yoga-5-3", label: "5-minute yoga practice", width: "40.4%", height: "5.3%", left: "29.8%", top: "43.9%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "629316986?h=14aba104a7&autoplay=1" }) }, { gameRule: "lounge-yoga-10-3", label: "10-minute yoga practice", width: "40.4%", height: "5.3%", left: "29.8%", top: "50.4%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "629318193?h=bc6b60fdc3&autoplay=1" }) }, { gameRule: "lounge-yoga-20-3", label: "20-minute yoga practice", width: "40.4%", height: "5.3%", left: "29.8%", top: "57%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "629305105?h=e14bf1178e&autoplay=1" }) }, { label: "Yoga Disclaimer", href: "https://assets.swoogo.com/uploads/1411799-6168fc6a434d7.pdf", isExternal: true, target: "_blank", width: "40.1%", height: "5.6%", left: "30%", top: "63.6%" } ] }) } ]), modalOverrides: { dismissStyle: { height: "55px", right: "27%", top: "17%", width: "55px" } } }, { height: "16.2%", href: "/roundtables", label: "Roundtable Sessions", left: "46.5%", top: "57.3%", width: "6.8%" }, { label: "Digital 2021 Prize List", height: "26.9%", left: "84.8%", top: "69.4%", width: "8.1%", modal: /* @__PURE__ */ v(MappedImage, { imageURL: "https://assets.swoogo.com/uploads/full/1420039-616dbb4ca9054.png" }), modalOverrides: { dismissStyle: { height: "60px", right: "7%", top: "12%", width: "60px" } } } ], name: "lounge" }; // frontend/src/55913/rooms/memberSpeakers.js var memberSpeakers_default = { background: "https://assets.swoogo.com/uploads/full/1391436-615c65107235e.jpg", links: [ { height: "7%", href: "/speaker-gallery", label: "Keynotes", left: "2.5%", top: "85.5%", width: "13.4%" }, { elfsightPopupID: "", elfsightPopupTrigger: "", height: "7%", href: "/sponsor-speakers", label: "Sponsors", left: "83.5%", top: "85.5%", width: "13.4%" } ], name: "member-speakers" }; // frontend/src/55913/components/Roundtables.js var Others = ({ participants, tableName }) => { const [othersCard, setOthersCard] = l3(false); const close = (e4) => { e4.stopPropagation(); setOthersCard(false); }; return /* @__PURE__ */ v("div", { className: "participant others", onclick: (e4) => { e4.stopPropagation(); setOthersCard(true); } }, /* @__PURE__ */ v("span", { className: "others_text" }, "and ", participants.length - 7, /* @__PURE__ */ v("br", null), "other(s)"), othersCard ? /* @__PURE__ */ v(Modal, { dismiss: close }, /* @__PURE__ */ v(ModalWrapper, null, /* @__PURE__ */ v(OthersCard, { participants, tableName, dismiss: close }))) : null); }; var OthersCard = ({ participants, dismiss, tableName }) => { return /* @__PURE__ */ v(Column, { styleOverride: __spreadProps(__spreadValues({}, fcenter), { padding: "5px", margin: "5px", width: "400px" }) }, /* @__PURE__ */ v("h3", { style: { padding: "5px", margin: "5px" } }, tableName), /* @__PURE__ */ v(Row, { styleOverride: { flexWrap: "wrap" } }, participants.map(({ name }, i4) => /* @__PURE__ */ v("p", { key: i4, className: "otherscard_name", style: { margin: "5px", padding: "5px" } }, name))), /* @__PURE__ */ v("button", { className: "otherscard_close", style: { background: "none", border: "2px solid white", borderRadius: "6px", padding: "5px", margin: "5px" }, onclick: dismiss }, "Close")); }; var InfoCard = ({ participant, toggle }) => /* @__PURE__ */ v("div", { style: __spreadValues(__spreadValues(__spreadValues({}, fcenter), fullscreen), whitewash), onclick: (e4) => e4.stopPropagation() }, /* @__PURE__ */ v("div", { style: __spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues({}, fr), fcenter), rounded), bg(colors.purple)), pad("2vw")), rel) }, /* @__PURE__ */ v("p", { style: __spreadProps(__spreadValues({}, abs), { right: "5px", top: 0 }), onclick: toggle }, "X"), participant.headshot && /* @__PURE__ */ v("img", { src: participant.headshot, style: { height: "18vw" } }), /* @__PURE__ */ v("div", { style: __spreadProps(__spreadValues(__spreadValues({}, fc), fcenter), { alignItems: "stretch", marginLeft: "2vw" }) }, /* @__PURE__ */ v("p", null, "Company: ", participant.company), /* @__PURE__ */ v("p", null, "Name: ", participant.name), participant.optedIn && /* @__PURE__ */ v("button", { style: { backgroundColor: "#e31d48", border: 0, borderRadius: "0.5vw" }, onclick: () => window.openDM(participant.userRegID) }, "Message me")))); var Participant = (participant) => { const [isActive, setIsActive] = l3(false); const toggle = (event) => { setIsActive(!isActive); event.stopPropagation(); }; return /* @__PURE__ */ v("div", { className: `participant participant${participant.id + 1}`, onclick: toggle }, isActive ? /* @__PURE__ */ v(InfoCard, { participant, toggle }) : null, participant.headshot ? /* @__PURE__ */ v("img", { style: { maxHeight: "100%", maxWidth: "100%" }, src: participant.headshot, title: "click me for participant info" }) : participant.initials); }; var Table = ({ id, participants = [], joinCall, seatsPerTable }) => { const overflowed = participants.length >= seatsPerTable; return /* @__PURE__ */ v("div", { id: `table${id + 1}`, style: { cursor: "pointer" }, class: "hotspot", onclick: () => joinCall(id) }, participants.slice(0, overflowed ? seatsPerTable - 1 : seatsPerTable).map((_a, i4) => { var _b = _a, { id: id2 } = _b, rest = __objRest(_b, ["id"]); return /* @__PURE__ */ v(Participant, __spreadProps(__spreadValues({ id: i4 }, rest), { userRegID: id2 })); }), overflowed ? /* @__PURE__ */ v(Others, { participants, tableName: `Table ${id + 1}` }) : null); }; var RoundTables = ({ numTables = 3, seatsPerTable = 6, dataSource = "https://crs1.tkevents.io:3001" }) => { const [dataLayer] = window.dataLayer; const { "First & Last Name": name, "Please make it more personal by uploading a head and shoulders photo:": headshot, "Company (Subsidiary)": company, "Registrant ID": userRegID, "Event ID": eventID, "I would like to opt-in to the Attendee Chat": optedIn } = dataLayer; const email = dataLayer["Email Address"]; const displayName = dataLayer["First & Last Name"]; const avatarURL = dataLayer.Headshot; const { current: jitsiWindowID } = s3(Math.floor(Math.random() * 1e5)); const [callNumber, setCallNumber] = l3(null); const [jwt, updatejwt] = l3(""); y3(() => __async(void 0, null, function* () { const interval2 = window.setInterval(() => __async(void 0, null, function* () { updatejwt(yield getJaaSToken()); }), 72e5); updatejwt(yield getJaaSToken()); return () => window.clearInterval(interval2); }), []); const options = { parentNode: document.getElementById(`${jitsiWindowID}`), roomName: callNumber === null ? null : `${jwt_decode_esm_default(jwt).sub}/ISF Roundtable ${callNumber + 1}`, jwt }; const userInfo = { avatarURL, displayName, email }; useJitsi(options, "8x8.vc"); const inCall = callNumber !== null; const [tables, setTables] = l3(new Array(numTables).fill([])); const sendHeartbeat = (tableID) => __async(void 0, null, function* () { const initials = name.split(" ").reduce((acc, val) => `${acc}${val[0]}`, ""); try { const res = yield put(`${dataSource}/rt/${userRegID}`, { company, eventID, headshot, initials, name, tableID, optedIn: optedIn === "Yes" }); if (res.status >= 300) { throw res; } } catch (e4) { if (e4.status == 404) { yield post(`${dataSource}/rt`, { company, eventID, headshot, id: userRegID, initials, name, tableID, optedIn: optedIn === "Yes" }); } else { throw e4; } } }); useInterval(() => { if (inCall) { sendHeartbeat(callNumber); } }, 1e3); useInterval(() => __async(void 0, null, function* () { const newParticipants = yield get(`${dataSource}/rt`, { maxAge: 3e3 }); const newTables = new Array(numTables).fill(null).map((_2) => []); newParticipants.sort((a4, b3) => a4.name > b3.name ? 1 : -1).forEach((_a) => { var _b = _a, { tableID } = _b, rest = __objRest(_b, ["tableID"]); newTables[tableID].push(rest); }); setTables(newTables); }), 1e3); const joinCall = (number) => { setCallNumber(number); sendHeartbeat(number); }; return /* @__PURE__ */ v(d, null, /* @__PURE__ */ v("div", { id: jitsiWindowID, style: { height: "calc(140.6% * 0.6666666)", left: "19%", position: "absolute", top: "0.8%", transform: "scale(0.75)", transformOrigin: "top left", width: "calc(123.6% * 0.6666666)" } }), Array(numTables).fill([]).map((_2, i4) => /* @__PURE__ */ v(Table, { joinCall, id: i4, participants: tables[i4], seatsPerTable }))); }; // frontend/src/55913/rooms/roundTables.js var roundTables_default = { background: "https://assets.swoogo.com/uploads/full/1411163-6168a25198f3c.jpg", extras: /* @__PURE__ */ v(RoundTables, { numTables: 4, seatsPerTable: 8, dataSource: "https://isf2021db.swoogo-retrofit.tkevents.io" }), links: [ { label: "Agenda", href: "https://isfcongress.tkeventsregistration.com/digital2021/roundtablesaschedule", isExternal: true, target: "_blank", width: "15.7%", height: "8.7%", left: "1.9%", top: "6.5%" }, { height: "8.7%", left: "82.4%", modal: /* @__PURE__ */ v(ModalWrapper, { dismissStyle: { right: "2vw", top: "2vw" } }, /* @__PURE__ */ v("div", { style: { color: "white", maxWidth: "50vw", padding: "1vw" } }, /* @__PURE__ */ v("h1", null, "ROUNDTABLE SESSIONS INSTRUCTIONS"), /* @__PURE__ */ v("p", null, "To join a discussion, click on a table. You will then automatically join a Video Meeting in the centre screen."), /* @__PURE__ */ v("p", null, "If you\u2019d like to switch to another table, simply click on the table you\u2019d like to join, and you will automatically join the relevant meeting."), /* @__PURE__ */ v("p", null, "All seats at the tables will populate with each individual currently participating in the discussion. You can click on a headshot to view who the individual is, as well as click to chat with them."), /* @__PURE__ */ v("p", null, "There are no maximum capacities. If a table appears to be full, you can still join."))), top: "6.5%", width: "15.7%" } ], name: "roundtables" }; // frontend/src/55913/rooms/sponsorSpeakers.js var sponsorSpeakers_default = { background: "https://assets.swoogo.com/uploads/full/1420057-616dbcdd37034.jpg", links: [ { height: "10.5%", href: "/member-speakers", label: "Member Speakers", left: "2.2%", top: "68.5%", width: "14.8%" }, { height: "10.5%", href: "/isf-speakers", label: "ISF Speakers", left: "82.2%", top: "68.5%", width: "14.8%" } ], name: "sponsor-speakers" }; // frontend/src/55913/rooms/sponsorTheatre.js var sponsorTheatre_default = { background: "https://assets.swoogo.com/uploads/full/1431302-61716bfc6de7e.jpg", extras: /* @__PURE__ */ v(d, null, /* @__PURE__ */ v("iframe", { allowfullscreen: true, frameborder: "0", id: "sponsor-theatre-screen", style: { width: "calc(67.4% * 1.33333)", height: "calc(76.6% * 1.33333)", left: "16.2%", top: ".9%", position: "absolute", cursor: "pointer", display: "block", zIndex: "5", overflow: "hidden", transformOrigin: "top left", transform: "scale(0.75)" }, src: "" })), links: [ { height: "8%", href: isMember ? "https://isfcongress.tkeventsregistration.com/digital2021/sponsortheatreagenda" : "https://isfcongress.tkeventsregistration.com/digital2021/sponsortheatrenm", label: "Agenda", left: "0.9%", top: "2.1%", width: "14.4%" }, { gameRule: "sponsor-theatre-beyondtrust", height: "6%", label: "BeyondTrust", left: ".8%", top: "14%", width: "14.4%", onClick: () => document.getElementById("sponsor-theatre-screen").src = "https://isfcongress.tkeventsregistration.com/digital2021/zoom?meetingPassword=839293&meetingNumber=89430789144" }, { gameRule: "sponsor-theatre-bitsight", height: "6%", label: "BitSight", left: ".8%", top: "21.8%", width: "14.4%", onClick: () => document.getElementById("sponsor-theatre-screen").src = "https://isfcongress.tkeventsregistration.com/digital2021/zoom?meetingPassword=629354&meetingNumber=85661311935" }, { gameRule: "sponsor-theatre-crossword", height: "6%", label: "Crossword Cybersecurity", left: ".8%", top: "29.6%", width: "14.4%", onClick: () => document.getElementById("sponsor-theatre-screen").src = "https://isfcongress.tkeventsregistration.com/digital2021/zoom?meetingPassword=743616&meetingNumber=87065678547" }, { gameRule: "sponsor-theatre-crowdstrike", height: "6%", label: "CrowdStrike", left: ".8%", top: "37.6%", width: "14.4%", onClick: () => document.getElementById("sponsor-theatre-screen").src = "https://isfcongress.tkeventsregistration.com/digital2021/zoom?meetingPassword=828843&meetingNumber=81827809358" }, { gameRule: "sponsor-theatre-cybel", height: "6%", label: "CybelAngel", left: ".8%", top: "45.4%", width: "14.4%", onClick: () => document.getElementById("sponsor-theatre-screen").src = "https://isfcongress.tkeventsregistration.com/digital2021/zoom?meetingPassword=892158&meetingNumber=82796969807" }, { gameRule: "sponsor-theatre-huawei", height: "6%", label: "Huawei Technologies", left: ".8%", top: "53%", width: "14.4%", onClick: () => document.getElementById("sponsor-theatre-screen").src = "https://isfcongress.tkeventsregistration.com/digital2021/zoom?meetingPassword=175907&meetingNumber=86047686931" }, { gameRule: "sponsor-theatre-ibm", height: "6%", label: "IBM Security", left: ".8%", top: "60.5%", width: "14.4%", onClick: () => document.getElementById("sponsor-theatre-screen").src = "https://isfcongress.tkeventsregistration.com/digital2021/zoom?meetingPassword=915262&meetingNumber=87947183828" }, { gameRule: "sponsor-theatre-immuniweb", height: "6%", label: "Immuniweb", left: ".8%", top: "68.5%", width: "14.4%", onClick: () => document.getElementById("sponsor-theatre-screen").src = "https://isfcongress.tkeventsregistration.com/digital2021/zoom?meetingPassword=349732&meetingNumber=84601822043" }, { gameRule: "sponsor-theatre-keysight", height: "5.7%", label: "Keysight Technologies", left: "84.5%", top: "2.1%", width: "14.4%", onClick: () => document.getElementById("sponsor-theatre-screen").src = "https://isfcongress.tkeventsregistration.com/digital2021/zoom?meetingPassword=707490&meetingNumber=86367481483" }, { gameRule: "sponsor-theatre-kpmg", height: "6%", label: "KPMG", left: "84.5%", top: "10%", width: "14.4%", onClick: () => document.getElementById("sponsor-theatre-screen").src = "https://isfcongress.tkeventsregistration.com/digital2021/zoom?meetingPassword=495243&meetingNumber=81755653742" }, { gameRule: "sponsor-theatre-onetrust", height: "6%", label: "OneTrust", left: "84.5%", top: "17.9%", width: "14.4%", onClick: () => document.getElementById("sponsor-theatre-screen").src = "https://isfcongress.tkeventsregistration.com/digital2021/zoom?meetingPassword=116506&meetingNumber=82383335639" }, { gameRule: "sponsor-theatre-scorecard", height: "6%", label: "SecurityScorecard", left: "84.5%", top: "25.8%", width: "14.4%", onClick: () => document.getElementById("sponsor-theatre-screen").src = "https://isfcongress.tkeventsregistration.com/digital2021/zoom?meetingPassword=314689&meetingNumber=86577191078" }, { gameRule: "sponsor-theatre-sentinel", height: "6%", label: "SentinelOne", left: "84.5%", top: "33.5%", width: "14.4%", onClick: () => document.getElementById("sponsor-theatre-screen").src = "https://isfcongress.tkeventsregistration.com/digital2021/zoom?meetingPassword=020968&meetingNumber=84581014428" }, { gameRule: "sponsor-theatre-surecloud", height: "6%", label: "Surecloud", left: "84.5%", top: "41.3%", width: "14.4%", onClick: () => document.getElementById("sponsor-theatre-screen").src = "https://isfcongress.tkeventsregistration.com/digital2021/zoom?meetingPassword=490478&meetingNumber=84935274755" }, { gameRule: "sponsor-theatre-synopsys", height: "6%", label: "Synopsis", left: "84.5%", top: "49%", width: "14.4%", onClick: () => document.getElementById("sponsor-theatre-screen").src = "https://isfcongress.tkeventsregistration.com/digital2021/zoom?meetingPassword=727177&meetingNumber=83241099828" }, { gameRule: "sponsor-theatre-tessian", height: "6%", label: "Tessian", left: "84.5%", top: "56.7%", width: "14.4%", onClick: () => document.getElementById("sponsor-theatre-screen").src = "https://isfcongress.tkeventsregistration.com/digital2021/zoom?meetingPassword=200423&meetingNumber=82365269269" }, { gameRule: "sponsor-theatre-veracode", height: "6%", label: "Veracode", left: "84.5%", top: "64.5%", width: "14.4%", onClick: () => document.getElementById("sponsor-theatre-screen").src = "https://isfcongress.tkeventsregistration.com/digital2021/zoom?meetingPassword=440257&meetingNumber=87991871440" } ], name: "sponsor-theatre" }; // frontend/src/55913/components/Leaderboard.js var Leaderboard = () => { const [isOpen, setOpen] = l3(false); const { "Event ID": eventId3, "Registrant ID": regId3, "I would like to opt in to the Leaderboard competition": optedIn } = window.dataLayer[0]; return /* @__PURE__ */ v("div", { id: "Leaderboard", onclick: () => setOpen(!isOpen) }, isOpen && optedIn === "Yes" && /* @__PURE__ */ v(Modal, { dismiss: (e4) => { e4.stopPropagation(); setOpen(false); } }, /* @__PURE__ */ v(ModalWrapper, null, /* @__PURE__ */ v("iframe", { style: "width: 30vw; height: 35vh; border: none;", src: `https://sponsor-gamification.herokuapp.com/leaderboard?eventId=${eventId3}®istrantId=${regId3}&swoogoAccess=false` })))); }; // frontend/src/55913/spa.js var { "Event ID": eventId2, "Registrant ID": regId2 } = window.dataLayer[0]; var rooms = [ atrium_default, breakouts_default, breakout1_default, breakout2_default, breakout3_default, breakout4_default, engagementSessions_default, lounge_default, roundTables_default, sponsorTheatre_default, { background: "https://assets.swoogo.com/uploads/full/1403310-6164ec03b7855.jpg", links: [ { label: "Huawei", href: "/exhibition-hall-platinum", width: "13.4%", height: "19.7%", left: "27.2%", top: "4.4%" }, { label: "KPMG", href: "/exhibition-hall-diamond", width: "15.8%", height: "22.2%", left: "42.3%", top: "2.1%" }, { label: "IBM", href: "/exhibition-hall-platinum", width: "13.3%", height: "20.2%", left: "60%", top: "4.1%" }, ...isMember ? [{ label: "Leaderboard", width: "10.1%", height: "6.1%", left: "86.9%", top: "2.6%", modal: /* @__PURE__ */ v(ModalWrapper, null, window.dataLayer[0]["I would like to opt in to the Leaderboard competition"] === "Yes" ? /* @__PURE__ */ v("iframe", { style: "width: 30vw; height: 35vh; border: none;", src: `https://sponsor-gamification.herokuapp.com/leaderboard?eventId=${eventId2}®istrantId=${regId2}&swoogoAccess=false` }) : /* @__PURE__ */ v("div", { style: "display: flex; flex-direction: column; justify-content: space-around; width: 650px; height: 130px; color: white;" }, /* @__PURE__ */ v("h1", { style: "font-size: 28px; margin: 0;" }, "Want to participate in the leaderboard competition?"), /* @__PURE__ */ v("p", { style: "font-size: 16px;" }, "You are not opted-in to the leaderboard gamification feature. To opt-in, please modify your registration ", /* @__PURE__ */ v("a", { href: "https://isfcongress.tkeventsregistration.com/digital2021" }, "here.")))) }] : [], { label: "SecurityScorecard", href: "/exhibition-hall-gold", width: "10.8%", height: "16%", left: "14.4%", top: "24.8%" }, { label: "SentinelOne", href: "/exhibition-hall-gold", width: "10.8%", height: "16%", left: "26.6%", top: "24.8%" }, { label: "SureCloud", href: "/exhibition-hall-gold", width: "10.8%", height: "16%", left: "38.8%", top: "24.8%" }, { label: "BitSight", href: "/exhibition-hall-gold", width: "10.8%", height: "16%", left: "50.8%", top: "24.8%" }, { label: "BeyondTrust", href: "/exhibition-hall-gold", width: "10.8%", height: "16%", left: "63.2%", top: "24.8%" }, { label: "CybelAngel", href: "/exhibition-hall-gold", width: "10.8%", height: "16%", left: "75.4%", top: "24.8%" }, { label: "ImmuniWeb", href: "/exhibition-hall-silver", width: "9.2%", height: "14.5%", left: "2.6%", top: "40.5%" }, { label: "Tessian", href: "/exhibition-hall-silver", width: "9.2%", height: "14.5%", left: "14.5%", top: "40.5%" }, { label: "OneTrust Vendorpedia", href: "/exhibition-hall-silver", width: "9.2%", height: "14.5%", left: "24.3%", top: "40.5%" }, { label: "Synopsys", href: "/exhibition-hall-silver", width: "9.2%", height: "14.5%", left: "36.4%", top: "40.5%" }, { label: "Veracode", href: "/exhibition-hall-silver", width: "9.2%", height: "14.5%", left: "45.8%", top: "40.5%" }, { label: "CrowdStrike", href: "/exhibition-hall-silver", width: "9.2%", height: "14.5%", left: "55.3%", top: "40.5%" }, { label: "Keysight", href: "/exhibition-hall-silver", width: "9.2%", height: "14.5%", left: "66.8%", top: "40.5%" }, { label: "Crossword", href: "/exhibition-hall-silver", width: "9.2%", height: "14.5%", left: "76.9%", top: "40.5%" }, { label: "CRMG", href: "/exhibition-hall-silver", width: "9.2%", height: "14.5%", left: "88.7%", top: "40.5%" }, { label: "Passport to Prizes - Instructions", width: "16.1%", height: "24.6%", left: "5.8%", top: "57.4%", modal: /* @__PURE__ */ v(ModalWrapper, null, /* @__PURE__ */ v("div", { style: "display: flex; flex-direction: column; justify-content: space-evenly; width: 700px; height: 400px; color: white;" }, /* @__PURE__ */ v("h1", { style: "font-size: 28px; margin: 0;" }, "PASSPORT TO PRIZES - INSTRUCTIONS:"), /* @__PURE__ */ v("p", { style: "font-size: 16px;" }, "To enter the prize draw, look for nine letters hidden in the participating sponsors\u2019 booths. Look out for the Congress logo! Once you have found all the letters, unscramble them to create a word, and submit your answer via the pop-up form in the Exhibition Hall."), /* @__PURE__ */ v("p", { style: "font-size: 16px;" }, "Please ensure that you have submitted your answer by 18:00 UTC on Wednesday 27 October."), /* @__PURE__ */ v("p", { style: "font-size: 16px;" }, "Prize draw winners will be notified from Thursday 28 October and all entrants may apply for details of the winning participants by contacting us at ", /* @__PURE__ */ v("a", { href: "mailto:congress@securityforum.org", target: "_blnk" }, "congress@securityforum.org")), /* @__PURE__ */ v("p", { style: "font-size: 16px;" }, "Note that entrants must visit all nine hidden locations to be eligible for the prize draw."), /* @__PURE__ */ v("p", { style: "font-size: 16px;" }, "By submitting your answer you are opting into the Passport to Prizes draw and are consenting to being contacted by a sponsor in connection with sponsored prizes. After the draw sponsors will contact prize winners and will deliver prizes directly to the winner\u2019s address."), /* @__PURE__ */ v("p", { style: "font-size: 16px;" }, "Full terms and conditions are available ", /* @__PURE__ */ v("a", { target: "_blnk", href: "https://assets.swoogo.com/uploads/1406575-6166d0abbdfc1.pdf" }, "here"), "."))) }, { label: "Passport to Prizes - Submit Answers", width: "16.1%", height: "10.5%", left: "5.8%", top: "82.3%", onClick: () => document.getElementById("isf-2021-prize-submit").click() }, { label: "Enter Sponsor Theatre", href: "/sponsor-theatre", width: "17.5%", height: "22.9%", left: "71.2%", top: "56.4%" }, { label: "Agenda", href: isMember ? "https://isfcongress.tkeventsregistration.com/digital2021/sponsortheatreagenda" : "https://isfcongress.tkeventsregistration.com/digital2021/sponsortheatrenm", isExternal: true, target: "_blank", width: "6.5%", height: "7.5%", left: "89.6%", top: "66.1%" } ], name: "exhibition-hall" }, { background: "https://assets.swoogo.com/uploads/full/1405341-6165e671986ef.jpg", links: [ ...isMember ? [{ display: "none", label: "Leaderboard", modal: /* @__PURE__ */ v(ModalWrapper, null, /* @__PURE__ */ v("iframe", { style: "width: 30vw; height: 35vh; border: none;", src: "https://sponsor-gamification.herokuapp.com/leaderboard?eventId=41082®istrantId=10457086&swoogoAccess=false" })) }] : [], { label: "Previous Room", href: "/exhibition-hall-silver", width: "17%", height: "8.0%", left: "23.3%", top: "89.0%" }, { label: "Next Room", href: "/exhibition-hall-platinum", width: "17.0%", height: "8%", left: "58.9%", top: "89.6%" }, { label: "Back To Main Hall", href: "/exhibition-hall", width: "18.2%", height: "8%", left: "40.8%", top: "89.3%" }, { label: "KPMG Logo", gaAction: "KPMG", width: "21.6%", height: "23.6%", left: "71.1%", top: "6.1%", modal: /* @__PURE__ */ v(SponsorModal, { sponsorID: "181217/kpmg" }), modalOverrides: { dismissStyle: { color: "#3c1d4a", fontSize: "27px", textDecoration: "none !important", top: "30px", padding: "10px 20px", textAlign: "center" } } }, { gameRule: "exhibition-chat-kpmg", label: "Chat With KPMG", gaAction: "KPMG", width: "5.7%", height: "12.5%", left: "14.8%", top: "39.3%", CometChatID: "kpmg" }, { gameRule: "exhibition-download-kpmg", label: "KPMG - From Enforcer To Influencer", gaAction: "KPMG", href: "https://assets.swoogo.com/uploads/1407949-616729468ef19.pdf", isExternal: true, target: "_blank", width: "9.3%", height: "16.7%", left: "24.0%", top: "67.2%" }, { gameRule: "exhibition-download-kpmg-2", label: "KPMG - Human Firewalling", gaAction: "KPMG", href: "https://assets.swoogo.com/uploads/1407952-616729725ea21.pdf", isExternal: true, target: "_blank", width: "6.1%", height: "15.0%", left: "46.8%", top: "65.1%" }, { gameRule: "exhibition-video-kpmg", label: "KPMG Video", gaAction: "KPMG", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "617090363?h=869511cab2&autoplay=1" }), width: "15.2%", height: "17.7%", left: "74.9%", top: "44.4%" }, { label: "KPMG Gamification", gaAction: "KPMG", width: "5.2%", height: "8.7%", left: "79.9%", top: "71.4%", modal: /* @__PURE__ */ v(ModalWrapper, null, /* @__PURE__ */ v(Clue, { letter: '"K"!' })) } ], name: "exhibition-hall-diamond" }, { background: "https://assets.swoogo.com/uploads/full/1405347-6165e6b240143.jpg", links: [ ...isMember ? [{ display: "none", label: "Leaderboard", modal: /* @__PURE__ */ v(ModalWrapper, null, /* @__PURE__ */ v("iframe", { style: "width: 30vw; height: 35vh; border: none;", src: "https://sponsor-gamification.herokuapp.com/leaderboard?eventId=41082®istrantId=10457086&swoogoAccess=false" })) }] : [], { label: "Previous Room", href: "/exhibition-hall-diamond", width: "17%", height: "8%", left: "24%", top: "89.5%" }, { label: "Next Room", href: "/exhibition-hall-gold", width: "17.0%", height: "8%", left: "58.9%", top: "89.6%" }, { label: "Back To Main Hall", href: "/exhibition-hall", width: "18.2%", height: "8%", left: "41%", top: "89.3%" }, { label: "Huawei Technologies Logo", gaAction: "Huawei", width: "38.6%", height: "12.6%", left: "7.5%", top: "21.4%", modal: /* @__PURE__ */ v(SponsorModal, { sponsorID: "181218/huawei-technologies" }), modalOverrides: { dismissStyle: { top: "30px", padding: "10px 20px" } } }, { gameRule: "exhibition-video-huawei", label: "Huawei Technologies Video", gaAction: "Huawei", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "617060003?h=d72ed2bd3b&autoplay=1" }), width: "10%", height: "11.4%", left: "9.4%", top: "49%" }, { gameRule: "exhibition-chat-huawei", label: "Chat With Huawei Technologies", gaAction: "Huawei", width: "5.4%", height: "12.1%", left: "44%", top: "42.6%", CometChatID: "huawei" }, { gameRule: "exhibition-download-huawei", label: "Transparency Centre Brochure", gaAction: "Huawei", href: "https://assets.swoogo.com/uploads/1407902-616725076fe2d.pdf", target: "_blank", width: "10.9%", height: "15.4%", left: "9.4%", top: "60.4%" }, { gameRule: "exhibition-download-huawei-2", label: "5G Core Audit Report", gaAction: "Huawei", href: "https://assets.swoogo.com/uploads/1407913-616725f2ba3ef.pdf", target: "_blank", width: "5.8%", height: "12.5%", left: "30.2%", top: "65.5%" }, { label: "Huawei Technologies Gamification", gaAction: "Huawei", width: "3.8%", height: "7.2%", left: "36.4%", top: "70.1%", modal: /* @__PURE__ */ v(ModalWrapper, null, /* @__PURE__ */ v(Clue, { letter: '"B"!' })) }, { label: "IBM Logo", gaAction: "IBM", width: "42.5%", height: "10.2%", left: "54.6%", top: "22.8%", modal: /* @__PURE__ */ v(SponsorModal, { sponsorID: "181219/ibm-security" }), modalOverrides: { dismissStyle: { top: "30px", padding: "10px 20px" } } }, { gameRule: "exhibition-video-ibm", label: "IBM Security Video", gaAction: "IBM", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "637530622?h=3a62e00a12&autoplay=1" }), width: "10%", height: "11%", left: "82.6%", top: "47.9%" }, { gameRule: "exhibition-chat-ibm", label: "Chat With IBM Security", gaAction: "IBM", width: "8.4%", height: "15.1%", left: "51.0%", top: "40.6%", CometChatID: "ibm" }, { label: "IBM Security Gamification", gaAction: "IBM", width: "5.8%", height: "16.2%", left: "62.4%", top: "64.1%", modal: /* @__PURE__ */ v(ModalWrapper, null, /* @__PURE__ */ v(Clue, { letter: '"R" and "H"!' })) }, { gameRule: "exhibition-download-ibm", label: "Zero Trust Security", gaAction: "IBM", href: "https://assets.swoogo.com/uploads/1407932-6167282d284e1.pdf", isExternal: true, target: "_blank", width: "8%", height: "13.4%", left: "54.2%", top: "63.9%" }, { gameRule: "exhibition-download-ibm-2", label: "Threat Report", gaAction: "IBM", href: "https://assets.swoogo.com/uploads/1407935-61672842cb68d.pdf", isExternal: true, target: "_blank", width: "8.9%", height: "17.7%", left: "82.8%", top: "59.2%" } ], extras: /* @__PURE__ */ v(IBMPopup, null), name: "exhibition-hall-platinum" }, { background: "https://assets.swoogo.com/uploads/full/1405346-6165e6b23fa72.jpg", links: [ ...isMember ? [{ display: "none", label: "Leaderboard", modal: /* @__PURE__ */ v(ModalWrapper, null, /* @__PURE__ */ v("iframe", { style: "width: 30vw; height: 35vh; border: none;", src: "https://sponsor-gamification.herokuapp.com/leaderboard?eventId=41082®istrantId=10457086&swoogoAccess=false" })) }] : [], { label: "Previous Room", href: "/exhibition-hall-platinum", width: "17%", height: "8.0%", left: "23.3%", top: "89.0%" }, { label: "Next Room", href: "/exhibition-hall-silver", width: "17.0%", height: "8%", left: "58.9%", top: "89.6%" }, { label: "Back To Main Hall", href: "/exhibition-hall", width: "18.2%", height: "8%", left: "40.8%", top: "89.3%" }, { label: "SecurityScorecard Logo", gaAction: "SecurityScorecard", width: "21.4%", height: "6.9%", left: "11.5%", top: "2.7%", modal: /* @__PURE__ */ v(SponsorModal, { sponsorID: "181224/securityscorecard" }), modalOverrides: { dismissStyle: { top: "30px", padding: "10px 20px" } } }, { gameRule: "exhibition-chat-scorecard", label: "Chat With SecurityScorecard", gaAction: "SecurityScorecard", width: "5.3%", height: "9.4%", left: "6.2%", top: "4.5%", CometChatID: "securityscorecard" }, { gameRule: "exhibition-video-scorecard", label: "SecurityScorecard Video", gaAction: "SecurityScorecard", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "617094761?h=6818d0621b&autoplay=1" }), width: "6.4%", height: "8.1%", left: "19.3%", top: "12.9%" }, { label: "SecurityScorecard Gamification", gaAction: "SecurityScorecard", width: "6.6%", height: "10.6%", left: "19.3%", top: "23.1%", modal: /* @__PURE__ */ v(ModalWrapper, null, /* @__PURE__ */ v(Clue, { letter: '"E"!' })) }, { gameRule: "exhibition-download-scorecard", label: "Atlas Data Sheet", gaAction: "SecurityScorecard", href: "https://assets.swoogo.com/uploads/1407795-6167213ccbd60.pdf", isExternal: true, target: "_blank", width: "9.3%", height: "11.4%", left: "9.8%", top: "24.6%" }, { gameRule: "exhibition-download-scorecard-2", label: "Ratings Data Sheet", gaAction: "SecurityScorecard", href: "https://assets.swoogo.com/uploads/1407798-6167215d96c14.pdf", isExternal: true, target: "_blank", width: "5%", height: "10.6%", left: "28.7%", top: "25%" }, { label: "BeyondTrust Logo", gaAction: "BeyondTrust", width: "20.9%", height: "7.8%", left: "39.6%", top: "2.8%", modal: /* @__PURE__ */ v(SponsorModal, { sponsorID: "181223/beyondtrust" }), modalOverrides: { dismissStyle: { top: "30px", padding: "10px 20px" } } }, { gameRule: "exhibition-chat-beyondtrust", label: "Chat With BeyondTrust", gaAction: "BeyondTrust", width: "4.7%", height: "10.2%", left: "35%", top: "4.9%", CometChatUserID: "12448627" }, { label: "BeyondTrust Gamification", gaAction: "BeyondTrust", width: "5.6%", height: "10.9%", left: "48.2%", top: "23.5%", modal: /* @__PURE__ */ v(ModalWrapper, null, /* @__PURE__ */ v(Clue, { letter: '"A"!' })) }, { gameRule: "exhibition-video-beyondtrust", label: "BeyondTrust Video", gaAction: "BeyondTrust", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "617043083?h=89436136b6&autoplay=1" }), width: "6.3%", height: "7.7%", left: "46.9%", top: "12.9%" }, { gameRule: "exhibition-download-beyondtrust", label: "5 Critical Endpoint Security Steps", gaAction: "BeyondTrust", href: "https://assets.swoogo.com/uploads/1407805-616721a114d78.pdf", isExternal: true, target: "_blank", width: "8.7%", height: "11.2%", left: "38.5%", top: "24.6%" }, { gameRule: "exhibition-download-beyondtrust-2", label: "Universal Privilege Management", gaAction: "BeyondTrust", href: "https://assets.swoogo.com/uploads/1407808-616721d080dfb.pdf", isExternal: true, target: "_blank", width: "5.3%", height: "11.2%", left: "56.5%", top: "24.6%" }, { label: "CybelAngel Logo", gaAction: "CybelAngel", width: "21%", height: "8.4%", left: "67.3%", top: "2.1%", modal: /* @__PURE__ */ v(SponsorModal, { sponsorID: "181225/cybelangel" }), modalOverrides: { dismissStyle: { top: "30px", padding: "10px 20px" } } }, { gameRule: "exhibition-chat-cybel", label: "Chat With CybelAngel", gaAction: "CybelAngel", width: "4.5%", height: "10.6%", left: "62.8%", top: "5.4%", CometChatID: "cybelangel" }, { gameRule: "exhibition-video-cybel", label: "CybelAngel Video", gaAction: "CybelAngel", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "617056860?h=ec60827d91&autoplay=1" }), width: "6.9%", height: "8.4%", left: "74.1%", top: "12.6%" }, { label: "CybelAngel Gamification", gaAction: "CybelAngel", width: "6%", height: "10.1%", left: "76.1%", top: "23.8%", modal: /* @__PURE__ */ v(ModalWrapper, null, /* @__PURE__ */ v(Clue, { letter: '"N"' })) }, { gameRule: "exhibition-download-cybel", label: "Guide To Ransomware", gaAction: "CybelAngel", href: "https://assets.swoogo.com/uploads/1407824-6167228bdc22f.pdf", isExternal: true, target: "_blank", width: "8.7%", height: "11.6%", left: "66.6%", top: "24%" }, { gameRule: "exhibition-download-cybel-2", label: "Executive Overview", gaAction: "CybelAngel", href: "https://assets.swoogo.com/uploads/1407848-616723847326e.pdf", isExternal: true, target: "_blank", width: "5.5%", height: "11.3%", left: "85.1%", top: "25%" }, { label: "BitSight Logo", gaAction: "BitSight", width: "21.9%", height: "10.1%", left: "10.5%", top: "42%", modal: /* @__PURE__ */ v(SponsorModal, { sponsorID: "181221/bitsight" }), modalOverrides: { dismissStyle: { top: "30px", padding: "10px 20px" } } }, { gameRule: "exhibition-chat-bitsight", label: "Chat With BitSight", gaAction: "BitSight", width: "4.7%", height: "9.3%", left: "5.5%", top: "46.7%", CometChatID: "bitsight" }, { gameRule: "exhibition-video-bitsight", label: "BitSight Video", gaAction: "BitSight", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "617106953?h=01b761c305&autoplay=1" }), width: "6.8%", height: "8.5%", left: "18.6%", top: "52.1%" }, { gameRule: "exhibition-download-bitsight", label: "TPRM Solution Brief", gaAction: "BitSight", href: "https://assets.swoogo.com/uploads/1407860-616723c346ae4.pdf", isExternal: true, target: "_blank", width: "9.2%", height: "12.2%", left: "9%", top: "67.1%" }, { gameRule: "exhibition-download-bitsight-2", label: "Security Ratings", gaAction: "BitSight", href: "https://assets.swoogo.com/uploads/1407867-616723eacaa2e.pdf", isExternal: true, target: "_blank", width: "5.2%", height: "11.7%", left: "28.2%", top: "66.7%" }, { gameRule: "exhibition-surecloud-chat", label: "Chat With SureCloud", gaAction: "SureCloud", width: "4.2%", height: "9.8%", left: "35.6%", top: "46.3%", CometChatID: "surecloud" }, { label: "SureCloud Logo", gaAction: "SureCloud", width: "20.2%", height: "7.6%", left: "39.8%", top: "41.3%", modal: /* @__PURE__ */ v(SponsorModal, { sponsorID: "181220/surecloud" }), modalOverrides: { dismissStyle: { top: "30px", padding: "10px 20px" } } }, { gameRule: "exhibition-video-surecloud", label: "SureCloud Video", gaAction: "SureCloud", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "617098337?h=f714fbef1d&autoplay=1" }), width: "6.1%", height: "7.3%", left: "42.7%", top: "52.2%" }, { label: "SureCloud Gamification", gaAction: "SureCloud", width: "5.8%", height: "10.5%", left: "47.6%", top: "61.6%", modal: /* @__PURE__ */ v(ModalWrapper, null, /* @__PURE__ */ v(Clue, { letter: '"C"!' })) }, { gameRule: "exhibition-download-contenthub", label: "Content Hub", gaAction: "SureCloud", href: "https://hub.surecloud.com/digital-2021-isf-world-congress", isExternal: true, target: "_blank", width: "8.3%", height: "11.8%", left: "38.6%", top: "65.7%" }, { label: "SentinelOne Logo", gaAction: "SentinelOne", width: "8.9%", height: "11.8%", left: "67.4%", top: "41.4%", modal: /* @__PURE__ */ v(SponsorModal, { sponsorID: "181222/sentinelone" }), modalOverrides: { dismissStyle: { top: "30px", padding: "10px 20px" } } }, { label: "SentinelOne Gamification", gaAction: "SentinelOne", width: "4.7%", height: "9.6%", left: "77.4%", top: "63.6%", modal: /* @__PURE__ */ v(ModalWrapper, null, /* @__PURE__ */ v(Clue, { letter: '"M"!' })) }, { gameRule: "exhibition-video-sentinel", label: "SentinelOne Video", gaAction: "SentinelOne", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "617097068?h=b97333c69a&autoplay=1" }), width: "6.1%", height: "7.4%", left: "69.5%", top: "53%" }, { gameRule: "exhibition-chat-sentinel", label: "Chat With SentinelOne", gaAction: "SentinelOne", width: "4.5%", height: "8.8%", left: "63.5%", top: "47.1%", CometChatID: "sentinelone" }, { gameRule: "exhibition-download-sentinel", label: "Successful Threat Hunting", gaAction: "SentinelOne", href: "https://assets.swoogo.com/uploads/1407887-6167244724e32.pdf", isExternal: true, target: "_blank", width: "8.9%", height: "12.1%", left: "67.2%", top: "66.3%" }, { gameRule: "exhibition-download-sentinel-2", label: "Autonomous Ai Platforms", gaAction: "SentinelOne", href: "https://assets.swoogo.com/uploads/1407895-6167249a605e9.pdf", isExternal: true, target: "_blank", width: "5.7%", height: "13.0%", left: "86.3%", top: "68.0%" } ], name: "exhibition-hall-gold" }, { background: "https://assets.swoogo.com/uploads/full/1411725-6168e10f91d65.jpg", links: [ ...isMember ? [{ display: "none", label: "Leaderboard", modal: /* @__PURE__ */ v(ModalWrapper, null, /* @__PURE__ */ v("iframe", { style: "width: 30vw; height: 35vh; border: none;", src: "https://sponsor-gamification.herokuapp.com/leaderboard?eventId=41082®istrantId=10457086&swoogoAccess=false" })) }] : [], { label: "Previous Room", href: "/exhibition-hall-gold", width: "17%", height: "8.0%", left: "23.3%", top: "89.0%" }, { label: "Next Room", href: "/exhibition-hall-diamond", width: "17.0%", height: "8%", left: "58.9%", top: "89.6%" }, { label: "Back To Main Hall", href: "/exhibition-hall", width: "18.2%", height: "8%", left: "40.8%", top: "89.3%" }, { label: "Tessian Logo", gaAction: "Tessian", width: "16.5%", height: "6.5%", left: "4.1%", top: "14.1%", modal: /* @__PURE__ */ v(SponsorModal, { sponsorID: "181231/tessian" }), modalOverrides: { dismissStyle: { top: "30px", padding: "10px 20px" } } }, { gameRule: "exhibition-video-tessian", label: "Tessian Video", gaAction: "Tessian", width: "6.5%", height: "7.6%", left: "9.6%", top: "20.4%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "617104316?h=61651297d3&autoplay=1" }) }, { gameRule: "exhibition-chat-tessian", label: "Chat With Tessian", gaAction: "Tessian", href: "", width: "5.2%", height: "13%", left: "0.1%", top: "10.9%", CometChatID: "tessian" }, { gameRule: "exhibition-download-tessian", label: "Tessian Resources", gaAction: "Tessian", isExternal: true, target: "_blank", href: "https://www.tessian.com/resources/?utm_medium=sponsor&utm_source=isf&utm_campaign=isfdigitalcongress", width: "4.9%", height: "10.4%", left: "3.7%", top: "29.7%" }, { label: "OneTrust Logo", gaAction: "OneTrust", width: "13.5%", height: "8.4%", left: "27.7%", top: "12.3%", modal: /* @__PURE__ */ v(SponsorModal, { sponsorID: "181229/onetrust" }), modalOverrides: { dismissStyle: { top: "30px", padding: "10px 20px" } } }, { gameRule: "exhibition-video-onetrust", label: "OneTrust Video", gaAction: "OneTrust", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "617093262?h=b6555a95c5&autoplay=1" }), width: "6.2%", height: "7.7%", left: "30.6%", top: "20.9%" }, { gameRule: "exhibition-chat-onetrust", label: "Chat With OneTrust", gaAction: "OneTrust", href: "", width: "5.6%", height: "9.8%", left: "22.1%", top: "11.1%", CometChatUserID: "11513669" }, { gameRule: "exhibition-onetrust-download", label: "OneTrust Download", gaAction: "OneTrust", href: "https://assets.swoogo.com/uploads/1408030-61672d74305d5.pdf", isExternal: true, target: "_blank", width: "4.9%", height: "9.7%", left: "25.6%", top: "29.9%" }, { label: "ImmuniWeb Logo", gaAction: "ImmuniWeb", width: "9.0%", height: "5.8%", left: "48.3%", top: "8.3%", modal: /* @__PURE__ */ v(SponsorModal, { sponsorID: "181233/immuniweb" }), modalOverrides: { dismissStyle: { top: "30px", padding: "10px 20px" } } }, { gameRule: "exhibition-video-immuniweb", label: "ImmuniWeb Video", gaAction: "ImmuniWeb", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "617088520?h=74e756f9e5&autoplay=1" }), width: "5.2%", height: "6.5%", left: "50.3%", top: "14.3%" }, { gameRule: "exhibition-chat-immuniweb", label: "Chat With ImmuniWeb", gaAction: "ImmuniWeb", href: "", width: "6.7%", height: "12.7%", left: "41.8%", top: "6.7%", CometChatID: "immuniWeb" }, { gameRule: "exhibition-download-immuniweb", label: "ImmuniWeb Presentation", gaAction: "ImmuniWeb", href: "https://assets.swoogo.com/uploads/1408066-61672edc79c9c.pdf", isExternal: true, target: "_blank", width: "4.8%", height: "10%", left: "43.7%", top: "20.6%" }, { label: "Keysight Technologies Logo", gaAction: "Keysight Technologies", width: "10.9%", height: "6.2%", left: "62.9%", top: "13.9%", modal: /* @__PURE__ */ v(SponsorModal, { sponsorID: "181230/keysight-technologies" }), modalOverrides: { dismissStyle: { top: "30px", padding: "10px 20px" } } }, { gameRule: "exhibition-video-keysight", label: "Keysight Technologies Video", gaAction: "Keysight Technologies", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "620035293?h=504f29e95f&autoplay=1" }), width: "6.7%", height: "8.1%", left: "65.0%", top: "20.4%" }, { gameRule: "exhibition-chat-keysight", label: "Chat With Keysight Technologies", gaAction: "Keysight Technologies", href: "", width: "5.0%", height: "9.5%", left: "57.9%", top: "10.9%", CometChatID: "keysight" }, { gameRule: "exhibition-download-keysight", label: "Keysight Technologies Download", gaAction: "Keysight Technologies", href: "https://assets.swoogo.com/uploads/1408012-61672c318e050.pdf", isExternal: true, target: "_blank", width: "5.2%", height: "10.0%", left: "60.4%", top: "29.2%" }, { label: "Crossword Cybersecurity Logo", gaAction: "Crossword Cybersecurity", width: "14.7%", height: "8.6%", left: "82.8%", top: "11.8%", modal: /* @__PURE__ */ v(SponsorModal, { sponsorID: "181232/crossword-cybersecurity" }), modalOverrides: { dismissStyle: { top: "30px", padding: "10px 20px" } } }, { gameRule: "exhibition-video-crossword", label: "Crossword Cybersecurity Video", gaAction: "Crossword Cybersecurity", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "617046480?h=cfd965157c&autoplay=1" }), width: "6.8%", height: "7.6%", left: "85.9%", top: "20.7%" }, { gameRule: "exhibition-chat-crossword", label: "Chat With Crossword Cybersecurity", gaAction: "Crossword Cybersecurity", href: "", width: "5.4%", height: "12%", left: "77.3%", top: "9.5%", CometChatID: "crosswordcybersecurity" }, { gameRule: "exhibition-download-crossword", label: "Crossword Cybersecurity Download", gaAction: "Crossword Cybersecurity", href: "https://assets.swoogo.com/uploads/1408043-61672df04fa98.pdf", isExternal: true, target: "_blank", width: "5.4%", height: "10.0%", left: "80.4%", top: "29.9%" }, { label: "Synopsys Logo", gaAction: "Synopsys", width: "18.2%", height: "9.1%", left: "12.8%", top: "45.2%", modal: /* @__PURE__ */ v(SponsorModal, { sponsorID: "181227/synopsys" }), modalOverrides: { dismissStyle: { top: "30px", padding: "10px 20px" } } }, { gameRule: "exhibition-vido-synopsys", label: "Synopsys Video", gaAction: "Synopsys", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "617102402?h=73f0d61abb&autoplay=1" }), width: "7.5%", height: "9.0%", left: "17.9%", top: "54.3%" }, { gameRule: "exhibition-chat-synopsys", label: "Chat with Synopsys", gaAction: "Synopsys", href: "", width: "5.7%", height: "9.5%", left: "6.8%", top: "44.6%", CometChatID: "synopsys" }, { gameRule: "exhibition-download-synopsys", label: "Synopsys - BSIMM Datasheet", gaAction: "Synopsys", href: "https://assets.swoogo.com/uploads/1408019-61672cd25caf1.pdf", isExternal: true, target: "_blank", width: "6.5%", height: "13.0%", left: "10.6%", top: "67.5%" }, { gameRule: "exhibition-download-synopsys-2", label: "Synopsys - Software Integrity Portfolio", gaAction: "Synopsys", href: "https://assets.swoogo.com/uploads/1411965-61694f6430283.pdf", isExternal: true, target: "_blank", width: "5.9%", height: "13.0%", left: "25.7%", top: "66.4%" }, { label: "Veracode Logo", gaAction: "Veracode", width: "17.0%", height: "8.8%", left: "41.8%", top: "45.0%", modal: /* @__PURE__ */ v(SponsorModal, { sponsorID: "181226/veracode" }), modalOverrides: { dismissStyle: { top: "30px", padding: "10px 20px" } } }, { gameRule: "exhibition-video-veracode", label: "Veracode Video", gaAction: "Veracode", modal: /* @__PURE__ */ v(YouTube, { vidId: "6Fq_UMgwX4I?autoplay=1" }), width: "7.3%", height: "8.4%", left: "46.3%", top: "53.6%" }, { gameRule: "exhibition-chat-veracode", label: "Chat with Veracode", gaAction: "Veracode", href: "", width: "5.7%", height: "10.5%", left: "35.9%", top: "43.6%", CometChatUserID: "12448704" }, { gameRule: "exhibition-download-veracode", label: "Download InfoSheet", gaAction: "Veracode", href: "https://assets.swoogo.com/uploads/1408038-61672d9be7bdb.pdf", isExternal: true, target: "_blank", width: "7.2%", height: "14.1%", left: "39.4%", top: "65.6%" }, { gameRule: "exhibition-download-veracode-2", label: "APPSEC Resources And Insights", gaAction: "Veracode", href: "https://www.veracode.com/events/isf-digital-congress", isExternal: true, target: "_blank", width: "6.5%", height: "14.1%", left: "53.6%", top: "65.7%" }, { label: "CrowdStrike Logo", gaAction: "CrowdStrike", width: "18.2%", height: "10.2%", left: "69.1%", top: "44.3%", modal: /* @__PURE__ */ v(SponsorModal, { sponsorID: "181228/crowdstrike" }), modalOverrides: { dismissStyle: { top: "30px", padding: "10px 20px" } } }, { gameRule: "exhibition-chat-crowdstrike", label: "Chat With CrowdStrike", gaAction: "CrowdStrike", href: "", width: "4.7%", height: "9.1%", left: "64.0%", top: "44.1%", CometChatUserID: "12448643" }, { gameRule: "exhibition-video-crowdstrike", label: "CrowdStrike Video", gaAction: "CrowdStrike", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "617054803?h=e1d6b5e006&autoplay=1" }), width: "7.6%", height: "8.6%", left: "73.8%", top: "53.8%" }, { gameRule: "exhibition-download-crowdstrike", label: "Report 2021 GTR", gaAction: "Crowdstrike", href: "https://assets.swoogo.com/uploads/1408048-61672e21f1364.pdf", isExternal: true, target: "_blank", width: "6.3%", height: "13.5%", left: "67.8%", top: "65.9%" }, { gameRule: "exhibition-download-crowdstrike-2", label: "White Paper", gaAction: "CrowdStrike", href: "https://assets.swoogo.com/uploads/1408055-61672e644e7cf.pdf", isExternal: true, target: "_blank", width: "6.1%", height: "13.7%", left: "81.9%", top: "66.8%" } ], name: "exhibition-hall-silver" }, { background: "https://assets.swoogo.com/uploads/full/1386563-615763db46b1e.jpg", links: [ ...isMember ? [{ display: "none", label: "Leaderboard", modal: /* @__PURE__ */ v(ModalWrapper, null, /* @__PURE__ */ v("iframe", { style: "width: 30vw; height: 35vh; border: none;", src: "https://sponsor-gamification.herokuapp.com/leaderboard?eventId=41082®istrantId=10457086&swoogoAccess=false" })) }] : [], { label: "ISF", href: "/isf-speakers", width: "8.7%", height: "8.7%", left: "2.3%", top: "69.7%" }, { label: "Brian Cox", width: "17%", height: "46%", left: "2.2%", top: "20.9%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "621813423?h=75db7307c4&autoplay=1" }) }, { label: "Max Mckeown", width: "14.6%", height: "38.7%", left: "20.1%", top: "25.1%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "621815982?h=2db5093369&autoplay=1" }) }, { label: "Rachel Botsman", gaAction: "", width: "13.8%", height: "35.2%", left: "35.7%", top: "27.4%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "621815121?h=009f5bf1d9&autoplay=1" }) }, { label: "Sadie Creese", width: "13.7%", height: "34.6%", left: "50.3%", top: "27.5%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "621815589?h=0d003163e0&autoplay=1" }) }, { label: "Steve Wozniak", width: "14.9%", height: "38.9%", left: "64.9%", top: "24.9%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "629262645?h=8d77d497e3&autoplay=1" }) }, { label: "Viviane Reding", width: "16.9%", height: "45.2%", left: "80.5%", top: "20.8%", modal: /* @__PURE__ */ v(VimeoFrame, { vidId: "621814231?h=e457c89e16&autoplay=1" }) }, { label: "Members", href: "/member-speakers", width: "14.8%", height: "10.5%", left: "82.2%", top: "68.5%" } ], name: "speaker-gallery", extras: /* @__PURE__ */ v(DisplayOnce, { id: "speakergallery-welcome" }, /* @__PURE__ */ v(ModalWrapper, null, /* @__PURE__ */ v("p", { style: { color: "white" } }, "Click on a frame to hear from these speakers"))) }, isfSpeakers_default, memberSpeakers_default, sponsorSpeakers_default, auditorium_default, explorationZone_default ]; var popups = [ { ID: "53553345-f781-4bbd-84f7-1259183467d5", trigger: "exploration-threat-crypto" }, { ID: "67063d50-66ef-4f8d-92ce-efe9054926a9", trigger: "exploration-threat-hacktivists" }, { ID: "b3682b8b-dec6-4f03-8f7b-43501cdb4a43", trigger: "exploration-threat-polluted" }, { ID: "bcba426d-82cc-44c2-a925-7619143ed749", trigger: "exploration-threat-virtual" }, { ID: "b3cec46e-2ad8-45db-a7ef-9238a3b7a765", trigger: "exploration-threat-cloudy" }, { ID: "f20686f9-49a8-4bb0-a1b5-d38bdf282062", trigger: "exploration-threat-biased" }, { ID: "51e33614-6e64-42f2-8980-2d7c4379ec2c", trigger: "exploration-threat-soc" }, { ID: "2b276c75-0bd7-49e5-8bed-10b71ff7b81d", trigger: "exploration-threat-coding" }, { ID: "7c32bf0b-b14d-4389-99fc-c665ecb7efc3", trigger: "exploration-threat-ransoms" }, { ID: "079011ed-eed2-4540-a1f3-94a3ba7c5a6d", trigger: "isf-2021-prize-submit" }, { ID: "8ed9d794-fe78-4af0-b487-3d0863a10143", label: "Lobby welcome popup" }, { ID: "d9ee5ab7-d61a-4341-ac11-549a9a486f7f", label: "How to Earn Points" }, { ID: "4b34d05e-99c2-4311-9d36-02c054a368de", trigger: "lounge-connect-4" }, { ID: "3af98254-2695-43d8-aa50-42100489653b", trigger: "lounge-pacman" }, { ID: "ff4f4358-1580-4248-9e43-ba08733e98de", trigger: "lounge-memory" } ]; var handleNewRoute = ({ previous, url }) => { if (window.dataLayer[0]["Registrant Type"] === "Non-Member" && !["/atrium", "/breakout-four", "/auditorium", "/breakouts", "/sponsor-theatre"].includes(url) && !url.match(/exhibition-hall/)) { route(previous || "/atrium"); } if (window.lastPageLoad && window.lastPageLoad < new Date() - 1e3 * 3600 * 2) { window.location = "https://isfcongress.tkeventsregistration.com/digital2021"; route(previoous); } window.lastPageLoad = new Date(); trackEvent({ eventID: 41082, from: (previous == null ? void 0 : previous.replace(/^\//g, "").replace(/^$/g, "atrium")) || null, to: url.replace(/^\//g, "").replace(/^$/g, "atrium"), type: "Venue Navigation", userID: window.dataLayer[0]["Registrant ID"] }); }; S(/* @__PURE__ */ v(d, null, /* @__PURE__ */ v(Navbar, null), window.dataLayer[0]["I would like to opt in to the Leaderboard competition"] === "Yes" ? /* @__PURE__ */ v(Leaderboard, null) : null, /* @__PURE__ */ v(preact_router_es_default, { history: createHashHistory(), onChange: handleNewRoute }, rooms.map((room) => /* @__PURE__ */ v(Room, __spreadProps(__spreadValues({}, room), { path: room.path || room.name.replace(/ /g, "-").replace(/[^A-z-]/g, "") })))), popups.map(ElfsightPopup), /* @__PURE__ */ v("script", { src: "https://apps.elfsight.com/p/platform.js", defer: true }), window.dataLayer[0]["I would like to opt-in to the Attendee Chat"] === "Yes" ? /* @__PURE__ */ v(CometChat, null) : /* @__PURE__ */ v("div", { style: "position: fixed; height: 60px; right: 20px; bottom: 20px; width: 60px;" }, /* @__PURE__ */ v(MappedImage, { imageURL: "https://widget-js.cometchat.io/v2/resources/chat_bubble.svg", imageStyle: "width: 100%; background-color: #FFDD3A; border-radius: 50%; z-index: 100; cursor: pointer; box-shadow: rgba(0, 0, 0, 0.06) 0px 1px 6px 0px, rgba(0, 0, 0, 0.16) 0px 2px 32px 0px;", links: [{ height: "100%", left: "0%", width: "100%", top: "0%", modal: /* @__PURE__ */ v(ModalWrapper, null, /* @__PURE__ */ v("div", { style: "display: flex; flex-direction: column; justify-content: space-around; width: 600px; height: 130px; color: white;" }, /* @__PURE__ */ v("h1", { style: "font-size: 28px; margin: 0;" }, "Want to Participate in the Networking Chat?"), /* @__PURE__ */ v("p", { style: "font-size: 16px;" }, "You are not opted-in to the networking chat feature. To opt-in, please modify the networking page of your registration ", /* @__PURE__ */ v("a", { href: "https://isfcongress.tkeventsregistration.com/digital2021" }, "here.")))) }] }))), document.getElementById("content")); //# sourceMappingURL=bundle.js.map