"srcdoc"!==t.toLowerCase()?i.call(r,e,t,o):console.error("`srcdoc` attribute is not allowed to be set.")};r.setAttribute=e,r.setAttributeNS=t}return r},a="client-binding",l="security_overrideGlobals",d=["/_api/v1/access-tokens","/_api/v2/dynamicmodel","/_api/one-app-session-web/v3/businesses"],p=e=>(e instanceof Headers?e.forEach(((t,r)=>{decodeURIComponent(r).toLowerCase()===a&&e.delete(r)})):Object.keys(e).forEach((t=>{decodeURIComponent(t).toLowerCase()===a&&delete e[t]})),e),u=e=>{let t=!0;const r=(e=>{let t,r;if(globalThis.Request&&e instanceof Request)t=e.url;else{if("function"!=typeof e?.toString)throw new Error("Unsupported type for url");t=e.toString()}try{return new URL(t).pathname}catch(e){return r=t.replace(/#.+/gi,"").split("?").shift(),r.startsWith("/")?r:`/${r}`}})(e),n=o(r);return d.some((e=>n.includes(e)))&&(t=!1),t},f=(e=globalThis)=>{const t=fetch;e.defineStrictProperty("fetch",(function(){const r=(o=arguments,globalThis.Request&&o[0]instanceof Request&&o[0]?.headers?p(o[0].headers):o[1]?.headers&&p(o[1].headers),o);var o;return u(arguments[0])?t.apply(e,Array.from(r)):new Promise(((e,t)=>{const r=new Error("TB002");window.fedops?.interactionStarted(r,l),t(r)}))}))};performance.mark("overrideGlobals started");const{isExcludedFromSecurityExperiments:g,experiments:b}=window.viewerModel;try{((e=globalThis)=>{Object.defineProperty(e,"defineStrictProperty",{value:n,writable:!1,enumerable:!1,configurable:!1})})(),i(),g||globalThis.defineStrictProperty("createElement",s,document,!0),b["specs.thunderbolt.hardenFetchAndXHR"]&&!g&&(f(),((e=globalThis)=>{const t=XMLHttpRequest;function r(){const e=new t,r=e.open,o=e.setRequestHeader;return e.open=function(){if(arguments.length<2||u(arguments[1]))return r.apply(e,Array.from(arguments));{const e=new Error("TB002");throw window.fedops?.interactionStarted(e,l),e}},e.setRequestHeader=function(t,r){decodeURIComponent(t).toLowerCase()!==a&&o.call(e,t,r)},e}Object.keys(t).forEach((e=>{r[e]=t[e]})),e.defineStrictProperty("XMLHttpRequest",r)})()),b["specs.thunderbolt.removeServiceWorker"]&&(()=>{if(navigator&&"serviceWorker"in navigator)navigator.serviceWorker.register=()=>console.log("Service worker registration is not allowed"),Promise.resolve()})(),(e=>{let t=[],o=[];o=o.concat(["TextEncoder","TextDecoder"]),e||(o=o.concat(["XMLHttpRequestEventTarget","EventTarget"])),o=o.concat(["URL","JSON"]),e||(t=t.concat(["addEventListener","removeEventListener"])),t=t.concat(["encodeURI","encodeURIComponent","decodeURI","decodeURIComponent"]),o=o.concat(["String","Number"]),e||o.push("Object"),o=o.concat(["Reflect"]),t.forEach((e=>{Object.freeze(globalThis[e]),["addEventListener","removeEventListener"].includes(e)&&globalThis.defineStrictProperty(e,document[e],document,!0),globalThis.defineStrictProperty(e,globalThis[e],globalThis,!0)})),o.forEach((e=>{r(e,globalThis)}))})(g),g||(defineStrictProperty("preventStringArgument",((e,t,r)=>{const o=r||globalThis,n=o[e];defineStrictProperty(e,(function(){const r=Array.from(arguments);if("string"!=typeof r[t])return n.apply(o,r);console.warn(`Calling ${e} with a String Argument at index ${t} is not allowed`)}),o)})),preventStringArgument("setTimeout",0),preventStringArgument("setInterval",0))}catch(e){window?.viewerModel?.mode.debug&&console.error(e);const t=new Error("TB006");window.fedops?.reportError(t,"security_overrideGlobals"),window.Sentry?window.Sentry.captureException(t):globalThis.defineStrictProperty("sentryBuffer",[t],window,!1)}performance.mark("overrideGlobals ended")})(); //# sourceMappingURL=https://static.parastorage.com/services/wix-thunderbolt/dist/overrideGlobals.inline.492f4493.bundle.min.js.map
top of page
  • LinkedIn
  • Facebook
  • Instagram
Events drone hire Singapore

DRONE PHOTOGRAPHY AND VIDEOGRAPHY FOR EVENTS

Our drone photography and videography services are perfect for capturing stunning aerial footage of your events. From special days like weddings and birthdays, to social gatherings like festivals and sporting events, our experienced drone operators can capture the magic from above.

Features

CONTACT US

Thanks for reaching out!

© 2023 by James Cameron Drone Surveyors. All rights reserved.

bottom of page