CINXE.COM
Addgene: Fluorescent Protein Guide
<!DOCTYPE html> <!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]--> <!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]--> <!--[if IE 8]> <html class="no-js lt-ie9" lang="en"> <![endif]--> <!--[if gt IE 8]><!--> <html class="no-js " lang="en"> <!--<![endif]--> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","errorBeacon":"bam.nr-data.net","licenseKey":"5cd7e7f9fc","applicationID":"505903807","transactionName":"ZFZaZRBRWRBRWxULDV0cfkQMU0MKX1ZOAQ9AHU5YB0dEWVRdFQMLX0A=","queueTime":0,"applicationTime":123,"agent":""}; (window.NREUM||(NREUM={})).init={privacy:{cookies_enabled:true},ajax:{deny_list:[]},distributed_tracing:{enabled:true}};(window.NREUM||(NREUM={})).loader_config={agentID:"594348573",accountID:"1839168",trustKey:"1839168",xpid:"VQ4EWFdVABAFVFRbBwIPVlM=",licenseKey:"5cd7e7f9fc",applicationID:"505903807"};;/*! For license information please see nr-loader-spa-1.281.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:()=>p,gD:()=>m,xN:()=>g});var n=r(3333),i=r(993);const o=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var a=r(2614),s=r(944),c=r(384),u=r(8122);const d="[data-nr-mask]",l=()=>{const e={feature_flags:[],experimental:{marks:!1,measures:!1,resources:!1},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,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},get feature_flags(){return e.feature_flags},set feature_flags(t){e.feature_flags=t},generic_events:{enabled:!0,autoStart:!0},harvest:{interval:30},jserrors:{enabled:!0,autoStart:!0},logging:{enabled:!0,autoStart:!0,level:i.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,autoStart:!0},performance:{get capture_marks(){return e.feature_flags.includes(n.$v.MARKS)||e.experimental.marks},set capture_marks(t){e.experimental.marks=t},get capture_measures(){return e.feature_flags.includes(n.$v.MEASURES)||e.experimental.measures},set capture_measures(t){e.experimental.measures=t},capture_detail:!0,resources:{get enabled(){return e.feature_flags.includes(n.$v.RESOURCES)||e.experimental.resources},set enabled(t){e.experimental.resources=t},asset_types:[],first_party_domains:[],ignore_newrelic:!0}},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:a.wk,inactiveMs:a.BB},session_replay:{autoStart:!0,enabled:!1,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){o(t)?e.mask_selector="".concat(t,",").concat(d):""===t||null===t?e.mask_selector=d:(0,s.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){o(t)?e.block_selector+=",".concat(t):""!==t&&(0,s.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,s.R)(7,t)}},session_trace:{enabled:!0,autoStart:!0},soft_navigations:{enabled:!0,autoStart:!0},spa:{enabled:!0,autoStart:!0},ssl:void 0,user_actions:{enabled:!0,elementAttributes:["id","className","tagName","type"]}}},f={},h="All configuration objects require an agent identifier!";function p(e){if(!e)throw new Error(h);if(!f[e])throw new Error("Configuration for ".concat(e," was never set"));return f[e]}function g(e,t){if(!e)throw new Error(h);f[e]=(0,u.a)(t,l());const r=(0,c.nY)(e);r&&(r.init=f[e])}function m(e,t){if(!e)throw new Error(h);var r=p(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,harvester: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.281.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),c&&h(c.prototype,f),h(a.gm,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,{$v:()=>u,TZ:()=>n,Zp:()=>i,kd:()=>c,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,c=["PageAction","UserAction","BrowserPerformance"],u={MARKS:"experimental.marks",MEASURES:"experimental.measures",RESOURCES:"experimental.resources"}},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:()=>c,Qu:()=>u,TZ:()=>s,ih:()=>d,pP:()=>a,tC:()=>i});var n=r(860);const i=["click","keydown","submit","popstate"],o="api",a="initialPageLoad",s=n.K7.softNav,c={INITIAL_PAGE_LOAD:"",ROUTE_CHANGE:1,UNSPECIFIED:2},u={INTERACTION:1,AJAX:2,CUSTOM_END:3,CUSTOM_TRACER:4},d={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:()=>T,gx:()=>v,l9:()=>l,oW:()=>h,op:()=>g,rw:()=>u,tH:()=>A,uP:()=>s,wW:()=>E,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",E="cb"+R,T="jsTime",A="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","recordCustomEvent","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);const E=new Map;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);a.level=n.level,a.customAttributes=n.customAttributes;const c=t[r]?.[x.Jt]||t[r];return E.set(c,a),o.inPlace(t,[r],"wrap-logger-",(()=>E.get(c))),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 S={};var N=r(9417),_=r(5603),O=r(5284);const I=e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e};let P=!1;function j(e,t={},g,R){let{init:x,info:E,loader_config:j,runtime:C={},exposed:k=!0}=t;C.loaderType=g;const L=(0,h.pV)();E||(x=L.init,E=L.info,j=L.loader_config),(0,N.xN)(e.agentIdentifier,x||{}),(0,_.a)(e.agentIdentifier,j||{}),E.jsAttributes??={},d.bv&&(E.jsAttributes.isWorker=!0),(0,i.x1)(e.agentIdentifier,E);const H=(0,N.D0)(e.agentIdentifier),M=[E.beacon,E.errorBeacon];P||(H.proxy.assets&&(I(H.proxy.assets),M.push(H.proxy.assets)),H.proxy.beacon&&M.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?M:[]],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");S[e]=b.g.OFF,R.on(p.G4.REPLAY_RUNNING,(t=>{S[e]=t}));var E="api-",A=E+"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(E,n,!0,o||null===r?"session":void 0)(t,r)}function _(){}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(E,e,!0,"api")})),g.addPageAction=I(E,"addPageAction",!0,n.K7.genericEvents),g.recordCustomEvent=I(E,"recordCustomEvent",!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(E,"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 _).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)(A+"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,[r?(0,v.t)():performance.now(),...arguments],r?null:this,i,R),r?void 0:this}}function P(){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=>{O[e]=I(A,e,void 0,h?n.K7.softNav:n.K7.spa)})),g.setCurrentRouteName=h?I(A,"routeName",void 0,n.K7.softNav):I(E,"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,!!S[e]],void 0,n.K7.jserrors,R)},d.RI?(0,u.GG)((()=>P()),!0):P(),g}(e.agentIdentifier,R,e.runSoftNavOverSpa)),void 0===e.exposed&&(e.exposed=k),P=!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:()=>u,K7:()=>s,P3:()=>c,XX:()=>i,qY:()=>n,v4:()=>a});const n="events",i="jserrors",o="browser/blobs",a="rum",s={ajax:"ajax",genericEvents:"generic_events",jserrors:i,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"},c={[s.pageViewEvent]:1,[s.pageViewTiming]:2,[s.metrics]:3,[s.jserrors]:4,[s.spa]:5,[s.ajax]:6,[s.sessionTrace]:7,[s.softNav]:8,[s.sessionReplay]:9,[s.logging]:10,[s.genericEvents]:11},u={[s.pageViewEvent]:a,[s.pageViewTiming]:n,[s.ajax]:n,[s.spa]:n,[s.softNav]:n,[s.metrics]:i,[s.jserrors]:i,[s.sessionTrace]:o,[s.sessionReplay]:o,[s.logging]:"browser/logs",[s.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.281.0.min.js"),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA-1.281.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-jmvAlmjCn64ans8tLueqHRlBI/iWekylsDWb94A77CG0ukSriVDvgD3dThx+XjUSBBBMYhFn8B1a18fViyBPEQ==",249:"sha512-ICY/ZrcytM/86t5KFy+9OAWVYmNNJy10EBtxoSUGjQWuZx53p/eLo+L8HfrGjvHuRHRnutqLTGSnvNttffJkaA==",212:"sha512-pQSn+X/RfBOvx/49HvlghaiXMLhhDQXTi13n1N2XMpDquWJgs9U0pbqE3RbAnYC9nsdaTu/RVGvneEPv1fpCxA=="};(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.281.0.PROD"]=self["webpackChunk:NRBA-1.281.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(){this.agentIdentifier=(0,r.LA)(16)}#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)}recordCustomEvent(e,t){return this.#e("recordCustomEvent",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(!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),t.runtime.harvester.initializedAggregates.push(this.featAggregate),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),E=i(2843),T=i(3878),A=i(782),S=i(1863);class N extends b{static featureName=A.T;constructor(e,t=!0){super(e,A.T,t),p.RI&&((0,E.u)((()=>(0,x.p)("docHidden",[(0,S.t)()],void 0,A.T,this.ee)),!0),(0,T.sp)("pagehide",(()=>(0,x.p)("winPagehide",[(0,S.t)()],void 0,A.T,this.ee))),this.importAggregator(e))}}var _=i(3969);class O extends b{static featureName=_.TZ;constructor(e,t=!0){super(e,_.TZ,t),this.importAggregator(e)}}var I=i(6774),P=i(3304);class j{constructor(e,t,r,n,i){this.name="UncaughtError",this.message="string"==typeof e?e:(0,P.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function C(e){return H(e)?e:new j(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 j(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 M 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,t)=>{this.abortHandler&&(0,x.p)("ierr",[C(e),(0,S.t)(),!0,{},this.#r,t],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,T.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,T.jT)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e)}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var D=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,D.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,P.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(void 0===p.gm.XMLHttpRequest)return n;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,T.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,P.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){E(t,e)}),(0,T.jT)(!1)),p.lR||e.addEventListener("progress",(function(e){t.lastSize=e.loaded}),(0,T.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,T.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.loadCaptureCalled||4!==e.readyState?null==t.status&&(t.status=0):E(this,e),n.cbTime=this.cbTime,r("xhr",[t,n,this.startTime,this.endTime,"xhr"],this,a.K7.ajax))}}function E(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)(_.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:Ee,Lc:Te,uP:Ae,Rz:Se}=be;class Ne extends b{static featureName=Ee;constructor(e,t=!0){super(e,Ee,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(Ae,(function(e,t){this.bstStart=(0,S.t)()})),this.eventsEE.on(Te,(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 _e=i(2614);class Oe 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(_e.H3,"_").concat(_e.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===_e.g.FULL||e.sessionReplayMode===_e.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,agentRef:this.#o}),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!==_e.g.FULL&&this.featAggregate.initializeRecording(_e.g.FULL,!0):(this.#i=_e.g.FULL,this.#c(t.Qb.API),this.recorder&&this.recorder.parent.mode!==_e.g.FULL&&(this.recorder.parent.mode=_e.g.FULL,this.recorder.stopRecording(),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording))}}var Ie=i(3962);class Pe 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,T.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,T.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 je=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,T.jT)(!1)),e.removeEventListener("error",f,(0,T.jT)(!1))}function f(){t.emit("jsonp-error",[],d),t.emit("jsonp-end",[],d),e.removeEventListener("load",l,(0,T.jT)(!1)),e.removeEventListener("error",f,(0,T.jT)(!1))}r.inPlace(u.parent,[u.key],"cb-",d),e.addEventListener("load",l,(0,T.jT)(!1)),e.addEventListener("error",f,(0,T.jT)(!1)),t.emit("new-jsonp",[e.src],d)}(e[0])})),t}const He={};function Me(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 De={},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(De[t.debugId]++)return t;De[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:$e,e5:Je,tH:Qe,uP:et,rw:tt,Lc:rt}=je;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=Me(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[Je]=~~this[Je]+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($e,m),o.on($e,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([Qe+Ze,Qe+"-done",Qe+Xe+Ze,Qe+Xe+Ye],this.featureName),l.buffer(["newURL"],this.featureName),f.buffer([et],this.featureName),a.buffer(["propagate",tt,$e,"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,Qe+Ze),v(d,Qe+"-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,T.jT)(!0,this.removeOnAbort?.signal)),window.addEventListener("load",h,(0,T.jT)(!0,this.removeOnAbort?.signal)),window.addEventListener("popstate",(function(){h(0,n>1)}),(0,T.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,e.init.performance.resources.enabled];if(p.RI&&(e.init.user_actions.enabled&&(it.Zp.forEach((e=>(0,T.sp)(e,(e=>(0,x.p)("ua",[e],void 0,this.featureName,this.ee)),!0))),it.qN.forEach((e=>{const t=(0,v.s)((e=>{(0,x.p)("ua",[e],void 0,this.featureName,this.ee)}),500,{leading:!0});(0,T.sp)(e,t)}))),e.init.performance.resources.enabled&&p.gm.PerformanceObserver?.supportedEntryTypes.includes("resource"))){new PerformanceObserver((e=>{e.getEntries().forEach((e=>{(0,x.p)("browserPerformance.resource",[e],void 0,this.featureName,this.ee)}))})).observe({type:"resource",buffered:!0})}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){super(),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,Oe,O,M,ot,ct,Pe,nt],loaderType:"spa"})})()})();</script> <link href="https://static.addgene.org/addgene-core/ba538e0eee/css/icons.css" rel="stylesheet" type="text/css" /> <link rel="canonical" href="https://www.addgene.org/fluorescent-proteins/"> <meta name="msapplication-config" content="none"> <link rel="icon" type="image/png" href="https://static.addgene.org/addgene-core/ba538e0eee/images/addgene-favicon.png"> <link rel="apple-touch-icon" href="https://static.addgene.org/addgene-core/ba538e0eee/images/addgene-favicon.png"> <link rel="stylesheet" href="https://static.addgene.org/addgene-core/ba538e0eee/fonts/roboto/stylesheet.css"> <link rel='stylesheet' href="https://static.addgene.org/addgene-core/ba538e0eee/fonts/arimo/stylesheet.css"> <link rel="stylesheet" href="https://static.addgene.org/addgene-core/ba538e0eee/fonts/dejavu-sans/stylesheet.css"> <link rel="stylesheet" href="https://static.addgene.org/addgene-core/ba538e0eee/fonts/symbola/stylesheet.css"> <link rel="stylesheet" href="https://static.addgene.org/addgene-core/ba538e0eee/css/deposit_order_status_table.css"> <link rel="stylesheet" href="https://static.addgene.org/addgene-core/ba538e0eee/built/public_styles.less.css"> <link rel="stylesheet" href="https://static.addgene.org/addgene-core/ba538e0eee/fonts/calistoga/stylesheet.css"> <style> html.js.fontface #message-browser-wontwork { display: none; } </style> <style> html.no-js #message-browser-old { display: none; } html.no-fontface #message-browser-old { display: none; } html.generatedcontent.inlinesvg.display-table.mediaqueries #message-browser-old { display: none; } </style> <link rel="stylesheet" href="https://static.addgene.org/addgene-core/ba538e0eee/vendor/leaverou/awesomplete.css"> <link rel="stylesheet" href="https://static.addgene.org/addgene-core/ba538e0eee/vendor/datatables/plug-ins/be7019ee387/integration/bootstrap/3/dataTables.bootstrap.css"> <link rel="icon" type="image/png" href="https://static.addgene.org/addgene-core/ba538e0eee/images/addgene-favicon.png"> <!-- start: css datatable_support.html --> <style> .datatable { display:none; } .margin-top { margin-top: 1em; } #kit-type-items > div > div:nth-child(-n+2) { padding-left: 5px; } #kit-type-items > div > div:nth-child(n+3):nth-child(-n+4) { padding-right: 5px; } </style> <style id="html-chunk-plugin-"> .table.function-table td { text-align: center; vertical-align: middle; } .table.function-table td a { text-decoration: underline; } .table.function-table td:nth-child(3) { text-align: left; } .table.function-table td:nth-child(2) { width: 150px; } .reference-list li { margin-bottom: 1em; } </style> <script src="https://static.addgene.org/addgene-core/ba538e0eee/modernizr/modernizr-addgene_build.js"></script> <script> Modernizr.load({ test: Modernizr.generatedcontent, nope: "https://static.addgene.org/addgene-core/ba538e0eee/js/public/glyphicon-polyfill.js" }); if (!String.prototype.trim) { String.prototype.trim = function () { return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''); }; } </script> <script src="https://static.addgene.org/addgene-core/ba538e0eee/js/public/es5array-polyfill.js"></script> <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-PWRGQMJ');</script> <script>/*<![CDATA[*/window.zEmbed||function(e,t){var n,o,d,i,s,a=[],r=document.createElement("iframe");window.zEmbed=function(){a.push(arguments)},window.zE=window.zE||window.zEmbed,r.src="javascript:false",r.title="",r.role="presentation",(r.frameElement||r).style.cssText="display: none",d=document.getElementsByTagName("script"),d=d[d.length-1],d.parentNode.insertBefore(r,d),i=r.contentWindow,s=i.document;try{o=s}catch(c){n=document.domain,r.src='javascript:var d=document.open();d.domain="'+n+'";void(0);',o=s}o.open()._l=function(){var o=this.createElement("script");n&&(this.domain=n),o.id="js-iframe-async",o.src=e,this.t=+new Date,this.zendeskHost=t,this.zEQueue=a,this.body.appendChild(o)},o.write('<body onload="document._l();">'),o.close()}("https://assets.zendesk.com/embeddable_framework/main.js","addgene.zendesk.com");/*]]>*/</script> <script> window.zESettings = { webWidget: { helpCenter: { title: { '*': 'Addgene Help Center' }, searchPlaceholder: { '*': 'Search our Help Center' }, messageButton: { '*': 'Contact Us' } }, contactForm: { title: { '*': 'Contact Us' } }, color: { theme: '#0056b3', launcher: '#0056b3' }, launcher: { label: { '*': 'Help Center' } } } }; </script> <title>Addgene: Fluorescent Protein Guide</title> <meta name="description" content="Use this guide to learn about the applications of fluorescent proteins and to find the plasmids that are available from Addgene's depositing scientists."> <meta name="keywords" content=""> </head> <body class=""> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-PWRGQMJ" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <div class="modal fade in" id="campaign-modal" tabindex="-1" aria-hidden="true"> <div class="modal-dialog modal-dialog-centered"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">脳</span> </button> <h3 class="modal-title">Addgene Website Feedback</h3> </div> <div id="campaign-content" class="modal-body"> </div> <div class="modal-footer"> <div class="items-flex-row-align-center"> <span> Need help? Send us an email at <a href="/cdn-cgi/l/email-protection#f69e939a86b697929291939893d8998491"><span class="__cf_email__" data-cfemail="2c4449405c6c4d48484b49424902435e4b">[email protected]</span></a> </span> <a href="/privacy/">Privacy Policy</a> </div> </div> </div> </div> </div> <a href="#main-content" class="sr-only sr-only-focusable btn btn-lg btn-primary"> Skip to main content </a> <header> <div id="addgene-header"> <div id="messages" class="hidden-print"> <div class="alert-full-bleed alert-info"> <div class="container-utility-bar"> <div id="addgene-messages-4" class=" alert alert-info alert-dismissable " role="alert" > This website uses cookies to ensure you get the best experience. By continuing to use this site, you agree to the use of cookies. <button type="button" class="btn-close" data-dismiss="alert" aria-label="Close" id="addgene-messages-close-4" onclick="jQuery.cookie('addgene-messages-4', '4', { path: '/', expires: 365 })" > </button> </div> </div> </div> <div class="alert-full-bleed alert-danger"> <div class="container-utility-bar"> <div id="message-browser-wontwork" class="alert alert-danger" role="alert"> <p> Please note: Your browser does not support the features used on Addgene's website. You may not be able to create an account or request plasmids through this website until you upgrade your browser. <a href="/browser/">Learn more</a> </p> </div> </div> </div> <div class="alert-full-bleed alert-warning"> <div class="container-utility-bar"> <div id="message-browser-old" class="alert alert-warning" role="alert"> <p> Please note: Your browser does not fully support some of the features used on Addgene's website. If you run into any problems registering, depositing, or ordering please contact us at <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="036b666f734362676764666d662d6c7164">[email protected]</a>. <a href="/browser/">Learn more</a> </p> </div> </div> </div> </div> <img alt="Addgene" src="https://static.addgene.org/addgene-core/ba538e0eee/images/common/svg/logo-addgene.svg" width="150" class="visible-print logo-visible-print"> <nav aria-label="Utility Bar" class="navbar navbar-inverse" id="header-utility-bar"> <div class="container-utility-bar"> <div class="utility-bar-content"> <div class="navbar-header"> <a class="navbar-brand" href="/"> <img alt="Addgene" src="https://static.addgene.org/addgene-core/ba538e0eee/images/common/svg/addgene-logo-white.svg"> </a> </div> <div class="collapse navbar-collapse" id="utilities"> <ul class="nav navbar-nav navbar-right header-utilities-list not-authenticated"> <li id="search-li-item" class="form-hidden"> <span class="btn btn-link" id="search-text" tabindex="0"> <span class="glyphicon glyphicon-search"></span><span class="text-element">Search</span> </span> <form id="utility-search-bar" method="get" name="search-bar-form"> <div class="panel panel-default search-panel"> <div class="panel-body"> <div id="search-bar-parent"> <div class="search-bar-container"> <label for="search-text-input" class="sr-only">Search</label> <input form="utility-search-bar" id="search-text-input" class="suggest-input" aria-expanded="false" aria-haspopup="listbox" type="text" role="combobox" autocomplete="off" placeholder="e.g. 74218, Cas9, transformation protocol" name="q" > </div> <button form=utility-search-bar id="search_submit_id" class="btn btn-primary btn-addgene-search" value="Search"> Search </button> </div> </div> </div> </form> <a class="btn btn-link no-js-search-link" href="/search/all/"> <span class="glyphicon glyphicon-search"></span><span class="text-element">Search</span> </a> </li> <li> <a href="/users/login/?next=/fluorescent-proteins/" class="log-in-link"> <img alt="" class="account-icon" src="https://static.addgene.org/addgene-core/ba538e0eee/images/common/svg/account-icon.svg">Log In </a> </li> <li> <a href="/users/register?next=/" class="register-link" id="register-link" >Create Account </a> </li> <li> <a id="track-order-link" href="/track-order-status/"> <img class="compass-icon" alt="" src="https://static.addgene.org/addgene-core/ba538e0eee/images/common/svg/compass_icon.svg">Track Order </a> </li> </ul> </div> </div> </div> </nav> <nav aria-label="Site Menu" id="main-nav-bar" class="main-nav-regular"> <div class="container"> <div class="row nav-toggle-btns"> <ul class="nav nav-pills main-nav-menu-closed"> <li class="dropdown-catalog"> <button class="btn dropdown-toggle main-nav-toggle-btn" type="button" id="dropdown-toggle-catalog" data-toggle="dropdown" aria-haspopup="false" aria-expanded="false" data-target=".dropdown-catalog"> Catalog <svg class="icon-chevron-down" width="15" height="8" viewBox="0 0 15 8" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> <g> <path d="M12.4641 0.389459L7.76318 4.57773C7.61488 4.70986 7.38503 4.70986 7.23673 4.57773L2.52838 0.389459C1.95003 -0.132424 1.01577 -0.132424 0.437424 0.389459C-0.140925 0.904736 -0.140925 1.74371 0.437424 2.25899L6.45077 7.61654C7.02912 8.13182 7.97079 8.13182 8.54914 7.61654L14.5625 2.25899C15.1408 1.74371 15.1408 0.904736 14.5625 0.389459C13.9841 -0.125818 13.0425 -0.125818 12.4641 0.389459Z" /> </g> </svg> </button> </li> <li class="dropdown-deposit"> <button class="btn dropdown-toggle main-nav-toggle-btn" type="button" id="dropdown-toggle-deposit" data-toggle="dropdown" aria-haspopup="false" aria-expanded="false" data-target=".dropdown-deposit"> Deposit <svg class="icon-chevron-down" width="15" height="8" viewBox="0 0 15 8" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> <g> <path d="M12.4641 0.389459L7.76318 4.57773C7.61488 4.70986 7.38503 4.70986 7.23673 4.57773L2.52838 0.389459C1.95003 -0.132424 1.01577 -0.132424 0.437424 0.389459C-0.140925 0.904736 -0.140925 1.74371 0.437424 2.25899L6.45077 7.61654C7.02912 8.13182 7.97079 8.13182 8.54914 7.61654L14.5625 2.25899C15.1408 1.74371 15.1408 0.904736 14.5625 0.389459C13.9841 -0.125818 13.0425 -0.125818 12.4641 0.389459Z" /> </g> </svg> </button> </li> <li class="dropdown-education-tools"> <button class="btn dropdown-toggle main-nav-toggle-btn" type="button" id="dropdown-toggle-education-tools" data-toggle="dropdown" aria-haspopup="false" aria-expanded="false" data-target=".dropdown-education-tools"> Education & Tools <svg class="icon-chevron-down" width="15" height="8" viewBox="0 0 15 8" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> <g> <path d="M12.4641 0.389459L7.76318 4.57773C7.61488 4.70986 7.38503 4.70986 7.23673 4.57773L2.52838 0.389459C1.95003 -0.132424 1.01577 -0.132424 0.437424 0.389459C-0.140925 0.904736 -0.140925 1.74371 0.437424 2.25899L6.45077 7.61654C7.02912 8.13182 7.97079 8.13182 8.54914 7.61654L14.5625 2.25899C15.1408 1.74371 15.1408 0.904736 14.5625 0.389459C13.9841 -0.125818 13.0425 -0.125818 12.4641 0.389459Z" /> </g> </svg> </button> </li> <li class="dropdown-help-center"> <button class="btn dropdown-toggle main-nav-toggle-btn" type="button" id="dropdown-toggle-help-center" data-toggle="dropdown" aria-haspopup="false" aria-expanded="false" data-target=".dropdown-help-center"> Help Center <svg class="icon-chevron-down" width="15" height="8" viewBox="0 0 15 8" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> <g> <path d="M12.4641 0.389459L7.76318 4.57773C7.61488 4.70986 7.38503 4.70986 7.23673 4.57773L2.52838 0.389459C1.95003 -0.132424 1.01577 -0.132424 0.437424 0.389459C-0.140925 0.904736 -0.140925 1.74371 0.437424 2.25899L6.45077 7.61654C7.02912 8.13182 7.97079 8.13182 8.54914 7.61654L14.5625 2.25899C15.1408 1.74371 15.1408 0.904736 14.5625 0.389459C13.9841 -0.125818 13.0425 -0.125818 12.4641 0.389459Z" /> </g> </svg> </button> </li> </ul> </div> </div> <div class="container nav-dropdown-menus"> <div class="row-wide-gutters dropdown dropdown-catalog" id="dropdown-catalog"> <div class="col-xs-12 dropdown-menu" aria-labelledby="dropdown-toggle-catalog"> <div class="row-wide-gutters d-flex"> <div class="col-xs-3 menu-column list-unstyled"> <ul class="list-unstyled"> <li class="menu-heading" tabindex="0"><img src="https://static.addgene.org/addgene-core/ba538e0eee/images/public/icons/icon-beaker.svg" alt="">By Type</li> <li><a href="/browse/">Plasmids</a></li> <li> <a href="/viral-service/">Viral Service</a> </li> <li> <a href="/antibodies/"> <span>Antibodies</span> </a> </li> <li><a href="/pooled-library/">Pooled Libraries</a></li> <li><a href="/kits/">Plasmid Kits</a></li> </ul> </div> <div class="col-xs-3 menu-column"> <ul class="list-unstyled"> <li class="menu-heading" tabindex="0"><img src="https://static.addgene.org/addgene-core/ba538e0eee/images/public/icons/icon-virus-monochrome.svg" alt="">By Viral Service </li> <li><a href="/viral-service/">About Our Viral Service</a></li> <li><a href="/viral-service/packaged-on-request/">Packaged on Request</a></li> <li class="chevron-rotation"> <a href="#aav-collection" aria-expanded="false" aria-controls="aav-collection" data-toggle="collapse" class="collapsed">In-Stock AAV<img src="https://static.addgene.org/addgene-core/ba538e0eee/images/public/icons/icon-chevron-right-addgene-gray.svg" class="chevron" alt=""></a> <ul id="aav-collection" class="collapse list-unstyled"> <li class="sub-menu-title">Function</li> <li><a href="/viral-service/aav-prep/sensors/">Biosensors</a></li> <li><a href="/viral-service/aav-prep/chemogenetics/">Chemogenetics</a></li> <li><a href="/viral-service/aav-prep/controls/">Controls</a></li> <li><a href="/viral-service/aav-prep/optogenetics/">Optogenetics</a></li> <li><a href="/viral-service/aav-prep/cre/">Recombinases</a></li> <li class="sub-menu-title">Engineered Serotypes</li> <li><a href="/viral-service/aav-prep/systemic/">Caltech Systemic</a></li> <li><a href="/viral-service/aav-prep/retrograde/">Retrograde</a></li> <li><a href="/viral-service/aav-prep/university-florida-serotype-testing/">University of Florida Eye Panel</a></li> <li><a href="/viral-service/aav-prep/">View all AAV</a></li> </ul> </li> <li class="chevron-rotation"> <a href="#lenti-collection" aria-expanded="false" aria-controls="lenti-collection" data-toggle="collapse" class="collapsed">In-Stock Lentivirus<img src="https://static.addgene.org/addgene-core/ba538e0eee/images/public/icons/icon-chevron-right-addgene-gray.svg" class="chevron" alt=""></a> <ul id="lenti-collection" class="collapse list-unstyled"> <li><a href="/viral-service/lenti-prep/#cas9-lenti">Cas9</a></li> <li><a href="/viral-service/lenti-prep/#pooled-library-lenti">Pooled CRISPR Libraries</a></li> <li><a href="/viral-service/lenti-prep/#non-crispr-lenti">Non-CRISPR</a></li> <li><a href="/viral-service/lenti-prep/">View all lentivirus</a></li> </ul> </li> </ul> </div> <div class="col-xs-6 menu-column"> <span class="d-block menu-heading" tabindex="0"><img src="https://static.addgene.org/addgene-core/ba538e0eee/images/public/icons/icon-plasmid.svg" alt="">By Plasmid Category</span> <div class="row-wide-gutters"> <ul class="col-xs-6 list-unstyled"> <li><a href="/collections/covid-19-resources/">COVID-19</a></li> <li class="chevron-rotation"> <a href="#ge-collection" aria-expanded="false" aria-controls="ge-collection" data-toggle="collapse" class="collapsed">Genome Editing<img src="https://static.addgene.org/addgene-core/ba538e0eee/images/public/icons/icon-chevron-right-addgene-gray.svg" class="chevron" alt=""></a> <ul id="ge-collection" class="collapse list-unstyled"> <li><a href="/crispr/">CRISPR</a></li> <li><a href="/cre-lox/">Cre-lox</a></li> <li><a href="/talen/">TALENs</a></li> <li><a href="/zfc/">Zinc Fingers</a></li> </ul> </li> <li class="chevron-rotation"> <a href="#tool-collection" aria-expanded="false" aria-controls="tool-collection" data-toggle="collapse" class="collapsed">Viral Plasmids<img src="https://static.addgene.org/addgene-core/ba538e0eee/images/public/icons/icon-chevron-right-addgene-gray.svg" class="chevron" alt=""></a> <ul id="tool-collection" class="collapse list-unstyled"> <li><a href="/viral-vectors/aav/">AAV</a></li> <li><a href="/viral-vectors/adenovirus/">Adenovirus</a></li> <li><a href="/viral-vectors/lentivirus/">Lentivirus</a></li> <li><a href="/viral-vectors/retrovirus/">γ-Retrovirus</a></li> </ul> </li> <li class="chevron-rotation"> <a href="#lum-collection" aria-expanded="false" aria-controls="lum-collection" data-toggle="collapse" class="collapsed">Luminescence<img src="https://static.addgene.org/addgene-core/ba538e0eee/images/public/icons/icon-chevron-right-addgene-gray.svg" class="chevron" alt=""></a> <ul id="lum-collection" class="collapse list-unstyled"> <li><a href="/fluorescent-proteins/">Fluorescent Proteins</a></li> <li><a href="/luciferase/">Luciferase</a></li> </ul> </li> <li class="chevron-rotation"> <a href="#opto-collection" aria-expanded="false" aria-controls="opto-collection" data-toggle="collapse" class="collapsed">Chemogenetics & Optogenetics<img src="https://static.addgene.org/addgene-core/ba538e0eee/images/public/icons/icon-chevron-right-addgene-gray.svg" class="chevron" alt=""></a> <ul id="opto-collection" class="collapse list-unstyled"> <li><a href="/chemogenetics/">Chemogenetics</a></li> <li><a href="/optogenetics/">Optogenetics</a></li> </ul> </li> </ul> <ul class="col-xs-6 list-unstyled"> <li class="chevron-rotation"> <a href="#cloning-collection" aria-expanded="false" aria-controls="cloning-collection" data-toggle="collapse" class="collapsed">Cloning & Engineering<img src="https://static.addgene.org/addgene-core/ba538e0eee/images/public/icons/icon-chevron-right-addgene-gray.svg" class="chevron" alt=""></a> <ul id="cloning-collection" class="collapse list-unstyled "> <li><a href="/collections/antibody-plasmids/">Antibodies</a></li> <li><a href="/bacterial-expression/">Bacterial Expression</a></li> <li><a href="/empty-backbones/">Empty Backbones</a></li> <li><a href="/genetic-code-expansion/">Genetic Code Expansion</a></li> <li><a href="/genome-engineering/">Genome Engineering</a></li> </ul> </li> <li class="chevron-rotation"> <a href="#models-collection" aria-expanded="false" aria-controls="models-collection" data-toggle="collapse" class="collapsed">Model Systems<img src="https://static.addgene.org/addgene-core/ba538e0eee/images/public/icons/icon-chevron-right-addgene-gray.svg" class="chevron" alt=""></a> <ul id="models-collection" class="collapse list-unstyled "> <li><a href="/microbiology/">Microbes</a></li> <li><a href="/plant/">Plants</a></li> <li><a href="/worm-expression/">Worm</a></li> <li><a href="/collections/zebrafish/">Zebrafish</a></li> </ul> </li> <li class="chevron-rotation"> <a href="#research-fields-collection" aria-expanded="false" aria-controls="research-fields-collection" data-toggle="collapse" class="collapsed">Research Fields<img src="https://static.addgene.org/addgene-core/ba538e0eee/images/public/icons/icon-chevron-right-addgene-gray.svg" class="chevron" alt=""></a> <ul id="research-fields-collection" class="collapse list-unstyled "> <li><a href="/cancer/">Cancer</a></li> <li><a href="/collections/covid-19-resources/">COVID-19</a></li> <li><a href="/immunology/">Immunology</a></li> <li><a href="/stemcell/">Stem Cells</a></li> </ul> </li> <li class="chevron-rotation"> <a href="#orfs-collection" aria-expanded="false" aria-controls="orfs-collection" data-toggle="collapse" class="collapsed">Pathways & ORFs<img src="https://static.addgene.org/addgene-core/ba538e0eee/images/public/icons/icon-chevron-right-addgene-gray.svg" class="chevron" alt=""></a> <ul id="orfs-collection" class="collapse list-unstyled "> <li><a href="/mapk/">MAPK</a></li> <li><a href="/nuclear-receptors/">Nuclear Receptors</a></li> <li><a href="/kits/#pathways">Pathway & ORF Kits</a></li> </ul> </li> <li class="chevron-rotation"> <a href="#community-collection" aria-expanded="false" aria-controls="community-collection" data-toggle="collapse" class="collapsed">Communities<img src="https://static.addgene.org/addgene-core/ba538e0eee/images/public/icons/icon-chevron-right-addgene-gray.svg" class="chevron" alt=""></a> <ul id="community-collection" class="collapse list-unstyled "> <li><a href="/allen-institute-cell-science/">Allen Institute for Cell Science</a></li> <li><a href="/biobrick-public-agreement-collection/">BioBricks</a></li> <li><a href="/special-collections/#communities">View all communities</a></li> </ul> </li> <li><a href="/industry/">Available to Industry</a></li> </ul> </div> </div> </div> </div> <div class="dropdown-bg"></div> </div> <div class="row-wide-gutters dropdown dropdown-deposit" id="dropdown-deposit"> <div class="col-xs-12 dropdown-menu" aria-labelledby="dropdown-toggle-deposit"> <div class="row-wide-gutters d-flex"> <div class="col-xs-4 menu-column"> <ul class="list-unstyled"> <li class="menu-heading" tabindex="0"><img src="https://static.addgene.org/addgene-core/ba538e0eee/images/public/icons/icon-dna-monochrome.svg" alt="">Depositing with Addgene </li> <li><a href="/deposit/benefits/" id="page-menu-deposit">Benefits of Depositing Plasmids</a></li> <li><a href="/testimonials/">Depositor Testimonials</a></li> <li><a href="/users/rewards/">Rewards Points</a></li> <li><a href="/deposit/pre-publication/">Pre-Publication Depositing</a></li> </ul> </div> <div class="col-xs-4 menu-column"> <ul class="list-unstyled"> <li class="menu-heading" tabindex="0"><img src="https://static.addgene.org/addgene-core/ba538e0eee/images/public/icons/icon-depositing.svg" alt="">Start your Deposit </li> <li><a href="/deposit/">Deposit Overview</a></li> <li> <a href="/depositing/start-deposit/" id="page-deposit-menu-add-article">Submit Online Deposit</a> </li> <li> <a href="/depositing/start-deposit/#spreadsheet-submission" >Download Deposit Spreadsheet</a> </li> </ul> </div> <div class="col-xs-4 menu-column"> <ul class="list-unstyled"> <li class="menu-heading" tabindex="0"><img src="https://static.addgene.org/addgene-core/ba538e0eee/images/public/icons/icon-wave.svg" alt="">Need Help?</li> <li><a href="https://blog.addgene.org/how-to-deposit-your-plasmids-with-addgene">Deposit Process Guide</a> </li> <li><a href="https://help.addgene.org/hc/en-us/categories/200507955">Deposit Help Center Articles</a></li> <li><a href="/cdn-cgi/l/email-protection#620607120d110b162203060605070c074c0d1005">Email <span class="__cf_email__" data-cfemail="234746534c504a576342474744464d460d4c5144">[email protected]</span></a></li> </ul> </div> </div> </div> <div class="dropdown-bg"></div> </div> <div class="row-wide-gutters dropdown dropdown-education-tools" id="dropdown-education-tools"> <div class="col-xs-12 dropdown-menu" aria-labelledby="dropdown-toggle-education-tools"> <div class="row-wide-gutters d-flex"> <div class="col-xs-6 menu-column list-unstyled educational-resources"> <span class="d-block menu-heading" tabindex="0"><img src="https://static.addgene.org/addgene-core/ba538e0eee/images/public/icons/icon-bulb.svg" alt="">Educational Resources</span> <div class="row-wide-gutters"> <div class="col-xs-6"> <ul class="list-unstyled"> <li><a href="https://blog.addgene.org/">Blog</a></li> <li><a href="/educational-resources/ebooks/">eBooks</a></li> <li><a href="/mol-bio-reference/">Molecular Biology Basics</a></li> <li><a href="/protocols/">Protocols</a></li> <li><a href="/educational-resources/">View all Educational Resources</a></li> </ul> </div> <div class="col-xs-6"> <ul class="list-unstyled"> <li><a href="/recipient-instructions/">Recipient Instructions</a></li> <li><a href="/guides/">Science Guides</a></li> <li><a href="/videos/">Videos</a></li> </ul> </div> </div> </div> <div class="col-xs-6 menu-column list-unstyled"> <span class="d-block menu-heading" tabindex="0"><img src="https://static.addgene.org/addgene-core/ba538e0eee/images/public/icons/icon-wrench.svg" alt="">Tools</span> <ul class="list-unstyled"> <li> <a href="https://datahub.addgene.org/"><span>Data Hub</span></a> <p class="menu-item-description">Learn about AAV and antibody materials from user-contributed reports</p> </li> <li> <a href="/analyze-sequence/">Sequence Analyzer</a> <p class="menu-item-description">Analyze a DNA sequence to see restriction sites and map</p> </li> <li> <a href="/vector-database/query/">Vector Database</a> <p class="menu-item-description">Browse a digital-only collection of vector backbone information</p> </li> </ul> </div> </div> </div> <div class="dropdown-bg"></div> </div> <div class="row-wide-gutters dropdown dropdown-help-center" id="dropdown-help-center"> <div class="col-xs-12 dropdown-menu" aria-labelledby="dropdown-toggle-help-center"> <div class="row-wide-gutters d-flex"> <div class="col-xs-12"> <div class="row-wide-gutters menu-multiple-row d-flex"> <ul class="col-xs-4 menu-column list-unstyled"> <li class="menu-heading" tabindex="0"><img src="https://static.addgene.org/addgene-core/ba538e0eee/images/public/icons/icon-clipboard.svg" alt="">Ordering & MTAs </li> <li><a href="https://help.addgene.org/hc/en-us/articles/205436319">How do I place an order? Does Addgene accept orders by fax, phone or email?</a></li> <li><a href="https://help.addgene.org/hc/en-us/sections/201196819">What is an MTA/Who is authorized to sign?</a></li> <li><a href="https://help.addgene.org/hc/en-us/articles/206133495">How do I get a quote?</a></li> <li><a href="https://help.addgene.org/hc/en-us/articles/206133555">What do I need to know about the customs and importation process for my country?</a></li> <li><a href="https://help.addgene.org/hc/en-us/categories/200491659">View all Ordering & MTA articles</a></li> </ul> <ul class="col-xs-4 menu-column list-unstyled"> <li class="menu-heading" tabindex="0"><img src="https://static.addgene.org/addgene-core/ba538e0eee/images/public/icons/icon-support.svg" alt="">Technical Support </li> <li><a href="https://help.addgene.org/hc/en-us/articles/360019863351">Can you help me find a plasmid?</a> </li> <li><a href="https://help.addgene.org/hc/en-us/articles/205433649">There is a problem with the plasmid I received.</a></li> <li><a href="https://help.addgene.org/hc/en-us/articles/205433549">My stab did not grow. What do I do?</a> </li> <li><a href="https://help.addgene.org/hc/en-us/articles/360031227692">What strain of bacteria does my stab contain?</a></li> <li><a href="https://help.addgene.org/hc/en-us/articles/205434539">How can I be notified when a new material becomes available?</a></li> <li><a href="https://help.addgene.org/hc/en-us/articles/360025306932">What services does Addgene provide?</a></li> <li><a href="https://help.addgene.org/hc/en-us/categories/200491649">View all Technical Support articles</a></li> </ul> <ul class="col-xs-4 menu-column list-unstyled"> <li class="menu-heading" tabindex="0"><img src="https://static.addgene.org/addgene-core/ba538e0eee/images/public/icons/icon-depositing.svg" alt="">Depositing Plasmids </li> <li><a href="https://help.addgene.org/hc/en-us/articles/205440209">How do I prepare and deposit my plasmids?</a></li> <li><a href="https://help.addgene.org/hc/en-us/articles/206135585">Which plasmids should I deposit?</a> </li> <li><a href="https://help.addgene.org/hc/en-us/articles/206135605">How can I track requests for my plasmids?</a></li> <li><a href="https://help.addgene.org/hc/en-us/articles/360019620672">What are Rewards Points?</a></li> <li><a href="https://help.addgene.org/hc/en-us/categories/200507955">View all Depositing Plasmids articles</a></li> </ul> </div> <div class="row-wide-gutters menu-multiple-row d-flex"> <div class="col-xs-4 menu-column"> <ul class="list-unstyled"> <li class="menu-heading" tabindex="0"><img src="https://static.addgene.org/addgene-core/ba538e0eee/images/public/icons/icon-virus-monochrome.svg" alt="">Viral Preps & Antibodies </li> <li><a href="https://help.addgene.org/hc/en-us/articles/115000050726">What is virus associated DNA, and why do I have to order it?</a></li> <li><a href="https://help.addgene.org/hc/en-us/articles/211773603">What virus titer will I receive?</a> </li> <li><a href="https://help.addgene.org/hc/en-us/articles/211770763">Viral storage</a></li> <li><a href="https://help.addgene.org/hc/en-us/articles/4584105031949">Antibody storage</a></li> <li><a href="https://help.addgene.org/hc/en-us/categories/201416626">View All Viral Preps & Antibodies articles</a></li> </ul> </div> <div class="col-xs-4 menu-column list-unstyled"> <ul class="list-unstyled"> <li class="menu-heading" tabindex="0"><img src="https://static.addgene.org/addgene-core/ba538e0eee/images/public/icons/icon-package.svg" alt="">Plasmid Handling </li> <li><a href="https://help.addgene.org/hc/en-us/articles/360019194111">Bacterial stab</a></li> <li><a href="https://help.addgene.org/hc/en-us/articles/206127485">DNA</a></li> <li><a href="https://help.addgene.org/hc/en-us/articles/360027736172">Pooled library</a></li> <li><a href="https://help.addgene.org/hc/en-us/sections/201190479">Kit</a></li> <li><a href="https://help.addgene.org/hc/en-us/articles/205432549">Plasmid verification</a></li> <li><a href="https://help.addgene.org/hc/en-us/categories/200491639">View all Plasmid Handling articles</a></li> </ul> </div> <div class="col-xs-4 menu-column"> <div class="row-wide-gutters menu-multiple-row"> <ul class="col-xs-12 list-unstyled"> <li class="menu-heading" tabindex="0"><img src="https://static.addgene.org/addgene-core/ba538e0eee/images/public/icons/icon-transfer.svg" alt="">Technology Transfer </li> <li><a href="/techtransfer/">Resources for your Tech Transfer Office</a></li> </ul> </div> <div class="row-wide-gutters menu-multiple-row"> <ul class="col-xs-12 list-unstyled"> <li class="menu-heading" tabindex="0"><img src="https://static.addgene.org/addgene-core/ba538e0eee/images/public/icons/icon-question.svg" alt="">Access the Help Center </li> <li><a href="https://help.addgene.org/">View all Help Center articles</a></li> </ul> </div> </div> </div> </div> </div> </div> <div class="dropdown-bg"></div> </div> </div> </nav> </div> </header> <div id="page-body"> <main id="main-content"> <div class="container" tabindex="-1"> <ul class="breadcrumbs"> <li><a href="/special-collections/">Special Collections</a></li> <li>Fluorescent Protein Guide</li> </ul> <h1 id="top">Fluorescent Protein Plasmids & Resources</h1> <hr> <div class="sidebar-right pull-right"> <div class="panel panel-default"> <div class="panel-heading"> <strong>You May Also Like...</strong> </div> <div class="panel-body"> <ul class="list-unstyled"> <li><a href="/luciferase/">Luminescence: Luciferase Plasmids</a></li> <li><a href="http://blog.addgene.org/which-fluorescent-protein-should-i-use" rel="noopener noreferrer" target="_blank">Blog: Which FP Should I Use?</a></li> <li><a href="http://blog.addgene.org/choosing-your-fluorescent-proteins-for-multi-color-imaging" rel="noopener noreferrer" target="_blank">Blog: How to Choose a FP For Multi-Color Imaging</a></li> <li><a href="http://blog.addgene.org/avoiding-the-dark-side-of-fluorescent-protein-fusions-with-mox-fps" rel="noopener noreferrer" target="_blank">Blog: Avoiding the Dark Side of Fluorescent Protein Fusions with mOX FPs</a></li> <li><a href="/kits/#fp">Fluorescent Protein Kits</a></li> <li><a href="http://blog.addgene.org/when-is-a-monomer-not-a-monomer-the-top-three-ways-your-favorite-fluorescent-protein-oligomerizes-in-cells">Blog: When is a Monomer not a Monomer?</a></li> </ul> </div> </div> </div> <p> Addgene's plasmid repository contains a variety of fluorescent protein plasmids. Use this guide to learn more about the many applications of fluorescent proteins (FPs) and to find the plasmids that are available from Addgene's depositing scientists. </p> <section id="pagelinks"> <h2>Browse Fluorescent Protein Plasmids by Category</h2> <!-- see custom styling in page css --> <table class="table table-no-border function-table" style="width: auto;"> <tbody> <tr> <td> <a href="/fluorescent-proteins/plasmid-backbones/"> <img src="https://media.addgene.org/data/easy-thumbnails/filer_public/cms/filer_public/5a/b6/5ab6bd40-83e6-4e00-8983-93abee69e98f/fp_empty_backbones_icon_round.png__50x50_subsampling-2_upscale.png" alt="Fluorescent protein empty backbone icon" class="" width="50" alt="Fluorescent protein empty backbone icon" > </a> </td> <td> <a href="/fluorescent-proteins/plasmid-backbones/"> Empty Backbones </a> </td> <td> Understand the localization and/or function of your protein of interest by fusing it to a fluorescent protein. </td> </tr> <tr> <td> <a href="/fluorescent-proteins/fret/"> <img src="https://media.addgene.org/data/easy-thumbnails/filer_public/cms/filer_public/21/8c/218cd98a-72e2-4563-ba6c-e0060ab89441/fp_fret_icon_round.png__50x50_subsampling-2_upscale.png" alt="Fluorescent protein FRET icon" class="" width="50" alt="Fluorescent protein FRET icon" > </a> </td> <td> <a href="/fluorescent-proteins/fret/"> FRET </a> </td> <td> Find FRET pairs and standards to study protein-protein interactions or conformational changes within a protein. </td> </tr> <tr> <td> <a href="/fluorescent-proteins/biosensors/"> <img src="https://media.addgene.org/data/easy-thumbnails/filer_public/cms/filer_public/91/2d/912d9c98-3383-4ab6-8e3f-907c4d61e108/fp_biosensors_icon_round.png__50x50_subsampling-2_upscale.png" alt="Fluorescent protein biosensor icon" class="" width="50" alt="Fluorescent protein biosensor icon" > </a> </td> <td> <a href="/fluorescent-proteins/biosensors/"> Biosensors </a> </td> <td> Monitor small biomolecules or other physiological intracellular processes with genetically encoded fluorescent biosensors. </td> </tr> <tr> <td> <a href="/optogenetics/"> <img src="https://media.addgene.org/data/easy-thumbnails/filer_public/cms/filer_public/cc/3b/cc3b4ffd-01b4-449b-8c83-5830c21b51c2/fp_optogenetics_icon_round.png__50x50_subsampling-2_upscale.png" alt="Fluorescent protein optogenetics icon" class="" width="50" alt="Fluorescent protein optogenetics icon" > </a> </td> <td> Optogenetics <br> <a href="/optogenetics/"> Plasmids</a> | <a href="/optogenetics/guide/"> Guide </a> </td> <td> Use light to detect, measure, and control molecular signals, cells, or groups of cells with either actuators or sensors. </td> </tr> <tr> <td> <a href="/chemogenetics/"> <img src="https://media.addgene.org/data/easy-thumbnails/filer_public/cms/filer_public/17/42/17428f14-7ed5-4e25-ac62-db4600ac2be1/chemogenetics_icon_round.gif__50x50_crop_subsampling-2_upscale.png" alt="" class="" width="50" > </a> </td> <td> Chemogenetics <br> <a href="/chemogenetics/"> Plasmids</a> | <a href="/chemogenetics/guide/"> Guide </a> </td> <td> Use small molecules to activate genetically engineered cellular receptors that affect signalling pathways within cells. </td> </tr> <tr> <td> <a href="/fluorescent-proteins/localization/"> <img src="https://media.addgene.org/data/easy-thumbnails/filer_public/cms/filer_public/44/1d/441d10f7-6e97-4a2c-a8f8-893fbdc4fd9e/fp_subcellular_localization_icon_round.png__50x50_subsampling-2_upscale.png" alt="Fluorescent protein subcellular localization icon" class="" width="50" alt="Fluorescent protein subcellular localization icon" > </a> </td> <td> <a href="/fluorescent-proteins/localization/"> Subcellular Localization </a> </td> <td> Determine where your protein of interest resides by using a well-characterized fluorescent fusion protein. </td> </tr> <tr> <td> <a href="/fluorescent-proteins/in-vivo/"> <img src="https://media.addgene.org/data/easy-thumbnails/filer_public/cms/filer_public/3c/11/3c117488-0413-4ae7-b293-782bf640f135/fp_in_vivo_imaging_icon_round.png__50x50_subsampling-2_upscale.png" alt="Fluorescent protein in vivo imaging icon" class="" width="50" alt="Fluorescent protein in vivo imaging icon" > </a> </td> <td> <a href="/fluorescent-proteins/in-vivo/"> <em>In Vivo</em> Imaging </a> </td> <td> Image with these powerful tools to study individual plasmids or protein-protein interactions in organs and whole mammals. </td> </tr> <tr> <td> <a href="/fluorescent-proteins/activity-regulation/"> <img src="https://media.addgene.org/data/easy-thumbnails/filer_public/cms/filer_public/02/a7/02a7eca7-e407-42f3-8dc1-cd733d899179/fp_regulate_biological_activity_icon_round.png__50x50_subsampling-2_upscale.png" alt="Fluorescent protein activity regulation icon" class="" width="50" alt="Fluorescent protein activity regulation icon" > </a> </td> <td> <a href="/fluorescent-proteins/activity-regulation/"> Regulate Biological Activity </a> </td> <td> Use fluorescent proteins to modulate biological activity, like transcription. </td> </tr> <tr> <td> <a href="/fluorescent-proteins/davidson/"> <img src="https://media.addgene.org/data/easy-thumbnails/filer_public/cms/filer_public/8e/1b/8e1b8af0-8079-4ff9-90a3-4676a2e8a871/fp_michael_davidson_collection_icon_round.png__50x50_subsampling-2_upscale.png" alt="Fluorescent protein Michael Davidson collection icon" class="" width="50" alt="Fluorescent protein Michael Davidson collection icon" > </a> </td> <td> <a href="/fluorescent-proteins/davidson/"> Michael Davidson FP Collection </a> </td> <td> Browse the Michael Davidson comprehensive collection consisting of ORFs tagged with a variety of fluorescent proteins, as well as over 100 empty backbones. </td> </tr> </tbody> </table> </section> <section id="kits"> <h2>Fluorescent Protein Kits</h2> <ul> <li><a href="/biosensors/cpfret/pertz/">cpFRET Kit: FRET based biosensors - Pertz</a></li> <li><a href="/fluorescent-proteins/hamdoun/">Fluorescent Protein Fusion Construct Set - Hamdoun</a></li> <li><a href="/kits/">Browse All Plasmid Kits</a></li> </ul> </section> <section id="resources"> <h2>Community Resources</h2> <ul> <li><a href="https://www.fpbase.org" rel="noopener noreferrer" target="_blank">FPbase from Talley Lambert at Harvard Medical School</a></li> <li><a href="https://biosensordb.ucsd.edu/" rel="noopener noreferrer" target="_blank">Fluorescent Biosensor Database designed by Eric Greenwald and the Jin Zhang Lab at UCSD</a></li> <li><a href="http://nic.ucsf.edu/FPvisualization/">Properties of Fluorescent Proteins from Kurt Thorn and UCSF</a></li> <li><a href="http://micro.magnet.fsu.edu/">Molecular Expressions Galleries from Michael Davidson and FSU</a></li> <li><a href="http://www.spectra.arizona.edu/">Spectra Database hosted at the University of Arizona</a></li> <li><a href="http://zeiss-campus.magnet.fsu.edu/index.html">Zeiss Education in Microscopy and Digital Imaging</a></li> <li><a href="http://www.olympusconfocal.com/applications/fpcolorpalette.html">Olympus Fluorescent Protein Color Palette</a></li> </ul> </section> </div> </main> </div> <footer> <div id="feedback-cta-banner" > <div class="feedback-bar"> <form hx-headers='{"X-CSRFToken": "YpKjw8w9vrgaq4p80v3xuKhdiNg2c0WUXPvccJN76rhCyvwPKMhi4BpFFVJwUWt6"}' method="post" hx-post="/update-survey-monkey-cookie/" hx-target="#feedback-cta-banner" class="banner-form"> <div class="question">How was your experience today?</div> <div> <button id="general-feedback-btn" class="btn btn-lg btn-addgene-yellow btn-feedback" type="button" data-toggle="modal" data-target="#campaign-modal" hx-get="/get-survey-monkey-feedback-survey/?triggering_page_path=/fluorescent-proteins/" hx-target="#campaign-content">Tell us</button> <button id="btn-feedback-no-thanks" class="btn btn-link" type="submit">No thanks</button> </div> </form> </div> </div> <div id="addgene-footer"> <div id="footer-actions-row"> <div class="container"> <div class="row"> <div class="col-xs-4"> <h2 class="footer-h2">Sign Up for Our Newsletter</h2> <p>Keep up with the latest Addgene news, releases, and more.</p> <a class="btn btn-default" href="https://info.addgene.org/addgene-newsletter-opt-in">Sign Up</a> </div> <div class="col-xs-4"> <h2 class="footer-h2">Subscribe to Our Blog</h2> <p>Learn about new materials in the repository and helpful community resources.</p> <a class="btn btn-default" href="https://info.addgene.org/subscribe-to-addgene-blog">Subscribe</a> </div> <div class="col-xs-4"> <h2 class="footer-h2">Contact Addgene</h2> <p>Have questions about your order, deposit, or a material?</p> <a class="btn btn-default" href="/contact/">Contact Us</a> </div> </div> </div> </div> <div id="footer-tagline-row"> <div class="container"> <h2 class="footer-h2">Addgene is a nonprofit plasmid repository.</h2> <h3 class="h4 tagline">We store and distribute high-quality plasmids from your colleagues.</h3> </div> </div> <div id="footer-links-row"> <div class="container"> <div class="row"> <div class="col-md-4"> <h3 class="footer-h3">About Our Repository</h3> <ul class="list-unstyled"> <li class="footer-category"> <ul class="list-unstyled"> <li><a href="/mission/">Mission</a></li> <li><a href="/management/">Leadership</a></li> <li><a href="/testimonials/">Testimonials</a></li> <li><a href="/sponsors/">Sponsors</a></li> <li><a href="/addgene-gives-back/">Community Investment</a></li> <li><a href="/financial-conflicts-interest/">Financial Conflicts of Interest</a></li> <li><a href="/biosafety/">Biosafety</a></li> <li><a href="/blue-flame-award/">Blue Flame Award</a></li> <li><a href="/careers/">Careers</a></li> <li><a href="/industry/">Industry Customers</a></li> <li><a href="/news/">News & Press</a></li> <li><a href="/recipient-instructions/">Recipient Instructions</a></li> <li><a href="/techtransfer/">Technology Transfer</a></li> </ul> </li> </ul> <ul class="list-unstyled"> <li class="footer-category"> <h4 class="footer-h4">Help Center</h4> <ul class="list-unstyled"> <li><a href="https://help.addgene.org/hc/en-us/categories/200507955-Depositing-Plasmids">Depositing</a></li> <li><a href="https://help.addgene.org/hc/en-us/categories/200491659-Ordering-Plasmids">Ordering</a></li> <li><a href="https://help.addgene.org/hc/en-us/categories/200491649-Technical-Resources">Technical Resources</a></li> <li><a href="https://help.addgene.org/hc/en-us/categories/201416626-Viral-Service">Viral Service</a></li> </ul> </li> </ul> <ul class="list-unstyled"> <li class="footer-category"> <h4 class="footer-h4">Deposit Plasmids</h4> <ul class="list-unstyled"> <li><a href="/deposit/">Why Deposit with Us</a></li> <li><a href="/depositing/start-deposit/">Start a Deposit</a></li> </ul> </li> </ul> </div> <div class="col-md-4"> <h3 class="footer-h3">Browse Our Catalog</h3> <ul class="list-unstyled"> <li class="footer-category"> <h4 class="footer-h4">General Reagents</h4> <ul class="list-unstyled"> <li><a href="/antibodies/">Antibodies</a></li> <li><a href="/browse/">Plasmids</a></li> <li><a href="/kits/">Plasmid Kits</a></li> <li><a href="/pooled-library/">Pooled Libraries</a></li> </ul> </li> </ul> <ul class="list-unstyled"> <li class="footer-category"> <h4 class="footer-h4">Viral Service</h4> <ul class="list-unstyled"> <li><a href="/viral-service/aav-prep/">AAV</a></li> <li><a href="/viral-service/lenti-prep/">Lentivirus</a></li> </ul> </li> </ul> <ul class="list-unstyled"> <li class="footer-category"> <h4 class="footer-h4">DNA Service</h4> <ul class="list-unstyled"> <li><a href="/dna-service/">Cloning Grade DNA</a></li> </ul> </li> </ul> <ul class="list-unstyled"> <li class="footer-category"> <h4 class="footer-h4">Plasmid Collections</h4> <ul class="list-unstyled"> <li><a href="/chemogenetics/">Chemogenetics</a></li> <li><a href="/crispr/">CRISPR</a></li> <li><a href="/empty-backbones/">Empty Backbones</a></li> <li><a href="/fluorescent-proteins/">Fluorescent Proteins</a></li> <li><a href="/optogenetics/">Optogenetics</a></li> <li><a href="/synthetic-biology/">Synthetic Biology</a></li> <li><a href="/viral-vectors/">Viral Plasmids</a></li> <li><a href="/collections/"><strong>View All</strong></a></li> </ul> </li> </ul> </div> <div class="col-md-4"> <h3 class="footer-h3">Education</h3> <ul class="list-unstyled"> <li class="footer-category"> <ul class="list-unstyled"> <li><a href="https://blog.addgene.org">Blog</a></li> <li><a href="/educational-resources/ebooks/">eBooks</a></li> <li><a href="/mol-bio-reference/">Molecular Biology Basics</a></li> <li><a href="https://blog.addgene.org/topic/podcast">Podcast</a></li> <li><a href="/protocols/">Protocols</a></li> <li><a href="/guides/">Science Guides</a></li> <li><a href="/videos/">Videos</a></li> <li><a href="/educational-resources/"><strong>View All</strong></a></li> </ul> </li> </ul> <h3 class="footer-h3 tools-heading">Tools</h3> <ul class="list-unstyled"> <li class="footer-category"> <ul class="list-unstyled"> <li><a href="https://datahub.addgene.org">Data Hub</a></li> <li><a href="/analyze-sequence/">Sequence Analyzer</a></li> <li><a href="/vector-database/query/">Vector Database</a></li> </ul> </li> </ul> </div> </div> <div id="footer-social-row"> <span class="h4 social-tagline">Stay connected!</span> <div class="social-icons"> <a href="https://www.facebook.com/addgene" target="_blank" rel="noopener noreferrer"> <img src="https://static.addgene.org/addgene-core/ba538e0eee/images/public/icons/social-media/facebook-icon.svg" width="34" height="34" alt="Addgene Facebook Page"> </a> <a href="https://bsky.app/profile/addgene.bsky.social" target="_blank" rel="noopener noreferrer"> <img src="https://static.addgene.org/addgene-core/ba538e0eee/images/public/icons/social-media/bluesky-icon.svg" width="38" height="34" alt="Addgene Bluesky Page"> </a> <a href="https://www.instagram.com/addgene/" target="_blank" rel="noopener noreferrer"> <img src="https://static.addgene.org/addgene-core/ba538e0eee/images/public/icons/social-media/instagram-icon.svg" width="34" height="34" alt="Addgene Instagram Page"> </a> <a href="https://www.youtube.com/user/addgenemedia" target="_blank" rel="noopener noreferrer"> <img src="https://static.addgene.org/addgene-core/ba538e0eee/images/public/icons/social-media/youtube-icon.svg" width="49" height="34" alt="Addgene YouTube Channel"> </a> <a href="https://www.linkedin.com/company/addgene" target="_blank" rel="noopener noreferrer"> <img src="https://static.addgene.org/addgene-core/ba538e0eee/images/public/icons/social-media/linkedin-icon.svg" width="34" height="34" alt="Addgene LinkedIn Page"> </a> </div> </div> <div id="footer-utility-links-row"> <a href="/"> <img src="https://static.addgene.org/addgene-core/ba538e0eee/images/common/svg/addgene-logo-white.svg" width="212" height="40" alt="Addgene"> </a> <ul> <li><a href="/contact/">Contact</a></li> <li><a href="/privacy/">Cookies & Privacy Policy</a></li> <li><a href="/accessibility/">Accessibility</a></li> <li><a href="/sitemap/">Site Map</a></li> <li><a href="/terms-of-use/">Terms of Use</a></li> <li><a href="https://addgenestatus.org">Status</a></li> </ul> </div> </div> </div> </div> </footer> <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script src="https://static.addgene.org/addgene-core/ba538e0eee/jquery/jquery-1.10.2.js"></script> <script src="https://static.addgene.org/addgene-core/ba538e0eee/bootstrap/dist/js/bootstrap.js"></script> <script src="https://static.addgene.org/addgene-core/ba538e0eee/js/public/public.js"></script> <script src="https://static.addgene.org/addgene-core/ba538e0eee/js/jquery.cookie.js"></script> <script src="https://static.addgene.org/addgene-core/ba538e0eee/vendor/leaverou/awesomplete.js"></script> <script src="https://static.addgene.org/addgene-core/ba538e0eee/vendor/datatables/1.10.7/js/jquery.dataTables.min.js"></script> <script src="https://static.addgene.org/addgene-core/ba538e0eee/vendor/datatables/plug-ins/1.10.7/sorting/natural.js"></script> <script src="https://static.addgene.org/addgene-core/ba538e0eee/vendor/datatables/plug-ins/1.10.7/integration/bootstrap/3/dataTables.bootstrap.js"></script> <script src="https://static.addgene.org/addgene-core/ba538e0eee/js/datatables.rowsgroup.js"></script> <script src="https://static.addgene.org/addgene-core/ba538e0eee/js/public/datatable.js"></script> <script src="https://static.addgene.org/addgene-core/ba538e0eee/vendor/js/htmx.min.js"></script> <script> $(function(){ $('table').on('shown.bs.dropdown', '.dropdown', function (e) { var $button = $(this).find('button') || $(this); $(this).find('.dropdown-menu:not(.dropdown-menu-right)').css({ left: $button.position().left + "px", top: $button.position().top + $button.height() + "px" }); }); $('.datatable-overflow-visible').each(function() { var scrollContainer = $(this).closest('.dataTables_scroll') scrollContainer.find('> *').each(function() { $(this).css({ overflow: '', position: '', }) }) }) }); </script> <script type="text/javascript">window.__staticBaseUrl__="https://static.addgene.org/addgene-core/ba538e0eee/"</script> <script type="text/javascript"> window.addEventListener('error', function (event) { msg = event.message.substring(0, 100) document.head.setAttribute('data-addgene-jserror', msg) }) </script> <script src="https://static.addgene.org/addgene-core/ba538e0eee/vendor/require.js"></script> <script src="https://static.addgene.org/addgene-core/ba538e0eee/common_requirejs_config.js"></script> <script>requirejs(["js/public/utility_bar/load-search-controls"]);</script> <script>requirejs(["js/search/load-autosuggest"]);</script> <script>requirejs(["js/public/load-main-nav-bar"]);</script> <script>requirejs(["js/public/load-feedback-campaign-banner"]);</script> </body> </html>