UNPKG

cornerstone-core

Version:
2 lines 92.1 kB
/*! cornerstone-core - 2.6.1 - 2021-11-19 | (c) 2016 Chris Hafey | https://github.com/cornerstonejs/cornerstone */ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("cornerstone-core",[],t):"object"==typeof exports?exports["cornerstone-core"]=t():e.cornerstone=t()}(window,function(){return function(r){var n={};function a(e){if(n[e])return n[e].exports;var t=n[e]={i:e,l:!1,exports:{}};return r[e].call(t.exports,t,t.exports,a),t.l=!0,t.exports}return a.m=r,a.c=n,a.d=function(e,t,r){a.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(t,e){if(1&e&&(t=a(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(a.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)a.d(r,n,function(e){return t[e]}.bind(null,n));return r},a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,"a",t),t},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.p="",a(a.s=0)}([function(e,t,r){"use strict";function a(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}r.r(t);var T={NEW_IMAGE:"cornerstonenewimage",INVALIDATED:"cornerstoneinvalidated",PRE_RENDER:"cornerstoneprerender",IMAGE_CACHE_MAXIMUM_SIZE_CHANGED:"cornerstoneimagecachemaximumsizechanged",IMAGE_CACHE_PROMISE_REMOVED:"cornerstoneimagecachepromiseremoved",IMAGE_CACHE_FULL:"cornerstoneimagecachefull",IMAGE_CACHE_CHANGED:"cornerstoneimagecachechanged",WEBGL_TEXTURE_REMOVED:"cornerstonewebgltextureremoved",WEBGL_TEXTURE_CACHE_FULL:"cornerstonewebgltexturecachefull",IMAGE_LOADED:"cornerstoneimageloaded",IMAGE_LOAD_PROGRESS:"cornerstoneimageloadprogress",IMAGE_LOAD_FAILED:"cornerstoneimageloadfailed",ELEMENT_RESIZED:"cornerstoneelementresized",IMAGE_RENDERED:"cornerstoneimagerendered",LAYER_ADDED:"cornerstonelayeradded",LAYER_REMOVED:"cornerstonelayerremoved",ACTIVE_LAYER_CHANGED:"cornerstoneactivelayerchanged",ELEMENT_DISABLED:"cornerstoneelementdisabled",ELEMENT_ENABLED:"cornerstoneelementenabled"},o=new(function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.listeners={},this.namespaces={}}var t,r,n;return t=e,(r=[{key:"addEventNamespaceListener",value:function(e,t){e.indexOf(".")<=0||(this.namespaces[e]=t,this.addEventListener(e.split(".")[0],t))}},{key:"removeEventNamespaceListener",value:function(e){e.indexOf(".")<=0||!this.namespaces[e]||(this.removeEventListener(e.split(".")[0],this.namespaces[e]),delete this.namespaces[e])}},{key:"addEventListener",value:function(e,t){0<e.indexOf(".")?this.addEventNamespaceListener(e,t):(e in this.listeners||(this.listeners[e]=[]),this.listeners[e].push(t))}},{key:"removeEventListener",value:function(e,t){if(0<e.indexOf("."))this.removeEventNamespaceListener(e);else if(e in this.listeners)for(var r=this.listeners[e],n=0,a=r.length;n<a;n++)if(r[n]===t)return void r.splice(n,1)}},{key:"dispatchEvent",value:function(e){if(!(e.type in this.listeners))return!0;for(var t=this.listeners[e.type].slice(),r=0,n=t.length;r<n;r++)t[r].call(this,e);return!e.defaultPrevented}}])&&a(t.prototype,r),n&&a(t,n),e}()),n=[];function C(e){if(void 0===e)throw new Error("getEnabledElement: parameter element must not be undefined");for(var t=0;t<n.length;t++)if(n[t].element===e)return n[t];throw new Error("element not enabled")}function i(e){if(void 0===e)throw new Error("getEnabledElement: enabledElement element must not be undefined");n.push(e)}function l(t){var r=[];return n.forEach(function(e){e.image&&e.image.imageId===t&&r.push(e)}),r}function s(){return n}function u(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}var d={viewport:{}},m=function(e){d.viewport=e||{}};function c(e,t){if(null==e)throw new Error(t)}var L=function(e){var t,r=1<arguments.length&&void 0!==arguments[1]?arguments[1]:null;return c(e,"getImageSize: parameter image must not be undefined"),c(e.width,"getImageSize: parameter image must have width"),c(e.height,"getImageSize: parameter image must have height"),null!=(t=r)&&0!==t&&180!==t?{height:e.width,width:e.height}:{width:e.width,height:e.height}},f=function(e,t){var r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;c(e,"getImageScale: parameter windowSize must not be undefined"),c(t,"getImageScale: parameter image must not be undefined");var n=L(t,r),a=t.rowPixelSpacing||1,i=t.columnPixelSpacing||1,o=1,l=1;a<i?l=i/a:o=a/i;var s=e.height/n.height/o,u=e.width/n.width/l;return{verticalScale:s,horizontalScale:u,scaleFactor:Math.min(u,s)}},g=function(e,t){if(void 0===e)throw new Error("getDefaultViewport: parameter canvas must not be undefined");return void 0===t?(r={scale:1,translation:{x:0,y:0},voi:{windowWidth:void 0,windowCenter:void 0},invert:!1,pixelReplication:!1,rotation:0,hflip:!1,vflip:!1,modalityLUT:void 0,voiLUT:void 0,colormap:void 0,labelmap:!1,displayedArea:void 0},Object.assign({},r,d.viewport)):{scale:f(e,t,0).scaleFactor,translation:{x:0,y:0},voi:{windowWidth:t.windowWidth,windowCenter:t.windowCenter},invert:t.invert,pixelReplication:!1,rotation:0,hflip:!1,vflip:!1,modalityLUT:t.modalityLUT,voiLUT:t.voiLUT,colormap:t.colormap,labelmap:Boolean(t.labelmap),displayedArea:void 0};var r},v=function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:null;if(t&&t.displayedArea)return t.displayedArea;if(void 0===e)throw new Error("getDisplayedArea: parameter image must not be undefined");return{tlhc:{x:1,y:1},brhc:{x:e.columns,y:e.rows},rowPixelSpacing:void 0===e.rowPixelSpacing?1:e.rowPixelSpacing,columnPixelSpacing:void 0===e.columnPixelSpacing?1:e.columnPixelSpacing,presentationSizeMode:"NONE"}},h=function(e){var t=1<arguments.length&&void 0!==arguments[1]&&arguments[1];e.needsRedraw=!0,t&&(e.invalid=!0)},P=function(e){var t=1<arguments.length&&void 0!==arguments[1]&&arguments[1],r=C(e);h(r,t)};function R(e,t){var r,n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;return"function"==typeof window.CustomEvent?r=new CustomEvent(t,{detail:n,cancelable:!0}):(r=document.createEvent("CustomEvent")).initCustomEvent(t,!0,!0,n),e.dispatchEvent(r)}function p(e,t,r){R(t.element,e,{viewport:t.viewport,element:t.element,image:t.image,enabledElement:t,layerId:r})}function w(e,t){if(e.layerId===t.layerId)throw new Error("rescaleImage: both arguments represent the same layer");var r=e.image,n=t.image;if(r.imageId&&n.imageId){var a=v(n,t.viewport),i=v(r,e.viewport),o=a.columnPixelSpacing*n.width/(i.columnPixelSpacing*r.width),l=t.viewport.scale/e.viewport.scale*o;t.viewport.scale=e.viewport.scale*l}}function b(e,t,r){var n,a="".concat(u()+u(),"-").concat(u(),"-").concat(u(),"-").concat(u(),"-").concat(u()).concat(u()).concat(u()),i=C(e),o=i.layers;t&&(n=g(i.canvas,t),r&&r.viewport&&(n=Object.assign(n,r.viewport))),!1!==i.syncViewports&&(i.syncViewports=!0);var l={image:t,layerId:a,viewport:n,options:r||{},renderingTools:{}};return o.length&&t&&w(o[0],l),o.push(l),p(T.LAYER_ADDED,i,a),1===o.length&&t&&D(e,a),a}function y(e,t){var r=C(e),n=r.layers,a=r.layers.findIndex(function(e){return e.layerId===t});-1!==a&&(n.splice(a,1),t===r.activeLayerId&&n.length&&D(e,n[0].layerId),p(T.LAYER_REMOVED,r,t))}function x(e,t){return C(e).layers.find(function(e){return e.layerId===t})}function E(e){return C(e).layers}function I(e){return C(e).layers.filter(function(e){return e.options&&!1!==e.options.visible&&0!==e.options.opacity})}function D(e,t){var r=C(e);if(r.activeLayerId!==t){var n=r.layers.findIndex(function(e){return e.layerId===t});if(-1===n)throw new Error("setActiveLayer: layer not found in layers array");var a=r.layers[n];if(!a.image)throw new Error("setActiveLayer: layer with undefined image cannot be set as active.");r.activeLayerId=t,r.image=a.image,r.viewport=a.viewport,P(e),p(T.ACTIVE_LAYER_CHANGED,r,t)}}function S(e,t,r){var n,a=C(e),i=a.layers[0];if(!(n=r?x(e,r):A(e)))throw new Error("setLayerImage: Layer not found");if(n.image=t){if(!n.viewport){var o=g(a.canvas,t);n.options&&n.options.viewport&&(n.viewport=Object.assign(o,n.options.viewport)),i.layerId!==r&&w(i,n)}}else n.viewport=void 0}function A(e){var t=C(e);return t.layers.find(function(e){return e.layerId===t.activeLayerId})}function _(e){var t=C(e);t.layers=[],delete t.activeLayerId,delete t.lastSyncViewportsState}function M(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function O(e,t,r){if(1<e)throw new Error("HSVToRGB expects hue < 1");var n=[];if(0===t)return n[0]=r,n[1]=r,n[2]=r,n;var a=Math.floor(6*e),i=6*e-a,o=r*(1-t),l=r*(1-t*i),s=r*(1-t*(1-i));switch(a){case 0:case 6:n[0]=r,n[1]=s,n[2]=o;break;case 1:n[0]=l,n[1]=r,n[2]=o;break;case 2:n[0]=o,n[1]=r,n[2]=s;break;case 3:n[0]=o,n[1]=l,n[2]=r;break;case 4:n[0]=s,n[1]=o,n[2]=r;break;case 5:n[0]=r,n[1]=o,n[2]=l}return n}var V=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.NumberOfColors=256,this.Ramp="linear",this.TableRange=[0,255],this.HueRange=[0,.66667],this.SaturationRange=[1,1],this.ValueRange=[1,1],this.AlphaRange=[1,1],this.NaNColor=[128,0,0,255],this.BelowRangeColor=[0,0,0,255],this.UseBelowRangeColor=!0,this.AboveRangeColor=[255,255,255,255],this.UseAboveRangeColor=!0,this.InputRange=[0,255],this.Table=[]}var t,r,n;return t=e,(r=[{key:"setNumberOfTableValues",value:function(e){this.NumberOfColors=e}},{key:"setRamp",value:function(e){this.Ramp=e}},{key:"setTableRange",value:function(e,t){this.TableRange[0]=e,this.TableRange[1]=t}},{key:"setHueRange",value:function(e,t){this.HueRange[0]=e,this.HueRange[1]=t}},{key:"setSaturationRange",value:function(e,t){this.SaturationRange[0]=e,this.SaturationRange[1]=t}},{key:"setValueRange",value:function(e,t){this.ValueRange[0]=e,this.ValueRange[1]=t}},{key:"setRange",value:function(e,t){this.InputRange[0]=e,this.InputRange[1]=t}},{key:"setAlphaRange",value:function(e,t){this.AlphaRange[0]=e,this.AlphaRange[1]=t}},{key:"getColor",value:function(e){return this.mapValue(e)}},{key:"build",value:function(e){if(!(1<this.Table.length)||e){this.Table=[];var t,r,n,a,i=this.NumberOfColors-1;i?(t=(this.HueRange[1]-this.HueRange[0])/i,r=(this.SaturationRange[1]-this.SaturationRange[0])/i,n=(this.ValueRange[1]-this.ValueRange[0])/i,a=(this.AlphaRange[1]-this.AlphaRange[0])/i):t=r=n=a=0;for(var o=0;o<=i;o++){var l=this.HueRange[0]+o*t,s=this.SaturationRange[0]+o*r,u=this.ValueRange[0]+o*n,d=this.AlphaRange[0]+o*a,m=O(l,s,u),c=[];switch(this.Ramp){case"scurve":c[0]=Math.floor(127.5*(1+Math.cos((1-m[0])*Math.PI))),c[1]=Math.floor(127.5*(1+Math.cos((1-m[1])*Math.PI))),c[2]=Math.floor(127.5*(1+Math.cos((1-m[2])*Math.PI))),c[3]=Math.floor(255*d);break;case"linear":c[0]=Math.floor(255*m[0]+.5),c[1]=Math.floor(255*m[1]+.5),c[2]=Math.floor(255*m[2]+.5),c[3]=Math.floor(255*d+.5);break;case"sqrt":c[0]=Math.floor(255*Math.sqrt(m[0])+.5),c[1]=Math.floor(255*Math.sqrt(m[1])+.5),c[2]=Math.floor(255*Math.sqrt(m[2])+.5),c[3]=Math.floor(255*Math.sqrt(d)+.5);break;default:throw new Error("Invalid Ramp value (".concat(this.Ramp,")"))}this.Table.push(c)}this.buildSpecialColors()}}},{key:"buildSpecialColors",value:function(){var e=this.NumberOfColors,t=e+0,r=e+1,n=e+2;this.UseBelowRangeColor||0===e?this.Table[t]=this.BelowRangeColor:this.Table[t]=this.Table[0],this.UseAboveRangeColor||0===e?this.Table[r]=this.AboveRangeColor:this.Table[r]=this.Table[e-1],this.Table[n]=this.NaNColor}},{key:"mapValue",value:function(e){var t=this.getIndex(e);if(t<0)return this.NaNColor;if(0===t){if(this.UseBelowRangeColor&&e<this.TableRange[0])return this.BelowRangeColor}else if(t===this.NumberOfColors-1&&this.UseAboveRangeColor&&e>this.TableRange[1])return this.AboveRangeColor;return this.Table[t]}},{key:"getIndex",value:function(e){var t={Range:[]};if(t.MaxIndex=this.NumberOfColors-1,t.Shift=-this.TableRange[0],this.TableRange[1]<=this.TableRange[0]?t.Scale=Number.MAX_VALUE:t.Scale=t.MaxIndex/(this.TableRange[1]-this.TableRange[0]),t.Range[0]=this.TableRange[0],t.Range[1]=this.TableRange[1],isNaN(e))return-1;var r,n,a,i=(a=(r=e)<(n=t).Range[0]?n.MaxIndex+0+1.5:r>n.Range[1]?n.MaxIndex+1+1.5:(r+n.Shift)*n.Scale,Math.floor(a));return i===this.NumberOfColors+0?i=0:i===this.NumberOfColors+1&&(i=this.NumberOfColors-1),i}},{key:"setTableValue",value:function(e,t){if(5===arguments.length&&(t=Array.prototype.slice.call(arguments,1)),e<0)throw new Error("Can't set the table value for negative index (".concat(e,")"));e>=this.NumberOfColors&&new Error("Index ".concat(e," is greater than the number of colors ").concat(this.NumberOfColors)),this.Table[e]=t,0!==e&&e!==this.NumberOfColors-1||this.buildSpecialColors()}}])&&M(t.prototype,r),n&&M(t,n),e}(),U=[0,0,0,0],N={hotIron:{name:"Hot Iron",numOfColors:256,colors:[[0,0,0,255],[2,0,0,255],[4,0,0,255],[6,0,0,255],[8,0,0,255],[10,0,0,255],[12,0,0,255],[14,0,0,255],[16,0,0,255],[18,0,0,255],[20,0,0,255],[22,0,0,255],[24,0,0,255],[26,0,0,255],[28,0,0,255],[30,0,0,255],[32,0,0,255],[34,0,0,255],[36,0,0,255],[38,0,0,255],[40,0,0,255],[42,0,0,255],[44,0,0,255],[46,0,0,255],[48,0,0,255],[50,0,0,255],[52,0,0,255],[54,0,0,255],[56,0,0,255],[58,0,0,255],[60,0,0,255],[62,0,0,255],[64,0,0,255],[66,0,0,255],[68,0,0,255],[70,0,0,255],[72,0,0,255],[74,0,0,255],[76,0,0,255],[78,0,0,255],[80,0,0,255],[82,0,0,255],[84,0,0,255],[86,0,0,255],[88,0,0,255],[90,0,0,255],[92,0,0,255],[94,0,0,255],[96,0,0,255],[98,0,0,255],[100,0,0,255],[102,0,0,255],[104,0,0,255],[106,0,0,255],[108,0,0,255],[110,0,0,255],[112,0,0,255],[114,0,0,255],[116,0,0,255],[118,0,0,255],[120,0,0,255],[122,0,0,255],[124,0,0,255],[126,0,0,255],[128,0,0,255],[130,0,0,255],[132,0,0,255],[134,0,0,255],[136,0,0,255],[138,0,0,255],[140,0,0,255],[142,0,0,255],[144,0,0,255],[146,0,0,255],[148,0,0,255],[150,0,0,255],[152,0,0,255],[154,0,0,255],[156,0,0,255],[158,0,0,255],[160,0,0,255],[162,0,0,255],[164,0,0,255],[166,0,0,255],[168,0,0,255],[170,0,0,255],[172,0,0,255],[174,0,0,255],[176,0,0,255],[178,0,0,255],[180,0,0,255],[182,0,0,255],[184,0,0,255],[186,0,0,255],[188,0,0,255],[190,0,0,255],[192,0,0,255],[194,0,0,255],[196,0,0,255],[198,0,0,255],[200,0,0,255],[202,0,0,255],[204,0,0,255],[206,0,0,255],[208,0,0,255],[210,0,0,255],[212,0,0,255],[214,0,0,255],[216,0,0,255],[218,0,0,255],[220,0,0,255],[222,0,0,255],[224,0,0,255],[226,0,0,255],[228,0,0,255],[230,0,0,255],[232,0,0,255],[234,0,0,255],[236,0,0,255],[238,0,0,255],[240,0,0,255],[242,0,0,255],[244,0,0,255],[246,0,0,255],[248,0,0,255],[250,0,0,255],[252,0,0,255],[254,0,0,255],[255,0,0,255],[255,2,0,255],[255,4,0,255],[255,6,0,255],[255,8,0,255],[255,10,0,255],[255,12,0,255],[255,14,0,255],[255,16,0,255],[255,18,0,255],[255,20,0,255],[255,22,0,255],[255,24,0,255],[255,26,0,255],[255,28,0,255],[255,30,0,255],[255,32,0,255],[255,34,0,255],[255,36,0,255],[255,38,0,255],[255,40,0,255],[255,42,0,255],[255,44,0,255],[255,46,0,255],[255,48,0,255],[255,50,0,255],[255,52,0,255],[255,54,0,255],[255,56,0,255],[255,58,0,255],[255,60,0,255],[255,62,0,255],[255,64,0,255],[255,66,0,255],[255,68,0,255],[255,70,0,255],[255,72,0,255],[255,74,0,255],[255,76,0,255],[255,78,0,255],[255,80,0,255],[255,82,0,255],[255,84,0,255],[255,86,0,255],[255,88,0,255],[255,90,0,255],[255,92,0,255],[255,94,0,255],[255,96,0,255],[255,98,0,255],[255,100,0,255],[255,102,0,255],[255,104,0,255],[255,106,0,255],[255,108,0,255],[255,110,0,255],[255,112,0,255],[255,114,0,255],[255,116,0,255],[255,118,0,255],[255,120,0,255],[255,122,0,255],[255,124,0,255],[255,126,0,255],[255,128,4,255],[255,130,8,255],[255,132,12,255],[255,134,16,255],[255,136,20,255],[255,138,24,255],[255,140,28,255],[255,142,32,255],[255,144,36,255],[255,146,40,255],[255,148,44,255],[255,150,48,255],[255,152,52,255],[255,154,56,255],[255,156,60,255],[255,158,64,255],[255,160,68,255],[255,162,72,255],[255,164,76,255],[255,166,80,255],[255,168,84,255],[255,170,88,255],[255,172,92,255],[255,174,96,255],[255,176,100,255],[255,178,104,255],[255,180,108,255],[255,182,112,255],[255,184,116,255],[255,186,120,255],[255,188,124,255],[255,190,128,255],[255,192,132,255],[255,194,136,255],[255,196,140,255],[255,198,144,255],[255,200,148,255],[255,202,152,255],[255,204,156,255],[255,206,160,255],[255,208,164,255],[255,210,168,255],[255,212,172,255],[255,214,176,255],[255,216,180,255],[255,218,184,255],[255,220,188,255],[255,222,192,255],[255,224,196,255],[255,226,200,255],[255,228,204,255],[255,230,208,255],[255,232,212,255],[255,234,216,255],[255,236,220,255],[255,238,224,255],[255,240,228,255],[255,242,232,255],[255,244,236,255],[255,246,240,255],[255,248,244,255],[255,250,248,255],[255,252,252,255],[255,255,255,255]]},pet:{name:"PET",numColors:256,colors:[[0,0,0,255],[0,2,1,255],[0,4,3,255],[0,6,5,255],[0,8,7,255],[0,10,9,255],[0,12,11,255],[0,14,13,255],[0,16,15,255],[0,18,17,255],[0,20,19,255],[0,22,21,255],[0,24,23,255],[0,26,25,255],[0,28,27,255],[0,30,29,255],[0,32,31,255],[0,34,33,255],[0,36,35,255],[0,38,37,255],[0,40,39,255],[0,42,41,255],[0,44,43,255],[0,46,45,255],[0,48,47,255],[0,50,49,255],[0,52,51,255],[0,54,53,255],[0,56,55,255],[0,58,57,255],[0,60,59,255],[0,62,61,255],[0,65,63,255],[0,67,65,255],[0,69,67,255],[0,71,69,255],[0,73,71,255],[0,75,73,255],[0,77,75,255],[0,79,77,255],[0,81,79,255],[0,83,81,255],[0,85,83,255],[0,87,85,255],[0,89,87,255],[0,91,89,255],[0,93,91,255],[0,95,93,255],[0,97,95,255],[0,99,97,255],[0,101,99,255],[0,103,101,255],[0,105,103,255],[0,107,105,255],[0,109,107,255],[0,111,109,255],[0,113,111,255],[0,115,113,255],[0,117,115,255],[0,119,117,255],[0,121,119,255],[0,123,121,255],[0,125,123,255],[0,128,125,255],[1,126,127,255],[3,124,129,255],[5,122,131,255],[7,120,133,255],[9,118,135,255],[11,116,137,255],[13,114,139,255],[15,112,141,255],[17,110,143,255],[19,108,145,255],[21,106,147,255],[23,104,149,255],[25,102,151,255],[27,100,153,255],[29,98,155,255],[31,96,157,255],[33,94,159,255],[35,92,161,255],[37,90,163,255],[39,88,165,255],[41,86,167,255],[43,84,169,255],[45,82,171,255],[47,80,173,255],[49,78,175,255],[51,76,177,255],[53,74,179,255],[55,72,181,255],[57,70,183,255],[59,68,185,255],[61,66,187,255],[63,64,189,255],[65,63,191,255],[67,61,193,255],[69,59,195,255],[71,57,197,255],[73,55,199,255],[75,53,201,255],[77,51,203,255],[79,49,205,255],[81,47,207,255],[83,45,209,255],[85,43,211,255],[86,41,213,255],[88,39,215,255],[90,37,217,255],[92,35,219,255],[94,33,221,255],[96,31,223,255],[98,29,225,255],[100,27,227,255],[102,25,229,255],[104,23,231,255],[106,21,233,255],[108,19,235,255],[110,17,237,255],[112,15,239,255],[114,13,241,255],[116,11,243,255],[118,9,245,255],[120,7,247,255],[122,5,249,255],[124,3,251,255],[126,1,253,255],[128,0,255,255],[130,2,252,255],[132,4,248,255],[134,6,244,255],[136,8,240,255],[138,10,236,255],[140,12,232,255],[142,14,228,255],[144,16,224,255],[146,18,220,255],[148,20,216,255],[150,22,212,255],[152,24,208,255],[154,26,204,255],[156,28,200,255],[158,30,196,255],[160,32,192,255],[162,34,188,255],[164,36,184,255],[166,38,180,255],[168,40,176,255],[170,42,172,255],[171,44,168,255],[173,46,164,255],[175,48,160,255],[177,50,156,255],[179,52,152,255],[181,54,148,255],[183,56,144,255],[185,58,140,255],[187,60,136,255],[189,62,132,255],[191,64,128,255],[193,66,124,255],[195,68,120,255],[197,70,116,255],[199,72,112,255],[201,74,108,255],[203,76,104,255],[205,78,100,255],[207,80,96,255],[209,82,92,255],[211,84,88,255],[213,86,84,255],[215,88,80,255],[217,90,76,255],[219,92,72,255],[221,94,68,255],[223,96,64,255],[225,98,60,255],[227,100,56,255],[229,102,52,255],[231,104,48,255],[233,106,44,255],[235,108,40,255],[237,110,36,255],[239,112,32,255],[241,114,28,255],[243,116,24,255],[245,118,20,255],[247,120,16,255],[249,122,12,255],[251,124,8,255],[253,126,4,255],[255,128,0,255],[255,130,4,255],[255,132,8,255],[255,134,12,255],[255,136,16,255],[255,138,20,255],[255,140,24,255],[255,142,28,255],[255,144,32,255],[255,146,36,255],[255,148,40,255],[255,150,44,255],[255,152,48,255],[255,154,52,255],[255,156,56,255],[255,158,60,255],[255,160,64,255],[255,162,68,255],[255,164,72,255],[255,166,76,255],[255,168,80,255],[255,170,85,255],[255,172,89,255],[255,174,93,255],[255,176,97,255],[255,178,101,255],[255,180,105,255],[255,182,109,255],[255,184,113,255],[255,186,117,255],[255,188,121,255],[255,190,125,255],[255,192,129,255],[255,194,133,255],[255,196,137,255],[255,198,141,255],[255,200,145,255],[255,202,149,255],[255,204,153,255],[255,206,157,255],[255,208,161,255],[255,210,165,255],[255,212,170,255],[255,214,174,255],[255,216,178,255],[255,218,182,255],[255,220,186,255],[255,222,190,255],[255,224,194,255],[255,226,198,255],[255,228,202,255],[255,230,206,255],[255,232,210,255],[255,234,214,255],[255,236,218,255],[255,238,222,255],[255,240,226,255],[255,242,230,255],[255,244,234,255],[255,246,238,255],[255,248,242,255],[255,250,246,255],[255,252,250,255],[255,255,255,255]]},hotMetalBlue:{name:"Hot Metal Blue",numColors:256,colors:[[0,0,0,255],[0,0,2,255],[0,0,4,255],[0,0,6,255],[0,0,8,255],[0,0,10,255],[0,0,12,255],[0,0,14,255],[0,0,16,255],[0,0,17,255],[0,0,19,255],[0,0,21,255],[0,0,23,255],[0,0,25,255],[0,0,27,255],[0,0,29,255],[0,0,31,255],[0,0,33,255],[0,0,35,255],[0,0,37,255],[0,0,39,255],[0,0,41,255],[0,0,43,255],[0,0,45,255],[0,0,47,255],[0,0,49,255],[0,0,51,255],[0,0,53,255],[0,0,55,255],[0,0,57,255],[0,0,59,255],[0,0,61,255],[0,0,63,255],[0,0,65,255],[0,0,67,255],[0,0,69,255],[0,0,71,255],[0,0,73,255],[0,0,75,255],[0,0,77,255],[0,0,79,255],[0,0,81,255],[0,0,83,255],[0,0,84,255],[0,0,86,255],[0,0,88,255],[0,0,90,255],[0,0,92,255],[0,0,94,255],[0,0,96,255],[0,0,98,255],[0,0,100,255],[0,0,102,255],[0,0,104,255],[0,0,106,255],[0,0,108,255],[0,0,110,255],[0,0,112,255],[0,0,114,255],[0,0,116,255],[0,0,117,255],[0,0,119,255],[0,0,121,255],[0,0,123,255],[0,0,125,255],[0,0,127,255],[0,0,129,255],[0,0,131,255],[0,0,133,255],[0,0,135,255],[0,0,137,255],[0,0,139,255],[0,0,141,255],[0,0,143,255],[0,0,145,255],[0,0,147,255],[0,0,149,255],[0,0,151,255],[0,0,153,255],[0,0,155,255],[0,0,157,255],[0,0,159,255],[0,0,161,255],[0,0,163,255],[0,0,165,255],[0,0,167,255],[3,0,169,255],[6,0,171,255],[9,0,173,255],[12,0,175,255],[15,0,177,255],[18,0,179,255],[21,0,181,255],[24,0,183,255],[26,0,184,255],[29,0,186,255],[32,0,188,255],[35,0,190,255],[38,0,192,255],[41,0,194,255],[44,0,196,255],[47,0,198,255],[50,0,200,255],[52,0,197,255],[55,0,194,255],[57,0,191,255],[59,0,188,255],[62,0,185,255],[64,0,182,255],[66,0,179,255],[69,0,176,255],[71,0,174,255],[74,0,171,255],[76,0,168,255],[78,0,165,255],[81,0,162,255],[83,0,159,255],[85,0,156,255],[88,0,153,255],[90,0,150,255],[93,2,144,255],[96,4,138,255],[99,6,132,255],[102,8,126,255],[105,9,121,255],[108,11,115,255],[111,13,109,255],[114,15,103,255],[116,17,97,255],[119,19,91,255],[122,21,85,255],[125,23,79,255],[128,24,74,255],[131,26,68,255],[134,28,62,255],[137,30,56,255],[140,32,50,255],[143,34,47,255],[146,36,44,255],[149,38,41,255],[152,40,38,255],[155,41,35,255],[158,43,32,255],[161,45,29,255],[164,47,26,255],[166,49,24,255],[169,51,21,255],[172,53,18,255],[175,55,15,255],[178,56,12,255],[181,58,9,255],[184,60,6,255],[187,62,3,255],[190,64,0,255],[194,66,0,255],[198,68,0,255],[201,70,0,255],[205,72,0,255],[209,73,0,255],[213,75,0,255],[217,77,0,255],[221,79,0,255],[224,81,0,255],[228,83,0,255],[232,85,0,255],[236,87,0,255],[240,88,0,255],[244,90,0,255],[247,92,0,255],[251,94,0,255],[255,96,0,255],[255,98,3,255],[255,100,6,255],[255,102,9,255],[255,104,12,255],[255,105,15,255],[255,107,18,255],[255,109,21,255],[255,111,24,255],[255,113,26,255],[255,115,29,255],[255,117,32,255],[255,119,35,255],[255,120,38,255],[255,122,41,255],[255,124,44,255],[255,126,47,255],[255,128,50,255],[255,130,53,255],[255,132,56,255],[255,134,59,255],[255,136,62,255],[255,137,65,255],[255,139,68,255],[255,141,71,255],[255,143,74,255],[255,145,76,255],[255,147,79,255],[255,149,82,255],[255,151,85,255],[255,152,88,255],[255,154,91,255],[255,156,94,255],[255,158,97,255],[255,160,100,255],[255,162,103,255],[255,164,106,255],[255,166,109,255],[255,168,112,255],[255,169,115,255],[255,171,118,255],[255,173,121,255],[255,175,124,255],[255,177,126,255],[255,179,129,255],[255,181,132,255],[255,183,135,255],[255,184,138,255],[255,186,141,255],[255,188,144,255],[255,190,147,255],[255,192,150,255],[255,194,153,255],[255,196,156,255],[255,198,159,255],[255,200,162,255],[255,201,165,255],[255,203,168,255],[255,205,171,255],[255,207,174,255],[255,209,176,255],[255,211,179,255],[255,213,182,255],[255,215,185,255],[255,216,188,255],[255,218,191,255],[255,220,194,255],[255,222,197,255],[255,224,200,255],[255,226,203,255],[255,228,206,255],[255,229,210,255],[255,231,213,255],[255,233,216,255],[255,235,219,255],[255,237,223,255],[255,239,226,255],[255,240,229,255],[255,242,232,255],[255,244,236,255],[255,246,239,255],[255,248,242,255],[255,250,245,255],[255,251,249,255],[255,253,252,255],[255,255,255,255]]},pet20Step:{name:"PET 20 Step",numColors:256,colors:[[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255]]},gray:{name:"Gray",numColors:256,gamma:1,segmentedData:{red:[[0,0,0],[1,1,1]],green:[[0,0,0],[1,1,1]],blue:[[0,0,0],[1,1,1]]}},jet:{name:"Jet",numColors:256,gamma:1,segmentedData:{red:[[0,0,0],[.35,0,0],[.66,1,1],[.89,1,1],[1,.5,.5]],green:[[0,0,0],[.125,0,0],[.375,1,1],[.64,1,1],[.91,0,0],[1,0,0]],blue:[[0,.5,.5],[.11,1,1],[.34,1,1],[.65,0,0],[1,0,0]]}},hsv:{name:"HSV",numColors:256,gamma:1,segmentedData:{red:[[0,1,1],[.15873,1,1],[.174603,.96875,.96875],[.333333,.03125,.03125],[.349206,0,0],[.666667,0,0],[.68254,.03125,.03125],[.84127,.96875,.96875],[.857143,1,1],[1,1,1]],green:[[0,0,0],[.15873,.9375,.9375],[.174603,1,1],[.507937,1,1],[.666667,.0625,.0625],[.68254,0,0],[1,0,0]],blue:[[0,0,0],[.333333,0,0],[.349206,.0625,.0625],[.507937,1,1],[.84127,1,1],[.857143,.9375,.9375],[1,.09375,.09375]]}},hot:{name:"Hot",numColors:256,gamma:1,segmentedData:{red:[[0,.0416,.0416],[.365079,1,1],[1,1,1]],green:[[0,0,0],[.365079,0,0],[.746032,1,1],[1,1,1]],blue:[[0,0,0],[.746032,0,0],[1,1,1]]}},cool:{name:"Cool",numColors:256,gamma:1,segmentedData:{red:[[0,0,0],[1,1,1]],green:[[0,1,1],[1,0,0]],blue:[[0,1,1],[1,1,1]]}},spring:{name:"Spring",numColors:256,gamma:1,segmentedData:{red:[[0,1,1],[1,1,1]],green:[[0,0,0],[1,1,1]],blue:[[0,1,1],[1,0,0]]}},summer:{name:"Summer",numColors:256,gamma:1,segmentedData:{red:[[0,0,0],[1,1,1]],green:[[0,.5,.5],[1,1,1]],blue:[[0,.4,.4],[1,.4,.4]]}},autumn:{name:"Autumn",numColors:256,gamma:1,segmentedData:{red:[[0,1,1],[1,1,1]],green:[[0,0,0],[1,1,1]],blue:[[0,0,0],[1,0,0]]}},winter:{name:"Winter",numColors:256,gamma:1,segmentedData:{red:[[0,0,0],[1,0,0]],green:[[0,0,0],[1,1,1]],blue:[[0,1,1],[1,.5,.5]]}},bone:{name:"Bone",numColors:256,gamma:1,segmentedData:{red:[[0,0,0],[.746032,.652778,.652778],[1,1,1]],green:[[0,0,0],[.365079,.319444,.319444],[.746032,.777778,.777778],[1,1,1]],blue:[[0,0,0],[.365079,.444444,.444444],[1,1,1]]}},copper:{name:"Copper",numColors:256,gamma:1,segmentedData:{red:[[0,0,0],[.809524,1,1],[1,1,1]],green:[[0,0,0],[1,.7812,.7812]],blue:[[0,0,0],[1,.4975,.4975]]}},spectral:{name:"Spectral",numColors:256,gamma:1,segmentedData:{red:[[0,0,0],[.05,.4667,.4667],[.1,.5333,.5333],[.15,0,0],[.2,0,0],[.25,0,0],[.3,0,0],[.35,0,0],[.4,0,0],[.45,0,0],[.5,0,0],[.55,0,0],[.6,0,0],[.65,.7333,.7333],[.7,.9333,.9333],[.75,1,1],[.8,1,1],[.85,1,1],[.9,.8667,.8667],[.95,.8,.8],[1,.8,.8]],green:[[0,0,0],[.05,0,0],[.1,0,0],[.15,0,0],[.2,0,0],[.25,.4667,.4667],[.3,.6,.6],[.35,.6667,.6667],[.4,.6667,.6667],[.45,.6,.6],[.5,.7333,.7333],[.55,.8667,.8667],[.6,1,1],[.65,1,1],[.7,.9333,.9333],[.75,.8,.8],[.8,.6,.6],[.85,0,0],[.9,0,0],[.95,0,0],[1,.8,.8]],blue:[[0,0,0],[.05,.5333,.5333],[.1,.6,.6],[.15,.6667,.6667],[.2,.8667,.8667],[.25,.8667,.8667],[.3,.8667,.8667],[.35,.6667,.6667],[.4,.5333,.5333],[.45,0,0],[.5,0,0],[.55,0,0],[.6,0,0],[.65,0,0],[.7,0,0],[.75,0,0],[.8,0,0],[.85,0,0],[.9,0,0],[.95,0,0],[1,.8,.8]]}},coolwarm:{name:"CoolWarm",numColors:256,gamma:1,segmentedData:{red:[[0,.2298057,.2298057],[.03125,.26623388,.26623388],[.0625,.30386891,.30386891],[.09375,.342804478,.342804478],[.125,.38301334,.38301334],[.15625,.424369608,.424369608],[.1875,.46666708,.46666708],[.21875,.509635204,.509635204],[.25,.552953156,.552953156],[.28125,.596262162,.596262162],[.3125,.639176211,.639176211],[.34375,.681291281,.681291281],[.375,.722193294,.722193294],[.40625,.761464949,.761464949],[.4375,.798691636,.798691636],[.46875,.833466556,.833466556],[.5,.865395197,.865395197],[.53125,.897787179,.897787179],[.5625,.924127593,.924127593],[.59375,.944468518,.944468518],[.625,.958852946,.958852946],[.65625,.96732803,.96732803],[.6875,.969954137,.969954137],[.71875,.966811177,.966811177],[.75,.958003065,.958003065],[.78125,.943660866,.943660866],[.8125,.923944917,.923944917],[.84375,.89904617,.89904617],[.875,.869186849,.869186849],[.90625,.834620542,.834620542],[.9375,.795631745,.795631745],[.96875,.752534934,.752534934],[1,.705673158,.705673158]],green:[[0,.298717966,.298717966],[.03125,.353094838,.353094838],[.0625,.406535296,.406535296],[.09375,.458757618,.458757618],[.125,.50941904,.50941904],[.15625,.558148092,.558148092],[.1875,.604562568,.604562568],[.21875,.648280772,.648280772],[.25,.688929332,.688929332],[.28125,.726149107,.726149107],[.3125,.759599947,.759599947],[.34375,.788964712,.788964712],[.375,.813952739,.813952739],[.40625,.834302879,.834302879],[.4375,.849786142,.849786142],[.46875,.860207984,.860207984],[.5,.86541021,.86541021],[.53125,.848937047,.848937047],[.5625,.827384882,.827384882],[.59375,.800927443,.800927443],[.625,.769767752,.769767752],[.65625,.734132809,.734132809],[.6875,.694266682,.694266682],[.71875,.650421156,.650421156],[.75,.602842431,.602842431],[.78125,.551750968,.551750968],[.8125,.49730856,.49730856],[.84375,.439559467,.439559467],[.875,.378313092,.378313092],[.90625,.312874446,.312874446],[.9375,.24128379,.24128379],[.96875,.157246067,.157246067],[1,.01555616,.01555616]],blue:[[0,.753683153,.753683153],[.03125,.801466763,.801466763],[.0625,.84495867,.84495867],[.09375,.883725899,.883725899],[.125,.917387822,.917387822],[.15625,.945619588,.945619588],[.1875,.968154911,.968154911],[.21875,.98478814,.98478814],[.25,.995375608,.995375608],[.28125,.999836203,.999836203],[.3125,.998151185,.998151185],[.34375,.990363227,.990363227],[.375,.976574709,.976574709],[.40625,.956945269,.956945269],[.4375,.931688648,.931688648],[.46875,.901068838,.901068838],[.5,.865395561,.865395561],[.53125,.820880546,.820880546],[.5625,.774508472,.774508472],[.59375,.726736146,.726736146],[.625,.678007945,.678007945],[.65625,.628751763,.628751763],[.6875,.579375448,.579375448],[.71875,.530263762,.530263762],[.75,.481775914,.481775914],[.78125,.434243684,.434243684],[.8125,.387970225,.387970225],[.84375,.343229596,.343229596],[.875,.300267182,.300267182],[.90625,.259301199,.259301199],[.9375,.220525627,.220525627],[.96875,.184115123,.184115123],[1,.150232812,.150232812]]}},blues:{name:"Blues",numColors:256,gamma:1,segmentedData:{red:[[0,.9686274528503418,.9686274528503418],[.125,.8705882430076599,.8705882430076599],[.25,.7764706015586853,.7764706015586853],[.375,.6196078658103943,.6196078658103943],[.5,.41960784792900085,.41960784792900085],[.625,.25882354378700256,.25882354378700256],[.75,.12941177189350128,.12941177189350128],[.875,.0313725508749485,.0313725508749485],[1,.0313725508749485,.0313725508749485]],green:[[0,.9843137264251709,.9843137264251709],[.125,.9215686321258545,.9215686321258545],[.25,.8588235378265381,.8588235378265381],[.375,.7921568751335144,.7921568751335144],[.5,.6823529601097107,.6823529601097107],[.625,.572549045085907,.572549045085907],[.75,.4431372582912445,.4431372582912445],[.875,.3176470696926117,.3176470696926117],[1,.1882352977991104,.1882352977991104]],blue:[[0,1,1],[.125,.9686274528503418,.9686274528503418],[.25,.9372549057006836,.9372549057006836],[.375,.8823529481887817,.8823529481887817],[.5,.8392156958580017,.8392156958580017],[.625,.7764706015586853,.7764706015586853],[.75,.7098039388656616,.7098039388656616],[.875,.6117647290229797,.6117647290229797],[1,.41960784792900085,.41960784792900085]]}}};function B(e,t){for(var r=0,n=e.length-1;r<=n;){var a=r+Math.floor((n-r)/2),i=e[a];if(i===t)return a;t<i?n=a-1:r=a+1}return r}function k(e,t,r){var n,a=[],i=[],o=[],l=[];for(r=null===r?1:r,n=0;n<t.length;n++){var s=t[n];a.push((e-1)*s[0]),i.push(s[1]),o.push(s[1])}var u=function(e,t,r){for(var n=(t-e)/((r=null===r?100:r)-1),a=[];0<r--;)a.push(e),e+=n;return a[a.length-1]=t,a}(0,1,e);for(n=0;n<e;n++)u[n]=(e-1)*Math.pow(u[n],r);var d=function(e,t){var r,n=[],a=t.length;for(e.sort(function(e,t){return e-t}),r=0;r<a;r++)n[r]=B(e,t[r]);return n}(a,u);for(n=1;n<e-1;n++){var m=d[n],c=(u[n]-a[m-1])/(a[m]-a[m-1]),f=i[m]-o[m-1];l[n]=c*f+o[m-1]}return l[0]=o[0],l[e-1]=i[t.length-1],l}function F(e,t){var n=N[e];return n||(n=N[e]=t||{name:"",colors:[]}),!n.colors&&n.segmentedData&&(n.colors=function(e,t,r){var n,a=[];r=null===r?1:r;var i=k(t=null===t?256:t,e.red,r),o=k(t,e.green,r),l=k(t,e.blue,r);for(n=0;n<t;n++){var s=[Math.round(255*i[n]),Math.round(255*o[n]),Math.round(255*l[n]),255];a.push(s)}return a}(n.segmentedData,n.numColors,n.gamma)),{getId:function(){return e},getColorSchemeName:function(){return n.name},setColorSchemeName:function(e){n.name=e},getNumberOfColors:function(){return n.colors.length},setNumberOfColors:function(e){for(;n.colors.length<e;)n.colors.push(U);n.colors.length=e},getColor:function(e){return this.isValidIndex(e)?n.colors[e]:U},getColorRepeating:function(e){var t=n.colors.length;return e=t?e%t:0,this.getColor(e)},setColor:function(e,t){this.isValidIndex(e)&&(n.colors[e]=t)},addColor:function(e){n.colors.push(e)},insertColor:function(e,t){this.isValidIndex(e)&&n.colors.splice(e,1,t)},removeColor:function(e){this.isValidIndex(e)&&n.colors.splice(e,1)},clearColors:function(){n.colors=[]},buildLookupTable:function(e){if(e){var t=n.colors.length;e.setNumberOfTableValues(t);for(var r=0;r<t;r++)e.setTableValue(r,n.colors[r])}},createLookupTable:function(){var e=new V;return this.buildLookupTable(e),e},isValidIndex:function(e){return 0<=e&&e<n.colors.length}}}var G={getColormap:F,getColormapsList:function(){var r=[];return Object.keys(N).forEach(function(e){if(N.hasOwnProperty(e)){var t=N[e];r.push({id:e,name:t.name})}}),r.sort(function(e,t){var r=e.name.toLowerCase(),n=t.name.toLowerCase();return r===n?0:r<n?-1:1}),r},LookupTable:V};function z(e,t){if(e.color&&!e.falseColor)throw new Error("Color transforms are not implemented yet");var r,n,a=e.minPixelValue,i=0,o=0,l=e.width*e.height,s=e.origPixelData||e.getPixelData(),u=new Uint8Array(4*l);if(e.color=!0,e.falseColor=!0,e.origPixelData=s,t instanceof G.LookupTable)for(t.build();o<l;)r=s[o++],n=t.mapValue(r),u[i++]=n[0],u[i++]=n[1],u[i++]=n[2],u[i++]=n[3];else if(a<0)for(;o<l;)r=s[o++],u[i++]=t[r+-a][0],u[i++]=t[r+-a][1],u[i++]=t[r+-a][2],u[i++]=t[r+-a][3];else for(;o<l;)r=s[o++],u[i++]=t[r][0],u[i++]=t[r][1],u[i++]=t[r][2],u[i++]=t[r][3];e.rgba=!0,e.cachedLut=void 0,e.render=void 0,e.slope=1,e.intercept=0,e.minPixelValue=0,e.maxPixelValue=255,e.windowWidth=255,e.windowCenter=128,e.getPixelData=function(){return u}}function q(e){return!(!e.restore||"function"!=typeof e.restore)&&(e.restore(),!0)}function W(e,t){if(e.color&&!e.falseColor)throw new Error("Color transforms are not implemented yet");var r;(r=t)&&"string"==typeof r&&(r=F(r));var n=(t=r).getId();if(e.colormapId===n)return!1;if(q(e),n){var a=e.minPixelValue||0,i=e.maxPixelValue||255;e.restore=function(t){if(t.restore)return t.restore;var r=t.color,n=t.rgba,a=t.cachedLut,i=t.slope,o=t.windowWidth,l=t.windowCenter,s=t.minPixelValue,u=t.maxPixelValue;return function(){if(t.color=r,t.rgba=n,t.cachedLut=a,t.slope=i,t.windowWidth=o,t.windowCenter=l,t.minPixelValue=s,t.maxPixelValue=u,t.origPixelData){var e=t.origPixelData;t.getPixelData=function(){return e}}t.origPixelData=void 0,t.colormapId=void 0,t.falseColor=void 0}}(e);var o=t.createLookupTable();o.setTableRange(a,i),z(e,o);var l=function(e){for(var t,r=Number.MAX_VALUE,n=Number.MIN_VALUE,a=e.length,i=0;i<a;i++)r=r<(t=e[i])?r:t,n=t<n?n:t;return{minPixelValue:r,maxPixelValue:n}}(e.getPixelData());e.minPixelValue=l.minPixelValue,e.maxPixelValue=l.maxPixelValue,e.windowWidth=255,e.windowCenter=128,e.colormapId=n}return!0}function j(e,t){return W(C(e).image,t)}function H(e,t){var r=C(e);return!1===r.data.hasOwnProperty(t)&&(r.data[t]={}),r.data[t]}function X(e,t){delete C(e).data[t]}var Y=1073741824,K=0,Z={},$=[];function J(){if(!(K<=Y)){for($.sort(function(e,t){return e.timeStamp>t.timeStamp?-1:e.timeStamp<t.timeStamp?1:0});Y<K;){var e=$[$.length-1].imageId;te(e),R(o,T.IMAGE_CACHE_PROMISE_REMOVED,{imageId:e})}var t=re();R(o,T.IMAGE_CACHE_FULL,t)}}function Q(t,e){if(void 0===t)throw new Error("putImageLoadObject: imageId must not be undefined");if(void 0===e.promise)throw new Error("putImageLoadObject: imageLoadObject.promise must not be undefined");if(!0===Z.hasOwnProperty(t))throw new Error("putImageLoadObject: imageId already in cache");if(e.cancelFn&&"function"!=typeof e.cancelFn)throw new Error("putImageLoadObject: imageLoadObject.cancelFn must be a function");var r={loaded:!1,imageId:t,sharedCacheKey:void 0,imageLoadObject:e,timeStamp:Date.now(),sizeInBytes:0};Z[t]=r,$.push(r),e.promise.then(function(e){if(-1!==$.indexOf(r)){if(r.loaded=!0,void 0===(r.image=e).sizeInBytes)throw new Error("putImageLoadObject: image.sizeInBytes must not be undefined");if(void 0===e.sizeInBytes.toFixed)throw new Error("putImageLoadObject: image.sizeInBytes is not a number");r.sizeInBytes=e.sizeInBytes,K+=r.sizeInBytes;var t={action:"addImage",image:r};R(o,T.IMAGE_CACHE_CHANGED,t),r.sharedCacheKey=e.sharedCacheKey,J()}},function(){var e=Z[t];$.splice($.indexOf(e),1),delete Z[t]})}function ee(e){if(void 0===e)throw new Error("getImageLoadObject: imageId must not be undefined");var t=Z[e];if(void 0!==t)return t.timeStamp=Date.now(),t.imageLoadObject}function te(e){if(void 0===e)throw new Error("removeImageLoadObject: imageId must not be undefined");var t=Z[e];if(void 0===t)throw new Error("removeImageLoadObject: imageId was not present in imageCache");$.splice($.indexOf(t),1),K-=t.sizeInBytes;var r,n={action:"deleteImage",image:t};R(o,T.IMAGE_CACHE_CHANGED,n),(r=t.imageLoadObject).promise.then(function(){r.decache&&r.decache()},function(){r.decache&&r.decache()}),delete Z[e]}function re(){return{maximumSizeInBytes:Y,cacheSizeInBytes:K,numberOfImagesCached:$.length}}var ne,ae={imageCache:Z,cachedImages:$,setMaximumSizeBytes:function(e){if(void 0===e)throw new Error("setMaximumSizeBytes: parameter numBytes must not be undefined");if(void 0===e.toFixed)throw new Error("setMaximumSizeBytes: parameter numBytes must be a number");Y=e,R(o,T.IMAGE_CACHE_MAXIMUM_SIZE_CHANGED),J()},putImageLoadObject:Q,getImageLoadObject:ee,removeImageLoadObject:te,getCacheInfo:re,purgeCache:function(){for(;0<$.length;)te($[0].imageId)},changeImageIdCacheSize:function(e,n){var a=Z[e];a&&a.imageLoadObject.promise.then(function(e){var t=n-e.sizeInBytes;e.sizeInBytes=n,a.sizeInBytes=n,K+=t;var r={action:"changeImageSize",image:e};R(o,T.IMAGE_CACHE_CHANGED,r)})}},ie={};function oe(r,e){var t=r.indexOf(":"),n=r.substring(0,t),a=ie[n];if(null==a){if(void 0!==ne)return ne(r);throw new Error("loadImageFromImageLoader: no image loader for imageId")}var i=a(r,e);return i.promise.then(function(e){R(o,T.IMAGE_LOADED,{image:e})},function(e){var t={imageId:r,error:e};R(o,T.IMAGE_LOAD_FAILED,t)}),i}function le(e,t){if(void 0===e)throw new Error("loadImage: parameter imageId must not be undefined");var r=ee(e);return void 0!==r?r.promise:oe(e,t).promise}function se(e,t){if(void 0===e)throw new Error("loadAndCacheImage: parameter imageId must not be undefined");var r=ee(e);return void 0!==r||Q(e,r=oe(e,t)),r.promise}function ue(e,t){ie[e]=t}function de(e){var t=ne;return ne=e,t}function me(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return ce(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return ce(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,a=function(){};return{s:a,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o=!0,l=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return o=e.done,e},e:function(e){l=!0,i=e},f:function(){try{o||null==r.return||r.return()}finally{if(l)throw i}}}}function ce(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function fe(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function ge(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var ve=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),ge(this,"requestPool",void 0),ge(this,"awake",void 0),ge(this,"numRequests",void 0),ge(this,"maxNumRequests",void 0),ge(this,"grabDelay",void 0),ge(this,"timeoutHandle",void 0),this.requestPool={interaction:{0:[]},thumbnail:{0:[]},prefetch:{0:[]}},this.awake=!1,this.grabDelay=5,this.numRequests={interaction:0,thumbnail:0,prefetch:0},this.maxNumRequests={interaction:6,thumbnail:6,prefetch:5}}var t,r,n;return t=e,(r=[{key:"destroy",value:function(){this.timeoutHandle&&window.clearTimeout(this.timeoutHandle)}},{key:"addRequest",value:function(e,t,r){var n=3<arguments.length&&void 0!==arguments[3]?arguments[3]:0,a=4<arguments.length&&void 0!==arguments[4]&&arguments[4],i={requestFn:e,type:t,additionalDetails:r};void 0===this.requestPool[t][n]&&(this.requestPool[t][n]=[]),a?this.requestPool[t][n].unshift(i):this.requestPool[t][n].push(i),this.awake||(this.awake=!0,this.startGrabbing())}},{key:"filterRequests",value:function(r){var n=this;Object.keys(this.requestPool).forEach(function(e){var t=n.requestPool[e];Object.keys(t).forEach(function(e){t[e]=t[e].filter(function(e){return r(e)})})})}},{key:"clearRequestStack",value:function(e){if(!this.requestPool[e])throw new Error("No category for the type ".concat(e," found"));this.requestPool[e]={0:[]}}},{key:"sendRequest",value:function(e){var t=this,r=e.requestFn,n=e.type;this.numRequests[n]++,this.awake=!0,r().finally(function(){t.numRequests[n]--,t.startAgain()})}},{key:"startGrabbing",value:function(){for(var e=this.maxNumRequests.interaction+this.maxNumRequests.thumbnail+this.maxNumRequests.prefetch-(this.numRequests.interaction+this.numRequests.thumbnail+this.numRequests.prefetch),t=0;t<e;t++){var r=this.getNextRequest();if(!1===r)break;r&&this.sendRequest(r)}}},{key:"startAgain",value:function(){var e=this;this.awake&&(this.grabDelay?this.timeoutHandle=window.setTimeout(function(){e.startGrabbing()},this.grabDelay):this.startGrabbing())}},{key:"getSortedPriorityGroups",value:function(t){var r=this;return Object.keys(this.requestPool[t]).map(Number).filter(function(e){return r.requestPool[t][e].length}).sort()}},{key:"getNextRequest",value:function(){var e,t=this.getSortedPriorityGroups("interaction"),r=me(t);try{for(r.s();!(e=r.n()).done;){var n=e.value;if(this.requestPool.interaction[n].length&&this.numRequests.interaction<this.maxNumRequests.interaction)return this.requestPool.interaction[n].shift()}}catch(e){r.e(e)}finally{r.f()}var a,i=this.getSortedPriorityGroups("thumbnail"),o=me(i);try{for(o.s();!(a=o.n()).done;){var l=a.value;if(this.requestPool.thumbnail[l].length&&this.numRequests.thumbnail<this.maxNumRequests.thumbnail)return this.requestPool.thumbnail[l].shift()}}catch(e){o.e(e)}finally{o.f()}var s,u=this.getSortedPriorityGroups("prefetch"),d=me(u);try{for(d.s();!(s=d.n()).done;){var m=s.value;if(this.requestPool.prefetch[m].length&&this.numRequests.prefetch<this.maxNumRequests.prefetch)return this.requestPool.prefetch[m].shift()}}catch(e){d.e(e)}finally{d.f()}return t.length||i.length||u.length||(this.awake=!1),!1}},{key:"getRequestPool",value:function(){return this.requestPool}}])&&fe(t.prototype,r),n&&fe(t,n),e}(),he=new ve;he.maxNumRequests={interaction:1e3,thumbnail:1e3,prefetch:1e3},he.grabDelay=0;var pe=he,we=new ve;we.maxNumRequests={interaction:20,thumbnail:20,prefetch:20},we.grabDelay=0;var be=we;function ye(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}var xe=function(){function t(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),this.reset()}var e,r,n;return e=t,(r=[{key:"reset",value:function(){this.m=[1,0,0,1,0,0]}},{key:"clone",value:function(){var e=new t;return e.m[0]=this.m[0],e.m[1]=this.m[1],e.m[2]=this.m[2],e.m[3]=this.m[3],e.m[4]=this.m[4],e.m[5]=this.m[5],e}},{key:"multiply",value:function(e){var t=this.m[0]*e.m[0]+this.m[2]*e.m[1],r=this.m[1]*e.m[0]+this.m[3]*e.m[1],n=this.m[0]*e.m[2]+this.m[2]*e.m[3],a=this.m[1]*e.m[2]+this.m[3]*e.m[3],i=this.m[0]*e.m[4]+this.m[2]*e.m[5]+this.m[4],o=this.m[1]*e.m[4]+this.m[3]*e.m[5]+this.m[5];this.m[0]=t,this.m[1]=r,this.m[2]=n,this.m[3]=a,this.m[4]=i,this.m[5]=o}},{key:"invert",value:function(){var e=1/(this.m[0]*this.m[3]-this.m[1]*this.m[2]),t=this.m[3]*e,r=-this.m[1]*e,n=-this.m[2]*e,a=this.m[0]*e,i=e*(this.m[2]*this.m[5]-this.m[3]*this.m[4]),o=e*