CINXE.COM
ZBSchools.sg
<!DOCTYPE html> <html> <head> <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8,IE=Edge"/> <meta name="viewport" content="width=device-width, initial-scale=1"> <title> ZBSchools.sg </title> <link rel="shortcut icon" href="/ca7/style/ca7_zbs/favicon.ico"/> <link rel="apple-touch-icon" href="/ca7/style/ca7_zbs/ZBS_icon.png"/> <link rel="apple-touch-icon-precomposed" href="/ca7/style/ca7_zbs/ZBS_icon.png" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"><script type="text/javascript">(window.NREUM||(NREUM={})).init={privacy:{cookies_enabled:true},ajax:{deny_list:["bam.nr-data.net"]},distributed_tracing:{enabled:true}};(window.NREUM||(NREUM={})).loader_config={agentID:"1103276634",accountID:"225023",trustKey:"225023",xpid:"VgQCUVRQGwIAVlFQBAQOX1I=",licenseKey:"NRBR-70564e4017ab43d3811",applicationID:"1020235996"};;/*! For license information please see nr-loader-spa-1.274.0.min.js.LICENSE.txt */ (()=>{var e,t,r={8122:(e,t,r)=>{"use strict";r.d(t,{a:()=>i});var n=r(944);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.R)(3);if(!t||"object"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),o=0===Object.keys(r).length?e:r;for(let a in o)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):"object"==typeof e[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555:(e,t,r)=>{"use strict";r.d(t,{Vp:()=>c,fn:()=>s,x1:()=>u});var n=r(384),i=r(8122);const o={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0},a={};function s(e){try{const t=c(e);return!!t.licenseKey&&!!t.errorBeacon&&!!t.applicationID}catch(e){return!1}}function c(e){if(!e)throw new Error("All info objects require an agent identifier!");if(!a[e])throw new Error("Info for ".concat(e," was never set"));return a[e]}function u(e,t){if(!e)throw new Error("All info objects require an agent identifier!");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r&&(r.info=a[e])}},9417:(e,t,r)=>{"use strict";r.d(t,{D0:()=>h,gD:()=>g,xN:()=>p});var n=r(993);const i=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var o=r(2614),a=r(944),s=r(384),c=r(8122);const u="[data-nr-mask]",d=()=>{const e={mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,harvestTimeSeconds:10,autoStart:!0},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},feature_flags:[],generic_events:{enabled:!0,harvestTimeSeconds:30,autoStart:!0},harvest:{tooManyRequestsDelay:60},jserrors:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},logging:{enabled:!0,harvestTimeSeconds:10,autoStart:!0,level:n.p_.INFO},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,harvestTimeSeconds:30,autoStart:!0},performance:{capture_marks:!1,capture_measures:!1},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:o.wk,inactiveMs:o.BB},session_replay:{autoStart:!0,enabled:!1,harvestTimeSeconds:60,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inline_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){i(t)?e.mask_selector="".concat(t,",").concat(u):""===t||null===t?e.mask_selector=u:(0,a.R)(5,t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){i(t)?e.block_selector+=",".concat(t):""!==t&&(0,a.R)(6,t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,a.R)(7,t)}},session_trace:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},soft_navigations:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},spa:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},ssl:void 0,user_actions:{enabled:!0}}},l={},f="All configuration objects require an agent identifier!";function h(e){if(!e)throw new Error(f);if(!l[e])throw new Error("Configuration for ".concat(e," was never set"));return l[e]}function p(e,t){if(!e)throw new Error(f);l[e]=(0,c.a)(t,d());const r=(0,s.nY)(e);r&&(r.init=l[e])}function g(e,t){if(!e)throw new Error(f);var r=h(e);if(r){for(var n=t.split("."),i=0;i<n.length-1;i++)if("object"!=typeof(r=r[n[i]]))return;r=r[n[n.length-1]]}return r}},5603:(e,t,r)=>{"use strict";r.d(t,{a:()=>c,o:()=>s});var n=r(384),i=r(8122);const o={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},a={};function s(e){if(!e)throw new Error("All loader-config objects require an agent identifier!");if(!a[e])throw new Error("LoaderConfig for ".concat(e," was never set"));return a[e]}function c(e,t){if(!e)throw new Error("All loader-config objects require an agent identifier!");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r&&(r.loader_config=a[e])}},3371:(e,t,r)=>{"use strict";r.d(t,{V:()=>f,f:()=>l});var n=r(8122),i=r(384),o=r(6154),a=r(9324);let s=0;const c={buildEnv:a.F3,distMethod:a.Xs,version:a.xv,originTime:o.WN},u={customTransaction:void 0,disabled:!1,isolatedBacklog:!1,loaderType:void 0,maxBytes:3e4,onerror:void 0,ptid:void 0,releaseIds:{},appMetadata:{},session:void 0,denyList:void 0,timeKeeper:void 0,obfuscator:void 0},d={};function l(e){if(!e)throw new Error("All runtime objects require an agent identifier!");if(!d[e])throw new Error("Runtime for ".concat(e," was never set"));return d[e]}function f(e,t){if(!e)throw new Error("All runtime objects require an agent identifier!");d[e]={...(0,n.a)(t,u),...c},Object.hasOwnProperty.call(d[e],"harvestCount")||Object.defineProperty(d[e],"harvestCount",{get:()=>++s});const r=(0,i.nY)(e);r&&(r.runtime=d[e])}},9324:(e,t,r)=>{"use strict";r.d(t,{F3:()=>i,Xs:()=>o,Yq:()=>a,xv:()=>n});const n="1.274.0",i="PROD",o="CDN",a="^2.0.0-alpha.17"},6154:(e,t,r)=>{"use strict";r.d(t,{A4:()=>s,OF:()=>d,RI:()=>i,WN:()=>h,bv:()=>o,gm:()=>a,lR:()=>f,m:()=>u,mw:()=>c,sb:()=>l});var n=r(1863);const i="undefined"!=typeof window&&!!window.document,o="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),a=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),s="complete"===a?.document?.readyState,c=Boolean("hidden"===a?.document?.visibilityState),u=""+a?.location,d=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),l=d&&"undefined"==typeof SharedWorker,f=(()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),h=Date.now()-(0,n.t)()},7295:(e,t,r)=>{"use strict";r.d(t,{Xv:()=>a,gX:()=>i,iW:()=>o});var n=[];function i(e){if(!e||o(e))return!1;if(0===n.length)return!0;for(var t=0;t<n.length;t++){var r=n[t];if("*"===r.hostname)return!1;if(s(r.hostname,e.hostname)&&c(r.pathname,e.pathname))return!1}return!0}function o(e){return void 0===e.hostname}function a(e){if(n=[],e&&e.length)for(var t=0;t<e.length;t++){let r=e[t];if(!r)continue;0===r.indexOf("http://")?r=r.substring(7):0===r.indexOf("https://")&&(r=r.substring(8));const i=r.indexOf("/");let o,a;i>0?(o=r.substring(0,i),a=r.substring(i)):(o=r,a="");let[s]=o.split(":");n.push({hostname:s,pathname:a})}}function s(e,t){return!(e.length>t.length)&&t.indexOf(e)===t.length-e.length}function c(e,t){return 0===e.indexOf("/")&&(e=e.substring(1)),0===t.indexOf("/")&&(t=t.substring(1)),""===e||e===t}},1687:(e,t,r)=>{"use strict";r.d(t,{Ak:()=>c,Ze:()=>l,x3:()=>u});var n=r(7836),i=r(3606),o=r(860),a=r(2646);const s={};function c(e,t){const r={staged:!1,priority:o.P3[t]||0};d(e),s[e].get(t)||s[e].set(t,r)}function u(e,t){e&&s[e]&&(s[e].get(t)&&s[e].delete(t),h(e,t,!1),s[e].size&&f(e))}function d(e){if(!e)throw new Error("agentIdentifier required");s[e]||(s[e]=new Map)}function l(e="",t="feature",r=!1){if(d(e),!e||!s[e].get(t)||r)return h(e,t);s[e].get(t).staged=!0,f(e)}function f(e){const t=Array.from(s[e]);t.every((([e,t])=>t.staged))&&(t.sort(((e,t)=>e[1].priority-t[1].priority)),t.forEach((([t])=>{s[e].delete(t),h(e,t)})))}function h(e,t,r=!0){const o=e?n.ee.get(e):n.ee,s=i.i.handlers;if(!o.aborted&&o.backlog&&s){if(r){const e=o.backlog[t],r=s[t];if(r){for(let t=0;e&&t<e.length;++t)p(e[t],r);Object.entries(r).forEach((([e,t])=>{Object.values(t||{}).forEach((t=>{t[0]?.on&&t[0]?.context()instanceof a.y&&t[0].on(e,t[1])}))}))}}o.isolatedBacklog||delete s[t],o.backlog[t]=null,o.emit("drain-"+t,[])}}function p(e,t){var r=e[1];Object.values(t[r]||{}).forEach((t=>{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],o=e[2];n.apply(i,o)}}))}},7836:(e,t,r)=>{"use strict";r.d(t,{P:()=>c,ee:()=>u});var n=r(384),i=r(8990),o=r(3371),a=r(2646),s=r(5607);const c="nr@context:".concat(s.W),u=function e(t,r){var n={},s={},d={},l=!1;try{l=16===r.length&&(0,o.f)(r).isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,o){!1!==o&&(o=!0);if(u.aborted&&!i)return;t&&o&&t.emit(e,r,n);for(var a=h(n),c=g(e),d=c.length,l=0;l<d;l++)c[l].apply(a,r);var p=v()[s[e]];p&&p.push([f,e,r,a]);return a},get:m,listeners:g,context:h,buffer:function(e,t){const r=v();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach((([e,n])=>{s[n]=t,t in r||(r[t]=[])}))},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach((e=>{delete f.backlog[e]}))},isBuffering:function(e){return!!v()[s[e]]},debugId:r,backlog:l?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function h(e){return e&&e instanceof a.y?e:e?(0,i.I)(e,c,(()=>new a.y(c))):new a.y(c)}function p(e,t){n[e]=g(e).concat(t)}function g(e){return n[e]||[]}function m(t){return d[t]=d[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),d=(0,n.Zm)();d.ee||(d.ee=u)},2646:(e,t,r)=>{"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},9908:(e,t,r)=>{"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(7836).ee.get("handle");function i(e,t,r,i,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606:(e,t,r)=>{"use strict";r.d(t,{i:()=>o});var n=r(9908);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.d,i,e,t,r)}function a(e,t,r,i,o){o||(o="feature"),e||(e=n.d);var a=t[o]=t[o]||{};(a[r]=a[r]||[]).push([e,i])}},3878:(e,t,r)=>{"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function o(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>o,jT:()=>n,sp:()=>i})},5607:(e,t,r)=>{"use strict";r.d(t,{W:()=>n});const n=(0,r(9566).bz)()},9566:(e,t,r)=>{"use strict";r.d(t,{LA:()=>s,ZF:()=>c,bz:()=>a,el:()=>u});var n=r(6154);const i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";function o(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),i.split("").map((e=>"x"===e?o(t,r++).toString(16):"y"===e?(3&o()|8).toString(16):e)).join("")}function s(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,i=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var s=0;s<e;s++)a.push(o(r,i++).toString(16));return a.join("")}function c(){return s(16)}function u(){return s(32)}},2614:(e,t,r)=>{"use strict";r.d(t,{BB:()=>a,H3:()=>n,g:()=>u,iL:()=>c,tS:()=>s,uh:()=>i,wk:()=>o});const n="NRBA",i="SESSION",o=144e5,a=18e5,s={STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},c={SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},u={OFF:0,FULL:1,ERROR:2}},1863:(e,t,r)=>{"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},7485:(e,t,r)=>{"use strict";r.d(t,{D:()=>i});var n=r(6154);function i(e){if(0===(e||"").indexOf("data:"))return{protocol:"data"};try{const t=new URL(e,location.href),r={port:t.port,hostname:t.hostname,pathname:t.pathname,search:t.search,protocol:t.protocol.slice(0,t.protocol.indexOf(":")),sameOrigin:t.protocol===n.gm?.location?.protocol&&t.host===n.gm?.location?.host};return r.port&&""!==r.port||("http:"===t.protocol&&(r.port="80"),"https:"===t.protocol&&(r.port="443")),r.pathname&&""!==r.pathname?r.pathname.startsWith("/")||(r.pathname="/".concat(r.pathname)):r.pathname="/",r}catch(e){return{}}}},944:(e,t,r)=>{"use strict";function n(e,t){"function"==typeof console.debug&&console.debug("New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat(e),t)}r.d(t,{R:()=>n})},5284:(e,t,r)=>{"use strict";r.d(t,{t:()=>c,B:()=>s});var n=r(7836),i=r(6154);const o="newrelic";const a=new Set,s={};function c(e,t){const r=n.ee.get(t);s[t]??={},e&&"object"==typeof e&&(a.has(t)||(r.emit("rumresp",[e]),s[t]=e,a.add(t),function(e={}){try{i.gm.dispatchEvent(new CustomEvent(o,{detail:e}))}catch(e){}}({loaded:!0})))}},8990:(e,t,r)=>{"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},6389:(e,t,r)=>{"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout((()=>{i=clearTimeout(i)}),t)),n||(clearTimeout(i),i=setTimeout((()=>{e.apply(this,r)}),t))}}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=>i,s:()=>n})},3304:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(7836);const i=()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}};function o(e){try{return JSON.stringify(e,i())??""}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}return""}}},5289:(e,t,r)=>{"use strict";r.d(t,{GG:()=>o,sB:()=>a});var n=r(3878);function i(){return"undefined"==typeof document||"complete"===document.readyState}function o(e,t){if(i())return e();(0,n.sp)("load",e,t)}function a(e){if(i())return e();(0,n.DD)("DOMContentLoaded",e)}},384:(e,t,r)=>{"use strict";r.d(t,{NT:()=>o,US:()=>d,Zm:()=>a,bQ:()=>c,dV:()=>s,nY:()=>u,pV:()=>l});var n=r(6154),i=r(1863);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function a(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function s(){let e=a();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket}),e}function c(e,t){let r=a();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t}function u(e){let t=a();return t.initializedAgents?.[e]}function d(e,t){a()[e]=t}function l(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},2843:(e,t,r)=>{"use strict";r.d(t,{u:()=>i});var n=r(3878);function i(e,t=!1,r,i){(0,n.DD)("visibilitychange",(function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)}),r,i)}},8139:(e,t,r)=>{"use strict";r.d(t,{u:()=>f});var n=r(7836),i=r(3434),o=r(8990),a=r(6154);const s={},c=a.gm.XMLHttpRequest,u="addEventListener",d="removeEventListener",l="nr@wrapped:".concat(n.P);function f(e){var t=function(e){return(e||n.ee).get("events")}(e);if(s[t.debugId]++)return t;s[t.debugId]=1;var r=(0,i.YM)(t,!0);function f(e){r.inPlace(e,[u,d],"-",p)}function p(e,t){return e[1]}return"getPrototypeOf"in Object&&(a.RI&&h(document,f),h(a.gm,f),h(c.prototype,f)),t.on(u+"-start",(function(e,t){var n=e[1];if(null!==n&&("function"==typeof n||"object"==typeof n)){var i=(0,o.I)(n,l,(function(){var e={object:function(){if("function"!=typeof n.handleEvent)return;return n.handleEvent.apply(n,arguments)},function:n}[typeof n];return e?r(e,"fn-",null,e.name||"anonymous"):n}));this.wrapped=e[1]=i}})),t.on(d+"-start",(function(e){e[1]=this.wrapped||e[1]})),t}function h(e,t,...r){let n=e;for(;"object"==typeof n&&!Object.prototype.hasOwnProperty.call(n,u);)n=Object.getPrototypeOf(n);n&&t(n,...r)}},3434:(e,t,r)=>{"use strict";r.d(t,{Jt:()=>o,YM:()=>c});var n=r(7836),i=r(5607);const o="nr@original:".concat(i.W);var a=Object.prototype.hasOwnProperty,s=!1;function c(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,o){n||(n="");const a="-"===n.charAt(0);for(let s=0;s<t.length;s++){const c=t[s],u=e[c];d(u)||(e[c]=r(u,a?c+n:n,i,c,o))}},r.flag=o,r;function r(t,r,n,s,c){return d(t)?t:(r||(r=""),nrWrapper[o]=t,function(e,t,r){if(Object.defineProperty&&Object.keys)try{return Object.keys(e).forEach((function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})})),t}catch(e){u([e],r)}for(var n in e)a.call(e,n)&&(t[n]=e[n])}(t,nrWrapper,e),nrWrapper);function nrWrapper(){var o,a,d,l;try{a=this,o=[...arguments],d="function"==typeof n?n(o,a):n||{}}catch(t){u([t,"",[o,a,s],d],e)}i(r+"start",[o,a,s],d,c);try{return l=t.apply(a,o)}catch(e){throw i(r+"err",[o,a,e],d,c),e}finally{i(r+"end",[o,a,l],d,c)}}}function i(r,n,i,o){if(!s||t){var a=s;s=!0;try{e.emit(r,n,i,t,o)}catch(t){u([t,r,n,i],e)}s=a}}}function u(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function d(e){return!(e&&"function"==typeof e&&e.apply&&!e[o])}},9300:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.ajax},3333:(e,t,r)=>{"use strict";r.d(t,{TZ:()=>n,Zp:()=>i,mq:()=>s,nf:()=>a,qN:()=>o});const n=r(860).K7.genericEvents,i=["auxclick","click","copy","keydown","paste","scrollend"],o=["focus","blur"],a=4,s=1e3},6774:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.jserrors},993:(e,t,r)=>{"use strict";r.d(t,{ET:()=>o,TZ:()=>a,p_:()=>i});var n=r(860);const i={ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"},o="log",a=n.K7.logging},3785:(e,t,r)=>{"use strict";r.d(t,{R:()=>c,b:()=>u});var n=r(9908),i=r(1863),o=r(860),a=r(3969),s=r(993);function c(e,t,r={},c=s.p_.INFO){(0,n.p)(a.xV,["API/logging/".concat(c.toLowerCase(),"/called")],void 0,o.K7.metrics,e),(0,n.p)(s.ET,[(0,i.t)(),t,r,c],void 0,o.K7.logging,e)}function u(e){return"string"==typeof e&&Object.values(s.p_).some((t=>t===e.toUpperCase().trim()))}},3969:(e,t,r)=>{"use strict";r.d(t,{TZ:()=>n,XG:()=>s,rs:()=>i,xV:()=>a,z_:()=>o});const n=r(860).K7.metrics,i="sm",o="cm",a="storeSupportabilityMetrics",s="storeEventMetrics"},6630:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewEvent},782:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewTiming},6344:(e,t,r)=>{"use strict";r.d(t,{BB:()=>d,G4:()=>o,Qb:()=>l,TZ:()=>i,Ug:()=>a,_s:()=>s,bc:()=>u,yP:()=>c});var n=r(2614);const i=r(860).K7.sessionReplay,o={RECORD:"recordReplay",PAUSE:"pauseReplay",REPLAY_RUNNING:"replayRunning",ERROR_DURING_REPLAY:"errorDuringReplay"},a=.12,s={DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},c={[n.g.ERROR]:15e3,[n.g.FULL]:3e5,[n.g.OFF]:0},u={RESET:{message:"Session was reset",sm:"Reset"},IMPORT:{message:"Recorder failed to import",sm:"Import"},TOO_MANY:{message:"429: Too Many Requests",sm:"Too-Many"},TOO_BIG:{message:"Payload was too large",sm:"Too-Big"},CROSS_TAB:{message:"Session Entity was set to OFF on another tab",sm:"Cross-Tab"},ENTITLEMENTS:{message:"Session Replay is not allowed and will not be started",sm:"Entitlement"}},d=5e3,l={API:"api"}},5270:(e,t,r)=>{"use strict";r.d(t,{Aw:()=>c,CT:()=>u,SR:()=>s});var n=r(384),i=r(9417),o=r(7767),a=r(6154);function s(e){return!!(0,n.dV)().o.MO&&(0,o.V)(e)&&!0===(0,i.gD)(e,"session_trace.enabled")}function c(e){return!0===(0,i.gD)(e,"session_replay.preload")&&s(e)}function u(e,t){const r=t.correctAbsoluteTimestamp(e);return{originalTimestamp:e,correctedTimestamp:r,timestampDiff:e-r,originTime:a.WN,correctedOriginTime:t.correctedOriginTime,originTimeDiff:Math.floor(a.WN-t.correctedOriginTime)}}},3738:(e,t,r)=>{"use strict";r.d(t,{He:()=>i,Kp:()=>s,Lc:()=>u,Rz:()=>d,TZ:()=>n,bD:()=>o,d3:()=>a,jx:()=>l,uP:()=>c});const n=r(860).K7.sessionTrace,i="bstResource",o="resource",a="-start",s="-end",c="fn"+a,u="fn"+s,d="pushState",l=1e3},3962:(e,t,r)=>{"use strict";r.d(t,{AM:()=>o,O2:()=>s,Qu:()=>c,TZ:()=>a,ih:()=>u,tC:()=>i});var n=r(860);const i=["click","keydown","submit"],o="api",a=n.K7.softNav,s={INITIAL_PAGE_LOAD:"",ROUTE_CHANGE:1,UNSPECIFIED:2},c={INTERACTION:1,AJAX:2,CUSTOM_END:3,CUSTOM_TRACER:4},u={IP:"in progress",FIN:"finished",CAN:"cancelled"}},7378:(e,t,r)=>{"use strict";r.d(t,{$p:()=>x,BR:()=>b,Kp:()=>R,L3:()=>y,Lc:()=>c,NC:()=>o,SG:()=>d,TZ:()=>i,U6:()=>p,UT:()=>m,d3:()=>w,dT:()=>f,e5:()=>A,gx:()=>v,l9:()=>l,oW:()=>h,op:()=>g,rw:()=>u,tH:()=>E,uP:()=>s,wW:()=>T,xq:()=>a});var n=r(384);const i=r(860).K7.spa,o=["click","submit","keypress","keydown","keyup","change"],a=999,s="fn-start",c="fn-end",u="cb-start",d="api-ixn-",l="remaining",f="interaction",h="spaNode",p="jsonpNode",g="fetch-start",m="fetch-done",v="fetch-body-",b="jsonp-end",y=(0,n.dV)().o.ST,w="-start",R="-end",x="-body",T="cb"+R,A="jsTime",E="fetch"},4234:(e,t,r)=>{"use strict";r.d(t,{W:()=>o});var n=r(7836),i=r(1687);class o{constructor(e,t){this.agentIdentifier=e,this.ee=n.ee.get(e),this.featureName=t,this.blocked=!1}deregisterDrain(){(0,i.x3)(this.agentIdentifier,this.featureName)}}},7767:(e,t,r)=>{"use strict";r.d(t,{V:()=>o});var n=r(9417),i=r(6154);const o=e=>i.RI&&!0===(0,n.gD)(e,"privacy.cookies_enabled")},425:(e,t,r)=>{"use strict";r.d(t,{j:()=>j});var n=r(860),i=r(2555),o=r(3371),a=r(9908),s=r(7836),c=r(1687),u=r(5289),d=r(6154),l=r(944),f=r(3969),h=r(384),p=r(6344);const g=["setErrorHandler","finished","addToTrace","addRelease","addPageAction","setCurrentRouteName","setPageViewName","setCustomAttribute","interaction","noticeError","setUserId","setApplicationVersion","start",p.G4.RECORD,p.G4.PAUSE,"log","wrapLogger"],m=["setErrorHandler","finished","addToTrace","addRelease"];var v=r(1863),b=r(2614),y=r(993),w=r(3785),R=r(2646),x=r(3434);function T(e,t,r,n){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,l.R)(29);const i=function(e){return(e||s.ee).get("logger")}(e),o=(0,x.YM)(i),a=new R.y(s.P);return a.level=n.level,a.customAttributes=n.customAttributes,o.inPlace(t,[r],"wrap-logger-",a),i}function A(){const e=(0,h.pV)();g.forEach((t=>{e[t]=(...r)=>function(t,...r){let n=[];return Object.values(e.initializedAgents).forEach((e=>{e&&e.api?e.exposed&&e.api[t]&&n.push(e.api[t](...r)):(0,l.R)(38,t)})),n.length>1?n:n[0]}(t,...r)}))}const E={};var S=r(9417),N=r(5603),O=r(5284);const _=e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e};let I=!1;function j(e,t={},g,R){let{init:x,info:j,loader_config:P,runtime:C={},exposed:k=!0}=t;C.loaderType=g;const L=(0,h.pV)();j||(x=L.init,j=L.info,P=L.loader_config),(0,S.xN)(e.agentIdentifier,x||{}),(0,N.a)(e.agentIdentifier,P||{}),j.jsAttributes??={},d.bv&&(j.jsAttributes.isWorker=!0),(0,i.x1)(e.agentIdentifier,j);const H=(0,S.D0)(e.agentIdentifier),D=[j.beacon,j.errorBeacon];I||(H.proxy.assets&&(_(H.proxy.assets),D.push(H.proxy.assets)),H.proxy.beacon&&D.push(H.proxy.beacon),A(),(0,h.US)("activatedFeatures",O.B),e.runSoftNavOverSpa&&=!0===H.soft_navigations.enabled&&H.feature_flags.includes("soft_nav")),C.denyList=[...H.ajax.deny_list||[],...H.ajax.block_internal?D:[]],C.ptid=e.agentIdentifier,(0,o.V)(e.agentIdentifier,C),e.ee=s.ee.get(e.agentIdentifier),void 0===e.api&&(e.api=function(e,t,h=!1){t||(0,c.Ak)(e,"api");const g={};var R=s.ee.get(e),x=R.get("tracer");E[e]=b.g.OFF,R.on(p.G4.REPLAY_RUNNING,(t=>{E[e]=t}));var A="api-",S=A+"ixn-";function N(t,r,n,o){const a=(0,i.Vp)(e);return null===r?delete a.jsAttributes[t]:(0,i.x1)(e,{...a,jsAttributes:{...a.jsAttributes,[t]:r}}),I(A,n,!0,o||null===r?"session":void 0)(t,r)}function O(){}g.log=function(e,{customAttributes:t={},level:r=y.p_.INFO}={}){(0,a.p)(f.xV,["API/log/called"],void 0,n.K7.metrics,R),(0,w.R)(R,e,t,r)},g.wrapLogger=(e,t,{customAttributes:r={},level:i=y.p_.INFO}={})=>{(0,a.p)(f.xV,["API/wrapLogger/called"],void 0,n.K7.metrics,R),T(R,e,t,{customAttributes:r,level:i})},m.forEach((e=>{g[e]=I(A,e,!0,"api")})),g.addPageAction=I(A,"addPageAction",!0,n.K7.genericEvents),g.setPageViewName=function(t,r){if("string"==typeof t)return"/"!==t.charAt(0)&&(t="/"+t),(0,o.f)(e).customTransaction=(r||"http://custom.transaction")+t,I(A,"setPageViewName",!0)()},g.setCustomAttribute=function(e,t,r=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof t)||null===t)return N(e,t,"setCustomAttribute",r);(0,l.R)(40,typeof t)}else(0,l.R)(39,typeof e)},g.setUserId=function(e){if("string"==typeof e||null===e)return N("enduser.id",e,"setUserId",!0);(0,l.R)(41,typeof e)},g.setApplicationVersion=function(e){if("string"==typeof e||null===e)return N("application.version",e,"setApplicationVersion",!1);(0,l.R)(42,typeof e)},g.start=()=>{try{(0,a.p)(f.xV,["API/start/called"],void 0,n.K7.metrics,R),R.emit("manual-start-all")}catch(e){(0,l.R)(23,e)}},g[p.G4.RECORD]=function(){(0,a.p)(f.xV,["API/recordReplay/called"],void 0,n.K7.metrics,R),(0,a.p)(p.G4.RECORD,[],void 0,n.K7.sessionReplay,R)},g[p.G4.PAUSE]=function(){(0,a.p)(f.xV,["API/pauseReplay/called"],void 0,n.K7.metrics,R),(0,a.p)(p.G4.PAUSE,[],void 0,n.K7.sessionReplay,R)},g.interaction=function(e){return(new O).get("object"==typeof e?e:{})};const _=O.prototype={createTracer:function(e,t){var r={},i=this,o="function"==typeof t;return(0,a.p)(f.xV,["API/createTracer/called"],void 0,n.K7.metrics,R),h||(0,a.p)(S+"tracer",[(0,v.t)(),e,r],i,n.K7.spa,R),function(){if(x.emit((o?"":"no-")+"fn-start",[(0,v.t)(),i,o],r),o)try{return t.apply(this,arguments)}catch(e){const t="string"==typeof e?new Error(e):e;throw x.emit("fn-err",[arguments,this,t],r),t}finally{x.emit("fn-end",[(0,v.t)()],r)}}}};function I(e,t,r,i){return function(){return(0,a.p)(f.xV,["API/"+t+"/called"],void 0,n.K7.metrics,R),i&&(0,a.p)(e+t,[(0,v.t)(),...arguments],r?null:this,i,R),r?void 0:this}}function j(){r.e(478).then(r.bind(r,8778)).then((({setAPI:t})=>{t(e),(0,c.Ze)(e,"api")})).catch((e=>{(0,l.R)(27,e),R.abort()}))}return["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((e=>{_[e]=I(S,e,void 0,h?n.K7.softNav:n.K7.spa)})),g.setCurrentRouteName=h?I(S,"routeName",void 0,n.K7.softNav):I(A,"routeName",!0,n.K7.spa),g.noticeError=function(t,r){"string"==typeof t&&(t=new Error(t)),(0,a.p)(f.xV,["API/noticeError/called"],void 0,n.K7.metrics,R),(0,a.p)("err",[t,(0,v.t)(),!1,r,!!E[e]],void 0,n.K7.jserrors,R)},d.RI?(0,u.GG)((()=>j()),!0):j(),g}(e.agentIdentifier,R,e.runSoftNavOverSpa)),void 0===e.exposed&&(e.exposed=k),I=!0}},8374:(e,t,r)=>{r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860:(e,t,r)=>{"use strict";r.d(t,{$J:()=>o,K7:()=>n,P3:()=>i});const n={ajax:"ajax",genericEvents:"generic_events",jserrors:"jserrors",logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations",spa:"spa"},i={[n.pageViewEvent]:1,[n.pageViewTiming]:2,[n.metrics]:3,[n.jserrors]:4,[n.spa]:5,[n.ajax]:6,[n.sessionTrace]:7,[n.softNav]:8,[n.sessionReplay]:9,[n.logging]:10,[n.genericEvents]:11},o={[n.pageViewTiming]:"events",[n.ajax]:"events",[n.spa]:"events",[n.softNav]:"events",[n.metrics]:"jserrors",[n.jserrors]:"jserrors",[n.sessionTrace]:"browser/blobs",[n.sessionReplay]:"browser/blobs",[n.logging]:"browser/logs",[n.genericEvents]:"ins"}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>({212:"nr-spa-compressor",249:"nr-spa-recorder",478:"nr-spa"}[e]+"-1.274.0.min.js"),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA-1.274.0.PROD:",i.l=(r,n,o,a)=>{if(e[r])e[r].push(n);else{var s,c;if(void 0!==o)for(var u=document.getElementsByTagName("script"),d=0;d<u.length;d++){var l=u[d];if(l.getAttribute("src")==r||l.getAttribute("data-webpack")==t+o){s=l;break}}if(!s){c=!0;var f={478:"sha512-1vUqEfJPB8Pihje9mv5CfYgkitO1FWcS+UQb84DbXqP8oYctRv4/lzl/MzNLPlRhcY1WVDBGL20I8vm6s2VV7g==",249:"sha512-Y/BeZAh6VSTmUtUNmS5XdyKxL92s30Fyyj8xVW76HSPxcKItL4+x2+kGMZc8pMJnUpZDz1L4eftZQAJh3D8NnA==",212:"sha512-Gn2tQ3qog5Yhrx/gRutkSTYPp+7nkKFt4/mIXg99LxcNpMDAYJZDBYmAACdoHNM86+iq1F3cBcQotFNzjIX8bw=="};(s=document.createElement("script")).charset="utf-8",s.timeout=120,i.nc&&s.setAttribute("nonce",i.nc),s.setAttribute("data-webpack",t+o),s.src=r,0!==s.src.indexOf(window.location.origin+"/")&&(s.crossOrigin="anonymous"),f[a]&&(s.integrity=f[a])}e[r]=[n];var h=(t,n)=>{s.onerror=s.onload=null,clearTimeout(p);var i=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},p=setTimeout(h.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=h.bind(null,s.onerror),s.onload=h.bind(null,s.onload),c&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.p="https://js-agent.newrelic.com/",(()=>{var e={38:0,788:0};i.f.j=(t,r)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,i)=>n=e[t]=[r,i]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,n[1](s)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,o,[a,s,c]=r,u=0;if(a.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(c)c(i)}for(t&&t(r);u<a.length;u++)o=a[u],i.o(e,o)&&e[o]&&e[o][0](),e[o]=0},r=self["webpackChunk:NRBA-1.274.0.PROD"]=self["webpackChunk:NRBA-1.274.0.PROD"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=>{"use strict";i(8374);var e=i(944),t=i(6344),r=i(9566);class n{agentIdentifier;constructor(e=(0,r.LA)(16)){this.agentIdentifier=e}#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}addPageAction(e,t){return this.#e("addPageAction",e,t)}setPageViewName(e,t){return this.#e("setPageViewName",e,t)}setCustomAttribute(e,t,r){return this.#e("setCustomAttribute",e,t,r)}noticeError(e,t){return this.#e("noticeError",e,t)}setUserId(e){return this.#e("setUserId",e)}setApplicationVersion(e){return this.#e("setApplicationVersion",e)}setErrorHandler(e){return this.#e("setErrorHandler",e)}addRelease(e,t){return this.#e("addRelease",e,t)}log(e,t){return this.#e("log",e,t)}}class o extends n{#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}start(){return this.#e("start")}finished(e){return this.#e("finished",e)}recordReplay(){return this.#e(t.G4.RECORD)}pauseReplay(){return this.#e(t.G4.PAUSE)}addToTrace(e){return this.#e("addToTrace",e)}setCurrentRouteName(e){return this.#e("setCurrentRouteName",e)}interaction(){return this.#e("interaction")}wrapLogger(e,t,r){return this.#e("wrapLogger",e,t,r)}}var a=i(860),s=i(9417);const c=Object.values(a.K7);function u(e){const t={};return c.forEach((r=>{t[r]=function(e,t){return!0===(0,s.gD)(t,"".concat(e,".enabled"))}(r,e)})),t}var d=i(425);var l=i(1687),f=i(4234),h=i(5289),p=i(6154),g=i(5270),m=i(7767),v=i(6389);class b extends f.W{constructor(e,t,r=!0){super(e.agentIdentifier,t),this.auto=r,this.abortHandler=void 0,this.featAggregate=void 0,this.onAggregateImported=void 0,!1===e.init[this.featureName].autoStart&&(this.auto=!1),this.auto?(0,l.Ak)(e.agentIdentifier,t):this.ee.on("manual-start-all",(0,v.J)((()=>{(0,l.Ak)(e.agentIdentifier,this.featureName),this.auto=!0,this.importAggregator(e)})))}importAggregator(t,r={}){if(this.featAggregate||!this.auto)return;let n;this.onAggregateImported=new Promise((e=>{n=e}));const o=async()=>{let o;try{if((0,m.V)(this.agentIdentifier)){const{setupAgentSession:e}=await i.e(478).then(i.bind(i,6526));o=e(t)}}catch(t){(0,e.R)(20,t),this.ee.emit("internal-error",[t]),this.featureName===a.K7.sessionReplay&&this.abortHandler?.()}try{if(t.sharedAggregator)await t.sharedAggregator;else{t.sharedAggregator=i.e(478).then(i.bind(i,9337));const{EventAggregator:e}=await t.sharedAggregator;t.sharedAggregator=new e}if(!this.#t(this.featureName,o))return(0,l.Ze)(this.agentIdentifier,this.featureName),void n(!1);const{lazyFeatureLoader:e}=await i.e(478).then(i.bind(i,6103)),{Aggregate:a}=await e(this.featureName,"aggregate");this.featAggregate=new a(t,r),n(!0)}catch(t){(0,e.R)(34,t),this.abortHandler?.(),(0,l.Ze)(this.agentIdentifier,this.featureName,!0),n(!1),this.ee&&this.ee.abort()}};p.RI?(0,h.GG)((()=>o()),!0):o()}#t(e,t){switch(e){case a.K7.sessionReplay:return(0,g.SR)(this.agentIdentifier)&&!!t;case a.K7.sessionTrace:return!!t;default:return!0}}}var y=i(6630);class w extends b{static featureName=y.T;constructor(e,t=!0){super(e,y.T,t),this.importAggregator(e)}}var R=i(384);var x=i(9908),T=i(2843),A=i(3878),E=i(782),S=i(1863);class N extends b{static featureName=E.T;constructor(e,t=!0){super(e,E.T,t),p.RI&&((0,T.u)((()=>(0,x.p)("docHidden",[(0,S.t)()],void 0,E.T,this.ee)),!0),(0,A.sp)("pagehide",(()=>(0,x.p)("winPagehide",[(0,S.t)()],void 0,E.T,this.ee))),this.importAggregator(e))}}var O=i(3969);class _ extends b{static featureName=O.TZ;constructor(e,t=!0){super(e,O.TZ,t),this.importAggregator(e)}}var I=i(6774),j=i(3304);class P{constructor(e,t,r,n,i){this.name="UncaughtError",this.message="string"==typeof e?e:(0,j.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function C(e){return H(e)?e:new P(void 0!==e?.message?e.message:e,e?.filename||e?.sourceURL,e?.lineno||e?.line,e?.colno||e?.col,e?.__newrelic)}function k(e){const t="Unhandled Promise Rejection";if(!e?.reason)return;if(H(e.reason))try{return e.reason.message=t+": "+e.reason.message,C(e.reason)}catch(t){return C(e.reason)}const r=C(e.reason);return r.message=t+": "+r?.message,r}function L(e){if(e.error instanceof SyntaxError&&!/:\d+$/.test(e.error.stack?.trim())){const t=new P(e.message,e.filename,e.lineno,e.colno,e.error.__newrelic);return t.name=SyntaxError.name,t}return H(e.error)?e.error:C(e)}function H(e){return e instanceof Error&&!!e.stack}class D extends b{static featureName=I.T;#r=!1;constructor(e,r=!0){super(e,I.T,r);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on("internal-error",(e=>{this.abortHandler&&(0,x.p)("ierr",[C(e),(0,S.t)(),!0,{},this.#r],void 0,this.featureName,this.ee)})),this.ee.on(t.G4.REPLAY_RUNNING,(e=>{this.#r=e})),p.gm.addEventListener("unhandledrejection",(e=>{this.abortHandler&&(0,x.p)("err",[k(e),(0,S.t)(),!1,{unhandledPromiseRejection:1},this.#r],void 0,this.featureName,this.ee)}),(0,A.jT)(!1,this.removeOnAbort?.signal)),p.gm.addEventListener("error",(e=>{this.abortHandler&&(0,x.p)("err",[L(e),(0,S.t)(),!1,{},this.#r],void 0,this.featureName,this.ee)}),(0,A.jT)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e)}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var M=i(8990);let K=1;const U="nr@id";function V(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===p.gm?0:(0,M.I)(e,U,(function(){return K++}))}function G(e){if("string"==typeof e&&e.length)return e.length;if("object"==typeof e){if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer&&e.byteLength)return e.byteLength;if("undefined"!=typeof Blob&&e instanceof Blob&&e.size)return e.size;if(!("undefined"!=typeof FormData&&e instanceof FormData))try{return(0,j.A)(e).length}catch(e){return}}}var F=i(8139),B=i(7836),W=i(3434);const z={},q=["open","send"];function Z(t){var r=t||B.ee;const n=function(e){return(e||B.ee).get("xhr")}(r);if(z[n.debugId]++)return n;z[n.debugId]=1,(0,F.u)(r);var i=(0,W.YM)(n),o=p.gm.XMLHttpRequest,a=p.gm.MutationObserver,s=p.gm.Promise,c=p.gm.setInterval,u="readystatechange",d=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],l=[],f=p.gm.XMLHttpRequest=function(t){const r=new o(t),a=n.context(r);try{n.emit("new-xhr",[r],a),r.addEventListener(u,(s=a,function(){var e=this;e.readyState>3&&!s.resolved&&(s.resolved=!0,n.emit("xhr-resolved",[],e)),i.inPlace(e,d,"fn-",y)}),(0,A.jT)(!1))}catch(t){(0,e.R)(15,t);try{n.emit("internal-error",[t])}catch(e){}}var s;return r};function h(e,t){i.inPlace(t,["onreadystatechange"],"fn-",y)}if(function(e,t){for(var r in e)t[r]=e[r]}(o,f),f.prototype=o.prototype,i.inPlace(f.prototype,q,"-xhr-",y),n.on("send-xhr-start",(function(e,t){h(e,t),function(e){l.push(e),a&&(g?g.then(b):c?c(b):(m=-m,v.data=m))}(t)})),n.on("open-xhr-start",h),a){var g=s&&s.resolve();if(!c&&!s){var m=1,v=document.createTextNode(m);new a(b).observe(v,{characterData:!0})}}else r.on("fn-end",(function(e){e[0]&&e[0].type===u||b()}));function b(){for(var e=0;e<l.length;e++)h(0,l[e]);l.length&&(l=[])}function y(e,t){return t}return n}var Y="fetch-",X=Y+"body-",J=["arrayBuffer","blob","json","text","formData"],Q=p.gm.Request,ee=p.gm.Response,te="prototype";const re={};function ne(e){const t=function(e){return(e||B.ee).get("fetch")}(e);if(!(Q&&ee&&p.gm.fetch))return t;if(re[t.debugId]++)return t;function r(e,r,n){var i=e[r];"function"==typeof i&&(e[r]=function(){var e,r=[...arguments],o={};t.emit(n+"before-start",[r],o),o[B.P]&&o[B.P].dt&&(e=o[B.P].dt);var a=i.apply(this,r);return t.emit(n+"start",[r,e],a),a.then((function(e){return t.emit(n+"end",[null,e],a),e}),(function(e){throw t.emit(n+"end",[e],a),e}))})}return re[t.debugId]=1,J.forEach((e=>{r(Q[te],e,X),r(ee[te],e,X)})),r(p.gm,"fetch",Y),t.on(Y+"end",(function(e,r){var n=this;if(r){var i=r.headers.get("content-length");null!==i&&(n.rxSize=i),t.emit(Y+"done",[null,r],n)}else t.emit(Y+"done",[e],n)})),t}var ie=i(7485),oe=i(5603);class ae{constructor(e){this.agentIdentifier=e}generateTracePayload(e){if(!this.shouldGenerateTrace(e))return null;var t=(0,oe.o)(this.agentIdentifier);if(!t)return null;var n=(t.accountID||"").toString()||null,i=(t.agentID||"").toString()||null,o=(t.trustKey||"").toString()||null;if(!n||!i)return null;var a=(0,r.ZF)(),s=(0,r.el)(),c=Date.now(),u={spanId:a,traceId:s,timestamp:c};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(u.traceContextParentHeader=this.generateTraceContextParentHeader(a,s),u.traceContextStateHeader=this.generateTraceContextStateHeader(a,c,n,i,o)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(u.newrelicHeader=this.generateTraceHeader(a,s,c,n,i,o)),u}generateTraceContextParentHeader(e,t){return"00-"+t+"-"+e+"-01"}generateTraceContextStateHeader(e,t,r,n,i){return i+"@nr=0-1-"+r+"-"+n+"-"+e+"----"+t}generateTraceHeader(e,t,r,n,i,o){if(!("function"==typeof p.gm?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return o&&n!==o&&(a.d.tk=o),btoa((0,j.A)(a))}shouldGenerateTrace(e){return this.isDtEnabled()&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1,r={};if((0,s.gD)(this.agentIdentifier,"distributed_tracing")&&(r=(0,s.D0)(this.agentIdentifier).distributed_tracing),e.sameOrigin)t=!0;else if(r.allowed_origins instanceof Array)for(var n=0;n<r.allowed_origins.length;n++){var i=(0,ie.D)(r.allowed_origins[n]);if(e.hostname===i.hostname&&e.protocol===i.protocol&&e.port===i.port){t=!0;break}}return t}isDtEnabled(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.enabled}excludeNewrelicHeader(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.cors_use_tracecontext_headers}}var se=i(9300),ce=i(7295),ue=["load","error","abort","timeout"],de=ue.length,le=(0,R.dV)().o.REQ,fe=(0,R.dV)().o.XHR;class he extends b{static featureName=se.T;constructor(e,t=!0){super(e,se.T,t),this.dt=new ae(e.agentIdentifier),this.handler=(e,t,r,n)=>(0,x.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:"xhr",fetch:"fetch",beacon:"beacon"};p.gm?.performance?.getEntriesByType("resource").forEach((t=>{if(t.initiatorType in e&&0!==t.responseStatus){const r={status:t.responseStatus},n={rxSize:t.transferSize,duration:Math.floor(t.duration),cbTime:0};pe(r,t.name),this.handler("xhr",[r,n,t.startTime,t.responseEnd,e[t.initiatorType]],void 0,a.K7.ajax)}}))}catch(e){}ne(this.ee),Z(this.ee),function(e,t,r,n){function i(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=R,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},e.addEventListener("load",(function(r){T(t,e)}),(0,A.jT)(!1)),p.lR||e.addEventListener("progress",(function(e){t.lastSize=e.loaded}),(0,A.jT)(!1))}function o(e){this.params={method:e[0]},pe(this,e[1]),this.metrics={}}function s(t,r){e.loader_config.xpid&&this.sameOrigin&&r.setRequestHeader("X-NewRelic-ID",e.loader_config.xpid);var i=n.generateTracePayload(this.parsedOrigin);if(i){var o=!1;i.newrelicHeader&&(r.setRequestHeader("newrelic",i.newrelicHeader),o=!0),i.traceContextParentHeader&&(r.setRequestHeader("traceparent",i.traceContextParentHeader),i.traceContextStateHeader&&r.setRequestHeader("tracestate",i.traceContextStateHeader),o=!0),o&&(this.dt=i)}}function c(e,r){var n=this.metrics,i=e[0],o=this;if(n&&i){var a=G(i);a&&(n.txSize=a)}this.startTime=(0,S.t)(),this.body=i,this.listener=function(e){try{"abort"!==e.type||o.loadCaptureCalled||(o.params.aborted=!0),("load"!==e.type||o.called===o.totalCbs&&(o.onloadCalled||"function"!=typeof r.onload)&&"function"==typeof o.end)&&o.end(r)}catch(e){try{t.emit("internal-error",[e])}catch(e){}}};for(var s=0;s<de;s++)r.addEventListener(ue[s],this.listener,(0,A.jT)(!1))}function u(e,t,r){this.cbTime+=e,t?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof r.onload||"function"!=typeof this.end||this.end(r)}function d(e,t){var r=""+V(e)+!!t;this.xhrGuids&&!this.xhrGuids[r]&&(this.xhrGuids[r]=!0,this.totalCbs+=1)}function l(e,t){var r=""+V(e)+!!t;this.xhrGuids&&this.xhrGuids[r]&&(delete this.xhrGuids[r],this.totalCbs-=1)}function f(){this.endTime=(0,S.t)()}function h(e,r){r instanceof fe&&"load"===e[0]&&t.emit("xhr-load-added",[e[1],e[2]],r)}function g(e,r){r instanceof fe&&"load"===e[0]&&t.emit("xhr-load-removed",[e[1],e[2]],r)}function m(e,t,r){t instanceof fe&&("onload"===r&&(this.onload=!0),("load"===(e[0]&&e[0].type)||this.onload)&&(this.xhrCbStart=(0,S.t)()))}function v(e,r){this.xhrCbStart&&t.emit("xhr-cb-time",[(0,S.t)()-this.xhrCbStart,this.onload,r],r)}function b(e){var t,r=e[1]||{};if("string"==typeof e[0]?0===(t=e[0]).length&&p.RI&&(t=""+p.gm.location.href):e[0]&&e[0].url?t=e[0].url:p.gm?.URL&&e[0]&&e[0]instanceof URL?t=e[0].href:"function"==typeof e[0].toString&&(t=e[0].toString()),"string"==typeof t&&0!==t.length){t&&(this.parsedOrigin=(0,ie.D)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var i=n.generateTracePayload(this.parsedOrigin);if(i&&(i.newrelicHeader||i.traceContextParentHeader))if(e[0]&&e[0].headers)s(e[0].headers,i)&&(this.dt=i);else{var o={};for(var a in r)o[a]=r[a];o.headers=new Headers(r.headers||{}),s(o.headers,i)&&(this.dt=i),e.length>1?e[1]=o:e.push(o)}}function s(e,t){var r=!1;return t.newrelicHeader&&(e.set("newrelic",t.newrelicHeader),r=!0),t.traceContextParentHeader&&(e.set("traceparent",t.traceContextParentHeader),t.traceContextStateHeader&&e.set("tracestate",t.traceContextStateHeader),r=!0),r}}function y(e,t){this.params={},this.metrics={},this.startTime=(0,S.t)(),this.dt=t,e.length>=1&&(this.target=e[0]),e.length>=2&&(this.opts=e[1]);var r,n=this.opts||{},i=this.target;"string"==typeof i?r=i:"object"==typeof i&&i instanceof le?r=i.url:p.gm?.URL&&"object"==typeof i&&i instanceof URL&&(r=i.href),pe(this,r);var o=(""+(i&&i instanceof le&&i.method||n.method||"GET")).toUpperCase();this.params.method=o,this.body=n.body,this.txSize=G(n.body)||0}function w(e,t){if(this.endTime=(0,S.t)(),this.params||(this.params={}),(0,ce.iW)(this.params))return;let n;this.params.status=t?t.status:0,"string"==typeof this.rxSize&&this.rxSize.length>0&&(n=+this.rxSize);const i={txSize:this.txSize,rxSize:n,duration:(0,S.t)()-this.startTime};r("xhr",[this.params,i,this.startTime,this.endTime,"fetch"],this,a.K7.ajax)}function R(e){const t=this.params,n=this.metrics;if(!this.ended){this.ended=!0;for(let t=0;t<de;t++)e.removeEventListener(ue[t],this.listener,!1);t.aborted||(0,ce.iW)(t)||(n.duration=(0,S.t)()-this.startTime,this.loadCazptureCalled||4!==e.readyState?null==t.status&&(t.status=0):T(this,e),n.cbTime=this.cbTime,r("xhr",[t,n,this.startTime,this.endTime,"xhr"],this,a.K7.ajax))}}function T(e,r){e.params.status=r.status;var n=function(e,t){var r=e.responseType;return"json"===r&&null!==t?t:"arraybuffer"===r||"blob"===r||"json"===r?G(e.response):"text"===r||""===r||void 0===r?G(e.responseText):void 0}(r,e.lastSize);if(n&&(e.metrics.rxSize=n),e.sameOrigin){var i=r.getResponseHeader("X-NewRelic-App-Data");i&&((0,x.p)(O.rs,["Ajax/CrossApplicationTracing/Header/Seen"],void 0,a.K7.metrics,t),e.params.cat=i.split(", ").pop())}e.loadCaptureCalled=!0}t.on("new-xhr",i),t.on("open-xhr-start",o),t.on("open-xhr-end",s),t.on("send-xhr-start",c),t.on("xhr-cb-time",u),t.on("xhr-load-added",d),t.on("xhr-load-removed",l),t.on("xhr-resolved",f),t.on("addEventListener-end",h),t.on("removeEventListener-end",g),t.on("fn-end",v),t.on("fetch-before-start",b),t.on("fetch-start",y),t.on("fn-start",m),t.on("fetch-done",w)}(e,this.ee,this.handler,this.dt),this.importAggregator(e)}}function pe(e,t){var r=(0,ie.D)(t),n=e.params||e;n.hostname=r.hostname,n.port=r.port,n.protocol=r.protocol,n.host=r.hostname+":"+r.port,n.pathname=r.pathname,e.parsedOrigin=r,e.sameOrigin=r.sameOrigin}const ge={},me=["pushState","replaceState"];function ve(e){const t=function(e){return(e||B.ee).get("history")}(e);return!p.RI||ge[t.debugId]++||(ge[t.debugId]=1,(0,W.YM)(t).inPlace(window.history,me,"-")),t}var be=i(3738);const{He:ye,bD:we,d3:Re,Kp:xe,TZ:Te,Lc:Ae,uP:Ee,Rz:Se}=be;class Ne extends b{static featureName=Te;constructor(e,t=!0){super(e,Te,t);if(!(0,m.V)(this.agentIdentifier))return void this.deregisterDrain();const r=this.ee;let n;ve(r),this.eventsEE=(0,F.u)(r),this.eventsEE.on(Ee,(function(e,t){this.bstStart=(0,S.t)()})),this.eventsEE.on(Ae,(function(e,t){(0,x.p)("bst",[e[0],t,this.bstStart,(0,S.t)()],void 0,a.K7.sessionTrace,r)})),r.on(Se+Re,(function(e){this.time=(0,S.t)(),this.startPath=location.pathname+location.hash})),r.on(Se+xe,(function(e){(0,x.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,a.K7.sessionTrace,r)}));try{n=new PerformanceObserver((e=>{const t=e.getEntries();(0,x.p)(ye,[t],void 0,a.K7.sessionTrace,r)})),n.observe({type:we,buffered:!0})}catch(e){}this.importAggregator(e,{resourceObserver:n})}}var Oe=i(2614);class _e extends b{static featureName=t.TZ;#i;#o;constructor(e,r=!0){let n;super(e,t.TZ,r),this.replayRunning=!1,this.#o=e;try{n=JSON.parse(localStorage.getItem("".concat(Oe.H3,"_").concat(Oe.uh)))}catch(e){}(0,g.SR)(e.agentIdentifier)&&this.ee.on(t.G4.RECORD,(()=>this.#a())),this.#s(n)?(this.#i=n?.sessionReplayMode,this.#c()):this.importAggregator(e),this.ee.on("err",(e=>{this.replayRunning&&(this.errorNoticed=!0,(0,x.p)(t.G4.ERROR_DURING_REPLAY,[e],void 0,this.featureName,this.ee))})),this.ee.on(t.G4.REPLAY_RUNNING,(e=>{this.replayRunning=e}))}#s(e){return e&&(e.sessionReplayMode===Oe.g.FULL||e.sessionReplayMode===Oe.g.ERROR)||(0,g.Aw)(this.agentIdentifier)}#u=!1;async#c(e){if(!this.#u){this.#u=!0;try{const{Recorder:t}=await Promise.all([i.e(478),i.e(249)]).then(i.bind(i,8589));this.recorder??=new t({mode:this.#i,agentIdentifier:this.agentIdentifier,trigger:e,ee:this.ee}),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording}catch(e){}this.importAggregator(this.#o,{recorder:this.recorder,errorNoticed:this.errorNoticed})}}#a(){this.featAggregate?this.featAggregate.mode!==Oe.g.FULL&&this.featAggregate.initializeRecording(Oe.g.FULL,!0):(this.#i=Oe.g.FULL,this.#c(t.Qb.API),this.recorder&&this.recorder.parent.mode!==Oe.g.FULL&&(this.recorder.parent.mode=Oe.g.FULL,this.recorder.stopRecording(),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording))}}var Ie=i(3962);class je extends b{static featureName=Ie.TZ;constructor(e,t=!0){if(super(e,Ie.TZ,t),!p.RI||!(0,R.dV)().o.MO)return;const r=ve(this.ee);Ie.tC.forEach((e=>{(0,A.sp)(e,(e=>{a(e)}),!0)}));const n=()=>(0,x.p)("newURL",[(0,S.t)(),""+window.location],void 0,this.featureName,this.ee);r.on("pushState-end",n),r.on("replaceState-end",n);try{this.removeOnAbort=new AbortController}catch(e){}(0,A.sp)("popstate",(e=>(0,x.p)("newURL",[e.timeStamp,""+window.location],void 0,this.featureName,this.ee)),!0,this.removeOnAbort?.signal);let i=!1;const o=new((0,R.dV)().o.MO)(((e,t)=>{i||(i=!0,requestAnimationFrame((()=>{(0,x.p)("newDom",[(0,S.t)()],void 0,this.featureName,this.ee),i=!1})))})),a=(0,v.s)((e=>{(0,x.p)("newUIEvent",[e],void 0,this.featureName,this.ee),o.observe(document.body,{attributes:!0,childList:!0,subtree:!0,characterData:!0})}),100,{leading:!0});this.abortHandler=function(){this.removeOnAbort?.abort(),o.disconnect(),this.abortHandler=void 0},this.importAggregator(e,{domObserver:o})}}var Pe=i(7378);const Ce={},ke=["appendChild","insertBefore","replaceChild"];function Le(e){const t=function(e){return(e||B.ee).get("jsonp")}(e);if(!p.RI||Ce[t.debugId])return t;Ce[t.debugId]=!0;var r=(0,W.YM)(t),n=/[?&](?:callback|cb)=([^&#]+)/,i=/(.*)\.([^.]+)/,o=/^(\w+)(\.|$)(.*)$/;function a(e,t){if(!e)return t;const r=e.match(o),n=r[1];return a(r[3],t[n])}return r.inPlace(Node.prototype,ke,"dom-"),t.on("dom-start",(function(e){!function(e){if(!e||"string"!=typeof e.nodeName||"script"!==e.nodeName.toLowerCase())return;if("function"!=typeof e.addEventListener)return;var o=(s=e.src,c=s.match(n),c?c[1]:null);var s,c;if(!o)return;var u=function(e){var t=e.match(i);if(t&&t.length>=3)return{key:t[2],parent:a(t[1],window)};return{key:e,parent:window}}(o);if("function"!=typeof u.parent[u.key])return;var d={};function l(){t.emit("jsonp-end",[],d),e.removeEventListener("load",l,(0,A.jT)(!1)),e.removeEventListener("error",f,(0,A.jT)(!1))}function f(){t.emit("jsonp-error",[],d),t.emit("jsonp-end",[],d),e.removeEventListener("load",l,(0,A.jT)(!1)),e.removeEventListener("error",f,(0,A.jT)(!1))}r.inPlace(u.parent,[u.key],"cb-",d),e.addEventListener("load",l,(0,A.jT)(!1)),e.addEventListener("error",f,(0,A.jT)(!1)),t.emit("new-jsonp",[e.src],d)}(e[0])})),t}const He={};function De(e){const t=function(e){return(e||B.ee).get("promise")}(e);if(He[t.debugId])return t;He[t.debugId]=!0;var r=t.context,n=(0,W.YM)(t),i=p.gm.Promise;return i&&function(){function e(r){var o=t.context(),a=n(r,"executor-",o,null,!1);const s=Reflect.construct(i,[a],e);return t.context(s).getCtx=function(){return o},s}p.gm.Promise=e,Object.defineProperty(e,"name",{value:"Promise"}),e.toString=function(){return i.toString()},Object.setPrototypeOf(e,i),["all","race"].forEach((function(r){const n=i[r];e[r]=function(e){let i=!1;[...e||[]].forEach((e=>{this.resolve(e).then(a("all"===r),a(!1))}));const o=n.apply(this,arguments);return o;function a(e){return function(){t.emit("propagate",[null,!i],o,!1,!1),i=i||!e}}}})),["resolve","reject"].forEach((function(r){const n=i[r];e[r]=function(e){const r=n.apply(this,arguments);return e!==r&&t.emit("propagate",[e,!0],r,!1,!1),r}})),e.prototype=i.prototype;const o=i.prototype.then;i.prototype.then=function(...e){var i=this,a=r(i);a.promise=i,e[0]=n(e[0],"cb-",a,null,!1),e[1]=n(e[1],"cb-",a,null,!1);const s=o.apply(this,e);return a.nextPromise=s,t.emit("propagate",[i,!0],s,!1,!1),s},i.prototype.then[W.Jt]=o,t.on("executor-start",(function(e){e[0]=n(e[0],"resolve-",this,null,!1),e[1]=n(e[1],"resolve-",this,null,!1)})),t.on("executor-err",(function(e,t,r){e[1](r)})),t.on("cb-end",(function(e,r,n){t.emit("propagate",[n,!0],this.nextPromise,!1,!1)})),t.on("propagate",(function(e,r,n){this.getCtx&&!r||(this.getCtx=function(){if(e instanceof Promise)var r=t.context(e);return r&&r.getCtx?r.getCtx():this})}))}(),t}const Me={},Ke="setTimeout",Ue="setInterval",Ve="clearTimeout",Ge="-start",Fe=[Ke,"setImmediate",Ue,Ve,"clearImmediate"];function Be(e){const t=function(e){return(e||B.ee).get("timer")}(e);if(Me[t.debugId]++)return t;Me[t.debugId]=1;var r=(0,W.YM)(t);return r.inPlace(p.gm,Fe.slice(0,2),Ke+"-"),r.inPlace(p.gm,Fe.slice(2,3),Ue+"-"),r.inPlace(p.gm,Fe.slice(3),Ve+"-"),t.on(Ue+Ge,(function(e,t,n){e[0]=r(e[0],"fn-",null,n)})),t.on(Ke+Ge,(function(e,t,n){this.method=n,this.timerDuration=isNaN(e[1])?0:+e[1],e[0]=r(e[0],"fn-",this,n)})),t}const We={};function ze(e){const t=function(e){return(e||B.ee).get("mutation")}(e);if(!p.RI||We[t.debugId])return t;We[t.debugId]=!0;var r=(0,W.YM)(t),n=p.gm.MutationObserver;return n&&(window.MutationObserver=function(e){return this instanceof n?new n(r(e,"fn-")):n.apply(this,arguments)},MutationObserver.prototype=n.prototype),t}const{TZ:qe,d3:Ze,Kp:Ye,$p:Xe,wW:Je,e5:Qe,tH:$e,uP:et,rw:tt,Lc:rt}=Pe;class nt extends b{static featureName=qe;constructor(e,t=!0){if(super(e,qe,t),!p.RI)return;try{this.removeOnAbort=new AbortController}catch(e){}let r,n=0;const i=this.ee.get("tracer"),o=Le(this.ee),a=De(this.ee),s=Be(this.ee),c=Z(this.ee),u=this.ee.get("events"),d=ne(this.ee),l=ve(this.ee),f=ze(this.ee);function h(e,t){l.emit("newURL",[""+window.location,t])}function g(){n++,r=window.location.hash,this[et]=(0,S.t)()}function m(){n--,window.location.hash!==r&&h(0,!0);var e=(0,S.t)();this[Qe]=~~this[Qe]+e-this[et],this[rt]=e}function v(e,t){e.on(t,(function(){this[t]=(0,S.t)()}))}this.ee.on(et,g),a.on(tt,g),o.on(tt,g),this.ee.on(rt,m),a.on(Je,m),o.on(Je,m),this.ee.on("fn-err",((...t)=>{t[2]?.__newrelic?.[e.agentIdentifier]||(0,x.p)("function-err",[...t],void 0,this.featureName,this.ee)})),this.ee.buffer([et,rt,"xhr-resolved"],this.featureName),u.buffer([et],this.featureName),s.buffer(["setTimeout"+Ye,"clearTimeout"+Ze,et],this.featureName),c.buffer([et,"new-xhr","send-xhr"+Ze],this.featureName),d.buffer([$e+Ze,$e+"-done",$e+Xe+Ze,$e+Xe+Ye],this.featureName),l.buffer(["newURL"],this.featureName),f.buffer([et],this.featureName),a.buffer(["propagate",tt,Je,"executor-err","resolve"+Ze],this.featureName),i.buffer([et,"no-"+et],this.featureName),o.buffer(["new-jsonp","cb-start","jsonp-error","jsonp-end"],this.featureName),v(d,$e+Ze),v(d,$e+"-done"),v(o,"new-jsonp"),v(o,"jsonp-end"),v(o,"cb-start"),l.on("pushState-end",h),l.on("replaceState-end",h),window.addEventListener("hashchange",h,(0,A.jT)(!0,this.removeOnAbort?.signal)),window.addEventListener("load",h,(0,A.jT)(!0,this.removeOnAbort?.signal)),window.addEventListener("popstate",(function(){h(0,n>1)}),(0,A.jT)(!0,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e)}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var it=i(3333);class ot extends b{static featureName=it.TZ;constructor(e,t=!0){super(e,it.TZ,t);const r=[e.init.page_action.enabled,e.init.performance.capture_marks,e.init.performance.capture_measures,e.init.user_actions.enabled];p.RI&&e.init.user_actions.enabled&&(it.Zp.forEach((e=>(0,A.sp)(e,(e=>(0,x.p)("ua",[e],void 0,this.featureName,this.ee)),!0))),it.qN.forEach((e=>(0,A.sp)(e,(e=>(0,x.p)("ua",[e],void 0,this.featureName,this.ee)))))),r.some((e=>e))?this.importAggregator(e):this.deregisterDrain()}}var at=i(993),st=i(3785);class ct extends b{static featureName=at.TZ;constructor(e,t=!0){super(e,at.TZ,t);const r=this.ee;this.ee.on("wrap-logger-end",(function([e]){const{level:t,customAttributes:n}=this;(0,st.R)(r,e,n,t)})),this.importAggregator(e)}}new class extends o{constructor(t,r){super(r),p.gm?(this.features={},(0,R.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(t.features||[]),this.desiredFeatures.add(w),this.runSoftNavOverSpa=[...this.desiredFeatures].some((e=>e.featureName===a.K7.softNav)),(0,d.j)(this,t,t.loaderType||"agent"),this.run()):(0,e.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}run(){try{const t=u(this.agentIdentifier),r=[...this.desiredFeatures];r.sort(((e,t)=>a.P3[e.featureName]-a.P3[t.featureName])),r.forEach((r=>{if(!t[r.featureName]&&r.featureName!==a.K7.pageViewEvent)return;if(this.runSoftNavOverSpa&&r.featureName===a.K7.spa)return;if(!this.runSoftNavOverSpa&&r.featureName===a.K7.softNav)return;const n=function(e){switch(e){case a.K7.ajax:return[a.K7.jserrors];case a.K7.sessionTrace:return[a.K7.ajax,a.K7.pageViewEvent];case a.K7.sessionReplay:return[a.K7.sessionTrace];case a.K7.pageViewTiming:return[a.K7.pageViewEvent];default:return[]}}(r.featureName).filter((e=>!(e in this.features)));n.length>0&&(0,e.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)}))}catch(t){(0,e.R)(22,t);for(const e in this.features)this.features[e].abortHandler?.();const r=(0,R.Zm)();delete r.initializedAgents[this.agentIdentifier]?.api,delete r.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return r.ee.get(this.agentIdentifier).abort(),!1}}}({features:[he,w,N,Ne,_e,_,D,ot,ct,je,nt],loaderType:"spa"})})()})();</script> <!-- jQuery --> <script type="text/javascript" src="/site/ctx/jquery/jquery-3-stable.min.js"></script> <script type="text/javascript" src="/site/ctx/jquery/jquery-migrate-3-stable.min.js"></script> <!-- CT Utils --> <script type="text/javascript" src="/site/ctx/jquery/ctjq.js"></script> <link rel="stylesheet" type="text/css" href="/site/ctx/jquery/ctjq.css"> <!-- Bootstrap CSS --> <link rel="stylesheet" type="text/css" href="/site/ctx/bs/bootstrap/css/bootstrap.min.css"> <link rel="stylesheet" type="text/css" href="/ca7/style/ca7_zbs/bootstrap-theme.min.css"> <!-- Font-awesome CSS --> <link rel="stylesheet" type="text/css" href="/site/ctx/font-awesome-4.5.0/css/font-awesome.min.css"> <!-- Base --> <link rel="stylesheet" type="text/css" href="/skin/ca7/base_bs.css"> <script language="javascript" src="/skin/ca7/base_bs.js"></script> <!-- Custom --> <link rel="stylesheet" type="text/css" href="/ca7/style/ca7_zbs/main_bs.css"> <script language="javascript" src="/ca7/style/ca7_zbs/main_bs.js"></script> <link rel="stylesheet" type="text/css" href="/ca7/style/ca7_zbs/bootstrap-custom.css"/> <!--[if IE ]> <link rel="stylesheet" type="text/css" href="/ca7/style/ca7_zbs/bootstrap-custom-ie-fix.css"/> <![endif]--> <!--[if lte IE 8]> <link rel="stylesheet" type="text/css" href="/ca7/style/ca7_zbs/bootstrap-custom-ie8-fix.css"/> <![endif]--> <link rel="stylesheet" type="text/css" href="/ca7/style/ca7_zbs/main_sec.css?1733163426"/> <script type="text/javascript"> window.dataLayer = window.dataLayer || []; dataLayer.push({ "level2": "Secondary Public", //e.g. Lower Primary, Upper Primary, Secondary etc. "chapter1": "Articles", //e.g. News, Showbiz etc. "chapter2": "", //e.g. News, Showbiz etc. "visitorcat": "public", "at": "0", "contentcat": "free", "contenttype": "listing", "school": "" }); </script> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){ w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M885BZC');</script> <!-- End Google Tag Manager --> <!-- Base extra head --> <meta property="og:title" content="ZBSchools.sg"> <meta property="og:image" content="https://www.zbschools.sg/ca7/style/ca7_zbs/zbs_img.jpg"> <script language="javascript" src="/site/ctx/jquery/jQuery-slimScroll-1.3.0/jquery.slimscroll.min.js"></script> <script language="javascript" src="/site/ctx/jquery/jquery-cookie-master/src/jquery.cookie.js"></script> <script language="javascript" src="/site/ctx/bs/bootstrap/js/bootstrap-bootbox.min.js"></script> <link rel="stylesheet" xhref="/skin/custom/ca7_zbs/ca7/a" href="/site/ctx/jquery/jquery-ui-1.13.0/jquery-ui.css" /> <script src="/site/ctx/jquery/jquery-ui-1.13.0/jquery-ui.js"></script> <script type="text/javascript" src="/skin/custom/ca7_zbs/ca7/jquery.ui.touch-punch.min.js"></script> <style type="text/css"> .needacctt { top: 215px; left: 110px; width:40px; height: 16px; background:url('/ca7/style/ca7_zbs/subscriber .jpg') center no-repeat; } .navbar-collapse .item-embed-img, .navbar-collapse .item-embed-img IMG { max-width:700px; } .pubvidlink, .pubvidlink:visited, .pubvidlink:hover { font-size: 11px; font-weight: 500; color: #FFFFFF !important; text-transform: uppercase; background: rgba(231, 124, 33, 1) !important; box-shadow: 0px 1px 0px #df6526; border-radius: 4px; width: auto !important; padding: 0px 15px !important; line-height: 30px !important;} #login-form-container { display:none; position:absolute; width:300px; height:250px; background:#FFFFFF; border-radius:6px; z-index:1500; padding:20px; right:0px; top:60px; text-align:left; } #close_btn { cursor:pointer; position: absolute; top: -20px; right: -20px; } #upper-top-nav .navbar-collapse .navbar-user-menu-container > LI > A { display:inline-block; float:right; } #upper-top-nav .navbar-collapse .navbar-right LI A { margin:5px 0px 5px 10px; } .navbar-inverse .navbar-nav > li#fb A, .navbar-inverse .navbar-nav > li#fb A:visited, .navbar-inverse .navbar-nav > li#fb A:hover { background:url('/ca7/style/ca7_zbs/nlogin/web/fb.png') center no-repeat; display: block; text-indent: -9999px; width: 30px; height: 30px; transform: scale(0.8); } .navbar-inverse .navbar-nav > li#instg A, .navbar-inverse .navbar-nav > li#instg A:visited, .navbar-inverse .navbar-nav > li#instg A:hover { background:url('/ca7/style/ca7_zbs/nlogin/web/ig.png') center no-repeat; display: block; text-indent: -9999px; width: 30px; height: 30px; transform: scale(0.8); } .navbar-inverse .navbar-nav > li#fb A:hover, .navbar-inverse .navbar-nav > li#instg A:hover { transform: scale(1); } .header-masthead { display:none; } .item .ratings .comments { display:none !important; } .navbar-collapse-lower { visibility:hidden; } @media (max-width: 768px) { .lvl-sec .header-masthead, .lvl-sec .header-masthead A { display:none; } } </style> <script> function checkUser() { $.ajax({ url: "/cos/o.x?c=/ca7_zbs/zbs&func=getuser", success:function(rs) { var useritem = jQuery.parseJSON(rs); if ($("#csrf_token").length>0) { $("#csrf_token").val(useritem.csrftoken); } if ((useritem.role!='student') && (useritem.role!='guest')) { var lvlSel = useritem.lvlselList; $.each(lvlSel, function (index, value) { $("#lvlsel .dropdown-menu").append('<li><a href="/cos/o.x?c=/ca7_zbs/zbsinit&lvl='+value['code']+'"><span>'+value['label']+'</span></a></li>'); if (useritem.lvl==value['code']) { $("#lvlsel SPAN.lvllabel").text(value['label']); } }); $("#lvlsel").show(); } if (useritem.zbsAccess!='1') { $("LI.reqZBS > A").attr("href","#"); } $("#lo_main").addClass("lo-"+useritem.role).addClass("lvl-"+useritem.lvl); if (useritem._id=='0') { $("#PTID_4000").remove(); $("#PTID_9900").remove(); $("LI.reqLogin").remove(); $("LI#videos > A").addClass("pubvidlink"); $("LI#usubscribe > A").hide(); $("LI#usubscribe > A.sub-"+useritem.lvl).show(); $("LI#usubscribe").css("display","inline-block"); $("LI#uprofile").hide(); $("LI#ulogin").show(); } else { if (useritem.ulinkpos!='') { $(".useful-links").attr("style","width:64px;"+useritem.ulinkpos); } var top_pos = parseInt($(".useful-links").css('top')); if (top_pos<0) $(".useful-links").css('top','0px'); $("LI#videos > A").addClass("vidlink"); $("LI#usubscribe").hide(); $("LI#uprofile").show(); $("LI#ulogin").hide(); $("#username-val").text(useritem.fname); $("#userpoints-val").text(useritem.points); if (useritem.photo_slot!='') { $("#userimg-val").attr("src",useritem.photo_slot); } if (useritem.role=='student') { $("#PTID_9900").remove(); } } } }); } function loadMenu() { $.ajax({ url: "/contact?rand=cHVibGlj", success:function(rs) { $(".navbar-collapse-lower").html($(rs).find(".navbar-collapse-lower").html()); $(".navbar-collapse-lower").css("visibility","visible"); } }); } $(function() { checkUser(); loadMenu(); if ($("#popup_notify").length>0) { bootbox.dialog({ message: $("#popup_notify").html() }); } if ($("#mobile_pin").length>0) { bootbox.dialog({ message: $("#mobile_pin").html() }); } $(".appcontent_box").on("click","#subscribelink",function(){ window.location=$(".suburl").attr("href"); return; }); $("#ulogin > A").click(function(){ $("#login-form-container").toggle(); }); $("#close_btn").click(function(){ $("#login-form-container").hide(); }); $('.sidebar-body-menu').slimScroll({ height: '100%' }); $('#sidebarToggle').click(function(e) { e.preventDefault(); var $layout = $('.lo-wrapper'); if ($layout.hasClass('sidebar-sm')) { $layout.removeClass('sidebar-sm'); $.removeCookie('bs-sidebar-sm'); $.post("/cos/o.x?c=/ca7_zbs/pageshrub&func=remove_bs_vars", { submit: 1, bs_vars: ['bs-sidebar-sm'] }); } else { $layout.addClass('sidebar-sm'); $.cookie('bs-sidebar-sm', true); $.post("/cos/o.x?c=/ca7_zbs/pageshrub&func=save_bs_vars", { submit: 1, bs_vars: { 'bs-sidebar-sm': '1' } }); } }); }); </script> <!-- Optional jQuery UI --> <!-- App extra head --> <style> .tile { display: block; position: relative; height: 48px; padding: 10px; margin-bottom: 10px; color: #fff; overflow: hidden; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; } .tile .tile-icon { position: absolute; left: 10px; /*line-height: 120px;*/ } .tile .tile-icon i.fa { font-size:2em; } .tile .tile-content{ position: absolute; left: 50px; top: 5px; } .tile p.title { font-size: 16px; margin-bottom: 2px; } .tile p.desciption { font-size: 13px; margin-bottom: 2px; } .tile-default { background-color:#ddd; color:#000; } .tile-success { background-color:#5cb85c; color:#fff; } .tile-primary { background-color:#428bca; color:#fff; } .tile-warning { background-color:#f0ad4e; color:#fff; } .tile-danger { background-color:#d9534f; color:#fff; } .tile-info { background-color:#5bc0de; color:#fff; } </style> <script> $(function(){ $('.btn_view_announcement').click(function(ev){ var url = this.href + "&popup=yes"; open_popup_url_viewer({ url:url, title:'View Announcement', hide_header:false }); return false; }); $('.btn_view_user_profile').click(function(ev){ var url = this.href + "&popup=yes"; open_popup_url_viewer({ url:url, title:'View User Profile', hide_header:false }); return false; }); }); </script> <!-- Bootstrap JS (called after app_head to prevent conflict with other libraries) --> <script language="javascript" src="/site/ctx/bs/bootstrap/js/bootstrap.min.js"></script> <!-- Layr --> <script language="javascript"> </script> <script language="javascript"> $(function(){ if(layrname='') { $('body').append('<div id="layrname" x-style="opacity:0.5;font:bold 10px Arial;position:fixed;background:#333;color:#fff;bottom:35px;left:10px;z-index:2000;padding:0 4px;">layr:'+layrname+'</div>'); } }); </script> <meta name="google-site-verification" content="VYjiIaAogkN-b1Tu5A6vBZf0et-JQeuyEqJunZpmsKY" /> </head> <body> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-M885BZC" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <!-- Pagetree --> <img id="shade_img_ff" src="/pix/a/shadow5.png" style="visibility:hidden;position:absolute;z-index:1001;"> <img id="shade_img_ie" src="/pix/a/shadow8.gif" style="visibility:hidden;position:absolute;z-index:1001;filter:progid:DXImageTransform.Microsoft.Blur(PixelRadius=5,MakeShadow=true,ShadowOpacity=0.20);" > <!--[if lte IE 8]> <script src="/site/ctx/bs/bootstrap/js/respond.min.js"></script> <![endif]--> <div class="lo-pageshrub"> <div id="lo_whole" class="layout-"> <div id="lo_panel"> <div id="lo_main"><div class="lo-wrapper lo-single-col-view-bs"> <!-- header --> <style> .affix { top: 0; width: 100%; } #top-nav { z-index: 1030; } #upper-top-nav ul.dropdown-menu { z-index: 1031; } #upper-top-nav .navbar-collapse-upper.navbar-collapse.collapse { z-index: 1031; } </style> <style id="ct_bs_nav_affix_dynamic_css"> .affix + .container-fluid { padding-top: 0px; } </style> <script> var ct_bs_nav_affix = { currWidth: 0 ,currMode: 'unknown' ,getMode: function(winWidth) { return (winWidth >= 768) ? "desktop" : "mobile"; } ,handleResize: function(eventType) { this.currWidth = $(window).width(); var newMode = this.getMode(this.currWidth); if (newMode != this.currMode) { this.currMode = newMode; this.adjustAffixOffset(eventType); this.adjustPagePadding(eventType); } } ,adjustAffixOffset: function(eventType) { var upperNavHeight = $("#upper-top-nav").height(); $("#top-nav").affix({ offset: { top: upperNavHeight+1 } }); if (eventType === 'resize') { $("#top-nav").data('bs.affix').options.offset.top = upperNavHeight+1; } } ,adjustPagePadding: function(eventType) { if (this.currMode == 'mobile') { var lowerNavHeight = $("#top-nav .navbar-header").height(); } else { var lowerNavHeight = $("#top-nav").height(); } var navCss = document.getElementById('ct_bs_nav_affix_dynamic_css'); if (navCss) { navCss.innerHTML = '.affix + .container-fluid { padding-top: '+lowerNavHeight+'px; }' } } } $(function(){ $(window).on('load resize', function(e) { ct_bs_nav_affix.handleResize(e.type); }); }); </script> <div id="upper-top-nav" class="navbar navbar-inverse" role="navigation"> <div class="container-fluid"> <div class="navbar-header"> <a class="navbar-brand" href="/"><span class="navbar-brand-label">ZBS Logo</span></a> </div> <div class="navbar-collapse collapse"> <ul class="nav navbar-nav navbar-right navbar-user-menu-container"> <li id="fb"><a href="https://www.facebook.com/zbcomma" target="_blank">Facebook</a></li> <li id="instg"><a href="https://www.instagram.com/watzdot/" target="_blank">Instagram</a></li> <li id="lvlsel" class="dropdown" style="display:none"> <a href="" class="dropdown-toggle" data-toggle="dropdown" aria-expanded="false"><span class="lvllabel"> </span> <span class="caret"></span></a> <ul class="dropdown-menu"> </ul> </li> <li id="downloads" class="dropdown reqLogin reqZBS"> <a href="/downloads" > Downloads </a> </li> <li id="leaderboard" class="dropdown reqLogin reqZBS"> <a href="/leaderboard" > Leaderboard </a> </li> <li id="usubscribe" class="dropdown" style="display:block"> <a class="suburl sub-lowerp" style="display:none" title="Subscribe" href="https://subscribe.sph.com.sg/student-publications/"><span class="glyphicon glyphicon-book"></span> 订阅 / Subscribe</a> <a class="suburl sub-upperp" style="display:none" title="Subscribe" href="https://subscribe.sph.com.sg/student-publications/"><span class="glyphicon glyphicon-book"></span> 订阅 / Subscribe</a> <a class="suburl sub-sec" style="display:none" title="Subscribe" href="https://subscribe.sph.com.sg/student-publications/"><span class="glyphicon glyphicon-book"></span> 订阅 / Subscribe</a> </li> <li id="videos" class="dropdown"> <a class="" href="/videos" > Videos </a> </li> <li id="videosdm" class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" aria-expanded="false"><span class="caret"></span></a> <ul class="dropdown-menu"> <li><a href="/videos/news"><span>新闻</span></a></li> <li><a href="/videos/lifestyle"><span>生活</span></a></li> <li><a href="/videos/showbiz"><span>娱乐</span></a></li> <li><a href="/videos/campus"><span>校园强打</span></a></li> <li><a href="/videos/series"><span>系列节目</span></a></li> <li><a href="/videos/podcast"><span>逗播客</span></a></li> <li><a href="/videos/thumbienews"><span>拇指姐姐说新闻</span></a></li> <li><a href="/videos/viewsoncampus"><span>大头条进校园</span></a></li> </ul> </li> <li id="events" class="dropdown reqLogin reqZBS"> <a href="/events" > Events </a> </li> <li id="uprofile" class="dropdown reqLogin" style="display:none;"> <a href="#" id="nav-profile" class="dropdown-toggle" data-toggle="dropdown"><span style="float:left; margin-right:5px; line-height:15px; "><span id="username-val" ></span><br/><span id="userpoints" style="color:#1cace4; font-weight:bold; display:block; margin-top:5px;"><span id="userpoints-val"></span> 分</span></span><img src="/ca7/style/ca7_zbs/main/boy-avatar.jpg" id="userimg-val" style="float:right;"/></a> <ul class="dropdown-menu"> <li><a href="/cos/o.x?c=/ca7_zbs/zbsprofile"><span>Profile</span></a></li> <li><a href="/cos/o.x?c=/ca7_zbs/user&func=logout"><span>Logout</span></a></li> </ul> </li> <li id="ulogin" class="dropdown"> <a title="Login" href="#"><span class="glyphicon glyphicon-off"></span> 登录 / Login</a> <div id="login-form-container"> <img src="/rs/part/dialog_close.png" alt="Close" id="close_btn"/> <form id="login-form" class="form-horizontal margin-top-md" role="form" action="/cos/o.x?c=/ca7_zbs/zbsauth" method="post"> <div class="form-group margin-bottom-xs"> <div class="col-sm-12"> <input name="name" type="text" class="form-control input_" id="inputLoginId" placeholder="User ID"> </div> </div> <div class="form-group margin-bottom-xs"> <div class="col-sm-12 margin-bottom-xs"> <input name="password" type="password" class="form-control input_" id="inputPassword" placeholder="Password" autocomplete="off"> <p class="help-block no-margin-bottom">密码需区分大小写.</p> </div> </div> <div class="form-group margin-bottom-md"> <div class="col-sm-12" id="forgot-password-container"> <button type="submit" class="btn btn-primary button_" id="btn_submit" data-loading-text="登录中 ...">提交</button> <a href="/cos/o.x?c=/ca7_zbs/forgot_password" style="font-size:12px; color:#737373;width:auto;height:auto;margin:0px; display:inline-block;">忘记密码了!</a> </div> </div> <div class="form-group margin-bottom-xl"> <div class="col-sm-12" style="color:#737373;width:auto;height:auto;margin:0px;"> 想看到更多内容?<a href="/login" style="color:#428bca;width:auto;height:auto;margin:0px; text-decoration:underline; display:inline-block;">马上订阅</a> </div> </div> </form> </div> </li> </ul> <div class="navbar-right"> <div class="iveo_pipe_zbs_topad iveo_gencon" width="100%" style="width:100%;"><div class="zbs_top_ad"> <div class='item-embed-img adsbanner'><a href="/cos/o.x?c=/ca7_zbs/zbs&func=trackads&rid=30723"><img alt="2024zishuyinian" title="2024zishuyinian" src="/ca7_zbs/slot/zbsecontent/ma31/a4d161bbb_30723.png"/></a></div> </div><div class="iveo_pipe"><img id="call://zbs/topad" class="pipeobj" alt="TopAd" style="width:100%;" /></div></div> </div> </div> </div> <div class="useful-links" style="width:64px;"> <ul> <li><A alt="Search" title="Search" id="zbs-search" href="/cos/o.x?c=/ca7_zbs/zbs&func=search">Search</A></li> <li><A alt="Telegram" title="Telegram" id="zbs-telegram" target="_blank" href="https://t.me/watzdot">Telegram</A></li> <li><A alt="学生投稿" title="学生投稿" id="zbs-submit" target="_blank" href="https://bit.ly/zbcomma_submit">ZBC Submit</A></li> </ul> </div> </div><!-- /#upper-top-nav --> <div id="top-nav" class="navbar navbar-inverse" role="navigation" x-data-spy="affix" x-data-offset-top="100"> <div class="container-fluid"> <div class="navbar-header"> <a class="navbar-brand navbar-brand-mobile" href="/cos/o.x?c=/ca7_zbs/pageshrub&func=home"><span class="navbar-brand-label">ZBSchools.sg</span></a> <button type="button" class="navbar-toggle margin-left-md" data-toggle="collapse" data-target=".navbar-collapse-lower"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> </div> <div class="navbar-collapse-lower navbar-collapse collapse"> <ul class="nav navbar-nav"> <li class="dropdown visible-xs profile-dropdown"> <a href="#" class="dropdown-toggle" onclick="$('.mobile-login').toggle();">登录 / Login </a> <div class="mobile-login" style="display:none;"> <form id="login-form" class="form-horizontal margin-top-md" role="form" action="/cos/o.x?c=/ca7_zbs/zbsauth" method="post"> <input name="jumpto" type="hidden" value="/cos/o.x?c=/ca7_zbs/pageshrub"> <div class="form-group margin-bottom-xs"> <div class="col-sm-12"> <input name="name" type="text" class="form-control input_" id="inputLoginId" placeholder="User ID"> </div> </div> <div class="form-group margin-bottom-xs"> <div class="col-sm-12 margin-bottom-xs"> <input name="password" type="password" class="form-control input_" id="inputPassword" placeholder="Password" autocomplete="off"> <p class="help-block no-margin-bottom">密码需区分大小写.</p> </div> </div> <div class="form-group margin-bottom-md"> <div class="col-sm-12" id="forgot-password-container" style="text-align:left;"> <button type="submit" class="btn btn-primary button_" id="btn_submit" data-loading-text="登录中 ...">提交</button> <a href="/cos/o.x?c=/ca7_zbs/forgot_password" style="font-size:12px; width:auto !important;height:auto !important;margin:0px; display:inline-block; background:transparent !important; ">忘记密码了!</a> </div> </div> <div class="form-group margin-bottom-xl"> <div class="col-sm-12" style="width:auto;height:auto;margin:0px;"> 想看到更多内容?<a href="/login" style="width:auto !important;height:auto !important; margin:0px; text-decoration:underline; display:inline-block; background:transparent !important;">马上订阅</a> </div> </div> </form> </div> </li> <li id="PTID_0000" class="dropdown nav-menu-applications"> <a href="" class="dropdown-toggle" data-toggle="dropdown" aria-expanded="false"> <span class="caret"></span></a> <ul class="dropdown-menu"> <li><a href="/cos/o.x?c=/ca7_zbs/zbsinit&lvl=lowerp"><span>小学低年级/ Lower Primary</span></a></li> <li><a href="/cos/o.x?c=/ca7_zbs/zbsinit&lvl=upperp"><span>小学高年级/ Upper Primary</span></a></li> <li><a href="/cos/o.x?c=/ca7_zbs/zbsinit&lvl=sec"><span>中学/ Secondary</span></a></li> </ul> </li> <li id="PTID_1000" class="dropdown nav-menu-applications "> <a href="/">阅读 READ</a> </li> <li id="PTID_2000" class="dropdown nav-menu-applications "> <a href="/cos/o.x?c=/ca7_zbs/zbsoral">看录像说话 ORAL</a> </li> <li id="PTID_3000" class="dropdown nav-menu-applications "> <a href="#" class="dropdown-toggle" data-toggle="dropdown">读报作业 News-in-Education <span class="caret"></span></a> <ul id="dropmenu_3000" class="dropdown-menu" role="menu"> <li><a href="/NIE/newsfeed" >新闻消化室</a></li> <li><a href="/NIE/comprehension" >阅读补贴</a></li> <li><a href="/NIE/topic" >话题</a></li> <li><a href="/NIE/newsart" >漫漫来</a></li> <li><a href="/NIE/oral-practice" >口试训练</a></li> <li><a href="/cos/o.x?c=/ca7_zbs/zbs&tid=1&cid=117" >模拟试卷</a></li> </ul> </li> <li class="dropdown visible-xs useful-dropdown useful-links"> <ul> <li><A alt="UFM" title="UFM" id="zbs-ufm" href="https://streaming.ufm1003.sg/" target="_blank" onclick="window.open(this.href,'launcher','width=342,height=608');return false;">UFM</A></li> <li><A alt="Vocab" title="Vocab" id="zbs-vocab" href="/cos/o.x?c=/ca7_zbs/vocab&func=all_vocabs">My Vocab</A></li> <li><A alt="Likes" title="Likes" id="zbs-likes" href="/cos/o.x?c=/ca7_zbs/zbs&func=mylikes">My Likes</A></li> </ul> </li> <li class="dropdown visible-xs header-dropdown"> <ul> <li id="downloads" class="dropdown"> <a href="/cos/o.x?c=/ca7_zbs/zbs_download" > Downloads </a> </li> <li id="leaderboard" class="dropdown"> <a href="/cos/o.x?c=/ca7_zbs/leaderboard" > Leaderboard </a> </li> <li id="videos" class="dropdown"> <a href="/cos/o.x?c=/ca7_zbs/zbs&func=vid" > Videos </a> </li> <li id="events" class="dropdown"> <a href="/cos/o.x?c=/ca7_zbs/zbs&tid=2" > Events </a> </li> </ul> </li> <li class="dropdown visible-xs mobile-search"> <form method="get" action="/cos/o.x"> <input type="hidden" name="c" value="/ca7_zbs/zbs"/> <input type="hidden" name="func" value="search"/> <div class='search_box'> <input id="search_str" type='text' name='kw' value='' placeholder='搜索 Search'> <button id="search_btn"> <span class="glyphicon glyphicon-search" aria-hidden="true"></span> </button> </div> </form> </li> </ul> </div> </div><!-- /container --> <div class="edmsg container-fluid"> <div class="iveo_pipe_zbs_editmsg iveo_gencon" width="100%" style="width:100%;"> <div class="iveo_pipe"><img id="call://zbs/editmsg" class="pipeobj" alt="TopAd" style="width:100%;" /></div></div> </div> </div><!-- /#top-nav --> <!-- /header --> <!-- body --> <div class="content container-fluid"> <hr> <div class="appcontent_box clearfix"> <style> .app-icon { display: inline-block; } </style> <link rel="stylesheet" href="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css"> <style type="text/css"> .container { display:block; width:100%; } .container .ug-wrapper { display:block; width:100%; margin:0px auto; } header DIV.title { text-align:center; font-size:38px; padding:50px 0px; } section { margin-bottom:50px; border-bottom:1px solid #CDCDCD; } section DIV.title { color:rgb(31,73,125); font-size:28px; margin-bottom:10px; } section article { margin-bottom:50px; } section article DIV.title { color:rgb(79,129,189); font-size:21px; margin-bottom:10px; } section article IMG { width:auto; max-width:100%; height:auto; } section article IMG.icon { width:auto; height:20px; display:inline-block; } section article IMG.float-left { float:left; width:40%; margin-right:10px; } section article SPAN.clear { clear:both; display:block; } section.contents UL { display:block; margin:0px 0px 0px 20px; padding:0px; } section.contents UL LI { display:block; margin:0px; padding:5px 0px; } section.contents UL LI A, section.contents UL LI A:hover, section.contents UL LI A:visited { color:#000000; } #scrolltop, #scrolltop:hover { position:fixed; right:20px; bottom:20px; display:block; width:100px; padding:10px; border:1px solid #000000; text-align:center; color:#000000; text-decoration:none; border-radius:5px; } .faq H1 { font-size:16px; } DIV.ui-content.main { padding:1em; } DIV.collapsible { border:1px solid #ddd; border-radius:.3125em; } DIV.collapsible > DIV { display:none; padding:1em; } DIV.collapsible > H1 { cursor:pointer; display:block; background:#f6f6f6; color:#333; padding:.7em 1em; border-radius:inherit; margin:0px; } DIV.collapsible IFRAME { max-width:100%; } DIV.collapsible.show > DIV { display:block; } DIV.collapsible IMG { height:16px !important; } .faqm, .faqm:hover { font-size: 14px; display: inline-block; border: 2px solid #d72429; padding: 5px 10px; border-radius: 10px; color: #d72429; font-weight: bold; text-decoration: none; } .toc { padding:20px 0px; border-radius:10px; margin-bottom:20px; border-bottom:1px solid #CCCCCC; } </style> <script type="text/javascript"> $(function(){ $("DIV.collapsible > H1").click(function(){ $(this).closest("DIV.collapsible").toggleClass("show"); }); }); </script> <div class="container"> <div class="ug-wrapper"> <section class="faq"> <div class="title">Frequently Asked Questions <div class='btn-group top-sm btn-group-sm pull-right'> <a class="btn btn-default" href="/cnfaq">中文</a> </div> </div> <div class="toc"> <h3>Students</h3> <ol> <li><a href="#public">Public User</a></li> <li><a href="#subscriber">Subscriber</a></li> <li><a href="#pt">Placement Test</a></li> <li><a href="#article">Article Page</a></li> </ol> <h3>Teacher</h3> <ol> <li><a href="#acct">Account</a></li> <li><a href="#gifts">Gifts</a></li> <li><a href="#report">Analytic Report</a></li> </ol> <h3>General</h3> <ol> <li><a href="#tech">Tech Matters</a></li> <li><a href="#subscription">Subscription Info</a></li> </ol> </div> <h2>Students <div class='btn-group top-sm btn-group-sm pull-right'> <a class="faqm" target="_blank" href="/ca7/style/ca7_zbs/manual/Updated_Student Maual_2021.pdf"><img src="/ca7/style/ca7_zbs/pdf-red.png" / > Students' Manual</a> </div> </h2> <article class="public"> <div class="title"><a name="public"></a>Public User</div> <div class="main ui-content"> <div class="collapsible"> <h1>Can I access ZBschools.sg without subscription?</h1> <div>Yes, you may choose the different landing page via the blue button at the top right hand corner. Navigate the different tabs to read the free content.</div> </div> </div> <div class="main ui-content"> <div class="collapsible"> <h1>Compared to a subscriber, how much information can I access from the portal?</h1> <div>A public user can only access approximately one fifth of the information available.</div> </div> </div> <div class="main ui-content"> <div class="collapsible"> <h1>Can I subscribe to ZBSchools as a home subscriber? </h1> <div> <p>Yes, you may subscribe to ZBSchools.sg by clicking on the link below.</p> <br> <ul> <li><a href="https://www.sphsubscription.com.sg/eshop/?r=products/newsubscriptionpackages&pcode=tupj" target="_blank">Thumbs Up Junior</a></li> <li><a href="https://www.sphsubscription.com.sg/eshop/?r=products/newsubscriptionpackages&pcode=tup" target="_blank">Thumbs Up</a></li> <li><a href="https://www.sphsubscription.com.sg/eshop/?r=products/newsubscriptionpackages&pcode=zbcm" target="_blank">Comma</a> </li> </ul> </div> </div> </div> </article> <article class="subscriber"> <div class="title"><a name="subscriber"></a>Subscriber</div> <div class="main ui-content"> <div class="collapsible"> <h1>I've forgotten my password.</h1> <div>You can retrieve your password using the 'Forgot Password' link which can be found in the login box on the landing page.</div> </div> </div> <div class="main ui-content"> <div class="collapsible"> <h1>I've submitted my Login-ID on the “Forgot Password” page, but I did not receive the reset password email.</h1> <div>Please ensure that you have provided a valid email address.<br><br> Secondly, please check both your inbox and spam folder in your email account.<br><br> If you are still unable to find the reset password email, please contact <a href="mailto:support@commontown.com">our support team</a> for further assistance. Teachers may reset the password for students too.<br> <iframe src='//players.brightcove.net/5742226969001/default_default/index.html?videoId=5985534919001' allowfullscreen frameborder=0></iframe> </div> </div> </div> <div class="main ui-content"> <div class="collapsible"> <h1>I've forgotten my login ID.</h1> <div>Please contact <a href="mailto:support@commontown.com">our support team</a> for further assistance.</div> </div> </div> <div class="main ui-content"> <div class="collapsible"> <h1>Can I change my email address?</h1> <div>You may change your email address by accessing “Profile” page and clicking on the “Email” tab. Please save upon completion.</div> </div> </div> <div class="main ui-content"> <div class="collapsible"> <h1>Can I change my login ID?</h1> <div>You arer unable to change your login ID. For further assistance contact <a href="mailto:cirschool@sph.com.sg">cirschool@sph.com.sg</a>.</div> </div> </div> <div class="main ui-content"> <div class="collapsible"> <h1>Can I change my password?</h1> <div>Yes, you can change your password by accessing the “Profile” page and clicking on the “Password” tab. Please save upon completion.</div> </div> </div> <div class="main ui-content"> <div class="collapsible"> <h1>How to accept teacher's Gift?</h1> <div> <iframe src='//players.brightcove.net/5742226969001/default_default/index.html?videoId=5985540137001' allowfullscreen frameborder=0></iframe> </div> </div> </div> <div class="main ui-content"> <div class="collapsible"> <h1>How to earn points to redeem exclusive prizes?</h1> <div> <iframe src='//players.brightcove.net/5742226969001/default_default/index.html?videoId=5985540136001' allowfullscreen frameborder=0></iframe> </div> </div> </div> </article> <article class="placement"> <div class="title"><a name="pt"></a>Placement Test</div> <div class="main ui-content"> <div class="collapsible"> <h1>Why is the Placement Test necessary?</h1> <div>The system can only ascertain your reading level accurately after you have completed the test. The system will then push relevant articles suitable to your reading abilities in the category “今天读什么”. Hence, articles found in “今天读什么” vary from subscriber to subscriber.<br><br> As you go on to read and complete the practices found at the end of each article, the system will continuously update your reading progress.</div> </div> </div> <div class="main ui-content"> <div class="collapsible"> <h1>How many times must I do the placement test?</h1> <div>Each subscriber will only be able to attempt once to the placement test. You are unable to redo the test once submission. </div> </div> </div> </article> <article class="article"> <div class="title"><a name="article"></a>Article page</div> <div class="main ui-content"> <div class="collapsible"> <h1>How do I bookmark an article?</h1> <div>You may click the <img src="/ca7/style/ca7_zbs/icons/favorite-disabled.png" height="16" /> icon and save the article to your “favourite article” folder.</div> </div> </div> <div class="main ui-content"> <div class="collapsible"> <h1>Can I share the article across social media platforms like Facebook and Twitter?</h1> <div>Yes, you can share articles to Facebook and Twitter if you are a secondary school student. You may click the <img src="/ca7/style/ca7_zbs/icons/share-tweet.png" height="16" /> icon within the article page to share it. </div> </div> </div> <div class="main ui-content"> <div class="collapsible"> <h1>Can I attempt “开始练习” more than once if I want to get a better score? </h1> <div>You have to wait 2 hours before you can retry the End-Article Quiz after completion.</div> </div> </div> <div class="main ui-content"> <div class="collapsible"> <h1>I didn’t see my results after i completed the NiE 练习.</h1> <div>Your NiE Quiz contains Open-Ended questions which require your teacher to grade.</div> </div> </div> <div class="main ui-content"> <div class="collapsible"> <h1>Can I see comments from other school students?</h1> <div>No, you can only view comments from your schoolmates.</div> </div> </div> </article> <h2>Teacher <div class='btn-group top-sm btn-group-sm pull-right'> <a class="faqm" target="_blank" href="/ca7/style/ca7_zbs/manual/Zbschools portal_Teachers Manual_updated05042020.pdf"><img src="/ca7/style/ca7_zbs/pdf-red.png" /> Teachers' Manual</a> </div> </h2> <article class="account"> <div class="title"><a name="acct"></a>Account</div> <div class="main ui-content"> <div class="collapsible"> <h1>Can I help my students reset their passwords? If yes, how can I do so.</h1> <div> Yes. You can reset your students password by clicking the “Reset Password” button for individual student in "User Management" and "Class Management".<br> <iframe src='//players.brightcove.net/5742226969001/default_default/index.html?videoId=5985534919001' allowfullscreen frameborder=0></iframe> </div> </div> </div> <div class="main ui-content"> <div class="collapsible"> <h1>Do I have the right to update student account information?</h1> <div>No. You can only view student account information. If you need any technical support do contact <a href="mailto:support@commontown.com">support@commontown.com</a>. If you have any subscription enquires do contact <a href="mailto:cirschool@sph.com.sg">cirschool@sph.com.sg</a>.</div> </div> </div> <div class="main ui-content"> <div class="collapsible"> <h1>What is “Group” in class?</h1> <div>You can create different groups in your class based on the students’ learning needs. After doing so, you can assign “Gifts” to the different groups.</div> </div> </div> </article> <article class="gifts"> <div class="title"><a name="gifts"></a>Gifts</div> <div class="main ui-content"> <div class="collapsible"> <h1>How do I assign Gift to student?</h1> <div> <iframe src='//players.brightcove.net/5742226969001/default_default/index.html?videoId=5985542659001' allowfullscreen frameborder=0></iframe> </div> </div> </div> <div class="main ui-content"> <div class="collapsible"> <h1>What "Gifts" can I assign to student?</h1> <div> <p>The gifts that can be assigned are:</p> <strong>Thumbs Up Junior</strong> <ul> <li>文后练习</li> <li>温习虫</li> <li>作文练习</li> <li>口语练习</li> <li>字词句练习</li> </ul> <br> <strong>Thumbs Up</strong> <ul> <li>文后练习</li> <li>温习虫</li> <li>大头条</li> <li>新闻消化室</li> <li>大玩家玩汉字</li> <li>看录像说话</li> </ul> <br> <strong>Comma</strong> <ul> <li>NIE练习</li> <li>文后练习</li> </ul> <br> </div> </div> </div> <div class="main ui-content"> <div class="collapsible"> <h1>Can I assign “Gifts” to an individual student in my class? If yes, how can I do so?</h1> <div>Yes, you can assign Gifts to an individual student, groups of students or an entire class.<br><br>You can add an individual student, groups of students or an entire class as recipient when creating a new “Gift”.</div> </div> </div> <div class="main ui-content"> <div class="collapsible"> <h1>Can I assign “Gifts” to student/s not from my class?</h1> <div>No.</div> </div> </div> <div class="main ui-content"> <div class="collapsible"> <h1>Can I let students view quiz answers?</h1> <div>Yes, you can decide whether to let students view quiz answers when creating the assignment.</div> </div> </div> <div class="main ui-content"> <div class="collapsible"> <h1>How do I monitor progress of the “Gifts” I’ve assigned?</h1> <div>You can click the <a href="# btn btn-info"><span class="glyphicon glyphicon-stats"></span></a> button on each Gift. It will direct you to the individual Gift report. Information on student progress will be displayed.</div> </div> </div> <div class="main ui-content"> <div class="collapsible"> <h1>How do I allocate points for the completed Gift?</h1> <div> <iframe src='//players.brightcove.net/5742226969001/default_default/index.html?videoId=5985540818001' allowfullscreen frameborder=0></iframe> </div> </div> </div> </article> <article class="report"> <div class="title"><a name="report"></a>Analytic Report</div> <div class="main ui-content"> <div class="collapsible"> <h1>What report/s can I view?</h1> <div> <p>You can view 3 types of analytic reports:</p> <ul> <li>Class overview and detail report(please give explanation) It will show analytic data of entire class or individual student such as reading level progress, number of articles read, number of quizzes completed, earned points, performance of language skills.<br></li> <li>Top performance report(please give explanation) It will show ranking of student performance such as earned points, reading level increment, number of articles read, number of quizzes completed.<br></li> <li>Quiz report(please give explanation) It will show analytic data of quizzes completed by students such as accuracy, level, format, question type and language skill.<br></li> </ul> </div> </div> </div> <div class="main ui-content"> <div class="collapsible"> <h1>Can I download the report?</h1> <div>Yes, you can download the report in xls format by clicking on “Export” button.</div> </div> </div> </article> <a name="general"></a> <h2>General</h2> <article class="tech"> <div class="title"><a name="tech"></a>Tech Matters</div> <div class="main ui-content"> <div class="collapsible"> <h1>What browsers can I use to access ZBSchool.sg?</h1> <div>Google Chrome (recommended), Safari, Firefox or Internet Explorer 9+..</div> </div> </div> <div class="main ui-content"> <div class="collapsible"> <h1>Can I access this portal through Tablet/Mobile?</h1> <div>Yes.</div> </div> </div> <div class="main ui-content"> <div class="collapsible"> <h1>Is there an app version of ZBSchools.sg?</h1> <div>Not for the time being.</div> </div> </div> <div class="main ui-content"> <div class="collapsible"> <h1>Who Can I contact for further assistance?</h1> <div>For content issues, please contact <a href="mailto:zbschools@sph.com.sg">zbschools@sph.com.sg</a>.<br><br> For technical support, please contact <a href="mailto:support@commontown.com">support@commontown.com</a>.</div> </div> </div> </article> <article class="subscription"> <div class="title"><a name="subscription"></a>Subscription Info</div> <div class="main ui-content"> <div class="collapsible"> <h1>How many issues will I receive for a one-year subscription and when are the publication dates?</h1> <div> <p>You will receive 20 issues of the publication for a one-year subscription. Please take note that some are bundled and published as bumper issues. </p> <p>The issues dates for the calendar year can be found <a href="/ca7/style/ca7_zbs/manual/ZBSchools Publication Dates 2024.pdf" target="_blank">here</a>.</p> <p>For home subscriber, if you have a print subscription, the copy will be delivered to you within 5-7 working days of the issue publication date.</p> </div> </div> </div> <div class="main ui-content"> <div class="collapsible"> <h1>How can I access ZBschools.sg portal?</h1> <div> <p>For home subscribers' digital subscriptions, the access will start within 24 hours. The PDF version will also be available for download on ZBSchools.sg. Please use your mySPH user ID and password to log into ZBSchools.sg.</p> <p>For school subscribers, please use the login ID and password provided by your school.</p> </div> </div> </div> </article> </section> </div> </div> </div> </div> <!-- /body --> <!-- footer --> <div class="footer container-fluid"> <span class="footer-text"><div id="bottom-navi" class="navbar navbar-inverse"> <div class="footer-links"> <ul class="nav navbar-nav"> <li><a href="/about">关于我们<br>About Us</a></li> <li><a href="/faq">常见问题<br>FAQ</a></li> <li><a href="/contact">联系我们<br>Contact Us</a></li> <li><a target="_blank" href="https://subscribe.sph.com.sg/student-publications/">订阅联系<br>Subscription</a></li> <li><a href="/article">投稿须知 <br>Article Contribution</a></li> <li><a href="https://www.sph.com.sg/legal/sph_privacy/" target="_blank">隐私政策<br>Privacy Policy</a></li> <li><a href="https://www.sph.com.sg/legal/website_tnc/" target="_blank">网络条款<br>Terms & Conditions</a></li> <li><a href="/terms-n-conditions" target="_blank">比赛条款<br>Competition Terms</a></li> </ul> </div> <div class="copyright">MCI (P) 022/12/2022, MCI (P) 023/12/2022 <br>Copyright © 2023 SPH Media Limited. Co. Regn. No. 202120748H. All rights reserved</div> </div></span> </div> <!-- /footer --> </div> </div> </div> </div> </div> <script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","licenseKey":"NRBR-70564e4017ab43d3811","applicationID":"1020235996","transactionName":"ZVVVbUcDW0JZWxYIV1wfYktcTUNQShcVFk8dWENUWU1WRUBbDQVdHVNDQRoBWkIXQgASFko=","queueTime":0,"applicationTime":183,"atts":"SRJWGw8ZSEw=","errorBeacon":"bam.nr-data.net","agent":""}</script></body> </html>