on(){let e=document.createElement,t=Element.prototype.setAttribute,r=Element.prototype.setAttributeNS;return i({property:"createElement",context:document,value:function(o,n){let c=e.call(document,o,n);if("iframe"===p(o)){i({property:"srcdoc",context:c,get:()=>"",set:()=>{console.warn("`srcdoc` is not allowed in iframe elements.")}});let e=function(e,r){"srcdoc"!==e.toLowerCase()?t.call(c,e,r):console.warn("`srcdoc` attribute is not allowed to be set.")},o=function(e,t,o){"srcdoc"!==t.toLowerCase()?r.call(c,e,t,o):console.warn("`srcdoc` attribute is not allowed to be set.")};c.setAttribute=e,c.setAttributeNS=o}return c},enumerable:!0}),{createElement:e,setAttribute:t,setAttributeNS:r}},g="client-binding",b="security_overrideGlobals",m=["/_api/v1/access-tokens","/_api/v2/dynamicmodel","/_api/one-app-session-web/v3/businesses"],h=e=>(e instanceof Headers?e.forEach((t,r)=>{decodeURIComponent(r).toLowerCase()===g&&e.delete(r)}):Object.keys(e).forEach(t=>{decodeURIComponent(t).toLowerCase()===g&&delete e[t]}),e),w=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),o="string"==typeof(n=r)?decodeURIComponent(n).toLowerCase().trimStart():n;var n;return m.some(e=>o.includes(e))&&(t=!1),t},v=(e=globalThis)=>{const t=fetch;e.defineStrictProperty("fetch",function(){const r=(o=arguments,globalThis.Request&&o[0]instanceof Request&&o[0]?.headers?h(o[0].headers):o[1]?.headers&&h(o[1].headers),o);var o;return w(arguments[0])?t.apply(e,Array.from(r)):new Promise((e,t)=>{const r=new Error("TB002");window.fedops?.interactionStarted(r,b),t(r)})})};performance.mark("overrideGlobals started");const{isExcludedFromSecurityExperiments:E,experiments:S}=window.viewerModel,T=!E&&S["specs.thunderbolt.securityExperiments"];try{((e=globalThis)=>{Object.defineProperty(e,"defineStrictProperty",{value:o,writable:!1,enumerable:!1,configurable:!1})})(),n(),T&&y(),S["specs.thunderbolt.hardenFetchAndXHR"]&&T&&(v(),((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||w(arguments[1]))return r.apply(e,Array.from(arguments));{const e=new Error("TB002");throw window.fedops?.interactionStarted(e,b),e}},e.setRequestHeader=function(t,r){decodeURIComponent(t).toLowerCase()!==g&&o.call(e,t,r)},e}Object.keys(t).forEach(e=>{r[e]=t[e]}),e.defineStrictProperty("XMLHttpRequest",r)})()),(()=>{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)})})(T),T&&(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.44dd5dad.bundle.min.js.map
ATP offers a wide range of pyrometry services that include instrument calibration and testing of thermal processing equipment as well as consulting and training to meet industry, customer, and Nadcap standards.
Pyrometry Services
Our trained and certified pyrometry technicians will provide quality service to ensure your heat treat systems meet the strict aerospace pyrometry requirements
At ATP we don't look at ourselves as an external service provider, but an extension of our customer's team
- Andrew Bassett, president of ATP
We like to immerse ourselves with our customers and ensure they’re on top of their game specific to aerospace requirements, knowledge, and compliance. If we help our customers pass their Nadcap (National Aerospace Defense Contractors Accreditation Program) audit and minimize nonconformances and problems during the audit, then we’ve done our job.
With ATP's corporate office in Easton, PA, seven regional offices across the U.S., and 15 technicians, we are able to service the thermal processing industry (be it Aerospace, Automotive, Medical or others) across the United States, Canada, and Mexico. We are dedicated to offer help and solutions to pyrometry questions from our clients regardless of location.
October 2020ATP unveil highly scalable, customized pyrometry platform, Aerospace Compliance Software, in partnership with Cleveland Electric Laboratories, Inc.