diff --git a/kron/.gitignore b/kron/.gitignore new file mode 100644 index 0000000..cfb81f8 --- /dev/null +++ b/kron/.gitignore @@ -0,0 +1,2 @@ +node_modules/ +dev-dist/ diff --git a/kron/dist/assets/index-DDORw3oI.css b/kron/dist/assets/index-DDORw3oI.css new file mode 100644 index 0000000..d776dbb --- /dev/null +++ b/kron/dist/assets/index-DDORw3oI.css @@ -0,0 +1 @@ +:root{--bg: #0a0a0f;--surface: #12121a;--border: #1e1e2e;--text: #c8c8d4;--muted: #5a5a72;--green: #00e676;--red: #ff3b30;--amber: #ff9500;--blue: #0066ff;--radius: 12px;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--mono: "SF Mono", "Fira Code", "JetBrains Mono", "Courier New", monospace}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overflow:hidden}.app-container{height:100%;display:flex;flex-direction:column;max-width:480px;margin:0 auto}.location-screen{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 24px;text-align:center}.loc-icon{font-size:40px;margin-bottom:8px}.loc-title{font-size:24px;font-weight:700;color:var(--text);letter-spacing:-.02em;margin-bottom:4px}.loc-sub{font-size:13px;color:var(--muted);margin-bottom:32px}.loc-list{width:100%;max-width:320px;display:flex;flex-direction:column;gap:10px}.loc-btn{display:flex;align-items:center;gap:12px;width:100%;padding:14px 16px;border-radius:12px;background:var(--surface);border:1px solid var(--border);color:var(--text);font-size:15px;font-weight:500;cursor:pointer;text-align:left;transition:border-color .2s,background .2s;font-family:var(--font)}.loc-btn:active{background:#1a1a2a;border-color:var(--blue);transform:scale(.98)}.loc-dot{width:8px;height:8px;border-radius:50%;background:var(--muted);flex-shrink:0}.loc-footer{margin-top:auto;font-size:9px;color:var(--muted);letter-spacing:.2em;padding-bottom:12px}.auth-panel{padding:10px 16px;background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px;flex-shrink:0}.location-group{flex:1;min-width:0}.auth-label{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.12em;margin-bottom:2px;font-weight:600}.loc-display{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--text)}.loc-display .loc-dot{background:var(--green)}.otp-box{flex-shrink:0;width:120px;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:8px;text-align:center}.otp-label{font-size:7px;color:var(--muted);text-transform:uppercase;letter-spacing:.12em;font-weight:600;margin-bottom:3px}.otp-code{font-family:var(--mono);font-size:18px;font-weight:700;color:var(--green);letter-spacing:.1em}.otp-timer{margin-top:5px;height:2px;background:var(--border);border-radius:2px;overflow:hidden}.otp-timer-bar{height:100%;background:var(--blue);border-radius:2px;transition:width 1s linear}.terminal-panel{flex:1;display:flex;flex-direction:column;background:#0d0d14;min-height:0}.terminal-header{display:flex;align-items:center;gap:6px;padding:7px 12px;background:#16161e;border-bottom:1px solid var(--border);flex-shrink:0}.terminal-dot{width:9px;height:9px;border-radius:50%}.terminal-title{margin-left:auto;font-size:9px;color:var(--muted);font-family:var(--mono)}.terminal-body{flex:1;overflow-y:auto;padding:12px;font-family:var(--mono);font-size:13px;line-height:1.6;-webkit-overflow-scrolling:touch}.t-line{white-space:pre-wrap;word-break:break-word;min-height:1.4em}.t-green{color:var(--green)}.t-red{color:var(--red)}.t-amber{color:var(--amber)}.t-prompt{color:var(--green);white-space:pre}.t-input{background:none;border:none;color:var(--text);font-family:var(--mono);font-size:13px;outline:none;caret-color:var(--green);flex:1;min-width:0}.t-input::placeholder{color:var(--muted);opacity:.5;font-size:11px}.t-line form{display:flex;align-items:center;gap:0}.cursor-blink{color:var(--green);animation:blink 1s step-end infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.matrix-canvas{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;pointer-events:none}.access-banner{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#000000f0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px;text-align:center;animation:fadeIn .6s ease}.access-icon{font-size:48px;margin-bottom:12px;animation:float 2s ease-in-out infinite}.access-title{font-size:24px;font-weight:700;color:var(--green);letter-spacing:.05em;margin-bottom:6px}.access-sub{font-size:12px;color:var(--muted);margin-bottom:24px}.access-detail{font-size:12px;color:var(--text);font-family:var(--mono);line-height:2;text-align:left;margin-bottom:32px}.reset-btn{padding:14px 40px;border-radius:10px;background:var(--green);color:#000;font-weight:700;font-size:15px;border:none;cursor:pointer;font-family:var(--font)}.reset-btn:active{transform:scale(.97)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}} diff --git a/kron/dist/assets/index-Djs4PpQW.js b/kron/dist/assets/index-Djs4PpQW.js new file mode 100644 index 0000000..de9ab49 --- /dev/null +++ b/kron/dist/assets/index-Djs4PpQW.js @@ -0,0 +1,40 @@ +(function(){const U=document.createElement("link").relList;if(U&&U.supports&&U.supports("modulepreload"))return;for(const I of document.querySelectorAll('link[rel="modulepreload"]'))J(I);new MutationObserver(I=>{for(const $ of I)if($.type==="childList")for(const te of $.addedNodes)te.tagName==="LINK"&&te.rel==="modulepreload"&&J(te)}).observe(document,{childList:!0,subtree:!0});function m(I){const $={};return I.integrity&&($.integrity=I.integrity),I.referrerPolicy&&($.referrerPolicy=I.referrerPolicy),I.crossOrigin==="use-credentials"?$.credentials="include":I.crossOrigin==="anonymous"?$.credentials="omit":$.credentials="same-origin",$}function J(I){if(I.ep)return;I.ep=!0;const $=m(I);fetch(I.href,$)}})();var Ni={exports:{}},wr={},Pi={exports:{}},V={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Pa;function Mf(){if(Pa)return V;Pa=1;var N=Symbol.for("react.element"),U=Symbol.for("react.portal"),m=Symbol.for("react.fragment"),J=Symbol.for("react.strict_mode"),I=Symbol.for("react.profiler"),$=Symbol.for("react.provider"),te=Symbol.for("react.context"),ue=Symbol.for("react.forward_ref"),D=Symbol.for("react.suspense"),ne=Symbol.for("react.memo"),se=Symbol.for("react.lazy"),B=Symbol.iterator;function W(c){return c===null||typeof c!="object"?null:(c=B&&c[B]||c["@@iterator"],typeof c=="function"?c:null)}var me={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},ke=Object.assign,A={};function Y(c,v,F){this.props=c,this.context=v,this.refs=A,this.updater=F||me}Y.prototype.isReactComponent={},Y.prototype.setState=function(c,v){if(typeof c!="object"&&typeof c!="function"&&c!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,c,v,"setState")},Y.prototype.forceUpdate=function(c){this.updater.enqueueForceUpdate(this,c,"forceUpdate")};function Ve(){}Ve.prototype=Y.prototype;function _e(c,v,F){this.props=c,this.context=v,this.refs=A,this.updater=F||me}var Ie=_e.prototype=new Ve;Ie.constructor=_e,ke(Ie,Y.prototype),Ie.isPureReactComponent=!0;var T=Array.isArray,Ye=Object.prototype.hasOwnProperty,Ee={current:null},Re={key:!0,ref:!0,__self:!0,__source:!0};function Fe(c,v,F){var H,X={},G=null,re=null;if(v!=null)for(H in v.ref!==void 0&&(re=v.ref),v.key!==void 0&&(G=""+v.key),v)Ye.call(v,H)&&!Re.hasOwnProperty(H)&&(X[H]=v[H]);var b=arguments.length-2;if(b===1)X.children=F;else if(1>>1,v=S[c];if(0>>1;cI(X,x))GI(re,X)?(S[c]=re,S[G]=x,c=G):(S[c]=X,S[H]=x,c=H);else if(GI(re,x))S[c]=re,S[G]=x,c=G;else break e}}return M}function I(S,M){var x=S.sortIndex-M.sortIndex;return x!==0?x:S.id-M.id}if(typeof performance=="object"&&typeof performance.now=="function"){var $=performance;N.unstable_now=function(){return $.now()}}else{var te=Date,ue=te.now();N.unstable_now=function(){return te.now()-ue}}var D=[],ne=[],se=1,B=null,W=3,me=!1,ke=!1,A=!1,Y=typeof setTimeout=="function"?setTimeout:null,Ve=typeof clearTimeout=="function"?clearTimeout:null,_e=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function Ie(S){for(var M=m(ne);M!==null;){if(M.callback===null)J(ne);else if(M.startTime<=S)J(ne),M.sortIndex=M.expirationTime,U(D,M);else break;M=m(ne)}}function T(S){if(A=!1,Ie(S),!ke)if(m(D)!==null)ke=!0,we(Ye);else{var M=m(ne);M!==null&&ae(T,M.startTime-S)}}function Ye(S,M){ke=!1,A&&(A=!1,Ve(Fe),Fe=-1),me=!0;var x=W;try{for(Ie(M),B=m(D);B!==null&&(!(B.expirationTime>M)||S&&!ht());){var c=B.callback;if(typeof c=="function"){B.callback=null,W=B.priorityLevel;var v=c(B.expirationTime<=M);M=N.unstable_now(),typeof v=="function"?B.callback=v:B===m(D)&&J(D),Ie(M)}else J(D);B=m(D)}if(B!==null)var F=!0;else{var H=m(ne);H!==null&&ae(T,H.startTime-M),F=!1}return F}finally{B=null,W=x,me=!1}}var Ee=!1,Re=null,Fe=-1,mt=5,et=-1;function ht(){return!(N.unstable_now()-etS||125c?(S.sortIndex=x,U(ne,S),m(D)===null&&S===m(ne)&&(A?(Ve(Fe),Fe=-1):A=!0,ae(T,x-c))):(S.sortIndex=v,U(D,S),ke||me||(ke=!0,we(Ye))),S},N.unstable_shouldYield=ht,N.unstable_wrapCallback=function(S){var M=W;return function(){var x=W;W=M;try{return S.apply(this,arguments)}finally{W=x}}}})(Li)),Li}var ja;function Ff(){return ja||(ja=1,Ti.exports=If()),Ti.exports}/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Ma;function Uf(){if(Ma)return Ke;Ma=1;var N=Ri(),U=Ff();function m(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),D=Object.prototype.hasOwnProperty,ne=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,se={},B={};function W(e){return D.call(B,e)?!0:D.call(se,e)?!1:ne.test(e)?B[e]=!0:(se[e]=!0,!1)}function me(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function ke(e,t,n,r){if(t===null||typeof t>"u"||me(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function A(e,t,n,r,l,u,i){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=l,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=u,this.removeEmptyString=i}var Y={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Y[e]=new A(e,0,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Y[t]=new A(t,1,!1,e[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){Y[e]=new A(e,2,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Y[e]=new A(e,2,!1,e,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){Y[e]=new A(e,3,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){Y[e]=new A(e,3,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){Y[e]=new A(e,4,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){Y[e]=new A(e,6,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){Y[e]=new A(e,5,!1,e.toLowerCase(),null,!1,!1)});var Ve=/[\-:]([a-z])/g;function _e(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(Ve,_e);Y[t]=new A(t,1,!1,e,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(Ve,_e);Y[t]=new A(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(Ve,_e);Y[t]=new A(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){Y[e]=new A(e,1,!1,e.toLowerCase(),null,!1,!1)}),Y.xlinkHref=new A("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){Y[e]=new A(e,1,!1,e.toLowerCase(),null,!0,!0)});function Ie(e,t,n,r){var l=Y.hasOwnProperty(t)?Y[t]:null;(l!==null?l.type!==0:r||!(2o||l[i]!==u[o]){var s=` +`+l[i].replace(" at new "," at ");return e.displayName&&s.includes("")&&(s=s.replace("",e.displayName)),s}while(1<=i&&0<=o);break}}}finally{F=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?v(e):""}function X(e){switch(e.tag){case 5:return v(e.type);case 16:return v("Lazy");case 13:return v("Suspense");case 19:return v("SuspenseList");case 0:case 2:case 15:return e=H(e.type,!1),e;case 11:return e=H(e.type.render,!1),e;case 1:return e=H(e.type,!0),e;default:return""}}function G(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Re:return"Fragment";case Ee:return"Portal";case mt:return"Profiler";case Fe:return"StrictMode";case j:return"Suspense";case Q:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case ht:return(e.displayName||"Context")+".Consumer";case et:return(e._context.displayName||"Context")+".Provider";case Xe:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case q:return t=e.displayName||null,t!==null?t:G(e.type)||"Memo";case we:t=e._payload,e=e._init;try{return G(e(t))}catch{}}return null}function re(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return G(t);case 8:return t===Fe?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function b(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function ce(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Ge(e){var t=ce(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var l=n.get,u=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(i){r=""+i,u.call(this,i)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(i){r=""+i},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function kr(e){e._valueTracker||(e._valueTracker=Ge(e))}function ji(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=ce(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Er(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Ml(e,t){var n=t.checked;return x({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Mi(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=b(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function Oi(e,t){t=t.checked,t!=null&&Ie(e,"checked",t,!1)}function Ol(e,t){Oi(e,t);var n=b(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Dl(e,t.type,n):t.hasOwnProperty("defaultValue")&&Dl(e,t.type,b(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Di(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function Dl(e,t,n){(t!=="number"||Er(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var On=Array.isArray;function sn(e,t,n,r){if(e=e.options,t){t={};for(var l=0;l"+t.valueOf().toString()+"",t=xr.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Dn(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var In={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Ia=["Webkit","ms","Moz","O"];Object.keys(In).forEach(function(e){Ia.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),In[t]=In[e]})});function $i(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||In.hasOwnProperty(e)&&In[e]?(""+t).trim():t+"px"}function Hi(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,l=$i(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,l):e[n]=l}}var Fa=x({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Ul(e,t){if(t){if(Fa[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(m(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(m(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(m(61))}if(t.style!=null&&typeof t.style!="object")throw Error(m(62))}}function Al(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Vl=null;function $l(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Hl=null,an=null,cn=null;function Bi(e){if(e=lr(e)){if(typeof Hl!="function")throw Error(m(280));var t=e.stateNode;t&&(t=Kr(t),Hl(e.stateNode,e.type,t))}}function Wi(e){an?cn?cn.push(e):cn=[e]:an=e}function Qi(){if(an){var e=an,t=cn;if(cn=an=null,Bi(e),t)for(e=0;e>>=0,e===0?32:31-(Xa(e)/Ga|0)|0}var zr=64,Tr=4194304;function Vn(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Lr(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,l=e.suspendedLanes,u=e.pingedLanes,i=n&268435455;if(i!==0){var o=i&~l;o!==0?r=Vn(o):(u&=i,u!==0&&(r=Vn(u)))}else i=n&~l,i!==0?r=Vn(i):u!==0&&(r=Vn(u));if(r===0)return 0;if(t!==0&&t!==r&&(t&l)===0&&(l=r&-r,u=t&-t,l>=u||l===16&&(u&4194240)!==0))return t;if((r&4)!==0&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function $n(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-ot(t),e[t]=n}function ba(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=Gn),So=" ",ko=!1;function Eo(e,t){switch(e){case"keyup":return Pc.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function xo(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var pn=!1;function Tc(e,t){switch(e){case"compositionend":return xo(t);case"keypress":return t.which!==32?null:(ko=!0,So);case"textInput":return e=t.data,e===So&&ko?null:e;default:return null}}function Lc(e,t){if(pn)return e==="compositionend"||!iu&&Eo(e,t)?(e=mo(),Dr=eu=Mt=null,pn=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Lo(n)}}function jo(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?jo(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Mo(){for(var e=window,t=Er();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Er(e.document)}return t}function au(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function Ac(e){var t=Mo(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&jo(n.ownerDocument.documentElement,n)){if(r!==null&&au(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var l=n.textContent.length,u=Math.min(r.start,l);r=r.end===void 0?u:Math.min(r.end,l),!e.extend&&u>r&&(l=r,r=u,u=l),l=Ro(n,u);var i=Ro(n,r);l&&i&&(e.rangeCount!==1||e.anchorNode!==l.node||e.anchorOffset!==l.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&(t=t.createRange(),t.setStart(l.node,l.offset),e.removeAllRanges(),u>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,mn=null,cu=null,bn=null,fu=!1;function Oo(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;fu||mn==null||mn!==Er(r)||(r=mn,"selectionStart"in r&&au(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),bn&&qn(bn,r)||(bn=r,r=Br(cu,"onSelect"),0wn||(e.current=xu[wn],xu[wn]=null,wn--)}function le(e,t){wn++,xu[wn]=e.current,e.current=t}var Ft={},je=It(Ft),$e=It(!1),Zt=Ft;function Sn(e,t){var n=e.type.contextTypes;if(!n)return Ft;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var l={},u;for(u in n)l[u]=t[u];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=l),l}function He(e){return e=e.childContextTypes,e!=null}function Yr(){oe($e),oe(je)}function Go(e,t,n){if(je.current!==Ft)throw Error(m(168));le(je,t),le($e,n)}function Zo(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var l in r)if(!(l in t))throw Error(m(108,re(e)||"Unknown",l));return x({},n,r)}function Xr(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Ft,Zt=je.current,le(je,e),le($e,$e.current),!0}function Jo(e,t,n){var r=e.stateNode;if(!r)throw Error(m(169));n?(e=Zo(e,t,Zt),r.__reactInternalMemoizedMergedChildContext=e,oe($e),oe(je),le(je,e)):oe($e),le($e,n)}var Et=null,Gr=!1,Cu=!1;function qo(e){Et===null?Et=[e]:Et.push(e)}function Jc(e){Gr=!0,qo(e)}function Ut(){if(!Cu&&Et!==null){Cu=!0;var e=0,t=ee;try{var n=Et;for(ee=1;e>=i,l-=i,xt=1<<32-ot(t)+l|n<O?(ze=R,R=null):ze=R.sibling;var Z=h(f,R,d[O],w);if(Z===null){R===null&&(R=ze);break}e&&R&&Z.alternate===null&&t(f,R),a=u(Z,a,O),L===null?P=Z:L.sibling=Z,L=Z,R=ze}if(O===d.length)return n(f,R),fe&&qt(f,O),P;if(R===null){for(;OO?(ze=R,R=null):ze=R.sibling;var Yt=h(f,R,Z.value,w);if(Yt===null){R===null&&(R=ze);break}e&&R&&Yt.alternate===null&&t(f,R),a=u(Yt,a,O),L===null?P=Yt:L.sibling=Yt,L=Yt,R=ze}if(Z.done)return n(f,R),fe&&qt(f,O),P;if(R===null){for(;!Z.done;O++,Z=d.next())Z=g(f,Z.value,w),Z!==null&&(a=u(Z,a,O),L===null?P=Z:L.sibling=Z,L=Z);return fe&&qt(f,O),P}for(R=r(f,R);!Z.done;O++,Z=d.next())Z=k(R,f,O,Z.value,w),Z!==null&&(e&&Z.alternate!==null&&R.delete(Z.key===null?O:Z.key),a=u(Z,a,O),L===null?P=Z:L.sibling=Z,L=Z);return e&&R.forEach(function(jf){return t(f,jf)}),fe&&qt(f,O),P}function ge(f,a,d,w){if(typeof d=="object"&&d!==null&&d.type===Re&&d.key===null&&(d=d.props.children),typeof d=="object"&&d!==null){switch(d.$$typeof){case Ye:e:{for(var P=d.key,L=a;L!==null;){if(L.key===P){if(P=d.type,P===Re){if(L.tag===7){n(f,L.sibling),a=l(L,d.props.children),a.return=f,f=a;break e}}else if(L.elementType===P||typeof P=="object"&&P!==null&&P.$$typeof===we&&ls(P)===L.type){n(f,L.sibling),a=l(L,d.props),a.ref=ur(f,L,d),a.return=f,f=a;break e}n(f,L);break}else t(f,L);L=L.sibling}d.type===Re?(a=on(d.props.children,f.mode,w,d.key),a.return=f,f=a):(w=xl(d.type,d.key,d.props,null,f.mode,w),w.ref=ur(f,a,d),w.return=f,f=w)}return i(f);case Ee:e:{for(L=d.key;a!==null;){if(a.key===L)if(a.tag===4&&a.stateNode.containerInfo===d.containerInfo&&a.stateNode.implementation===d.implementation){n(f,a.sibling),a=l(a,d.children||[]),a.return=f,f=a;break e}else{n(f,a);break}else t(f,a);a=a.sibling}a=ki(d,f.mode,w),a.return=f,f=a}return i(f);case we:return L=d._init,ge(f,a,L(d._payload),w)}if(On(d))return C(f,a,d,w);if(M(d))return _(f,a,d,w);br(f,d)}return typeof d=="string"&&d!==""||typeof d=="number"?(d=""+d,a!==null&&a.tag===6?(n(f,a.sibling),a=l(a,d),a.return=f,f=a):(n(f,a),a=Si(d,f.mode,w),a.return=f,f=a),i(f)):n(f,a)}return ge}var Cn=us(!0),is=us(!1),el=It(null),tl=null,_n=null,Lu=null;function Ru(){Lu=_n=tl=null}function ju(e){var t=el.current;oe(el),e._currentValue=t}function Mu(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function Nn(e,t){tl=e,Lu=_n=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&t)!==0&&(Be=!0),e.firstContext=null)}function rt(e){var t=e._currentValue;if(Lu!==e)if(e={context:e,memoizedValue:t,next:null},_n===null){if(tl===null)throw Error(m(308));_n=e,tl.dependencies={lanes:0,firstContext:e}}else _n=_n.next=e;return t}var bt=null;function Ou(e){bt===null?bt=[e]:bt.push(e)}function os(e,t,n,r){var l=t.interleaved;return l===null?(n.next=n,Ou(t)):(n.next=l.next,l.next=n),t.interleaved=n,_t(e,r)}function _t(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var At=!1;function Du(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function ss(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Nt(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Vt(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,(K&2)!==0){var l=r.pending;return l===null?t.next=t:(t.next=l.next,l.next=t),r.pending=t,_t(e,n)}return l=r.interleaved,l===null?(t.next=t,Ou(r)):(t.next=l.next,l.next=t),r.interleaved=t,_t(e,n)}function nl(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Gl(e,n)}}function as(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var l=null,u=null;if(n=n.firstBaseUpdate,n!==null){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};u===null?l=u=i:u=u.next=i,n=n.next}while(n!==null);u===null?l=u=t:u=u.next=t}else l=u=t;n={baseState:r.baseState,firstBaseUpdate:l,lastBaseUpdate:u,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function rl(e,t,n,r){var l=e.updateQueue;At=!1;var u=l.firstBaseUpdate,i=l.lastBaseUpdate,o=l.shared.pending;if(o!==null){l.shared.pending=null;var s=o,p=s.next;s.next=null,i===null?u=p:i.next=p,i=s;var y=e.alternate;y!==null&&(y=y.updateQueue,o=y.lastBaseUpdate,o!==i&&(o===null?y.firstBaseUpdate=p:o.next=p,y.lastBaseUpdate=s))}if(u!==null){var g=l.baseState;i=0,y=p=s=null,o=u;do{var h=o.lane,k=o.eventTime;if((r&h)===h){y!==null&&(y=y.next={eventTime:k,lane:0,tag:o.tag,payload:o.payload,callback:o.callback,next:null});e:{var C=e,_=o;switch(h=t,k=n,_.tag){case 1:if(C=_.payload,typeof C=="function"){g=C.call(k,g,h);break e}g=C;break e;case 3:C.flags=C.flags&-65537|128;case 0:if(C=_.payload,h=typeof C=="function"?C.call(k,g,h):C,h==null)break e;g=x({},g,h);break e;case 2:At=!0}}o.callback!==null&&o.lane!==0&&(e.flags|=64,h=l.effects,h===null?l.effects=[o]:h.push(o))}else k={eventTime:k,lane:h,tag:o.tag,payload:o.payload,callback:o.callback,next:null},y===null?(p=y=k,s=g):y=y.next=k,i|=h;if(o=o.next,o===null){if(o=l.shared.pending,o===null)break;h=o,o=h.next,h.next=null,l.lastBaseUpdate=h,l.shared.pending=null}}while(!0);if(y===null&&(s=g),l.baseState=s,l.firstBaseUpdate=p,l.lastBaseUpdate=y,t=l.shared.interleaved,t!==null){l=t;do i|=l.lane,l=l.next;while(l!==t)}else u===null&&(l.shared.lanes=0);nn|=i,e.lanes=i,e.memoizedState=g}}function cs(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=Vu.transition;Vu.transition={};try{e(!1),t()}finally{ee=n,Vu.transition=r}}function Ts(){return lt().memoizedState}function tf(e,t,n){var r=Wt(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Ls(e))Rs(t,n);else if(n=os(e,t,n,r),n!==null){var l=Ae();pt(n,e,r,l),js(n,t,r)}}function nf(e,t,n){var r=Wt(e),l={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Ls(e))Rs(t,l);else{var u=e.alternate;if(e.lanes===0&&(u===null||u.lanes===0)&&(u=t.lastRenderedReducer,u!==null))try{var i=t.lastRenderedState,o=u(i,n);if(l.hasEagerState=!0,l.eagerState=o,st(o,i)){var s=t.interleaved;s===null?(l.next=l,Ou(t)):(l.next=s.next,s.next=l),t.interleaved=l;return}}catch{}finally{}n=os(e,t,l,r),n!==null&&(l=Ae(),pt(n,e,r,l),js(n,t,r))}}function Ls(e){var t=e.alternate;return e===pe||t!==null&&t===pe}function Rs(e,t){ar=il=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function js(e,t,n){if((n&4194240)!==0){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Gl(e,n)}}var al={readContext:rt,useCallback:Me,useContext:Me,useEffect:Me,useImperativeHandle:Me,useInsertionEffect:Me,useLayoutEffect:Me,useMemo:Me,useReducer:Me,useRef:Me,useState:Me,useDebugValue:Me,useDeferredValue:Me,useTransition:Me,useMutableSource:Me,useSyncExternalStore:Me,useId:Me,unstable_isNewReconciler:!1},rf={readContext:rt,useCallback:function(e,t){return wt().memoizedState=[e,t===void 0?null:t],e},useContext:rt,useEffect:ks,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,ol(4194308,4,Cs.bind(null,t,e),n)},useLayoutEffect:function(e,t){return ol(4194308,4,e,t)},useInsertionEffect:function(e,t){return ol(4,2,e,t)},useMemo:function(e,t){var n=wt();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=wt();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=tf.bind(null,pe,e),[r.memoizedState,e]},useRef:function(e){var t=wt();return e={current:e},t.memoizedState=e},useState:ws,useDebugValue:Yu,useDeferredValue:function(e){return wt().memoizedState=e},useTransition:function(){var e=ws(!1),t=e[0];return e=ef.bind(null,e[1]),wt().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=pe,l=wt();if(fe){if(n===void 0)throw Error(m(407));n=n()}else{if(n=t(),Pe===null)throw Error(m(349));(tn&30)!==0||ms(r,t,n)}l.memoizedState=n;var u={value:n,getSnapshot:t};return l.queue=u,ks(vs.bind(null,r,u,e),[e]),r.flags|=2048,dr(9,hs.bind(null,r,u,n,t),void 0,null),n},useId:function(){var e=wt(),t=Pe.identifierPrefix;if(fe){var n=Ct,r=xt;n=(r&~(1<<32-ot(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=cr++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=i.createElement(n,{is:r.is}):(e=i.createElement(n),n==="select"&&(i=e,r.multiple?i.multiple=!0:r.size&&(i.size=r.size))):e=i.createElementNS(e,n),e[yt]=t,e[rr]=r,qs(e,t,!1,!1),t.stateNode=e;e:{switch(i=Al(n,r),n){case"dialog":ie("cancel",e),ie("close",e),l=r;break;case"iframe":case"object":case"embed":ie("load",e),l=r;break;case"video":case"audio":for(l=0;lRn&&(t.flags|=128,r=!0,pr(u,!1),t.lanes=4194304)}else{if(!r)if(e=ll(i),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),pr(u,!0),u.tail===null&&u.tailMode==="hidden"&&!i.alternate&&!fe)return Oe(t),null}else 2*ye()-u.renderingStartTime>Rn&&n!==1073741824&&(t.flags|=128,r=!0,pr(u,!1),t.lanes=4194304);u.isBackwards?(i.sibling=t.child,t.child=i):(n=u.last,n!==null?n.sibling=i:t.child=i,u.last=i)}return u.tail!==null?(t=u.tail,u.rendering=t,u.tail=t.sibling,u.renderingStartTime=ye(),t.sibling=null,n=de.current,le(de,r?n&1|2:n&1),t):(Oe(t),null);case 22:case 23:return yi(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&(t.mode&1)!==0?(be&1073741824)!==0&&(Oe(t),t.subtreeFlags&6&&(t.flags|=8192)):Oe(t),null;case 24:return null;case 25:return null}throw Error(m(156,t.tag))}function df(e,t){switch(Nu(t),t.tag){case 1:return He(t.type)&&Yr(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Pn(),oe($e),oe(je),Au(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 5:return Fu(t),null;case 13:if(oe(de),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(m(340));xn()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return oe(de),null;case 4:return Pn(),null;case 10:return ju(t.type._context),null;case 22:case 23:return yi(),null;case 24:return null;default:return null}}var pl=!1,De=!1,pf=typeof WeakSet=="function"?WeakSet:Set,E=null;function Tn(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){he(e,t,r)}else n.current=null}function ui(e,t,n){try{n()}catch(r){he(e,t,r)}}var ta=!1;function mf(e,t){if(yu=Mr,e=Mo(),au(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var l=r.anchorOffset,u=r.focusNode;r=r.focusOffset;try{n.nodeType,u.nodeType}catch{n=null;break e}var i=0,o=-1,s=-1,p=0,y=0,g=e,h=null;t:for(;;){for(var k;g!==n||l!==0&&g.nodeType!==3||(o=i+l),g!==u||r!==0&&g.nodeType!==3||(s=i+r),g.nodeType===3&&(i+=g.nodeValue.length),(k=g.firstChild)!==null;)h=g,g=k;for(;;){if(g===e)break t;if(h===n&&++p===l&&(o=i),h===u&&++y===r&&(s=i),(k=g.nextSibling)!==null)break;g=h,h=g.parentNode}g=k}n=o===-1||s===-1?null:{start:o,end:s}}else n=null}n=n||{start:0,end:0}}else n=null;for(gu={focusedElem:e,selectionRange:n},Mr=!1,E=t;E!==null;)if(t=E,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,E=e;else for(;E!==null;){t=E;try{var C=t.alternate;if((t.flags&1024)!==0)switch(t.tag){case 0:case 11:case 15:break;case 1:if(C!==null){var _=C.memoizedProps,ge=C.memoizedState,f=t.stateNode,a=f.getSnapshotBeforeUpdate(t.elementType===t.type?_:ct(t.type,_),ge);f.__reactInternalSnapshotBeforeUpdate=a}break;case 3:var d=t.stateNode.containerInfo;d.nodeType===1?d.textContent="":d.nodeType===9&&d.documentElement&&d.removeChild(d.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(m(163))}}catch(w){he(t,t.return,w)}if(e=t.sibling,e!==null){e.return=t.return,E=e;break}E=t.return}return C=ta,ta=!1,C}function mr(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var l=r=r.next;do{if((l.tag&e)===e){var u=l.destroy;l.destroy=void 0,u!==void 0&&ui(t,n,u)}l=l.next}while(l!==r)}}function ml(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function ii(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function na(e){var t=e.alternate;t!==null&&(e.alternate=null,na(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[yt],delete t[rr],delete t[Eu],delete t[Gc],delete t[Zc])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function ra(e){return e.tag===5||e.tag===3||e.tag===4}function la(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||ra(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function oi(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Qr));else if(r!==4&&(e=e.child,e!==null))for(oi(e,t,n),e=e.sibling;e!==null;)oi(e,t,n),e=e.sibling}function si(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(si(e,t,n),e=e.sibling;e!==null;)si(e,t,n),e=e.sibling}var Te=null,ft=!1;function $t(e,t,n){for(n=n.child;n!==null;)ua(e,t,n),n=n.sibling}function ua(e,t,n){if(vt&&typeof vt.onCommitFiberUnmount=="function")try{vt.onCommitFiberUnmount(Pr,n)}catch{}switch(n.tag){case 5:De||Tn(n,t);case 6:var r=Te,l=ft;Te=null,$t(e,t,n),Te=r,ft=l,Te!==null&&(ft?(e=Te,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):Te.removeChild(n.stateNode));break;case 18:Te!==null&&(ft?(e=Te,n=n.stateNode,e.nodeType===8?ku(e.parentNode,n):e.nodeType===1&&ku(e,n),Kn(e)):ku(Te,n.stateNode));break;case 4:r=Te,l=ft,Te=n.stateNode.containerInfo,ft=!0,$t(e,t,n),Te=r,ft=l;break;case 0:case 11:case 14:case 15:if(!De&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){l=r=r.next;do{var u=l,i=u.destroy;u=u.tag,i!==void 0&&((u&2)!==0||(u&4)!==0)&&ui(n,t,i),l=l.next}while(l!==r)}$t(e,t,n);break;case 1:if(!De&&(Tn(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(o){he(n,t,o)}$t(e,t,n);break;case 21:$t(e,t,n);break;case 22:n.mode&1?(De=(r=De)||n.memoizedState!==null,$t(e,t,n),De=r):$t(e,t,n);break;default:$t(e,t,n)}}function ia(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new pf),t.forEach(function(r){var l=xf.bind(null,e,r);n.has(r)||(n.add(r),r.then(l,l))})}}function dt(e,t){var n=t.deletions;if(n!==null)for(var r=0;rl&&(l=i),r&=~u}if(r=l,r=ye()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*vf(r/1960))-r,10e?16:e,Bt===null)var r=!1;else{if(e=Bt,Bt=null,wl=0,(K&6)!==0)throw Error(m(331));var l=K;for(K|=4,E=e.current;E!==null;){var u=E,i=u.child;if((E.flags&16)!==0){var o=u.deletions;if(o!==null){for(var s=0;sye()-fi?ln(e,0):ci|=n),Qe(e,t)}function wa(e,t){t===0&&((e.mode&1)===0?t=1:(t=Tr,Tr<<=1,(Tr&130023424)===0&&(Tr=4194304)));var n=Ae();e=_t(e,t),e!==null&&($n(e,t,n),Qe(e,n))}function Ef(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),wa(e,n)}function xf(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,l=e.memoizedState;l!==null&&(n=l.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(m(314))}r!==null&&r.delete(t),wa(e,n)}var Sa;Sa=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||$e.current)Be=!0;else{if((e.lanes&n)===0&&(t.flags&128)===0)return Be=!1,cf(e,t,n);Be=(e.flags&131072)!==0}else Be=!1,fe&&(t.flags&1048576)!==0&&bo(t,Jr,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;dl(e,t),e=t.pendingProps;var l=Sn(t,je.current);Nn(t,n),l=Hu(null,t,r,e,l,n);var u=Bu();return t.flags|=1,typeof l=="object"&&l!==null&&typeof l.render=="function"&&l.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,He(r)?(u=!0,Xr(t)):u=!1,t.memoizedState=l.state!==null&&l.state!==void 0?l.state:null,Du(t),l.updater=cl,t.stateNode=l,l._reactInternals=t,Gu(t,r,e,n),t=bu(null,t,r,!0,u,n)):(t.tag=0,fe&&u&&_u(t),Ue(null,t,l,n),t=t.child),t;case 16:r=t.elementType;e:{switch(dl(e,t),e=t.pendingProps,l=r._init,r=l(r._payload),t.type=r,l=t.tag=_f(r),e=ct(r,e),l){case 0:t=qu(null,t,r,e,n);break e;case 1:t=Ks(null,t,r,e,n);break e;case 11:t=$s(null,t,r,e,n);break e;case 14:t=Hs(null,t,r,ct(r.type,e),n);break e}throw Error(m(306,r,""))}return t;case 0:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:ct(r,l),qu(e,t,r,l,n);case 1:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:ct(r,l),Ks(e,t,r,l,n);case 3:e:{if(Ys(t),e===null)throw Error(m(387));r=t.pendingProps,u=t.memoizedState,l=u.element,ss(e,t),rl(t,r,null,n);var i=t.memoizedState;if(r=i.element,u.isDehydrated)if(u={element:r,isDehydrated:!1,cache:i.cache,pendingSuspenseBoundaries:i.pendingSuspenseBoundaries,transitions:i.transitions},t.updateQueue.baseState=u,t.memoizedState=u,t.flags&256){l=zn(Error(m(423)),t),t=Xs(e,t,r,n,l);break e}else if(r!==l){l=zn(Error(m(424)),t),t=Xs(e,t,r,n,l);break e}else for(qe=Dt(t.stateNode.containerInfo.firstChild),Je=t,fe=!0,at=null,n=is(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(xn(),r===l){t=Pt(e,t,n);break e}Ue(e,t,r,n)}t=t.child}return t;case 5:return fs(t),e===null&&zu(t),r=t.type,l=t.pendingProps,u=e!==null?e.memoizedProps:null,i=l.children,wu(r,l)?i=null:u!==null&&wu(r,u)&&(t.flags|=32),Qs(e,t),Ue(e,t,i,n),t.child;case 6:return e===null&&zu(t),null;case 13:return Gs(e,t,n);case 4:return Iu(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Cn(t,null,r,n):Ue(e,t,r,n),t.child;case 11:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:ct(r,l),$s(e,t,r,l,n);case 7:return Ue(e,t,t.pendingProps,n),t.child;case 8:return Ue(e,t,t.pendingProps.children,n),t.child;case 12:return Ue(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,l=t.pendingProps,u=t.memoizedProps,i=l.value,le(el,r._currentValue),r._currentValue=i,u!==null)if(st(u.value,i)){if(u.children===l.children&&!$e.current){t=Pt(e,t,n);break e}}else for(u=t.child,u!==null&&(u.return=t);u!==null;){var o=u.dependencies;if(o!==null){i=u.child;for(var s=o.firstContext;s!==null;){if(s.context===r){if(u.tag===1){s=Nt(-1,n&-n),s.tag=2;var p=u.updateQueue;if(p!==null){p=p.shared;var y=p.pending;y===null?s.next=s:(s.next=y.next,y.next=s),p.pending=s}}u.lanes|=n,s=u.alternate,s!==null&&(s.lanes|=n),Mu(u.return,n,t),o.lanes|=n;break}s=s.next}}else if(u.tag===10)i=u.type===t.type?null:u.child;else if(u.tag===18){if(i=u.return,i===null)throw Error(m(341));i.lanes|=n,o=i.alternate,o!==null&&(o.lanes|=n),Mu(i,n,t),i=u.sibling}else i=u.child;if(i!==null)i.return=u;else for(i=u;i!==null;){if(i===t){i=null;break}if(u=i.sibling,u!==null){u.return=i.return,i=u;break}i=i.return}u=i}Ue(e,t,l.children,n),t=t.child}return t;case 9:return l=t.type,r=t.pendingProps.children,Nn(t,n),l=rt(l),r=r(l),t.flags|=1,Ue(e,t,r,n),t.child;case 14:return r=t.type,l=ct(r,t.pendingProps),l=ct(r.type,l),Hs(e,t,r,l,n);case 15:return Bs(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:ct(r,l),dl(e,t),t.tag=1,He(r)?(e=!0,Xr(t)):e=!1,Nn(t,n),Os(t,r,l),Gu(t,r,l,n),bu(null,t,r,!0,e,n);case 19:return Js(e,t,n);case 22:return Ws(e,t,n)}throw Error(m(156,t.tag))};function ka(e,t){return bi(e,t)}function Cf(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function it(e,t,n,r){return new Cf(e,t,n,r)}function wi(e){return e=e.prototype,!(!e||!e.isReactComponent)}function _f(e){if(typeof e=="function")return wi(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Xe)return 11;if(e===q)return 14}return 2}function Kt(e,t){var n=e.alternate;return n===null?(n=it(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function xl(e,t,n,r,l,u){var i=2;if(r=e,typeof e=="function")wi(e)&&(i=1);else if(typeof e=="string")i=5;else e:switch(e){case Re:return on(n.children,l,u,t);case Fe:i=8,l|=8;break;case mt:return e=it(12,n,t,l|2),e.elementType=mt,e.lanes=u,e;case j:return e=it(13,n,t,l),e.elementType=j,e.lanes=u,e;case Q:return e=it(19,n,t,l),e.elementType=Q,e.lanes=u,e;case ae:return Cl(n,l,u,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case et:i=10;break e;case ht:i=9;break e;case Xe:i=11;break e;case q:i=14;break e;case we:i=16,r=null;break e}throw Error(m(130,e==null?e:typeof e,""))}return t=it(i,n,t,l),t.elementType=e,t.type=r,t.lanes=u,t}function on(e,t,n,r){return e=it(7,e,r,t),e.lanes=n,e}function Cl(e,t,n,r){return e=it(22,e,r,t),e.elementType=ae,e.lanes=n,e.stateNode={isHidden:!1},e}function Si(e,t,n){return e=it(6,e,null,t),e.lanes=n,e}function ki(e,t,n){return t=it(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Nf(e,t,n,r,l){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Xl(0),this.expirationTimes=Xl(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Xl(0),this.identifierPrefix=r,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function Ei(e,t,n,r,l,u,i,o,s){return e=new Nf(e,t,n,o,s),t===1?(t=1,u===!0&&(t|=8)):t=0,u=it(3,null,null,t),e.current=u,u.stateNode=e,u.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Du(u),e}function Pf(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(N)}catch(U){console.error(U)}}return N(),zi.exports=Uf(),zi.exports}var Da;function Vf(){if(Da)return Rl;Da=1;var N=Af();return Rl.createRoot=N.createRoot,Rl.hydrateRoot=N.hydrateRoot,Rl}var $f=Vf();const Mn=3e4,Sr=[{id:"nairobi",label:"Nairobi Office",authorized:!0},{id:"mombasa",label:"Mombasa Branch",authorized:!1},{id:"kisumu",label:"Kisumu Office",authorized:!1},{id:"addis",label:"Addis Ababa",authorized:!1},{id:"remote",label:"Remote VPN",authorized:!1}];function jl(){return String(Math.floor(1e5+Math.random()*9e5))}function Hf({onDone:N}){const U=ve.useRef(null);return ve.useEffect(()=>{const m=U.current;if(!m)return;const J=m.getContext("2d");if(!J)return;let I=m.width=window.innerWidth,$=m.height=window.innerHeight;const te=()=>{I=m.width=window.innerWidth,$=m.height=window.innerHeight};window.addEventListener("resize",te);const ue=Math.floor(I/14),D=Array(ue).fill(0),ne="アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲン0123456789";let se=0,B=0;const W=3e3,me=5e3;function ke(){if(J){B+=16,J.fillStyle=`rgba(0,0,0,${B>W?"0.1":"0.05"})`,J.fillRect(0,0,I,$),J.font="14px monospace";for(let A=0;AW?`rgba(0, 230, 118, ${Math.max(0,1-(B-W)/(me-W))})`:"#00e676",J.fillText(Y,Ve,_e),_e>$&&Math.random()>.975&&(D[A]=0),D[A]++}B{cancelAnimationFrame(se),window.removeEventListener("resize",te)}},[N]),z.jsx("canvas",{ref:U,className:"matrix-canvas"})}function Bf({otp:N,expiresIn:U}){return z.jsxs("div",{className:"otp-box",children:[z.jsx("div",{className:"otp-label",children:"One-Time Password"}),z.jsxs("div",{className:"otp-code",children:[N.slice(0,3)," ",N.slice(3)]}),z.jsx("div",{className:"otp-timer",children:z.jsx("div",{className:"otp-timer-bar",style:{width:`${U/Mn*100}%`}})})]})}function Wf({text:N,blink:U}){const m=N.includes("DENIED"),J=N.includes("GRANTED"),I=N.startsWith("Hint:")||N.startsWith("Retry"),$=J?"t-green":m?"t-red":I||N.startsWith("──")?"t-amber":"";return z.jsxs("div",{className:`t-line ${$}`,children:[z.jsx("span",{children:N}),U&&z.jsx("span",{className:"cursor-blink",children:"▊"})]})}function Qf(){var ht,Xe;const[N,U]=ve.useState(""),[m,J]=ve.useState(jl),[I,$]=ve.useState(Mn),[te,ue]=ve.useState("location"),[D,ne]=ve.useState("login"),[se,B]=ve.useState(null),[W,me]=ve.useState(""),[ke,A]=ve.useState([]),[Y,Ve]=ve.useState(!1),_e=ve.useRef(null),Ie=ve.useRef(null);ve.useEffect(()=>{const j=setInterval(()=>{J(jl()),$(Mn)},Mn),Q=setInterval(()=>$(q=>Math.max(0,q-1e3)),1e3);return()=>{clearInterval(j),clearInterval(Q)}},[]),ve.useEffect(()=>{var j;(j=_e.current)==null||j.focus()},[te,D]),ve.useEffect(()=>{var j;(j=Ie.current)==null||j.scrollTo(0,Ie.current.scrollHeight)},[ke]);const T=(j,Q=0)=>{if(Q){setTimeout(()=>A(q=>[...q,j]),Q);return}A(q=>[...q,j])},Ye=ve.useCallback(j=>{const Q=Sr.find(we=>we.id===j);if(!Q)return;U(j),ue("terminal"),ne("login"),B(null),A([]);const q=["",`Connecting via ${Q.label}...`,"Establishing secure tunnel...","TLS handshake complete",`Node: kron-pam-01.${Q.id}.internal`];q.forEach((we,ae)=>T(we,ae*300)),setTimeout(()=>{T("",0),T("Kron PAM v3.2 — secure terminal",100)},q.length*300+400)},[]),Ee=ve.useCallback(()=>{ue("location"),U(""),ne("login"),B(null),A([]),me("")},[]),Re=j=>{Ye(j)},Fe=ve.useCallback(j=>{const Q=j.toLowerCase().trim();if(Q==="y"){se==="location"?Ee():(ne("login"),B(null),A(["","Kron PAM v3.2 — secure terminal",""]),J(jl()),$(Mn));return}if(Q==="n"){Ee();return}T("Type y or n")},[se,Ee]),mt=ve.useCallback(j=>{j.preventDefault();const Q=W.trim();if(me(""),D==="retry"){Fe(Q);return}if(D==="login"){Q.toLowerCase()==="root"?(T(`kron login: ${Q}`),ne("password"),setTimeout(()=>T("Password: "),400)):(T(`kron login: ${Q}`),T(`Unknown user: ${Q}`,300),T("",600),T("Try: root",700));return}if(D==="password"){T("kron login: root"),T(`Password: ${"•".repeat(Q.length)}`);const q=Sr.find(we=>we.id===N);if(!(q!=null&&q.authorized)){T(""),T("──┤ ACCESS DENIED ├──",500),T(`Connection rejected from ${(q==null?void 0:q.label)??"unknown location"}.`,800),T("",1100),T("Hint: Try a different location.",1300),T("",1600),T("Kron PAM — context-aware security enforced.",1800),T("",2100),T("Retry with different location? (y/n):",2300),B("location"),ne("retry");return}if(Q!==m){T(""),T("──┤ ACCESS DENIED ├──",500),T("Invalid credentials.",800),T("",1100),T("Hint: Use the one-time password from the panel.",1300),T("",1600),T("Kron PAM — credential rotation & MFA enforced.",1800),T("",2100),T("Retry? (y/n):",2300),B("otp"),ne("retry");return}T(""),T("──┤ ACCESS GRANTED ├──",500),T(`Session authorized — ${q==null?void 0:q.label}`,800),T("Privileged access granted. Session recorded.",1100),T("",1400),T("Decrypting vault...",1700),ue("granted"),setTimeout(()=>Ve(!0),2200)}},[W,D,N,m,se,Fe]),et=ve.useCallback(()=>{Ve(!1),ue("location"),U(""),ne("login"),B(null),A([]),me(""),J(jl()),$(Mn)},[]);return z.jsxs("div",{className:"app-container",children:[Y&&z.jsx(Hf,{onDone:et}),te==="location"&&z.jsxs("div",{className:"location-screen",children:[z.jsx("div",{className:"loc-icon",children:"📍"}),z.jsx("h1",{className:"loc-title",children:"Kron PAM"}),z.jsx("p",{className:"loc-sub",children:"Select your location to connect"}),z.jsx("div",{className:"loc-list",children:Sr.map(j=>z.jsxs("button",{className:"loc-btn",onClick:()=>Re(j.id),children:[z.jsx("span",{className:"loc-dot"}),z.jsx("span",{children:j.label})]},j.id))}),z.jsx("p",{className:"loc-footer",children:"SECHPOINT AFRICA · GITEX 2026"})]}),te==="terminal"&&z.jsxs(z.Fragment,{children:[z.jsxs("div",{className:"auth-panel",children:[z.jsxs("div",{className:"location-group",children:[z.jsx("div",{className:"auth-label",children:"Connected via"}),z.jsxs("div",{className:"loc-display",children:[z.jsx("span",{className:"loc-dot"}),(ht=Sr.find(j=>j.id===N))==null?void 0:ht.label]})]}),z.jsx(Bf,{otp:m,expiresIn:I})]}),z.jsxs("div",{className:"terminal-panel",ref:Ie,children:[z.jsxs("div",{className:"terminal-header",children:[z.jsx("span",{className:"terminal-dot",style:{background:"#ff5f56"}}),z.jsx("span",{className:"terminal-dot",style:{background:"#ffbd2e"}}),z.jsx("span",{className:"terminal-dot",style:{background:"#27c93f"}}),z.jsx("span",{className:"terminal-title",children:"kron-pam-session"})]}),z.jsxs("div",{className:"terminal-body",children:[ke.map((j,Q)=>z.jsx(Wf,{text:j,blink:Q===ke.length-1&&D!=="retry"},Q)),z.jsxs("form",{onSubmit:mt,className:"t-line form-inline",children:[D==="login"&&z.jsxs(z.Fragment,{children:[z.jsx("span",{className:"t-prompt",children:"kron login: "}),z.jsx("input",{ref:_e,className:"t-input",type:"text",value:W,onChange:j=>me(j.target.value),autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:!1})]}),D==="password"&&z.jsxs(z.Fragment,{children:[z.jsx("span",{className:"t-prompt",children:"Password: "}),z.jsx("input",{ref:_e,className:"t-input",type:"password",value:W,onChange:j=>me(j.target.value),autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:!1,placeholder:"Enter OTP from panel"})]}),D==="retry"&&z.jsxs(z.Fragment,{children:[z.jsx("span",{className:"t-prompt",style:{color:"var(--amber)"},children:"> "}),z.jsx("input",{ref:_e,className:"t-input",type:"text",value:W,onChange:j=>me(j.target.value),autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:!1,placeholder:"y/n",style:{color:"var(--amber)"}})]})]})]})]})]}),te==="granted"&&!Y&&z.jsxs("div",{className:"access-banner",children:[z.jsx("div",{className:"access-icon",children:"🔓"}),z.jsx("div",{className:"access-title",children:"Vault Unlocked"}),z.jsxs("div",{className:"access-sub",children:[(Xe=Sr.find(j=>j.id===N))==null?void 0:Xe.label," · Kron PAM authorized"]}),z.jsxs("div",{className:"access-detail",children:[z.jsx("div",{children:"✓ Location verified"}),z.jsx("div",{children:"✓ OTP validated"}),z.jsx("div",{children:"✓ Session encrypted & recorded"})]}),z.jsx("button",{className:"reset-btn",onClick:et,children:"New Session"})]})]})}$f.createRoot(document.getElementById("root")).render(z.jsx(ve.StrictMode,{children:z.jsx(Qf,{})})); diff --git a/kron/dist/index.html b/kron/dist/index.html new file mode 100644 index 0000000..3f4eb96 --- /dev/null +++ b/kron/dist/index.html @@ -0,0 +1,14 @@ + + + + + +Kron PAM Vault Break + + + + +
+ diff --git a/kron/dist/manifest.webmanifest b/kron/dist/manifest.webmanifest new file mode 100644 index 0000000..d7410c2 --- /dev/null +++ b/kron/dist/manifest.webmanifest @@ -0,0 +1 @@ +{"name":"Kron PAM Vault Break","short_name":"Kron Vault","description":"GITEX 2026 PAM security challenge","start_url":"/","display":"standalone","background_color":"#06060e","theme_color":"#06060e","lang":"en","scope":"/kron/","orientation":"portrait","icons":[{"src":"icon-192.png","sizes":"192x192","type":"image/png"},{"src":"icon-512.png","sizes":"512x512","type":"image/png"}]} diff --git a/kron/dist/registerSW.js b/kron/dist/registerSW.js new file mode 100644 index 0000000..c75c4a1 --- /dev/null +++ b/kron/dist/registerSW.js @@ -0,0 +1 @@ +if('serviceWorker' in navigator) {window.addEventListener('load', () => {navigator.serviceWorker.register('/kron/sw.js', { scope: '/kron/' })})} \ No newline at end of file diff --git a/kron/dist/sw.js b/kron/dist/sw.js new file mode 100644 index 0000000..116b053 --- /dev/null +++ b/kron/dist/sw.js @@ -0,0 +1 @@ +if(!self.define){let e,s={};const i=(i,n)=>(i=new URL(i+".js",n).href,s[i]||new Promise(s=>{if("document"in self){const e=document.createElement("script");e.src=i,e.onload=s,document.head.appendChild(e)}else e=i,importScripts(i),s()}).then(()=>{let e=s[i];if(!e)throw new Error(`Module ${i} didn’t register its module`);return e}));self.define=(n,r)=>{const t=e||("document"in self?document.currentScript.src:"")||location.href;if(s[t])return;let o={};const l=e=>i(e,t),d={module:{uri:t},exports:o,require:l};s[t]=Promise.all(n.map(e=>d[e]||l(e))).then(e=>(r(...e),o))}}define(["./workbox-9c191d2f"],function(e){"use strict";self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"registerSW.js",revision:"0ccfe96049cf135e9d3b1af97624b571"},{url:"index.html",revision:"6399a5aae2d506f7b9dcd626a16b4e00"},{url:"assets/index-Djs4PpQW.js",revision:null},{url:"assets/index-DDORw3oI.css",revision:null},{url:"manifest.webmanifest",revision:"dec3f83176afdc0af818b7d71a09b5d0"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html")))}); diff --git a/kron/dist/workbox-9c191d2f.js b/kron/dist/workbox-9c191d2f.js new file mode 100644 index 0000000..2ab637f --- /dev/null +++ b/kron/dist/workbox-9c191d2f.js @@ -0,0 +1 @@ +define(["exports"],function(t){"use strict";try{self["workbox:core:7.4.0"]&&_()}catch(t){}const e=(t,...e)=>{let s=t;return e.length>0&&(s+=` :: ${JSON.stringify(e)}`),s};class s extends Error{constructor(t,s){super(e(t,s)),this.name=t,this.details=s}}try{self["workbox:routing:7.4.0"]&&_()}catch(t){}const n=t=>t&&"object"==typeof t?t:{handle:t};class i{constructor(t,e,s="GET"){this.handler=n(e),this.match=t,this.method=s}setCatchHandler(t){this.catchHandler=n(t)}}class r extends i{constructor(t,e,s){super(({url:e})=>{const s=t.exec(e.href);if(s&&(e.origin===location.origin||0===s.index))return s.slice(1)},e,s)}}class o{constructor(){this.t=new Map,this.i=new Map}get routes(){return this.t}addFetchListener(){self.addEventListener("fetch",t=>{const{request:e}=t,s=this.handleRequest({request:e,event:t});s&&t.respondWith(s)})}addCacheListener(){self.addEventListener("message",t=>{if(t.data&&"CACHE_URLS"===t.data.type){const{payload:e}=t.data,s=Promise.all(e.urlsToCache.map(e=>{"string"==typeof e&&(e=[e]);const s=new Request(...e);return this.handleRequest({request:s,event:t})}));t.waitUntil(s),t.ports&&t.ports[0]&&s.then(()=>t.ports[0].postMessage(!0))}})}handleRequest({request:t,event:e}){const s=new URL(t.url,location.href);if(!s.protocol.startsWith("http"))return;const n=s.origin===location.origin,{params:i,route:r}=this.findMatchingRoute({event:e,request:t,sameOrigin:n,url:s});let o=r&&r.handler;const c=t.method;if(!o&&this.i.has(c)&&(o=this.i.get(c)),!o)return;let a;try{a=o.handle({url:s,request:t,event:e,params:i})}catch(t){a=Promise.reject(t)}const h=r&&r.catchHandler;return a instanceof Promise&&(this.o||h)&&(a=a.catch(async n=>{if(h)try{return await h.handle({url:s,request:t,event:e,params:i})}catch(t){t instanceof Error&&(n=t)}if(this.o)return this.o.handle({url:s,request:t,event:e});throw n})),a}findMatchingRoute({url:t,sameOrigin:e,request:s,event:n}){const i=this.t.get(s.method)||[];for(const r of i){let i;const o=r.match({url:t,sameOrigin:e,request:s,event:n});if(o)return i=o,(Array.isArray(i)&&0===i.length||o.constructor===Object&&0===Object.keys(o).length||"boolean"==typeof o)&&(i=void 0),{route:r,params:i}}return{}}setDefaultHandler(t,e="GET"){this.i.set(e,n(t))}setCatchHandler(t){this.o=n(t)}registerRoute(t){this.t.has(t.method)||this.t.set(t.method,[]),this.t.get(t.method).push(t)}unregisterRoute(t){if(!this.t.has(t.method))throw new s("unregister-route-but-not-found-with-method",{method:t.method});const e=this.t.get(t.method).indexOf(t);if(!(e>-1))throw new s("unregister-route-route-not-registered");this.t.get(t.method).splice(e,1)}}let c;const a=()=>(c||(c=new o,c.addFetchListener(),c.addCacheListener()),c);function h(t,e,n){let o;if("string"==typeof t){const s=new URL(t,location.href);o=new i(({url:t})=>t.href===s.href,e,n)}else if(t instanceof RegExp)o=new r(t,e,n);else if("function"==typeof t)o=new i(t,e,n);else{if(!(t instanceof i))throw new s("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});o=t}return a().registerRoute(o),o}const u={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:"undefined"!=typeof registration?registration.scope:""},l=t=>[u.prefix,t,u.suffix].filter(t=>t&&t.length>0).join("-"),f=t=>t||l(u.precache),w=t=>t||l(u.runtime);function d(t,e){const s=e();return t.waitUntil(s),s}try{self["workbox:precaching:7.4.0"]&&_()}catch(t){}function p(t){if(!t)throw new s("add-to-cache-list-unexpected-type",{entry:t});if("string"==typeof t){const e=new URL(t,location.href);return{cacheKey:e.href,url:e.href}}const{revision:e,url:n}=t;if(!n)throw new s("add-to-cache-list-unexpected-type",{entry:t});if(!e){const t=new URL(n,location.href);return{cacheKey:t.href,url:t.href}}const i=new URL(n,location.href),r=new URL(n,location.href);return i.searchParams.set("__WB_REVISION__",e),{cacheKey:i.href,url:r.href}}class y{constructor(){this.updatedURLs=[],this.notUpdatedURLs=[],this.handlerWillStart=async({request:t,state:e})=>{e&&(e.originalRequest=t)},this.cachedResponseWillBeUsed=async({event:t,state:e,cachedResponse:s})=>{if("install"===t.type&&e&&e.originalRequest&&e.originalRequest instanceof Request){const t=e.originalRequest.url;s?this.notUpdatedURLs.push(t):this.updatedURLs.push(t)}return s}}}class g{constructor({precacheController:t}){this.cacheKeyWillBeUsed=async({request:t,params:e})=>{const s=(null==e?void 0:e.cacheKey)||this.h.getCacheKeyForURL(t.url);return s?new Request(s,{headers:t.headers}):t},this.h=t}}let R;async function m(t,e){let n=null;if(t.url){n=new URL(t.url).origin}if(n!==self.location.origin)throw new s("cross-origin-copy-response",{origin:n});const i=t.clone(),r={headers:new Headers(i.headers),status:i.status,statusText:i.statusText},o=function(){if(void 0===R){const t=new Response("");if("body"in t)try{new Response(t.body),R=!0}catch(t){R=!1}R=!1}return R}()?i.body:await i.blob();return new Response(o,r)}function v(t,e){const s=new URL(t);for(const t of e)s.searchParams.delete(t);return s.href}class q{constructor(){this.promise=new Promise((t,e)=>{this.resolve=t,this.reject=e})}}const U=new Set;try{self["workbox:strategies:7.4.0"]&&_()}catch(t){}function L(t){return"string"==typeof t?new Request(t):t}class b{constructor(t,e){this.u={},Object.assign(this,e),this.event=e.event,this.l=t,this.p=new q,this.R=[],this.m=[...t.plugins],this.v=new Map;for(const t of this.m)this.v.set(t,{});this.event.waitUntil(this.p.promise)}async fetch(t){const{event:e}=this;let n=L(t);if("navigate"===n.mode&&e instanceof FetchEvent&&e.preloadResponse){const t=await e.preloadResponse;if(t)return t}const i=this.hasCallback("fetchDidFail")?n.clone():null;try{for(const t of this.iterateCallbacks("requestWillFetch"))n=await t({request:n.clone(),event:e})}catch(t){if(t instanceof Error)throw new s("plugin-error-request-will-fetch",{thrownErrorMessage:t.message})}const r=n.clone();try{let t;t=await fetch(n,"navigate"===n.mode?void 0:this.l.fetchOptions);for(const s of this.iterateCallbacks("fetchDidSucceed"))t=await s({event:e,request:r,response:t});return t}catch(t){throw i&&await this.runCallbacks("fetchDidFail",{error:t,event:e,originalRequest:i.clone(),request:r.clone()}),t}}async fetchAndCachePut(t){const e=await this.fetch(t),s=e.clone();return this.waitUntil(this.cachePut(t,s)),e}async cacheMatch(t){const e=L(t);let s;const{cacheName:n,matchOptions:i}=this.l,r=await this.getCacheKey(e,"read"),o=Object.assign(Object.assign({},i),{cacheName:n});s=await caches.match(r,o);for(const t of this.iterateCallbacks("cachedResponseWillBeUsed"))s=await t({cacheName:n,matchOptions:i,cachedResponse:s,request:r,event:this.event})||void 0;return s}async cachePut(t,e){const n=L(t);var i;await(i=0,new Promise(t=>setTimeout(t,i)));const r=await this.getCacheKey(n,"write");if(!e)throw new s("cache-put-with-no-response",{url:(o=r.url,new URL(String(o),location.href).href.replace(new RegExp(`^${location.origin}`),""))});var o;const c=await this.q(e);if(!c)return!1;const{cacheName:a,matchOptions:h}=this.l,u=await self.caches.open(a),l=this.hasCallback("cacheDidUpdate"),f=l?await async function(t,e,s,n){const i=v(e.url,s);if(e.url===i)return t.match(e,n);const r=Object.assign(Object.assign({},n),{ignoreSearch:!0}),o=await t.keys(e,r);for(const e of o)if(i===v(e.url,s))return t.match(e,n)}(u,r.clone(),["__WB_REVISION__"],h):null;try{await u.put(r,l?c.clone():c)}catch(t){if(t instanceof Error)throw"QuotaExceededError"===t.name&&await async function(){for(const t of U)await t()}(),t}for(const t of this.iterateCallbacks("cacheDidUpdate"))await t({cacheName:a,oldResponse:f,newResponse:c.clone(),request:r,event:this.event});return!0}async getCacheKey(t,e){const s=`${t.url} | ${e}`;if(!this.u[s]){let n=t;for(const t of this.iterateCallbacks("cacheKeyWillBeUsed"))n=L(await t({mode:e,request:n,event:this.event,params:this.params}));this.u[s]=n}return this.u[s]}hasCallback(t){for(const e of this.l.plugins)if(t in e)return!0;return!1}async runCallbacks(t,e){for(const s of this.iterateCallbacks(t))await s(e)}*iterateCallbacks(t){for(const e of this.l.plugins)if("function"==typeof e[t]){const s=this.v.get(e),n=n=>{const i=Object.assign(Object.assign({},n),{state:s});return e[t](i)};yield n}}waitUntil(t){return this.R.push(t),t}async doneWaiting(){for(;this.R.length;){const t=this.R.splice(0),e=(await Promise.allSettled(t)).find(t=>"rejected"===t.status);if(e)throw e.reason}}destroy(){this.p.resolve(null)}async q(t){let e=t,s=!1;for(const t of this.iterateCallbacks("cacheWillUpdate"))if(e=await t({request:this.request,response:e,event:this.event})||void 0,s=!0,!e)break;return s||e&&200!==e.status&&(e=void 0),e}}class C{constructor(t={}){this.cacheName=w(t.cacheName),this.plugins=t.plugins||[],this.fetchOptions=t.fetchOptions,this.matchOptions=t.matchOptions}handle(t){const[e]=this.handleAll(t);return e}handleAll(t){t instanceof FetchEvent&&(t={event:t,request:t.request});const e=t.event,s="string"==typeof t.request?new Request(t.request):t.request,n="params"in t?t.params:void 0,i=new b(this,{event:e,request:s,params:n}),r=this.U(i,s,e);return[r,this.L(r,i,s,e)]}async U(t,e,n){let i;await t.runCallbacks("handlerWillStart",{event:n,request:e});try{if(i=await this._(e,t),!i||"error"===i.type)throw new s("no-response",{url:e.url})}catch(s){if(s instanceof Error)for(const r of t.iterateCallbacks("handlerDidError"))if(i=await r({error:s,event:n,request:e}),i)break;if(!i)throw s}for(const s of t.iterateCallbacks("handlerWillRespond"))i=await s({event:n,request:e,response:i});return i}async L(t,e,s,n){let i,r;try{i=await t}catch(r){}try{await e.runCallbacks("handlerDidRespond",{event:n,request:s,response:i}),await e.doneWaiting()}catch(t){t instanceof Error&&(r=t)}if(await e.runCallbacks("handlerDidComplete",{event:n,request:s,response:i,error:r}),e.destroy(),r)throw r}}class E extends C{constructor(t={}){t.cacheName=f(t.cacheName),super(t),this.C=!1!==t.fallbackToNetwork,this.plugins.push(E.copyRedirectedCacheableResponsesPlugin)}async _(t,e){const s=await e.cacheMatch(t);return s||(e.event&&"install"===e.event.type?await this.O(t,e):await this.N(t,e))}async N(t,e){let n;const i=e.params||{};if(!this.C)throw new s("missing-precache-entry",{cacheName:this.cacheName,url:t.url});{const s=i.integrity,r=t.integrity,o=!r||r===s;n=await e.fetch(new Request(t,{integrity:"no-cors"!==t.mode?r||s:void 0})),s&&o&&"no-cors"!==t.mode&&(this.P(),await e.cachePut(t,n.clone()))}return n}async O(t,e){this.P();const n=await e.fetch(t);if(!await e.cachePut(t,n.clone()))throw new s("bad-precaching-response",{url:t.url,status:n.status});return n}P(){let t=null,e=0;for(const[s,n]of this.plugins.entries())n!==E.copyRedirectedCacheableResponsesPlugin&&(n===E.defaultPrecacheCacheabilityPlugin&&(t=s),n.cacheWillUpdate&&e++);0===e?this.plugins.push(E.defaultPrecacheCacheabilityPlugin):e>1&&null!==t&&this.plugins.splice(t,1)}}E.defaultPrecacheCacheabilityPlugin={cacheWillUpdate:async({response:t})=>!t||t.status>=400?null:t},E.copyRedirectedCacheableResponsesPlugin={cacheWillUpdate:async({response:t})=>t.redirected?await m(t):t};class O{constructor({cacheName:t,plugins:e=[],fallbackToNetwork:s=!0}={}){this.j=new Map,this.k=new Map,this.K=new Map,this.l=new E({cacheName:f(t),plugins:[...e,new g({precacheController:this})],fallbackToNetwork:s}),this.install=this.install.bind(this),this.activate=this.activate.bind(this)}get strategy(){return this.l}precache(t){this.addToCacheList(t),this.T||(self.addEventListener("install",this.install),self.addEventListener("activate",this.activate),this.T=!0)}addToCacheList(t){const e=[];for(const n of t){"string"==typeof n?e.push(n):n&&void 0===n.revision&&e.push(n.url);const{cacheKey:t,url:i}=p(n),r="string"!=typeof n&&n.revision?"reload":"default";if(this.j.has(i)&&this.j.get(i)!==t)throw new s("add-to-cache-list-conflicting-entries",{firstEntry:this.j.get(i),secondEntry:t});if("string"!=typeof n&&n.integrity){if(this.K.has(t)&&this.K.get(t)!==n.integrity)throw new s("add-to-cache-list-conflicting-integrities",{url:i});this.K.set(t,n.integrity)}if(this.j.set(i,t),this.k.set(i,r),e.length>0){const t=`Workbox is precaching URLs without revision info: ${e.join(", ")}\nThis is generally NOT safe. Learn more at https://bit.ly/wb-precache`;console.warn(t)}}}install(t){return d(t,async()=>{const e=new y;this.strategy.plugins.push(e);for(const[e,s]of this.j){const n=this.K.get(s),i=this.k.get(e),r=new Request(e,{integrity:n,cache:i,credentials:"same-origin"});await Promise.all(this.strategy.handleAll({params:{cacheKey:s},request:r,event:t}))}const{updatedURLs:s,notUpdatedURLs:n}=e;return{updatedURLs:s,notUpdatedURLs:n}})}activate(t){return d(t,async()=>{const t=await self.caches.open(this.strategy.cacheName),e=await t.keys(),s=new Set(this.j.values()),n=[];for(const i of e)s.has(i.url)||(await t.delete(i),n.push(i.url));return{deletedURLs:n}})}getURLsToCacheKeys(){return this.j}getCachedURLs(){return[...this.j.keys()]}getCacheKeyForURL(t){const e=new URL(t,location.href);return this.j.get(e.href)}getIntegrityForCacheKey(t){return this.K.get(t)}async matchPrecache(t){const e=t instanceof Request?t.url:t,s=this.getCacheKeyForURL(e);if(s){return(await self.caches.open(this.strategy.cacheName)).match(s)}}createHandlerBoundToURL(t){const e=this.getCacheKeyForURL(t);if(!e)throw new s("non-precached-url",{url:t});return s=>(s.request=new Request(t),s.params=Object.assign({cacheKey:e},s.params),this.strategy.handle(s))}}let x;const N=()=>(x||(x=new O),x);class P extends i{constructor(t,e){super(({request:s})=>{const n=t.getURLsToCacheKeys();for(const i of function*(t,{ignoreURLParametersMatching:e=[/^utm_/,/^fbclid$/],directoryIndex:s="index.html",cleanURLs:n=!0,urlManipulation:i}={}){const r=new URL(t,location.href);r.hash="",yield r.href;const o=function(t,e=[]){for(const s of[...t.searchParams.keys()])e.some(t=>t.test(s))&&t.searchParams.delete(s);return t}(r,e);if(yield o.href,s&&o.pathname.endsWith("/")){const t=new URL(o.href);t.pathname+=s,yield t.href}if(n){const t=new URL(o.href);t.pathname+=".html",yield t.href}if(i){const t=i({url:r});for(const e of t)yield e.href}}(s.url,e)){const e=n.get(i);if(e){return{cacheKey:e,integrity:t.getIntegrityForCacheKey(e)}}}},t.strategy)}}t.NavigationRoute=class extends i{constructor(t,{allowlist:e=[/./],denylist:s=[]}={}){super(t=>this.W(t),t),this.M=e,this.S=s}W({url:t,request:e}){if(e&&"navigate"!==e.mode)return!1;const s=t.pathname+t.search;for(const t of this.S)if(t.test(s))return!1;return!!this.M.some(t=>t.test(s))}},t.cleanupOutdatedCaches=function(){self.addEventListener("activate",t=>{const e=f();t.waitUntil((async(t,e="-precache-")=>{const s=(await self.caches.keys()).filter(s=>s.includes(e)&&s.includes(self.registration.scope)&&s!==t);return await Promise.all(s.map(t=>self.caches.delete(t))),s})(e).then(t=>{}))})},t.clientsClaim=function(){self.addEventListener("activate",()=>self.clients.claim())},t.createHandlerBoundToURL=function(t){return N().createHandlerBoundToURL(t)},t.precacheAndRoute=function(t,e){!function(t){N().precache(t)}(t),function(t){const e=N();h(new P(e,t))}(e)},t.registerRoute=h}); diff --git a/sdwan/.gitignore b/sdwan/.gitignore new file mode 100644 index 0000000..c2658d7 --- /dev/null +++ b/sdwan/.gitignore @@ -0,0 +1 @@ +node_modules/ diff --git a/sdwan/dist/assets/index-d6HUX9kC.js b/sdwan/dist/assets/index-d6HUX9kC.js new file mode 100644 index 0000000..03b0ede --- /dev/null +++ b/sdwan/dist/assets/index-d6HUX9kC.js @@ -0,0 +1,179 @@ +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))a(i);new MutationObserver(i=>{for(const r of i)if(r.type==="childList")for(const o of r.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&a(o)}).observe(document,{childList:!0,subtree:!0});function s(i){const r={};return i.integrity&&(r.integrity=i.integrity),i.referrerPolicy&&(r.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?r.credentials="include":i.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function a(i){if(i.ep)return;i.ep=!0;const r=s(i);fetch(i.href,r)}})();const N={mpls:20,internet:50,lte:60},E={mpls:.2,internet:.3,lte:.5};function P(e,t={}){return e.map(s=>{const a=t[s.id];return{...s,latencyMs:(a==null?void 0:a.latencyMs)??N[s.id]??100,packetLossPercent:(a==null?void 0:a.packetLossPercent)??E[s.id]??1}})}const C=100,x=1;function D(e){return e.latencyMs<=C&&e.packetLossPercent<=x}function W(e){return e.map(t=>({...t,isValid:D(t)}))}function O(e){return M(e.filter(t=>t.isValid))[0]}function R(e){return M(e)[0]}function M(e){return e.sort((t,s)=>{const a=t.packetLossPercent-s.packetLossPercent;return Math.abs(a)>.001?a:t.latencyMs-s.latencyMs})}function _(e){const{links:t,activeLinkId:s,degradationTicks:a}=e;if(t.filter(c=>c.isValid).length===0){const c=R(t);return{activeLinkId:c?c.id:null,systemState:"degraded",degradationTicks:a+1}}const r=O(t),o=t.find(c=>c.id===s);return!o||!o.isValid?{activeLinkId:r.id,systemState:"normal",degradationTicks:0}:{activeLinkId:o.id,systemState:"normal",degradationTicks:0}}const m=[{text:"What does SLA stand for in the context of SD-WAN?",options:["Service Level Agreement","Secure Link Access","System Latency Analysis","Serial Link Aggregation"],answer:0},{text:"What is the maximum acceptable latency threshold in this application?",options:["50 ms","80 ms","100 ms","150 ms"],answer:2},{text:"What is the maximum acceptable packet loss percentage per the SLA?",options:["0.5%","1%","2%","5%"],answer:1},{text:"How many WAN links does the SD-WAN Traffic Master simulate?",options:["2","3","4","5"],answer:1},{text:"Which WAN link type is the default primary path in the simulation?",options:["LTE","Internet","MPLS","Satellite"],answer:2},{text:"What happens when ALL links violate SLA thresholds?",options:["The application crashes","Traffic is silently dropped","The system enters Degraded Mode","All links are automatically reset"],answer:2},{text:"What is the full meaning of SD-WAN?",options:["Software-Defined Wide Area Network","Secure Digital Wireless Access Network","System-Defined Wide Access Node","Software-Driven Wide Application Network"],answer:0},{text:"MPLS, Internet and LTE are responsible for which type of SD-WAN tunnels?",options:["Underlay","Overlay","BIOS","Secure VPN"],answer:0},{text:"Which company powers this SD-WAN Traffic Master application?",options:["ARUBA","Juniper","Sechpoint","All of the above"],answer:2},{text:"What is the role of Business Intent Overlay in SD-WAN?",options:["Defines network policies based on business requirements and applications","Manages physical hardware connections","Encrypts data packets between endpoints","Monitors device CPU usage"],answer:0}];function S(){return m.length}const y=60;function A(){return{screen:"instructions",userName:"",currentQuestion:0,answers:[],timeRemaining:30,timerId:null,active:!1,attemptCount:0}}function F(e){return m[e]}function Q(e){let t=0;for(let s=0;s +
+

HPE Aruba SD-WAN Traffic Master

+

Real-time network traffic management simulation

+

Powered by Sechpoint

+
+ Latency ≤ 100 ms + Packet Loss ≤ 1% +
+
+
+ ${e==="normal"?'Normal':'Degraded Mode'} +
+ `}function V(){return` +
+ +
`}function Y(){return` +
+

⚠ Degraded Mode — All links violate SLA thresholds

+

The best available link is kept active, but network performance is degraded. Monitor traffic closely.

+
`}function K(e,t){return``}function j(e,t){const s=e.id===t;return` +
+ ${s?'Active':""} + + + + ${q("Latency",`${e.latencyMs} ms`,"100 ms",e.latencyMs,150,B(e.latencyMs),e.latencyMs>100?" ⚠":"",e.id,"latencyMs")} + + ${q("Packet Loss",`${e.packetLossPercent.toFixed(2)}%`,"1.00%",e.packetLossPercent,5,H(e.packetLossPercent),e.packetLossPercent>1?" ⚠":"",e.id,"packetLossPercent")} +
`}function q(e,t,s,a,i,r,o,c,u){const l=Math.min(a/i*100,100);return` +
+
+ ${e} + ${t}${o} +
+
+
+
+
SLA limit: ${s}
+
+ + +
+
`}function J(e,t,s){const a=t?e.find(c=>c.id===t):null,i=a?a.name:"—",r="",o=a?`background:${$[a.id]}22;color:${$[a.id]};`:"background:#374151;color:#9ca3af;";return` +
+

Active Path ${s==="degraded"?'Degraded':""}

+
+
+ 🏢 + Branch Office +
+
+ +
+
+ + Data Center +
+
+
`}function Z(){return` + `}function G(e){document.querySelectorAll("[data-action]").forEach(t=>{t.addEventListener("click",()=>{t.dataset.action==="start-quiz"&&e.onStartQuiz&&e.onStartQuiz()})}),document.querySelectorAll(".metric-slider input").forEach(t=>{t.addEventListener("input",s=>{const a=s.target.dataset.linkId,i=s.target.dataset.field,r=i==="latencyMs"?parseInt(s.target.value,10):parseFloat(s.target.value);e.onUpdateMetric&&e.onUpdateMetric(a,i,r)})})}function X(e,t){var r,o,c,u;const s=document.querySelector(".quiz-overlay");s&&s.remove();const a=document.createElement("div");a.className="quiz-overlay";const i=document.createElement("div");switch(i.className="quiz-container",e.screen){case"instructions":i.innerHTML=ee();break;case"name":i.innerHTML=te();break;case"quiz":i.innerHTML=ne(e);break;case"results":i.innerHTML=se(e);break}if(a.appendChild(i),document.body.appendChild(a),e.screen==="instructions"){const l=i.querySelector(".btn-primary");l&&l.addEventListener("click",t.onProceedToName),(r=i.querySelector(".btn-secondary"))==null||r.addEventListener("click",t.onCloseQuiz)}if(e.screen==="name"){const l=i.querySelector(".name-field"),v=i.querySelector(".name-error"),f=i.querySelector(".btn-primary"),z=()=>{const h=l.value.trim();if(!h){v.classList.add("visible");return}v.classList.remove("visible"),t.onStartQuiz(h)};f==null||f.addEventListener("click",z),l==null||l.addEventListener("keydown",h=>{h.key==="Enter"&&z()}),(o=i.querySelector(".btn-secondary"))==null||o.addEventListener("click",t.onCloseQuiz)}e.screen==="quiz"&&i.querySelectorAll(".quiz-option").forEach(l=>{l.addEventListener("click",()=>{const v=parseInt(l.dataset.optionIndex,10);t.onAnswerQuestion(e.currentQuestion,v)})}),e.screen==="results"&&((c=i.querySelector(".btn-primary"))==null||c.addEventListener("click",t.onCloseQuiz),(u=i.querySelector(".btn-secondary"))==null||u.addEventListener("click",t.onRestartQuiz))}function ee(){return` +
+

SD-WAN Knowledge Quiz

+

Test your understanding of the HPE Aruba SD-WAN Traffic Master

+
+
+
+ ⚠️ Important: Please study the application dashboard carefully + before starting the quiz. Observe how the simulation works, understand the SLA + thresholds, failover behavior, and the different link types. You will have + 30 seconds to answer each of the 10 questions. +
+
+

What you need to know:

+
    +
  • SLA thresholds for latency and packet loss
  • +
  • The three WAN link types and their roles
  • +
  • Automatic path selection and failover rules
  • +
  • Path selection and failover rules
  • +
  • What happens during Degraded Mode
  • +
+
+
+ + `}function te(){return` +
+

Enter Your Name

+

Your results will be saved under this name

+
+
+ +
Please enter your name to continue.
+
+ + `}function ne(e){const t=e._questionData;if(!t)return"";const s=e.currentQuestion+1,a=e._totalQuestions,i=e.currentQuestion/a*100,r=e.timeRemaining<=10?" urgent":"",o=["A","B","C","D"];return` +
+

Question ${s} of ${a}

+
Player: ${e.userName}
+
+
+
+
+
+
+
${e.timeRemaining}s
+
+
${t.text}
+
+ ${t.options.map((c,u)=>` +
+ ${o[u]} + ${c} +
+ `).join("")} +
+
+ `}function se(e){const t=e._results;if(!t)return"";const s=t.percentage>=y,a=!s&&e.attemptCount<2;let i="",r="",o="";return s?(i="Congratulations! You passed the quiz.",r='
🎉 Come to the Sechpoint Technologies booth to claim your prize!
'):a?(i=`You scored below ${y}%. You have one more attempt.`,o='

Study the dashboard carefully and try again.

'):i=`You scored below ${y}%. No more attempts allowed.`,` +
+

Quiz Complete!

+
${e.userName}
+
+
+
+ ${t.percentage}% + SCORE +
+

+ ${t.correct} out of ${t.total} correct | Pass mark: ${y}% | Attempt ${e.attemptCount} of 2 +

+

${i}

+ ${r} + ${o} +
+ + `}const ie=[{id:"mpls",name:"MPLS",latencyMs:20,packetLossPercent:.2,color:"#8B5CF6"},{id:"lte",name:"LTE",latencyMs:60,packetLossPercent:.5,color:"#EF4444"},{id:"internet",name:"Internet",latencyMs:50,packetLossPercent:.3,color:"#F59E0B"}];let d={links:structuredClone(ie).map(e=>({...e,isValid:!0})),activeLinkId:"mpls",systemState:"normal",degradationTicks:0,tick:0,metricOverrides:{}},w=null;function I(){let e=P(d.links,d.metricOverrides);e=W(e);const t=_({...d,links:e});d={...d,links:e,activeLinkId:t.activeLinkId,systemState:t.systemState,degradationTicks:t.degradationTicks,tick:d.tick+1},b(k())}function k(){return{...d,onStartQuiz:ce,onUpdateMetric:ae}}function ae(e,t,s){d.metricOverrides={...d.metricOverrides,[e]:{...d.metricOverrides[e],[t]:s}},I()}function re(){w||(w=setInterval(I,1500))}let n=A();function p(){n.active&&requestAnimationFrame(()=>{n.active&&(n._questionData=F(n.currentQuestion),n._totalQuestions=S(),X(n,{onCloseQuiz:le,onProceedToName:()=>{n.screen="name",p()},onStartQuiz:e=>{n.userName=e,n.screen="quiz",n.currentQuestion=0,n.answers=[],n.timeRemaining=30,p(),g()},onAnswerQuestion:(e,t)=>{L(),n.answers[e]=t,n.currentQuestion{L();const e=n.userName,t=n.attemptCount;n=A(),n.active=!0,n.userName=e,n.attemptCount=t,n.screen="quiz",n.currentQuestion=0,n.answers=[],n.timeRemaining=30,p(),g()}}))})}function g(){L();let e=30;n.timeRemaining=e,n.timerId=setInterval(()=>{e--,n.timeRemaining=e,e<=0?(clearInterval(n.timerId),n.timerId=null,n.answers[n.currentQuestion]=-1,n.currentQuestiondiv:first-child{font-family:var(--font)}.header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:12px}.header h1{font-size:22px;font-weight:700;color:var(--blue);letter-spacing:-.02em}.header-subtitle{font-size:13px;color:var(--text-muted);margin-top:2px}.header-powered{font-size:10px;font-weight:600;color:var(--text-muted);letter-spacing:.5px;margin-top:4px;text-transform:uppercase}.header-thresholds{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}.threshold-badge{display:inline-block;padding:3px 10px;border-radius:6px;font-size:11px;font-weight:600;background:var(--blue-dim);color:var(--blue);border:1px solid rgba(0,102,255,.2)}.header-badges{display:flex;gap:10px;align-items:center}.badge{display:inline-block;padding:5px 14px;border-radius:999px;font-size:12px;font-weight:600}.badge-normal{background:var(--green-dim);color:var(--green);border:1px solid rgba(0,230,118,.25)}.badge-degraded{background:var(--red-dim);color:var(--red);border:1px solid rgba(255,59,48,.25);animation:pulse-badge 1.5s ease-in-out infinite}@keyframes pulse-badge{0%,to{opacity:1}50%{opacity:.6}}.controls{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap;align-items:center}.quiz-btn{padding:8px 18px;font-size:12px;font-weight:600;border:none;border-radius:8px;cursor:pointer;color:#fff;background:var(--blue);transition:all .2s;font-family:var(--font)}.quiz-btn:active{transform:scale(.97)}.degraded-warning{padding:14px 20px;margin-bottom:20px;border-radius:var(--radius);background:var(--red-dim);border:1px solid rgba(255,59,48,.25);text-align:center;animation:pulse-warning 2s ease-in-out infinite}.degraded-warning h3{color:var(--red);font-size:15px;font-weight:700;margin-bottom:3px}.degraded-warning p{color:#ff3b30b3;font-size:12px}@keyframes pulse-warning{0%,to{border-color:#ff3b3040}50%{border-color:#ff3b3080}}.link-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-bottom:24px}.link-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;transition:all .3s ease;position:relative}.link-card.active-link{border-color:var(--blue);border-width:1.5px;box-shadow:0 0 20px #0066ff14}.link-card.blocked{border-color:#ff3b3033;opacity:.55}.active-badge{position:absolute;top:12px;right:12px;padding:3px 10px;border-radius:999px;background:var(--blue);color:#fff;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.link-header{display:flex;align-items:center;gap:10px;margin-bottom:16px}.link-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.link-name{font-size:18px;font-weight:700}.link-status{margin-left:auto;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:600}.status-healthy{background:var(--green-dim);color:var(--green)}.status-blocked{background:var(--red-dim);color:var(--red)}.metric{margin-bottom:14px}.metric:last-child{margin-bottom:0}.metric-label{display:flex;justify-content:space-between;font-size:12px;margin-bottom:5px}.metric-label span:first-child{color:var(--text-muted)}.metric-value{font-weight:600}.metric-value.good{color:var(--green)}.metric-value.warn{color:var(--amber)}.metric-value.bad{color:var(--red)}.metric-bar{height:5px;background:var(--border);border-radius:3px;overflow:hidden}.metric-bar-fill{height:100%;border-radius:3px;transition:width .6s ease,background .6s ease}.metric-bar-fill.good{background:var(--green)}.metric-bar-fill.warn{background:var(--amber)}.metric-bar-fill.bad{background:var(--red)}.metric-limit{font-size:10px;color:var(--text-muted);text-align:right;margin-top:2px}.metric-slider{margin-top:8px;display:flex;align-items:center;gap:8px}.metric-slider input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:1;height:5px;border-radius:3px;background:var(--border);outline:none;cursor:pointer}.metric-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:var(--blue);cursor:pointer;border:2px solid var(--card);transition:background .2s}.metric-slider input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--blue);border:2px solid var(--card);cursor:pointer}.slider-label{font-size:11px;color:var(--text-secondary);min-width:44px;text-align:right}.path-section{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:24px}.path-section h3{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);margin-bottom:14px}.path-visual{display:flex;align-items:center;gap:0}.path-endpoint{display:flex;align-items:center;gap:6px;font-weight:600;font-size:13px;white-space:nowrap}.path-endpoint-icon{font-size:20px}.path-line{flex:1;height:0;border-top:2px dashed var(--border);margin:0 10px}.path-link-badge{padding:5px 16px;border-radius:999px;font-size:13px;font-weight:700;white-space:nowrap;transition:all .3s ease}.info-footer{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 18px;font-size:11px;color:var(--text-muted);line-height:1.8}.info-footer strong{color:var(--text-secondary)}@media(max-width:768px){#app{padding:16px 14px 24px}.header{flex-direction:column;align-items:flex-start}.header h1{font-size:20px}.link-cards{grid-template-columns:1fr}.path-visual{flex-direction:column;gap:10px}.path-line{display:none}}.quiz-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#06060ee0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:fadeIn .25s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.quiz-container{background:#12121a;border:1px solid #1e1e2e;border-radius:20px;width:90%;max-width:560px;max-height:90vh;overflow-y:auto;box-shadow:0 25px 60px #0009;animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}.quiz-header{padding:24px 28px 16px;border-bottom:1px solid #1e1e2e;text-align:center}.quiz-header h2{font-size:20px;font-weight:700;color:#c8c8d4;margin-bottom:4px}.quiz-header p{font-size:12px;color:#5a5a72}.quiz-body{padding:20px 28px}.quiz-footer{padding:14px 28px 20px;display:flex;justify-content:center}.quiz-instructions h3{font-size:15px;color:#c8c8d4;margin-bottom:10px;font-weight:600}.quiz-instructions ul{list-style:none;padding:0;margin:0 0 16px}.quiz-instructions li{padding:6px 0;font-size:13px;color:#80809a;display:flex;align-items:flex-start;gap:8px;line-height:1.5}.quiz-instructions li:before{content:"▸";color:#06f;font-weight:700;flex-shrink:0}.study-note{background:#0066ff0f;border:1px solid rgba(0,102,255,.15);border-radius:10px;padding:12px 16px;font-size:12px;color:#5a8fff;line-height:1.6;margin-bottom:16px;font-weight:500}.name-field{width:100%;padding:12px 16px;font-size:15px;border:2px solid #1e1e2e;border-radius:10px;outline:none;background:#0a0a0f;color:#c8c8d4;transition:border-color .2s}.name-field:focus{border-color:#06f}.name-field::placeholder{color:#5a5a72}.name-error{color:#ff3b30;font-size:12px;margin-top:6px;display:none}.name-error.visible{display:block}.quiz-progress{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.quiz-progress-bar{flex:1;height:5px;background:#1e1e2e;border-radius:3px;overflow:hidden;margin-right:12px}.quiz-progress-fill{height:100%;background:linear-gradient(90deg,#06f,#3b82f6);border-radius:3px;transition:width .4s ease}.quiz-timer{font-size:13px;font-weight:700;color:#c8c8d4;min-width:44px;text-align:right}.quiz-timer.urgent{color:#ff3b30;animation:pulse-timer .8s ease-in-out infinite}@keyframes pulse-timer{0%,to{opacity:1}50%{opacity:.5}}.quiz-question-text{font-size:16px;font-weight:600;color:#c8c8d4;margin-bottom:18px;line-height:1.5}.quiz-options{display:flex;flex-direction:column;gap:8px}.quiz-option{display:flex;align-items:center;gap:12px;padding:12px 16px;border:1.5px solid #1e1e2e;border-radius:12px;cursor:pointer;font-size:13px;color:#c8c8d4;transition:all .15s ease;background:#0a0a0f}.quiz-option:hover{border-color:#06f;background:#0066ff0a}.quiz-option.selected{border-color:#06f;background:#0066ff14}.quiz-option.correct{border-color:#00e676;background:#00e6760f}.quiz-option.incorrect{border-color:#ff3b30;background:#ff3b300f}.option-letter{width:26px;height:26px;border-radius:50%;background:#161622;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#5a5a72;flex-shrink:0}.quiz-option.selected .option-letter{background:#06f;color:#fff}.quiz-option.correct .option-letter{background:#00e676;color:#000}.quiz-option.incorrect .option-letter{background:#ff3b30;color:#fff}.quiz-results{text-align:center}.quiz-score-circle{width:110px;height:110px;border-radius:50%;background:linear-gradient(135deg,#06f,#3b82f6);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;margin:0 auto 18px}.quiz-score-number{font-size:32px;font-weight:800;line-height:1}.quiz-score-label{font-size:11px;font-weight:600;opacity:.85;margin-top:2px}.quiz-score-detail{font-size:13px;color:#5a5a72;margin-bottom:8px}.quiz-feedback{font-size:13px;color:#80809a;line-height:1.6;margin-bottom:20px}.btn-primary{padding:11px 28px;font-size:13px;font-weight:600;border:none;border-radius:10px;cursor:pointer;background:#06f;color:#fff;transition:all .2s;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.btn-primary:active{transform:scale(.97)}.btn-primary:disabled{opacity:.3;cursor:not-allowed;transform:none}.btn-secondary{padding:9px 22px;font-size:12px;font-weight:600;border:1.5px solid #1e1e2e;border-radius:10px;cursor:pointer;background:transparent;color:#80809a;transition:all .2s;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.btn-secondary:active{background:#161622}.quiz-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.quiz-name-badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:600;background:#0066ff14;color:#06f;margin-bottom:6px}.quiz-prize{background:#00e6760f;border:1px solid rgba(0,230,118,.2);border-radius:10px;padding:12px 16px;font-size:13px;color:#c8c8d4;line-height:1.6;margin-bottom:14px}.quiz-retry-note{font-size:12px;color:#5a8fff;font-weight:500;margin-bottom:14px}.quiz-score-circle.quiz-fail{background:linear-gradient(135deg,#ff3b30,#ff6b6b)} diff --git a/sdwan/dist/favicon.svg b/sdwan/dist/favicon.svg new file mode 100644 index 0000000..cb1a7fd --- /dev/null +++ b/sdwan/dist/favicon.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/sdwan/dist/index.html b/sdwan/dist/index.html new file mode 100644 index 0000000..592a27b --- /dev/null +++ b/sdwan/dist/index.html @@ -0,0 +1,20 @@ + + + + + + HPE Aruba SD-WAN Traffic Master + + + + + +
+ +
+ +