-
-
+
+
-
-
+
);
},
actions: [
- // temp: swap button types until colors are updated
- { id: 'cancel', text: 'Cancel', type: 'primary' },
- { id: 'save', text: 'Save', type: 'secondary' },
+ { id: 'cancel', text: 'Cancel', type: ButtonEnums.type.secondary },
+ { id: 'save', text: 'Save', type: ButtonEnums.type.primary },
],
onSubmit: onSubmitHandler,
},
diff --git a/extensions/tmtv/src/commandsModule.js b/extensions/tmtv/src/commandsModule.js
index b633d231cc..73409ee411 100644
--- a/extensions/tmtv/src/commandsModule.js
+++ b/extensions/tmtv/src/commandsModule.js
@@ -14,11 +14,7 @@ const metadataProvider = classes.MetadataProvider;
const RECTANGLE_ROI_THRESHOLD_MANUAL = 'RectangleROIStartEndThreshold';
const LABELMAP = csTools.Enums.SegmentationRepresentations.Labelmap;
-const commandsModule = ({
- servicesManager,
- commandsManager,
- extensionManager,
-}) => {
+const commandsModule = ({ servicesManager, commandsManager, extensionManager }) => {
const {
viewportGridService,
uiNotificationService,
@@ -36,8 +32,8 @@ const commandsModule = ({
const { getEnabledElement } = utilityModule.exports;
function _getActiveViewportsEnabledElement() {
- const { activeViewportIndex } = viewportGridService.getState();
- const { element } = getEnabledElement(activeViewportIndex) || {};
+ const { activeViewportId } = viewportGridService.getState();
+ const { element } = getEnabledElement(activeViewportId) || {};
const enabledElement = cs.getEnabledElement(element);
return enabledElement;
}
@@ -45,8 +41,8 @@ const commandsModule = ({
function _getMatchedViewportsToolGroupIds() {
const { viewportMatchDetails } = hangingProtocolService.getMatchDetails();
const toolGroupIds = [];
- viewportMatchDetails.forEach((value, key) => {
- const { viewportOptions } = value;
+ viewportMatchDetails.forEach(viewport => {
+ const { viewportOptions } = viewport;
const { toolGroupId } = viewportOptions;
if (toolGroupIds.indexOf(toolGroupId) === -1) {
toolGroupIds.push(toolGroupId);
@@ -64,7 +60,7 @@ const commandsModule = ({
// corrected PT vs the non-attenuation correct PT)
let ptDisplaySet = null;
- for (const [viewportIndex, viewportDetails] of viewportMatchDetails) {
+ for (const [viewportId, viewportDetails] of viewportMatchDetails) {
const { displaySetsInfo } = viewportDetails;
const displaySets = displaySetsInfo.map(({ displaySetInstanceUID }) =>
displaySetService.getDisplaySetByUID(displaySetInstanceUID)
@@ -74,9 +70,7 @@ const commandsModule = ({
continue;
}
- ptDisplaySet = displaySets.find(
- displaySet => displaySet.Modality === 'PT'
- );
+ ptDisplaySet = displaySets.find(displaySet => displaySet.Modality === 'PT');
if (ptDisplaySet) {
break;
@@ -102,17 +96,13 @@ const commandsModule = ({
PatientWeight: instance.PatientWeight,
RadiopharmaceuticalInformationSequence: {
RadionuclideTotalDose:
- instance.RadiopharmaceuticalInformationSequence[0]
- .RadionuclideTotalDose,
+ instance.RadiopharmaceuticalInformationSequence[0].RadionuclideTotalDose,
RadionuclideHalfLife:
- instance.RadiopharmaceuticalInformationSequence[0]
- .RadionuclideHalfLife,
+ instance.RadiopharmaceuticalInformationSequence[0].RadionuclideHalfLife,
RadiopharmaceuticalStartTime:
- instance.RadiopharmaceuticalInformationSequence[0]
- .RadiopharmaceuticalStartTime,
+ instance.RadiopharmaceuticalInformationSequence[0].RadiopharmaceuticalStartTime,
RadiopharmaceuticalStartDateTime:
- instance.RadiopharmaceuticalInformationSequence[0]
- .RadiopharmaceuticalStartDateTime,
+ instance.RadiopharmaceuticalInformationSequence[0].RadiopharmaceuticalStartDateTime,
},
};
@@ -137,7 +127,6 @@ const commandsModule = ({
// Add Segmentation to all toolGroupIds in the viewer
const toolGroupIds = _getMatchedViewportsToolGroupIds();
-
const representationType = LABELMAP;
for (const toolGroupId of toolGroupIds) {
@@ -149,10 +138,7 @@ const commandsModule = ({
representationType
);
- segmentationService.setActiveSegmentationForToolGroup(
- segmentationId,
- toolGroupId
- );
+ segmentationService.setActiveSegmentationForToolGroup(segmentationId, toolGroupId);
}
return segmentationId;
@@ -161,21 +147,14 @@ const commandsModule = ({
const toolGroupIds = _getMatchedViewportsToolGroupIds();
toolGroupIds.forEach(toolGroupId => {
- segmentationService.setActiveSegmentationForToolGroup(
- segmentationId,
- toolGroupId
- );
+ segmentationService.setActiveSegmentationForToolGroup(segmentationId, toolGroupId);
});
},
thresholdSegmentationByRectangleROITool: ({ segmentationId, config }) => {
- const segmentation = csTools.segmentation.state.getSegmentation(
- segmentationId
- );
+ const segmentation = csTools.segmentation.state.getSegmentation(segmentationId);
const { representationData } = segmentation;
- const {
- displaySetMatchDetails: matchDetails,
- } = hangingProtocolService.getMatchDetails();
+ const { displaySetMatchDetails: matchDetails } = hangingProtocolService.getMatchDetails();
const volumeLoaderScheme = 'cornerstoneStreamingImageVolume'; // Loader id which defines which volume loader to use
const ctDisplaySet = matchDetails.get('ctDisplaySet');
@@ -249,9 +228,7 @@ const commandsModule = ({
getLesionStats: ({ labelmap, segmentIndex = 1 }) => {
const { scalarData, spacing } = labelmap;
- const { scalarData: referencedScalarData } = cs.cache.getVolume(
- labelmap.referencedVolumeId
- );
+ const { scalarData: referencedScalarData } = cs.cache.getVolume(labelmap.referencedVolumeId);
let segmentationMax = -Infinity;
let segmentationMin = Infinity;
@@ -293,9 +270,7 @@ const commandsModule = ({
};
},
calculateTMTV: ({ segmentations }) => {
- const labelmaps = segmentations.map(s =>
- segmentationService.getLabelmapVolume(s.id)
- );
+ const labelmaps = segmentations.map(s => segmentationService.getLabelmapVolume(s.id));
if (!labelmaps.length) {
return;
@@ -318,17 +293,14 @@ const commandsModule = ({
createAndDownloadTMTVReport(segReport, additionalReportRows);
},
getTotalLesionGlycolysis: ({ segmentations }) => {
- const labelmapVolumes = segmentations.map(s =>
- segmentationService.getLabelmapVolume(s.id)
- );
+ const labelmapVolumes = segmentations.map(s => segmentationService.getLabelmapVolume(s.id));
let mergedLabelmap;
// merge labelmap will through an error if labels maps are not the same size
// or same direction or ....
try {
- mergedLabelmap = csTools.utilities.segmentation.createMergedLabelmapForIndex(
- labelmapVolumes
- );
+ mergedLabelmap =
+ csTools.utilities.segmentation.createMergedLabelmapForIndex(labelmapVolumes);
} catch (e) {
console.error('commandsModule::getTotalLesionGlycolysis', e);
return;
@@ -338,9 +310,7 @@ const commandsModule = ({
const { referencedVolumeId, spacing } = labelmapVolumes[0];
if (!referencedVolumeId) {
- console.error(
- 'commandsModule::getTotalLesionGlycolysis:No referencedVolumeId found'
- );
+ console.error('commandsModule::getTotalLesionGlycolysis:No referencedVolumeId found');
}
const ptVolume = cs.cache.getVolume(referencedVolumeId);
@@ -366,14 +336,7 @@ const commandsModule = ({
const averageSuv = suv / totalLesionVoxelCount;
// total Lesion Glycolysis [suv * ml]
- return (
- averageSuv *
- totalLesionVoxelCount *
- spacing[0] *
- spacing[1] *
- spacing[2] *
- 1e-3
- );
+ return averageSuv * totalLesionVoxelCount * spacing[0] * spacing[1] * spacing[2] * 1e-3;
},
setStartSliceForROIThresholdTool: () => {
const { viewport } = _getActiveViewportsEnabledElement();
@@ -489,9 +452,7 @@ const commandsModule = ({
const referencedVolumeId = labelmapVolume.referencedVolumeId;
segReport.referencedVolumeId = referencedVolumeId;
- const referencedVolume = segmentationService.getLabelmapVolume(
- referencedVolumeId
- );
+ const referencedVolume = segmentationService.getLabelmapVolume(referencedVolumeId);
if (!referencedVolume) {
report[id] = segReport;
@@ -504,10 +465,7 @@ const commandsModule = ({
}
const firstImageId = referencedVolume.imageIds[0];
- const instance = OHIF.classes.MetadataProvider.get(
- 'instance',
- firstImageId
- );
+ const instance = OHIF.classes.MetadataProvider.get('instance', firstImageId);
if (!instance) {
report[id] = segReport;
@@ -545,20 +503,22 @@ const commandsModule = ({
let viewports = [];
fusionViewportIds.forEach(viewportId => {
- const viewportInfo = cornerstoneViewportService.getViewportInfo(
- viewportId
- );
-
- const viewportIndex = viewportInfo.getViewportIndex();
commandsManager.runCommand('setViewportColormap', {
- viewportIndex,
+ viewportId,
displaySetInstanceUID: ptDisplaySet.displaySetInstanceUID,
- colormap,
+ colormap: {
+ name: colormap,
+ // TODO: This opacity mapping matches that in hpViewports, but
+ // ideally making this editable in a side panel would be useful
+ opacity: [
+ { value: 0, opacity: 0 },
+ { value: 0.1, opacity: 0.9 },
+ { value: 1, opacity: 0.95 },
+ ],
+ },
});
- viewports.push(
- cornerstoneViewportService.getCornerstoneViewport(viewportId)
- );
+ viewports.push(cornerstoneViewportService.getCornerstoneViewport(viewportId));
});
viewports.forEach(viewport => {
diff --git a/extensions/tmtv/src/getHangingProtocolModule.js b/extensions/tmtv/src/getHangingProtocolModule.js
index 45720c10d5..e123a79176 100644
--- a/extensions/tmtv/src/getHangingProtocolModule.js
+++ b/extensions/tmtv/src/getHangingProtocolModule.js
@@ -217,7 +217,6 @@ const stage4 = {
const ptCT = {
id: '@ohif/extension-tmtv.hangingProtocolModule.ptCT',
locked: true,
- hasUpdatedPriorsInformation: false,
name: 'Default',
createdDate: '2021-02-23T19:22:08.894Z',
modifiedDate: '2022-10-04T19:22:08.894Z',
diff --git a/extensions/tmtv/src/getPanelModule.tsx b/extensions/tmtv/src/getPanelModule.tsx
index 94e221fc93..0449ebe48b 100644
--- a/extensions/tmtv/src/getPanelModule.tsx
+++ b/extensions/tmtv/src/getPanelModule.tsx
@@ -6,11 +6,7 @@ import { PanelPetSUV, PanelROIThresholdSegmentation } from './Panels';
// - cancel promises when component is destroyed
// - show errors in UI for thumbnails if promise fails
-function getPanelModule({
- commandsManager,
- extensionManager,
- servicesManager,
-}) {
+function getPanelModule({ commandsManager, extensionManager, servicesManager }) {
const wrappedPanelPetSuv = () => {
return (
true,
- callback,
- boundsIJK
- );
+ utilities.pointInShapeCallback(labelmapImageData, () => true, callback, boundsIJK);
- const direction = labelmapImageData
- .getDirection()
- .slice(0, 3) as Types.Point3;
+ const direction = labelmapImageData.getDirection().slice(0, 3) as Types.Point3;
/**
* 2. Find the bottom and top of the great circle for the second sphere (1cc sphere)
@@ -117,13 +98,10 @@ function calculateSuvPeak(
const secondaryCircleWorld = vec3.create();
const bottomWorld = vec3.create();
const topWorld = vec3.create();
- referenceVolumeImageData.indexToWorld(maxIJK, secondaryCircleWorld);
+ referenceVolumeImageData.indexToWorld(maxIJK as vec3, secondaryCircleWorld);
vec3.scaleAndAdd(bottomWorld, secondaryCircleWorld, direction, -diameter / 2);
vec3.scaleAndAdd(topWorld, secondaryCircleWorld, direction, diameter / 2);
- const suvPeakCirclePoints = [bottomWorld, topWorld] as [
- Types.Point3,
- Types.Point3
- ];
+ const suvPeakCirclePoints = [bottomWorld, topWorld] as [Types.Point3, Types.Point3];
/**
* 3. Find the Mean and Max of the 1cc sphere centered on the suv Max of the previous
diff --git a/extensions/tmtv/src/utils/calculateTMTV.ts b/extensions/tmtv/src/utils/calculateTMTV.ts
index f09375c346..8d9f5f3e5d 100644
--- a/extensions/tmtv/src/utils/calculateTMTV.ts
+++ b/extensions/tmtv/src/utils/calculateTMTV.ts
@@ -11,10 +11,7 @@ import { utilities } from '@cornerstonejs/tools';
* @param {number} segmentIndex
* @returns {number} TMTV in ml
*/
-function calculateTMTV(
- labelmaps: Array,
- segmentIndex = 1
-): number {
+function calculateTMTV(labelmaps: Array, segmentIndex = 1): number {
const volumeId = 'mergedLabelmap';
const mergedLabelmap = utilities.segmentation.createMergedLabelmapForIndex(
@@ -24,10 +21,7 @@ function calculateTMTV(
);
const { imageData, spacing } = mergedLabelmap;
- const values = imageData
- .getPointData()
- .getScalars()
- .getData();
+ const values = imageData.getPointData().getScalars().getData();
// count non-zero values inside the outputData, this would
// consider the overlapping regions to be only counted once
diff --git a/extensions/tmtv/src/utils/colormaps/index.js b/extensions/tmtv/src/utils/colormaps/index.js
index 34761d2596..b5afdd984a 100644
--- a/extensions/tmtv/src/utils/colormaps/index.js
+++ b/extensions/tmtv/src/utils/colormaps/index.js
@@ -3,9270 +3,1552 @@ export default [
ColorSpace: 'RGB',
Name: 'hot_iron',
RGBPoints: [
- 0.0,
- 0.0039215686,
- 0.0039215686,
- 0.0156862745,
- 0.00392156862745098,
- 0.0039215686,
- 0.0039215686,
- 0.0156862745,
- 0.00784313725490196,
- 0.0039215686,
- 0.0039215686,
- 0.031372549,
- 0.011764705882352941,
- 0.0039215686,
- 0.0039215686,
- 0.0470588235,
- 0.01568627450980392,
- 0.0039215686,
- 0.0039215686,
- 0.062745098,
- 0.0196078431372549,
- 0.0039215686,
- 0.0039215686,
- 0.0784313725,
- 0.023529411764705882,
- 0.0039215686,
- 0.0039215686,
- 0.0941176471,
- 0.027450980392156862,
- 0.0039215686,
- 0.0039215686,
- 0.1098039216,
- 0.03137254901960784,
- 0.0039215686,
- 0.0039215686,
- 0.1254901961,
- 0.03529411764705882,
- 0.0039215686,
- 0.0039215686,
- 0.1411764706,
- 0.0392156862745098,
- 0.0039215686,
- 0.0039215686,
- 0.1568627451,
- 0.043137254901960784,
- 0.0039215686,
- 0.0039215686,
- 0.1725490196,
- 0.047058823529411764,
- 0.0039215686,
- 0.0039215686,
- 0.1882352941,
- 0.050980392156862744,
- 0.0039215686,
- 0.0039215686,
- 0.2039215686,
- 0.054901960784313725,
- 0.0039215686,
- 0.0039215686,
- 0.2196078431,
- 0.05882352941176471,
- 0.0039215686,
- 0.0039215686,
- 0.2352941176,
- 0.06274509803921569,
- 0.0039215686,
- 0.0039215686,
- 0.2509803922,
- 0.06666666666666667,
- 0.0039215686,
- 0.0039215686,
- 0.262745098,
- 0.07058823529411765,
- 0.0039215686,
- 0.0039215686,
- 0.2784313725,
- 0.07450980392156863,
- 0.0039215686,
- 0.0039215686,
- 0.2941176471,
- 0.0784313725490196,
- 0.0039215686,
- 0.0039215686,
- 0.3098039216,
- 0.08235294117647059,
- 0.0039215686,
- 0.0039215686,
- 0.3254901961,
- 0.08627450980392157,
- 0.0039215686,
- 0.0039215686,
- 0.3411764706,
- 0.09019607843137255,
- 0.0039215686,
- 0.0039215686,
- 0.3568627451,
- 0.09411764705882353,
- 0.0039215686,
- 0.0039215686,
- 0.3725490196,
- 0.09803921568627451,
- 0.0039215686,
- 0.0039215686,
- 0.3882352941,
- 0.10196078431372549,
- 0.0039215686,
- 0.0039215686,
- 0.4039215686,
- 0.10588235294117647,
- 0.0039215686,
- 0.0039215686,
- 0.4196078431,
- 0.10980392156862745,
- 0.0039215686,
- 0.0039215686,
- 0.4352941176,
- 0.11372549019607843,
- 0.0039215686,
- 0.0039215686,
- 0.4509803922,
- 0.11764705882352942,
- 0.0039215686,
- 0.0039215686,
- 0.4666666667,
- 0.12156862745098039,
- 0.0039215686,
- 0.0039215686,
- 0.4823529412,
- 0.12549019607843137,
- 0.0039215686,
- 0.0039215686,
- 0.4980392157,
- 0.12941176470588237,
- 0.0039215686,
- 0.0039215686,
- 0.5137254902,
- 0.13333333333333333,
- 0.0039215686,
- 0.0039215686,
- 0.5294117647,
- 0.13725490196078433,
- 0.0039215686,
- 0.0039215686,
- 0.5450980392,
- 0.1411764705882353,
- 0.0039215686,
- 0.0039215686,
- 0.5607843137,
- 0.1450980392156863,
- 0.0039215686,
- 0.0039215686,
- 0.5764705882,
- 0.14901960784313725,
- 0.0039215686,
- 0.0039215686,
- 0.5921568627,
- 0.15294117647058825,
- 0.0039215686,
- 0.0039215686,
- 0.6078431373,
- 0.1568627450980392,
- 0.0039215686,
- 0.0039215686,
- 0.6235294118,
- 0.1607843137254902,
- 0.0039215686,
- 0.0039215686,
- 0.6392156863,
- 0.16470588235294117,
- 0.0039215686,
- 0.0039215686,
- 0.6549019608,
- 0.16862745098039217,
- 0.0039215686,
- 0.0039215686,
- 0.6705882353,
- 0.17254901960784313,
- 0.0039215686,
- 0.0039215686,
- 0.6862745098,
- 0.17647058823529413,
- 0.0039215686,
- 0.0039215686,
- 0.7019607843,
- 0.1803921568627451,
- 0.0039215686,
- 0.0039215686,
- 0.7176470588,
- 0.1843137254901961,
- 0.0039215686,
- 0.0039215686,
- 0.7333333333,
- 0.18823529411764706,
- 0.0039215686,
- 0.0039215686,
- 0.7490196078,
- 0.19215686274509805,
- 0.0039215686,
- 0.0039215686,
- 0.7607843137,
- 0.19607843137254902,
- 0.0039215686,
- 0.0039215686,
- 0.7764705882,
- 0.2,
- 0.0039215686,
- 0.0039215686,
- 0.7921568627,
- 0.20392156862745098,
- 0.0039215686,
- 0.0039215686,
- 0.8078431373,
- 0.20784313725490197,
- 0.0039215686,
- 0.0039215686,
- 0.8235294118,
- 0.21176470588235294,
- 0.0039215686,
- 0.0039215686,
- 0.8392156863,
- 0.21568627450980393,
- 0.0039215686,
- 0.0039215686,
- 0.8549019608,
- 0.2196078431372549,
- 0.0039215686,
- 0.0039215686,
- 0.8705882353,
- 0.2235294117647059,
- 0.0039215686,
- 0.0039215686,
- 0.8862745098,
- 0.22745098039215686,
- 0.0039215686,
- 0.0039215686,
- 0.9019607843,
- 0.23137254901960785,
- 0.0039215686,
- 0.0039215686,
- 0.9176470588,
- 0.23529411764705885,
- 0.0039215686,
- 0.0039215686,
- 0.9333333333,
- 0.23921568627450984,
- 0.0039215686,
- 0.0039215686,
- 0.9490196078,
- 0.24313725490196078,
- 0.0039215686,
- 0.0039215686,
- 0.9647058824,
- 0.24705882352941178,
- 0.0039215686,
- 0.0039215686,
- 0.9803921569,
- 0.25098039215686274,
- 0.0039215686,
- 0.0039215686,
- 0.9960784314,
- 0.2549019607843137,
- 0.0039215686,
- 0.0039215686,
- 0.9960784314,
- 0.25882352941176473,
- 0.0156862745,
- 0.0039215686,
- 0.9803921569,
- 0.2627450980392157,
- 0.031372549,
- 0.0039215686,
- 0.9647058824,
- 0.26666666666666666,
- 0.0470588235,
- 0.0039215686,
- 0.9490196078,
- 0.27058823529411763,
- 0.062745098,
- 0.0039215686,
- 0.9333333333,
- 0.27450980392156865,
- 0.0784313725,
- 0.0039215686,
- 0.9176470588,
- 0.2784313725490196,
- 0.0941176471,
- 0.0039215686,
- 0.9019607843,
- 0.2823529411764706,
- 0.1098039216,
- 0.0039215686,
- 0.8862745098,
- 0.28627450980392155,
- 0.1254901961,
- 0.0039215686,
- 0.8705882353,
- 0.2901960784313726,
- 0.1411764706,
- 0.0039215686,
- 0.8549019608,
- 0.29411764705882354,
- 0.1568627451,
- 0.0039215686,
- 0.8392156863,
- 0.2980392156862745,
- 0.1725490196,
- 0.0039215686,
- 0.8235294118,
- 0.30196078431372547,
- 0.1882352941,
- 0.0039215686,
- 0.8078431373,
- 0.3058823529411765,
- 0.2039215686,
- 0.0039215686,
- 0.7921568627,
- 0.30980392156862746,
- 0.2196078431,
- 0.0039215686,
- 0.7764705882,
- 0.3137254901960784,
- 0.2352941176,
- 0.0039215686,
- 0.7607843137,
- 0.3176470588235294,
- 0.2509803922,
- 0.0039215686,
- 0.7490196078,
- 0.3215686274509804,
- 0.262745098,
- 0.0039215686,
- 0.7333333333,
- 0.3254901960784314,
- 0.2784313725,
- 0.0039215686,
- 0.7176470588,
- 0.32941176470588235,
- 0.2941176471,
- 0.0039215686,
- 0.7019607843,
- 0.3333333333333333,
- 0.3098039216,
- 0.0039215686,
- 0.6862745098,
- 0.33725490196078434,
- 0.3254901961,
- 0.0039215686,
- 0.6705882353,
- 0.3411764705882353,
- 0.3411764706,
- 0.0039215686,
- 0.6549019608,
- 0.34509803921568627,
- 0.3568627451,
- 0.0039215686,
- 0.6392156863,
- 0.34901960784313724,
- 0.3725490196,
- 0.0039215686,
- 0.6235294118,
- 0.35294117647058826,
- 0.3882352941,
- 0.0039215686,
- 0.6078431373,
- 0.3568627450980392,
- 0.4039215686,
- 0.0039215686,
- 0.5921568627,
- 0.3607843137254902,
- 0.4196078431,
- 0.0039215686,
- 0.5764705882,
- 0.36470588235294116,
- 0.4352941176,
- 0.0039215686,
- 0.5607843137,
- 0.3686274509803922,
- 0.4509803922,
- 0.0039215686,
- 0.5450980392,
- 0.37254901960784315,
- 0.4666666667,
- 0.0039215686,
- 0.5294117647,
- 0.3764705882352941,
- 0.4823529412,
- 0.0039215686,
- 0.5137254902,
- 0.3803921568627451,
- 0.4980392157,
- 0.0039215686,
- 0.4980392157,
- 0.3843137254901961,
- 0.5137254902,
- 0.0039215686,
- 0.4823529412,
- 0.38823529411764707,
- 0.5294117647,
- 0.0039215686,
- 0.4666666667,
- 0.39215686274509803,
- 0.5450980392,
- 0.0039215686,
- 0.4509803922,
- 0.396078431372549,
- 0.5607843137,
- 0.0039215686,
- 0.4352941176,
- 0.4,
- 0.5764705882,
- 0.0039215686,
- 0.4196078431,
- 0.403921568627451,
- 0.5921568627,
- 0.0039215686,
- 0.4039215686,
- 0.40784313725490196,
- 0.6078431373,
- 0.0039215686,
- 0.3882352941,
- 0.4117647058823529,
- 0.6235294118,
- 0.0039215686,
- 0.3725490196,
- 0.41568627450980394,
- 0.6392156863,
- 0.0039215686,
- 0.3568627451,
- 0.4196078431372549,
- 0.6549019608,
- 0.0039215686,
- 0.3411764706,
- 0.4235294117647059,
- 0.6705882353,
- 0.0039215686,
- 0.3254901961,
- 0.42745098039215684,
- 0.6862745098,
- 0.0039215686,
- 0.3098039216,
- 0.43137254901960786,
- 0.7019607843,
- 0.0039215686,
- 0.2941176471,
- 0.43529411764705883,
- 0.7176470588,
- 0.0039215686,
- 0.2784313725,
- 0.4392156862745098,
- 0.7333333333,
- 0.0039215686,
- 0.262745098,
- 0.44313725490196076,
- 0.7490196078,
- 0.0039215686,
- 0.2509803922,
- 0.4470588235294118,
- 0.7607843137,
- 0.0039215686,
- 0.2352941176,
- 0.45098039215686275,
- 0.7764705882,
- 0.0039215686,
- 0.2196078431,
- 0.4549019607843137,
- 0.7921568627,
- 0.0039215686,
- 0.2039215686,
- 0.4588235294117647,
- 0.8078431373,
- 0.0039215686,
- 0.1882352941,
- 0.4627450980392157,
- 0.8235294118,
- 0.0039215686,
- 0.1725490196,
- 0.4666666666666667,
- 0.8392156863,
- 0.0039215686,
- 0.1568627451,
- 0.4705882352941177,
- 0.8549019608,
- 0.0039215686,
- 0.1411764706,
- 0.4745098039215686,
- 0.8705882353,
- 0.0039215686,
- 0.1254901961,
- 0.4784313725490197,
- 0.8862745098,
- 0.0039215686,
- 0.1098039216,
- 0.48235294117647065,
- 0.9019607843,
- 0.0039215686,
- 0.0941176471,
- 0.48627450980392156,
- 0.9176470588,
- 0.0039215686,
- 0.0784313725,
- 0.49019607843137253,
- 0.9333333333,
- 0.0039215686,
- 0.062745098,
- 0.49411764705882355,
- 0.9490196078,
- 0.0039215686,
- 0.0470588235,
- 0.4980392156862745,
- 0.9647058824,
- 0.0039215686,
- 0.031372549,
- 0.5019607843137255,
- 0.9803921569,
- 0.0039215686,
- 0.0156862745,
- 0.5058823529411764,
- 0.9960784314,
- 0.0039215686,
- 0.0039215686,
- 0.5098039215686274,
- 0.9960784314,
- 0.0156862745,
- 0.0039215686,
- 0.5137254901960784,
- 0.9960784314,
- 0.031372549,
- 0.0039215686,
- 0.5176470588235295,
- 0.9960784314,
- 0.0470588235,
- 0.0039215686,
- 0.5215686274509804,
- 0.9960784314,
- 0.062745098,
- 0.0039215686,
- 0.5254901960784314,
- 0.9960784314,
- 0.0784313725,
- 0.0039215686,
- 0.5294117647058824,
- 0.9960784314,
- 0.0941176471,
- 0.0039215686,
- 0.5333333333333333,
- 0.9960784314,
- 0.1098039216,
- 0.0039215686,
- 0.5372549019607843,
- 0.9960784314,
- 0.1254901961,
- 0.0039215686,
- 0.5411764705882353,
- 0.9960784314,
- 0.1411764706,
- 0.0039215686,
- 0.5450980392156862,
- 0.9960784314,
- 0.1568627451,
- 0.0039215686,
- 0.5490196078431373,
- 0.9960784314,
- 0.1725490196,
- 0.0039215686,
- 0.5529411764705883,
- 0.9960784314,
- 0.1882352941,
- 0.0039215686,
- 0.5568627450980392,
- 0.9960784314,
- 0.2039215686,
- 0.0039215686,
- 0.5607843137254902,
- 0.9960784314,
- 0.2196078431,
- 0.0039215686,
- 0.5647058823529412,
- 0.9960784314,
- 0.2352941176,
- 0.0039215686,
- 0.5686274509803921,
- 0.9960784314,
- 0.2509803922,
- 0.0039215686,
- 0.5725490196078431,
- 0.9960784314,
- 0.262745098,
- 0.0039215686,
- 0.5764705882352941,
- 0.9960784314,
- 0.2784313725,
- 0.0039215686,
- 0.5803921568627451,
- 0.9960784314,
- 0.2941176471,
- 0.0039215686,
- 0.5843137254901961,
- 0.9960784314,
- 0.3098039216,
- 0.0039215686,
- 0.5882352941176471,
- 0.9960784314,
- 0.3254901961,
- 0.0039215686,
- 0.592156862745098,
- 0.9960784314,
- 0.3411764706,
- 0.0039215686,
- 0.596078431372549,
- 0.9960784314,
- 0.3568627451,
- 0.0039215686,
- 0.6,
- 0.9960784314,
- 0.3725490196,
- 0.0039215686,
- 0.6039215686274509,
- 0.9960784314,
- 0.3882352941,
- 0.0039215686,
- 0.6078431372549019,
- 0.9960784314,
- 0.4039215686,
- 0.0039215686,
- 0.611764705882353,
- 0.9960784314,
- 0.4196078431,
- 0.0039215686,
- 0.615686274509804,
- 0.9960784314,
- 0.4352941176,
- 0.0039215686,
- 0.6196078431372549,
- 0.9960784314,
- 0.4509803922,
- 0.0039215686,
- 0.6235294117647059,
- 0.9960784314,
- 0.4666666667,
- 0.0039215686,
- 0.6274509803921569,
- 0.9960784314,
- 0.4823529412,
- 0.0039215686,
- 0.6313725490196078,
- 0.9960784314,
- 0.4980392157,
- 0.0039215686,
- 0.6352941176470588,
- 0.9960784314,
- 0.5137254902,
- 0.0039215686,
- 0.6392156862745098,
- 0.9960784314,
- 0.5294117647,
- 0.0039215686,
- 0.6431372549019608,
- 0.9960784314,
- 0.5450980392,
- 0.0039215686,
- 0.6470588235294118,
- 0.9960784314,
- 0.5607843137,
- 0.0039215686,
- 0.6509803921568628,
- 0.9960784314,
- 0.5764705882,
- 0.0039215686,
- 0.6549019607843137,
- 0.9960784314,
- 0.5921568627,
- 0.0039215686,
- 0.6588235294117647,
- 0.9960784314,
- 0.6078431373,
- 0.0039215686,
- 0.6627450980392157,
- 0.9960784314,
- 0.6235294118,
- 0.0039215686,
- 0.6666666666666666,
- 0.9960784314,
- 0.6392156863,
- 0.0039215686,
- 0.6705882352941176,
- 0.9960784314,
- 0.6549019608,
- 0.0039215686,
- 0.6745098039215687,
- 0.9960784314,
- 0.6705882353,
- 0.0039215686,
- 0.6784313725490196,
- 0.9960784314,
- 0.6862745098,
- 0.0039215686,
- 0.6823529411764706,
- 0.9960784314,
- 0.7019607843,
- 0.0039215686,
- 0.6862745098039216,
- 0.9960784314,
- 0.7176470588,
- 0.0039215686,
- 0.6901960784313725,
- 0.9960784314,
- 0.7333333333,
- 0.0039215686,
- 0.6941176470588235,
- 0.9960784314,
- 0.7490196078,
- 0.0039215686,
- 0.6980392156862745,
- 0.9960784314,
- 0.7607843137,
- 0.0039215686,
- 0.7019607843137254,
- 0.9960784314,
- 0.7764705882,
- 0.0039215686,
- 0.7058823529411765,
- 0.9960784314,
- 0.7921568627,
- 0.0039215686,
- 0.7098039215686275,
- 0.9960784314,
- 0.8078431373,
- 0.0039215686,
- 0.7137254901960784,
- 0.9960784314,
- 0.8235294118,
- 0.0039215686,
- 0.7176470588235294,
- 0.9960784314,
- 0.8392156863,
- 0.0039215686,
- 0.7215686274509804,
- 0.9960784314,
- 0.8549019608,
- 0.0039215686,
- 0.7254901960784313,
- 0.9960784314,
- 0.8705882353,
- 0.0039215686,
- 0.7294117647058823,
- 0.9960784314,
- 0.8862745098,
- 0.0039215686,
- 0.7333333333333333,
- 0.9960784314,
- 0.9019607843,
- 0.0039215686,
- 0.7372549019607844,
- 0.9960784314,
- 0.9176470588,
- 0.0039215686,
- 0.7411764705882353,
- 0.9960784314,
- 0.9333333333,
- 0.0039215686,
- 0.7450980392156863,
- 0.9960784314,
- 0.9490196078,
- 0.0039215686,
- 0.7490196078431373,
- 0.9960784314,
- 0.9647058824,
- 0.0039215686,
- 0.7529411764705882,
- 0.9960784314,
- 0.9803921569,
- 0.0039215686,
- 0.7568627450980392,
- 0.9960784314,
- 0.9960784314,
- 0.0039215686,
- 0.7607843137254902,
- 0.9960784314,
- 0.9960784314,
- 0.0196078431,
- 0.7647058823529411,
- 0.9960784314,
- 0.9960784314,
- 0.0352941176,
- 0.7686274509803922,
- 0.9960784314,
- 0.9960784314,
- 0.0509803922,
- 0.7725490196078432,
- 0.9960784314,
- 0.9960784314,
- 0.0666666667,
- 0.7764705882352941,
- 0.9960784314,
- 0.9960784314,
- 0.0823529412,
- 0.7803921568627451,
- 0.9960784314,
- 0.9960784314,
- 0.0980392157,
- 0.7843137254901961,
- 0.9960784314,
- 0.9960784314,
- 0.1137254902,
- 0.788235294117647,
- 0.9960784314,
- 0.9960784314,
- 0.1294117647,
- 0.792156862745098,
- 0.9960784314,
- 0.9960784314,
- 0.1450980392,
- 0.796078431372549,
- 0.9960784314,
- 0.9960784314,
- 0.1607843137,
- 0.8,
- 0.9960784314,
- 0.9960784314,
- 0.1764705882,
- 0.803921568627451,
- 0.9960784314,
- 0.9960784314,
- 0.1921568627,
- 0.807843137254902,
- 0.9960784314,
- 0.9960784314,
- 0.2078431373,
- 0.8117647058823529,
- 0.9960784314,
- 0.9960784314,
- 0.2235294118,
- 0.8156862745098039,
- 0.9960784314,
- 0.9960784314,
- 0.2392156863,
- 0.8196078431372549,
- 0.9960784314,
- 0.9960784314,
- 0.2509803922,
- 0.8235294117647058,
- 0.9960784314,
- 0.9960784314,
- 0.2666666667,
- 0.8274509803921568,
- 0.9960784314,
- 0.9960784314,
- 0.2823529412,
- 0.8313725490196079,
- 0.9960784314,
- 0.9960784314,
- 0.2980392157,
- 0.8352941176470589,
- 0.9960784314,
- 0.9960784314,
- 0.3137254902,
- 0.8392156862745098,
- 0.9960784314,
- 0.9960784314,
- 0.3333333333,
- 0.8431372549019608,
- 0.9960784314,
- 0.9960784314,
- 0.3490196078,
- 0.8470588235294118,
- 0.9960784314,
- 0.9960784314,
- 0.3647058824,
- 0.8509803921568627,
- 0.9960784314,
- 0.9960784314,
- 0.3803921569,
- 0.8549019607843137,
- 0.9960784314,
- 0.9960784314,
- 0.3960784314,
- 0.8588235294117647,
- 0.9960784314,
- 0.9960784314,
- 0.4117647059,
- 0.8627450980392157,
- 0.9960784314,
- 0.9960784314,
- 0.4274509804,
- 0.8666666666666667,
- 0.9960784314,
- 0.9960784314,
- 0.4431372549,
- 0.8705882352941177,
- 0.9960784314,
- 0.9960784314,
- 0.4588235294,
- 0.8745098039215686,
- 0.9960784314,
- 0.9960784314,
- 0.4745098039,
- 0.8784313725490196,
- 0.9960784314,
- 0.9960784314,
- 0.4901960784,
- 0.8823529411764706,
- 0.9960784314,
- 0.9960784314,
- 0.5058823529,
- 0.8862745098039215,
- 0.9960784314,
- 0.9960784314,
- 0.5215686275,
- 0.8901960784313725,
- 0.9960784314,
- 0.9960784314,
- 0.537254902,
- 0.8941176470588236,
- 0.9960784314,
- 0.9960784314,
- 0.5529411765,
- 0.8980392156862745,
- 0.9960784314,
- 0.9960784314,
- 0.568627451,
- 0.9019607843137255,
- 0.9960784314,
- 0.9960784314,
- 0.5843137255,
- 0.9058823529411765,
- 0.9960784314,
- 0.9960784314,
- 0.6,
- 0.9098039215686274,
- 0.9960784314,
- 0.9960784314,
- 0.6156862745,
- 0.9137254901960784,
- 0.9960784314,
- 0.9960784314,
- 0.631372549,
- 0.9176470588235294,
- 0.9960784314,
- 0.9960784314,
- 0.6470588235,
- 0.9215686274509803,
- 0.9960784314,
- 0.9960784314,
- 0.6666666667,
- 0.9254901960784314,
- 0.9960784314,
- 0.9960784314,
- 0.6823529412,
- 0.9294117647058824,
- 0.9960784314,
- 0.9960784314,
- 0.6980392157,
- 0.9333333333333333,
- 0.9960784314,
- 0.9960784314,
- 0.7137254902,
- 0.9372549019607843,
- 0.9960784314,
- 0.9960784314,
- 0.7294117647,
- 0.9411764705882354,
- 0.9960784314,
- 0.9960784314,
- 0.7450980392,
- 0.9450980392156864,
- 0.9960784314,
- 0.9960784314,
- 0.7568627451,
- 0.9490196078431372,
- 0.9960784314,
- 0.9960784314,
- 0.7725490196,
- 0.9529411764705882,
- 0.9960784314,
- 0.9960784314,
- 0.7882352941,
- 0.9568627450980394,
- 0.9960784314,
- 0.9960784314,
- 0.8039215686,
- 0.9607843137254903,
- 0.9960784314,
- 0.9960784314,
- 0.8196078431,
- 0.9647058823529413,
- 0.9960784314,
- 0.9960784314,
- 0.8352941176,
- 0.9686274509803922,
- 0.9960784314,
- 0.9960784314,
- 0.8509803922,
- 0.9725490196078431,
- 0.9960784314,
- 0.9960784314,
- 0.8666666667,
- 0.9764705882352941,
- 0.9960784314,
- 0.9960784314,
- 0.8823529412,
- 0.9803921568627451,
- 0.9960784314,
- 0.9960784314,
- 0.8980392157,
- 0.984313725490196,
- 0.9960784314,
- 0.9960784314,
- 0.9137254902,
- 0.9882352941176471,
- 0.9960784314,
- 0.9960784314,
- 0.9294117647,
- 0.9921568627450981,
- 0.9960784314,
- 0.9960784314,
- 0.9450980392,
- 0.996078431372549,
- 0.9960784314,
- 0.9960784314,
- 0.9607843137,
- 1.0,
- 0.9960784314,
- 0.9960784314,
- 0.9607843137,
+ 0.0, 0.0039215686, 0.0039215686, 0.0156862745, 0.00392156862745098, 0.0039215686,
+ 0.0039215686, 0.0156862745, 0.00784313725490196, 0.0039215686, 0.0039215686, 0.031372549,
+ 0.011764705882352941, 0.0039215686, 0.0039215686, 0.0470588235, 0.01568627450980392,
+ 0.0039215686, 0.0039215686, 0.062745098, 0.0196078431372549, 0.0039215686, 0.0039215686,
+ 0.0784313725, 0.023529411764705882, 0.0039215686, 0.0039215686, 0.0941176471,
+ 0.027450980392156862, 0.0039215686, 0.0039215686, 0.1098039216, 0.03137254901960784,
+ 0.0039215686, 0.0039215686, 0.1254901961, 0.03529411764705882, 0.0039215686, 0.0039215686,
+ 0.1411764706, 0.0392156862745098, 0.0039215686, 0.0039215686, 0.1568627451,
+ 0.043137254901960784, 0.0039215686, 0.0039215686, 0.1725490196, 0.047058823529411764,
+ 0.0039215686, 0.0039215686, 0.1882352941, 0.050980392156862744, 0.0039215686, 0.0039215686,
+ 0.2039215686, 0.054901960784313725, 0.0039215686, 0.0039215686, 0.2196078431,
+ 0.05882352941176471, 0.0039215686, 0.0039215686, 0.2352941176, 0.06274509803921569,
+ 0.0039215686, 0.0039215686, 0.2509803922, 0.06666666666666667, 0.0039215686, 0.0039215686,
+ 0.262745098, 0.07058823529411765, 0.0039215686, 0.0039215686, 0.2784313725,
+ 0.07450980392156863, 0.0039215686, 0.0039215686, 0.2941176471, 0.0784313725490196,
+ 0.0039215686, 0.0039215686, 0.3098039216, 0.08235294117647059, 0.0039215686, 0.0039215686,
+ 0.3254901961, 0.08627450980392157, 0.0039215686, 0.0039215686, 0.3411764706,
+ 0.09019607843137255, 0.0039215686, 0.0039215686, 0.3568627451, 0.09411764705882353,
+ 0.0039215686, 0.0039215686, 0.3725490196, 0.09803921568627451, 0.0039215686, 0.0039215686,
+ 0.3882352941, 0.10196078431372549, 0.0039215686, 0.0039215686, 0.4039215686,
+ 0.10588235294117647, 0.0039215686, 0.0039215686, 0.4196078431, 0.10980392156862745,
+ 0.0039215686, 0.0039215686, 0.4352941176, 0.11372549019607843, 0.0039215686, 0.0039215686,
+ 0.4509803922, 0.11764705882352942, 0.0039215686, 0.0039215686, 0.4666666667,
+ 0.12156862745098039, 0.0039215686, 0.0039215686, 0.4823529412, 0.12549019607843137,
+ 0.0039215686, 0.0039215686, 0.4980392157, 0.12941176470588237, 0.0039215686, 0.0039215686,
+ 0.5137254902, 0.13333333333333333, 0.0039215686, 0.0039215686, 0.5294117647,
+ 0.13725490196078433, 0.0039215686, 0.0039215686, 0.5450980392, 0.1411764705882353,
+ 0.0039215686, 0.0039215686, 0.5607843137, 0.1450980392156863, 0.0039215686, 0.0039215686,
+ 0.5764705882, 0.14901960784313725, 0.0039215686, 0.0039215686, 0.5921568627,
+ 0.15294117647058825, 0.0039215686, 0.0039215686, 0.6078431373, 0.1568627450980392,
+ 0.0039215686, 0.0039215686, 0.6235294118, 0.1607843137254902, 0.0039215686, 0.0039215686,
+ 0.6392156863, 0.16470588235294117, 0.0039215686, 0.0039215686, 0.6549019608,
+ 0.16862745098039217, 0.0039215686, 0.0039215686, 0.6705882353, 0.17254901960784313,
+ 0.0039215686, 0.0039215686, 0.6862745098, 0.17647058823529413, 0.0039215686, 0.0039215686,
+ 0.7019607843, 0.1803921568627451, 0.0039215686, 0.0039215686, 0.7176470588,
+ 0.1843137254901961, 0.0039215686, 0.0039215686, 0.7333333333, 0.18823529411764706,
+ 0.0039215686, 0.0039215686, 0.7490196078, 0.19215686274509805, 0.0039215686, 0.0039215686,
+ 0.7607843137, 0.19607843137254902, 0.0039215686, 0.0039215686, 0.7764705882, 0.2,
+ 0.0039215686, 0.0039215686, 0.7921568627, 0.20392156862745098, 0.0039215686, 0.0039215686,
+ 0.8078431373, 0.20784313725490197, 0.0039215686, 0.0039215686, 0.8235294118,
+ 0.21176470588235294, 0.0039215686, 0.0039215686, 0.8392156863, 0.21568627450980393,
+ 0.0039215686, 0.0039215686, 0.8549019608, 0.2196078431372549, 0.0039215686, 0.0039215686,
+ 0.8705882353, 0.2235294117647059, 0.0039215686, 0.0039215686, 0.8862745098,
+ 0.22745098039215686, 0.0039215686, 0.0039215686, 0.9019607843, 0.23137254901960785,
+ 0.0039215686, 0.0039215686, 0.9176470588, 0.23529411764705885, 0.0039215686, 0.0039215686,
+ 0.9333333333, 0.23921568627450984, 0.0039215686, 0.0039215686, 0.9490196078,
+ 0.24313725490196078, 0.0039215686, 0.0039215686, 0.9647058824, 0.24705882352941178,
+ 0.0039215686, 0.0039215686, 0.9803921569, 0.25098039215686274, 0.0039215686, 0.0039215686,
+ 0.9960784314, 0.2549019607843137, 0.0039215686, 0.0039215686, 0.9960784314,
+ 0.25882352941176473, 0.0156862745, 0.0039215686, 0.9803921569, 0.2627450980392157,
+ 0.031372549, 0.0039215686, 0.9647058824, 0.26666666666666666, 0.0470588235, 0.0039215686,
+ 0.9490196078, 0.27058823529411763, 0.062745098, 0.0039215686, 0.9333333333,
+ 0.27450980392156865, 0.0784313725, 0.0039215686, 0.9176470588, 0.2784313725490196,
+ 0.0941176471, 0.0039215686, 0.9019607843, 0.2823529411764706, 0.1098039216, 0.0039215686,
+ 0.8862745098, 0.28627450980392155, 0.1254901961, 0.0039215686, 0.8705882353,
+ 0.2901960784313726, 0.1411764706, 0.0039215686, 0.8549019608, 0.29411764705882354,
+ 0.1568627451, 0.0039215686, 0.8392156863, 0.2980392156862745, 0.1725490196, 0.0039215686,
+ 0.8235294118, 0.30196078431372547, 0.1882352941, 0.0039215686, 0.8078431373,
+ 0.3058823529411765, 0.2039215686, 0.0039215686, 0.7921568627, 0.30980392156862746,
+ 0.2196078431, 0.0039215686, 0.7764705882, 0.3137254901960784, 0.2352941176, 0.0039215686,
+ 0.7607843137, 0.3176470588235294, 0.2509803922, 0.0039215686, 0.7490196078,
+ 0.3215686274509804, 0.262745098, 0.0039215686, 0.7333333333, 0.3254901960784314, 0.2784313725,
+ 0.0039215686, 0.7176470588, 0.32941176470588235, 0.2941176471, 0.0039215686, 0.7019607843,
+ 0.3333333333333333, 0.3098039216, 0.0039215686, 0.6862745098, 0.33725490196078434,
+ 0.3254901961, 0.0039215686, 0.6705882353, 0.3411764705882353, 0.3411764706, 0.0039215686,
+ 0.6549019608, 0.34509803921568627, 0.3568627451, 0.0039215686, 0.6392156863,
+ 0.34901960784313724, 0.3725490196, 0.0039215686, 0.6235294118, 0.35294117647058826,
+ 0.3882352941, 0.0039215686, 0.6078431373, 0.3568627450980392, 0.4039215686, 0.0039215686,
+ 0.5921568627, 0.3607843137254902, 0.4196078431, 0.0039215686, 0.5764705882,
+ 0.36470588235294116, 0.4352941176, 0.0039215686, 0.5607843137, 0.3686274509803922,
+ 0.4509803922, 0.0039215686, 0.5450980392, 0.37254901960784315, 0.4666666667, 0.0039215686,
+ 0.5294117647, 0.3764705882352941, 0.4823529412, 0.0039215686, 0.5137254902,
+ 0.3803921568627451, 0.4980392157, 0.0039215686, 0.4980392157, 0.3843137254901961,
+ 0.5137254902, 0.0039215686, 0.4823529412, 0.38823529411764707, 0.5294117647, 0.0039215686,
+ 0.4666666667, 0.39215686274509803, 0.5450980392, 0.0039215686, 0.4509803922,
+ 0.396078431372549, 0.5607843137, 0.0039215686, 0.4352941176, 0.4, 0.5764705882, 0.0039215686,
+ 0.4196078431, 0.403921568627451, 0.5921568627, 0.0039215686, 0.4039215686,
+ 0.40784313725490196, 0.6078431373, 0.0039215686, 0.3882352941, 0.4117647058823529,
+ 0.6235294118, 0.0039215686, 0.3725490196, 0.41568627450980394, 0.6392156863, 0.0039215686,
+ 0.3568627451, 0.4196078431372549, 0.6549019608, 0.0039215686, 0.3411764706,
+ 0.4235294117647059, 0.6705882353, 0.0039215686, 0.3254901961, 0.42745098039215684,
+ 0.6862745098, 0.0039215686, 0.3098039216, 0.43137254901960786, 0.7019607843, 0.0039215686,
+ 0.2941176471, 0.43529411764705883, 0.7176470588, 0.0039215686, 0.2784313725,
+ 0.4392156862745098, 0.7333333333, 0.0039215686, 0.262745098, 0.44313725490196076,
+ 0.7490196078, 0.0039215686, 0.2509803922, 0.4470588235294118, 0.7607843137, 0.0039215686,
+ 0.2352941176, 0.45098039215686275, 0.7764705882, 0.0039215686, 0.2196078431,
+ 0.4549019607843137, 0.7921568627, 0.0039215686, 0.2039215686, 0.4588235294117647,
+ 0.8078431373, 0.0039215686, 0.1882352941, 0.4627450980392157, 0.8235294118, 0.0039215686,
+ 0.1725490196, 0.4666666666666667, 0.8392156863, 0.0039215686, 0.1568627451,
+ 0.4705882352941177, 0.8549019608, 0.0039215686, 0.1411764706, 0.4745098039215686,
+ 0.8705882353, 0.0039215686, 0.1254901961, 0.4784313725490197, 0.8862745098, 0.0039215686,
+ 0.1098039216, 0.48235294117647065, 0.9019607843, 0.0039215686, 0.0941176471,
+ 0.48627450980392156, 0.9176470588, 0.0039215686, 0.0784313725, 0.49019607843137253,
+ 0.9333333333, 0.0039215686, 0.062745098, 0.49411764705882355, 0.9490196078, 0.0039215686,
+ 0.0470588235, 0.4980392156862745, 0.9647058824, 0.0039215686, 0.031372549, 0.5019607843137255,
+ 0.9803921569, 0.0039215686, 0.0156862745, 0.5058823529411764, 0.9960784314, 0.0039215686,
+ 0.0039215686, 0.5098039215686274, 0.9960784314, 0.0156862745, 0.0039215686,
+ 0.5137254901960784, 0.9960784314, 0.031372549, 0.0039215686, 0.5176470588235295, 0.9960784314,
+ 0.0470588235, 0.0039215686, 0.5215686274509804, 0.9960784314, 0.062745098, 0.0039215686,
+ 0.5254901960784314, 0.9960784314, 0.0784313725, 0.0039215686, 0.5294117647058824,
+ 0.9960784314, 0.0941176471, 0.0039215686, 0.5333333333333333, 0.9960784314, 0.1098039216,
+ 0.0039215686, 0.5372549019607843, 0.9960784314, 0.1254901961, 0.0039215686,
+ 0.5411764705882353, 0.9960784314, 0.1411764706, 0.0039215686, 0.5450980392156862,
+ 0.9960784314, 0.1568627451, 0.0039215686, 0.5490196078431373, 0.9960784314, 0.1725490196,
+ 0.0039215686, 0.5529411764705883, 0.9960784314, 0.1882352941, 0.0039215686,
+ 0.5568627450980392, 0.9960784314, 0.2039215686, 0.0039215686, 0.5607843137254902,
+ 0.9960784314, 0.2196078431, 0.0039215686, 0.5647058823529412, 0.9960784314, 0.2352941176,
+ 0.0039215686, 0.5686274509803921, 0.9960784314, 0.2509803922, 0.0039215686,
+ 0.5725490196078431, 0.9960784314, 0.262745098, 0.0039215686, 0.5764705882352941, 0.9960784314,
+ 0.2784313725, 0.0039215686, 0.5803921568627451, 0.9960784314, 0.2941176471, 0.0039215686,
+ 0.5843137254901961, 0.9960784314, 0.3098039216, 0.0039215686, 0.5882352941176471,
+ 0.9960784314, 0.3254901961, 0.0039215686, 0.592156862745098, 0.9960784314, 0.3411764706,
+ 0.0039215686, 0.596078431372549, 0.9960784314, 0.3568627451, 0.0039215686, 0.6, 0.9960784314,
+ 0.3725490196, 0.0039215686, 0.6039215686274509, 0.9960784314, 0.3882352941, 0.0039215686,
+ 0.6078431372549019, 0.9960784314, 0.4039215686, 0.0039215686, 0.611764705882353, 0.9960784314,
+ 0.4196078431, 0.0039215686, 0.615686274509804, 0.9960784314, 0.4352941176, 0.0039215686,
+ 0.6196078431372549, 0.9960784314, 0.4509803922, 0.0039215686, 0.6235294117647059,
+ 0.9960784314, 0.4666666667, 0.0039215686, 0.6274509803921569, 0.9960784314, 0.4823529412,
+ 0.0039215686, 0.6313725490196078, 0.9960784314, 0.4980392157, 0.0039215686,
+ 0.6352941176470588, 0.9960784314, 0.5137254902, 0.0039215686, 0.6392156862745098,
+ 0.9960784314, 0.5294117647, 0.0039215686, 0.6431372549019608, 0.9960784314, 0.5450980392,
+ 0.0039215686, 0.6470588235294118, 0.9960784314, 0.5607843137, 0.0039215686,
+ 0.6509803921568628, 0.9960784314, 0.5764705882, 0.0039215686, 0.6549019607843137,
+ 0.9960784314, 0.5921568627, 0.0039215686, 0.6588235294117647, 0.9960784314, 0.6078431373,
+ 0.0039215686, 0.6627450980392157, 0.9960784314, 0.6235294118, 0.0039215686,
+ 0.6666666666666666, 0.9960784314, 0.6392156863, 0.0039215686, 0.6705882352941176,
+ 0.9960784314, 0.6549019608, 0.0039215686, 0.6745098039215687, 0.9960784314, 0.6705882353,
+ 0.0039215686, 0.6784313725490196, 0.9960784314, 0.6862745098, 0.0039215686,
+ 0.6823529411764706, 0.9960784314, 0.7019607843, 0.0039215686, 0.6862745098039216,
+ 0.9960784314, 0.7176470588, 0.0039215686, 0.6901960784313725, 0.9960784314, 0.7333333333,
+ 0.0039215686, 0.6941176470588235, 0.9960784314, 0.7490196078, 0.0039215686,
+ 0.6980392156862745, 0.9960784314, 0.7607843137, 0.0039215686, 0.7019607843137254,
+ 0.9960784314, 0.7764705882, 0.0039215686, 0.7058823529411765, 0.9960784314, 0.7921568627,
+ 0.0039215686, 0.7098039215686275, 0.9960784314, 0.8078431373, 0.0039215686,
+ 0.7137254901960784, 0.9960784314, 0.8235294118, 0.0039215686, 0.7176470588235294,
+ 0.9960784314, 0.8392156863, 0.0039215686, 0.7215686274509804, 0.9960784314, 0.8549019608,
+ 0.0039215686, 0.7254901960784313, 0.9960784314, 0.8705882353, 0.0039215686,
+ 0.7294117647058823, 0.9960784314, 0.8862745098, 0.0039215686, 0.7333333333333333,
+ 0.9960784314, 0.9019607843, 0.0039215686, 0.7372549019607844, 0.9960784314, 0.9176470588,
+ 0.0039215686, 0.7411764705882353, 0.9960784314, 0.9333333333, 0.0039215686,
+ 0.7450980392156863, 0.9960784314, 0.9490196078, 0.0039215686, 0.7490196078431373,
+ 0.9960784314, 0.9647058824, 0.0039215686, 0.7529411764705882, 0.9960784314, 0.9803921569,
+ 0.0039215686, 0.7568627450980392, 0.9960784314, 0.9960784314, 0.0039215686,
+ 0.7607843137254902, 0.9960784314, 0.9960784314, 0.0196078431, 0.7647058823529411,
+ 0.9960784314, 0.9960784314, 0.0352941176, 0.7686274509803922, 0.9960784314, 0.9960784314,
+ 0.0509803922, 0.7725490196078432, 0.9960784314, 0.9960784314, 0.0666666667,
+ 0.7764705882352941, 0.9960784314, 0.9960784314, 0.0823529412, 0.7803921568627451,
+ 0.9960784314, 0.9960784314, 0.0980392157, 0.7843137254901961, 0.9960784314, 0.9960784314,
+ 0.1137254902, 0.788235294117647, 0.9960784314, 0.9960784314, 0.1294117647, 0.792156862745098,
+ 0.9960784314, 0.9960784314, 0.1450980392, 0.796078431372549, 0.9960784314, 0.9960784314,
+ 0.1607843137, 0.8, 0.9960784314, 0.9960784314, 0.1764705882, 0.803921568627451, 0.9960784314,
+ 0.9960784314, 0.1921568627, 0.807843137254902, 0.9960784314, 0.9960784314, 0.2078431373,
+ 0.8117647058823529, 0.9960784314, 0.9960784314, 0.2235294118, 0.8156862745098039,
+ 0.9960784314, 0.9960784314, 0.2392156863, 0.8196078431372549, 0.9960784314, 0.9960784314,
+ 0.2509803922, 0.8235294117647058, 0.9960784314, 0.9960784314, 0.2666666667,
+ 0.8274509803921568, 0.9960784314, 0.9960784314, 0.2823529412, 0.8313725490196079,
+ 0.9960784314, 0.9960784314, 0.2980392157, 0.8352941176470589, 0.9960784314, 0.9960784314,
+ 0.3137254902, 0.8392156862745098, 0.9960784314, 0.9960784314, 0.3333333333,
+ 0.8431372549019608, 0.9960784314, 0.9960784314, 0.3490196078, 0.8470588235294118,
+ 0.9960784314, 0.9960784314, 0.3647058824, 0.8509803921568627, 0.9960784314, 0.9960784314,
+ 0.3803921569, 0.8549019607843137, 0.9960784314, 0.9960784314, 0.3960784314,
+ 0.8588235294117647, 0.9960784314, 0.9960784314, 0.4117647059, 0.8627450980392157,
+ 0.9960784314, 0.9960784314, 0.4274509804, 0.8666666666666667, 0.9960784314, 0.9960784314,
+ 0.4431372549, 0.8705882352941177, 0.9960784314, 0.9960784314, 0.4588235294,
+ 0.8745098039215686, 0.9960784314, 0.9960784314, 0.4745098039, 0.8784313725490196,
+ 0.9960784314, 0.9960784314, 0.4901960784, 0.8823529411764706, 0.9960784314, 0.9960784314,
+ 0.5058823529, 0.8862745098039215, 0.9960784314, 0.9960784314, 0.5215686275,
+ 0.8901960784313725, 0.9960784314, 0.9960784314, 0.537254902, 0.8941176470588236, 0.9960784314,
+ 0.9960784314, 0.5529411765, 0.8980392156862745, 0.9960784314, 0.9960784314, 0.568627451,
+ 0.9019607843137255, 0.9960784314, 0.9960784314, 0.5843137255, 0.9058823529411765,
+ 0.9960784314, 0.9960784314, 0.6, 0.9098039215686274, 0.9960784314, 0.9960784314, 0.6156862745,
+ 0.9137254901960784, 0.9960784314, 0.9960784314, 0.631372549, 0.9176470588235294, 0.9960784314,
+ 0.9960784314, 0.6470588235, 0.9215686274509803, 0.9960784314, 0.9960784314, 0.6666666667,
+ 0.9254901960784314, 0.9960784314, 0.9960784314, 0.6823529412, 0.9294117647058824,
+ 0.9960784314, 0.9960784314, 0.6980392157, 0.9333333333333333, 0.9960784314, 0.9960784314,
+ 0.7137254902, 0.9372549019607843, 0.9960784314, 0.9960784314, 0.7294117647,
+ 0.9411764705882354, 0.9960784314, 0.9960784314, 0.7450980392, 0.9450980392156864,
+ 0.9960784314, 0.9960784314, 0.7568627451, 0.9490196078431372, 0.9960784314, 0.9960784314,
+ 0.7725490196, 0.9529411764705882, 0.9960784314, 0.9960784314, 0.7882352941,
+ 0.9568627450980394, 0.9960784314, 0.9960784314, 0.8039215686, 0.9607843137254903,
+ 0.9960784314, 0.9960784314, 0.8196078431, 0.9647058823529413, 0.9960784314, 0.9960784314,
+ 0.8352941176, 0.9686274509803922, 0.9960784314, 0.9960784314, 0.8509803922,
+ 0.9725490196078431, 0.9960784314, 0.9960784314, 0.8666666667, 0.9764705882352941,
+ 0.9960784314, 0.9960784314, 0.8823529412, 0.9803921568627451, 0.9960784314, 0.9960784314,
+ 0.8980392157, 0.984313725490196, 0.9960784314, 0.9960784314, 0.9137254902, 0.9882352941176471,
+ 0.9960784314, 0.9960784314, 0.9294117647, 0.9921568627450981, 0.9960784314, 0.9960784314,
+ 0.9450980392, 0.996078431372549, 0.9960784314, 0.9960784314, 0.9607843137, 1.0, 0.9960784314,
+ 0.9960784314, 0.9607843137,
],
},
{
ColorSpace: 'RGB',
Name: 'red_hot',
RGBPoints: [
- 0.0,
- 0.0,
- 0.0,
- 0.0,
- 0.00392156862745098,
- 0.0,
- 0.0,
- 0.0,
- 0.00784313725490196,
- 0.0,
- 0.0,
- 0.0,
- 0.011764705882352941,
- 0.0,
- 0.0,
- 0.0,
- 0.01568627450980392,
- 0.0039215686,
- 0.0039215686,
- 0.0039215686,
- 0.0196078431372549,
- 0.0039215686,
- 0.0039215686,
- 0.0039215686,
- 0.023529411764705882,
- 0.0039215686,
- 0.0039215686,
- 0.0039215686,
- 0.027450980392156862,
- 0.0039215686,
- 0.0039215686,
- 0.0039215686,
- 0.03137254901960784,
- 0.0039215686,
- 0.0039215686,
- 0.0039215686,
- 0.03529411764705882,
- 0.0156862745,
- 0.0,
- 0.0,
- 0.0392156862745098,
- 0.0274509804,
- 0.0,
- 0.0,
- 0.043137254901960784,
- 0.0392156863,
- 0.0,
- 0.0,
- 0.047058823529411764,
- 0.0509803922,
- 0.0,
- 0.0,
- 0.050980392156862744,
- 0.062745098,
- 0.0,
- 0.0,
- 0.054901960784313725,
- 0.0784313725,
- 0.0,
- 0.0,
- 0.05882352941176471,
- 0.0901960784,
- 0.0,
- 0.0,
- 0.06274509803921569,
- 0.1058823529,
- 0.0,
- 0.0,
- 0.06666666666666667,
- 0.1176470588,
- 0.0,
- 0.0,
- 0.07058823529411765,
- 0.1294117647,
- 0.0,
- 0.0,
- 0.07450980392156863,
- 0.1411764706,
- 0.0,
- 0.0,
- 0.0784313725490196,
- 0.1529411765,
- 0.0,
- 0.0,
- 0.08235294117647059,
- 0.1647058824,
- 0.0,
- 0.0,
- 0.08627450980392157,
- 0.1764705882,
- 0.0,
- 0.0,
- 0.09019607843137255,
- 0.1882352941,
- 0.0,
- 0.0,
- 0.09411764705882353,
- 0.2039215686,
- 0.0,
- 0.0,
- 0.09803921568627451,
- 0.2156862745,
- 0.0,
- 0.0,
- 0.10196078431372549,
- 0.2274509804,
- 0.0,
- 0.0,
- 0.10588235294117647,
- 0.2392156863,
- 0.0,
- 0.0,
- 0.10980392156862745,
- 0.2549019608,
- 0.0,
- 0.0,
- 0.11372549019607843,
- 0.2666666667,
- 0.0,
- 0.0,
- 0.11764705882352942,
- 0.2784313725,
- 0.0,
- 0.0,
- 0.12156862745098039,
- 0.2901960784,
- 0.0,
- 0.0,
- 0.12549019607843137,
- 0.3058823529,
- 0.0,
- 0.0,
- 0.12941176470588237,
- 0.3176470588,
- 0.0,
- 0.0,
- 0.13333333333333333,
- 0.3294117647,
- 0.0,
- 0.0,
- 0.13725490196078433,
- 0.3411764706,
- 0.0,
- 0.0,
- 0.1411764705882353,
- 0.3529411765,
- 0.0,
- 0.0,
- 0.1450980392156863,
- 0.3647058824,
- 0.0,
- 0.0,
- 0.14901960784313725,
- 0.3764705882,
- 0.0,
- 0.0,
- 0.15294117647058825,
- 0.3882352941,
- 0.0,
- 0.0,
- 0.1568627450980392,
- 0.4039215686,
- 0.0,
- 0.0,
- 0.1607843137254902,
- 0.4156862745,
- 0.0,
- 0.0,
- 0.16470588235294117,
- 0.431372549,
- 0.0,
- 0.0,
- 0.16862745098039217,
- 0.4431372549,
- 0.0,
- 0.0,
- 0.17254901960784313,
- 0.4588235294,
- 0.0,
- 0.0,
- 0.17647058823529413,
- 0.4705882353,
- 0.0,
- 0.0,
- 0.1803921568627451,
- 0.4823529412,
- 0.0,
- 0.0,
- 0.1843137254901961,
- 0.4941176471,
- 0.0,
- 0.0,
- 0.18823529411764706,
- 0.5098039216,
- 0.0,
- 0.0,
- 0.19215686274509805,
- 0.5215686275,
- 0.0,
- 0.0,
- 0.19607843137254902,
- 0.5333333333,
- 0.0,
- 0.0,
- 0.2,
- 0.5450980392,
- 0.0,
- 0.0,
- 0.20392156862745098,
- 0.5568627451,
- 0.0,
- 0.0,
- 0.20784313725490197,
- 0.568627451,
- 0.0,
- 0.0,
- 0.21176470588235294,
- 0.5803921569,
- 0.0,
- 0.0,
- 0.21568627450980393,
- 0.5921568627,
- 0.0,
- 0.0,
- 0.2196078431372549,
- 0.6078431373,
- 0.0,
- 0.0,
- 0.2235294117647059,
- 0.6196078431,
- 0.0,
- 0.0,
- 0.22745098039215686,
- 0.631372549,
- 0.0,
- 0.0,
- 0.23137254901960785,
- 0.6431372549,
- 0.0,
- 0.0,
- 0.23529411764705885,
- 0.6588235294,
- 0.0,
- 0.0,
- 0.23921568627450984,
- 0.6705882353,
- 0.0,
- 0.0,
- 0.24313725490196078,
- 0.6823529412,
- 0.0,
- 0.0,
- 0.24705882352941178,
- 0.6941176471,
- 0.0,
- 0.0,
- 0.25098039215686274,
- 0.7098039216,
- 0.0,
- 0.0,
- 0.2549019607843137,
- 0.7215686275,
- 0.0,
- 0.0,
- 0.25882352941176473,
- 0.7333333333,
- 0.0,
- 0.0,
- 0.2627450980392157,
- 0.7450980392,
- 0.0,
- 0.0,
- 0.26666666666666666,
- 0.7568627451,
- 0.0,
- 0.0,
- 0.27058823529411763,
- 0.768627451,
- 0.0,
- 0.0,
- 0.27450980392156865,
- 0.7843137255,
- 0.0,
- 0.0,
- 0.2784313725490196,
- 0.7960784314,
- 0.0,
- 0.0,
- 0.2823529411764706,
- 0.8117647059,
- 0.0,
- 0.0,
- 0.28627450980392155,
- 0.8235294118,
- 0.0,
- 0.0,
- 0.2901960784313726,
- 0.8352941176,
- 0.0,
- 0.0,
- 0.29411764705882354,
- 0.8470588235,
- 0.0,
- 0.0,
- 0.2980392156862745,
- 0.862745098,
- 0.0,
- 0.0,
- 0.30196078431372547,
- 0.8745098039,
- 0.0,
- 0.0,
- 0.3058823529411765,
- 0.8862745098,
- 0.0,
- 0.0,
- 0.30980392156862746,
- 0.8980392157,
- 0.0,
- 0.0,
- 0.3137254901960784,
- 0.9137254902,
- 0.0,
- 0.0,
- 0.3176470588235294,
- 0.9254901961,
- 0.0,
- 0.0,
- 0.3215686274509804,
- 0.937254902,
- 0.0,
- 0.0,
- 0.3254901960784314,
- 0.9490196078,
- 0.0,
- 0.0,
- 0.32941176470588235,
- 0.9607843137,
- 0.0,
- 0.0,
- 0.3333333333333333,
- 0.968627451,
- 0.0,
- 0.0,
- 0.33725490196078434,
- 0.9803921569,
- 0.0039215686,
- 0.0,
- 0.3411764705882353,
- 0.9882352941,
- 0.0078431373,
- 0.0,
- 0.34509803921568627,
- 1.0,
- 0.0117647059,
- 0.0,
- 0.34901960784313724,
- 1.0,
- 0.0235294118,
- 0.0,
- 0.35294117647058826,
- 1.0,
- 0.0352941176,
- 0.0,
- 0.3568627450980392,
- 1.0,
- 0.0470588235,
- 0.0,
- 0.3607843137254902,
- 1.0,
- 0.062745098,
- 0.0,
- 0.36470588235294116,
- 1.0,
- 0.0745098039,
- 0.0,
- 0.3686274509803922,
- 1.0,
- 0.0862745098,
- 0.0,
- 0.37254901960784315,
- 1.0,
- 0.0980392157,
- 0.0,
- 0.3764705882352941,
- 1.0,
- 0.1137254902,
- 0.0,
- 0.3803921568627451,
- 1.0,
- 0.1254901961,
- 0.0,
- 0.3843137254901961,
- 1.0,
- 0.137254902,
- 0.0,
- 0.38823529411764707,
- 1.0,
- 0.1490196078,
- 0.0,
- 0.39215686274509803,
- 1.0,
- 0.1647058824,
- 0.0,
- 0.396078431372549,
- 1.0,
- 0.1764705882,
- 0.0,
- 0.4,
- 1.0,
- 0.1882352941,
- 0.0,
- 0.403921568627451,
- 1.0,
- 0.2,
- 0.0,
- 0.40784313725490196,
- 1.0,
- 0.2156862745,
- 0.0,
- 0.4117647058823529,
- 1.0,
- 0.2274509804,
- 0.0,
- 0.41568627450980394,
- 1.0,
- 0.2392156863,
- 0.0,
- 0.4196078431372549,
- 1.0,
- 0.2509803922,
- 0.0,
- 0.4235294117647059,
- 1.0,
- 0.2666666667,
- 0.0,
- 0.42745098039215684,
- 1.0,
- 0.2784313725,
- 0.0,
- 0.43137254901960786,
- 1.0,
- 0.2901960784,
- 0.0,
- 0.43529411764705883,
- 1.0,
- 0.3019607843,
- 0.0,
- 0.4392156862745098,
- 1.0,
- 0.3176470588,
- 0.0,
- 0.44313725490196076,
- 1.0,
- 0.3294117647,
- 0.0,
- 0.4470588235294118,
- 1.0,
- 0.3411764706,
- 0.0,
- 0.45098039215686275,
- 1.0,
- 0.3529411765,
- 0.0,
- 0.4549019607843137,
- 1.0,
- 0.368627451,
- 0.0,
- 0.4588235294117647,
- 1.0,
- 0.3803921569,
- 0.0,
- 0.4627450980392157,
- 1.0,
- 0.3921568627,
- 0.0,
- 0.4666666666666667,
- 1.0,
- 0.4039215686,
- 0.0,
- 0.4705882352941177,
- 1.0,
- 0.4156862745,
- 0.0,
- 0.4745098039215686,
- 1.0,
- 0.4274509804,
- 0.0,
- 0.4784313725490197,
- 1.0,
- 0.4392156863,
- 0.0,
- 0.48235294117647065,
- 1.0,
- 0.4509803922,
- 0.0,
- 0.48627450980392156,
- 1.0,
- 0.4666666667,
- 0.0,
- 0.49019607843137253,
- 1.0,
- 0.4784313725,
- 0.0,
- 0.49411764705882355,
- 1.0,
- 0.4941176471,
- 0.0,
- 0.4980392156862745,
- 1.0,
- 0.5058823529,
- 0.0,
- 0.5019607843137255,
- 1.0,
- 0.5215686275,
- 0.0,
- 0.5058823529411764,
- 1.0,
- 0.5333333333,
- 0.0,
- 0.5098039215686274,
- 1.0,
- 0.5450980392,
- 0.0,
- 0.5137254901960784,
- 1.0,
- 0.5568627451,
- 0.0,
- 0.5176470588235295,
- 1.0,
- 0.568627451,
- 0.0,
- 0.5215686274509804,
- 1.0,
- 0.5803921569,
- 0.0,
- 0.5254901960784314,
- 1.0,
- 0.5921568627,
- 0.0,
- 0.5294117647058824,
- 1.0,
- 0.6039215686,
- 0.0,
- 0.5333333333333333,
- 1.0,
- 0.6196078431,
- 0.0,
- 0.5372549019607843,
- 1.0,
- 0.631372549,
- 0.0,
- 0.5411764705882353,
- 1.0,
- 0.6431372549,
- 0.0,
- 0.5450980392156862,
- 1.0,
- 0.6549019608,
- 0.0,
- 0.5490196078431373,
- 1.0,
- 0.6705882353,
- 0.0,
- 0.5529411764705883,
- 1.0,
- 0.6823529412,
- 0.0,
- 0.5568627450980392,
- 1.0,
- 0.6941176471,
- 0.0,
- 0.5607843137254902,
- 1.0,
- 0.7058823529,
- 0.0,
- 0.5647058823529412,
- 1.0,
- 0.7215686275,
- 0.0,
- 0.5686274509803921,
- 1.0,
- 0.7333333333,
- 0.0,
- 0.5725490196078431,
- 1.0,
- 0.7450980392,
- 0.0,
- 0.5764705882352941,
- 1.0,
- 0.7568627451,
- 0.0,
- 0.5803921568627451,
- 1.0,
- 0.7725490196,
- 0.0,
- 0.5843137254901961,
- 1.0,
- 0.7843137255,
- 0.0,
- 0.5882352941176471,
- 1.0,
- 0.7960784314,
- 0.0,
- 0.592156862745098,
- 1.0,
- 0.8078431373,
- 0.0,
- 0.596078431372549,
- 1.0,
- 0.8196078431,
- 0.0,
- 0.6,
- 1.0,
- 0.831372549,
- 0.0,
- 0.6039215686274509,
- 1.0,
- 0.8470588235,
- 0.0,
- 0.6078431372549019,
- 1.0,
- 0.8588235294,
- 0.0,
- 0.611764705882353,
- 1.0,
- 0.8745098039,
- 0.0,
- 0.615686274509804,
- 1.0,
- 0.8862745098,
- 0.0,
- 0.6196078431372549,
- 1.0,
- 0.8980392157,
- 0.0,
- 0.6235294117647059,
- 1.0,
- 0.9098039216,
- 0.0,
- 0.6274509803921569,
- 1.0,
- 0.9254901961,
- 0.0,
- 0.6313725490196078,
- 1.0,
- 0.937254902,
- 0.0,
- 0.6352941176470588,
- 1.0,
- 0.9490196078,
- 0.0,
- 0.6392156862745098,
- 1.0,
- 0.9607843137,
- 0.0,
- 0.6431372549019608,
- 1.0,
- 0.9764705882,
- 0.0,
- 0.6470588235294118,
- 1.0,
- 0.9803921569,
- 0.0039215686,
- 0.6509803921568628,
- 1.0,
- 0.9882352941,
- 0.0117647059,
- 0.6549019607843137,
- 1.0,
- 0.9921568627,
- 0.0156862745,
- 0.6588235294117647,
- 1.0,
- 1.0,
- 0.0235294118,
- 0.6627450980392157,
- 1.0,
- 1.0,
- 0.0352941176,
- 0.6666666666666666,
- 1.0,
- 1.0,
- 0.0470588235,
- 0.6705882352941176,
- 1.0,
- 1.0,
- 0.0588235294,
- 0.6745098039215687,
- 1.0,
- 1.0,
- 0.0745098039,
- 0.6784313725490196,
- 1.0,
- 1.0,
- 0.0862745098,
- 0.6823529411764706,
- 1.0,
- 1.0,
- 0.0980392157,
- 0.6862745098039216,
- 1.0,
- 1.0,
- 0.1098039216,
- 0.6901960784313725,
- 1.0,
- 1.0,
- 0.1254901961,
- 0.6941176470588235,
- 1.0,
- 1.0,
- 0.137254902,
- 0.6980392156862745,
- 1.0,
- 1.0,
- 0.1490196078,
- 0.7019607843137254,
- 1.0,
- 1.0,
- 0.1607843137,
- 0.7058823529411765,
- 1.0,
- 1.0,
- 0.1764705882,
- 0.7098039215686275,
- 1.0,
- 1.0,
- 0.1882352941,
- 0.7137254901960784,
- 1.0,
- 1.0,
- 0.2,
- 0.7176470588235294,
- 1.0,
- 1.0,
- 0.2117647059,
- 0.7215686274509804,
- 1.0,
- 1.0,
- 0.2274509804,
- 0.7254901960784313,
- 1.0,
- 1.0,
- 0.2392156863,
- 0.7294117647058823,
- 1.0,
- 1.0,
- 0.2509803922,
- 0.7333333333333333,
- 1.0,
- 1.0,
- 0.262745098,
- 0.7372549019607844,
- 1.0,
- 1.0,
- 0.2784313725,
- 0.7411764705882353,
- 1.0,
- 1.0,
- 0.2901960784,
- 0.7450980392156863,
- 1.0,
- 1.0,
- 0.3019607843,
- 0.7490196078431373,
- 1.0,
- 1.0,
- 0.3137254902,
- 0.7529411764705882,
- 1.0,
- 1.0,
- 0.3294117647,
- 0.7568627450980392,
- 1.0,
- 1.0,
- 0.3411764706,
- 0.7607843137254902,
- 1.0,
- 1.0,
- 0.3529411765,
- 0.7647058823529411,
- 1.0,
- 1.0,
- 0.3647058824,
- 0.7686274509803922,
- 1.0,
- 1.0,
- 0.3803921569,
- 0.7725490196078432,
- 1.0,
- 1.0,
- 0.3921568627,
- 0.7764705882352941,
- 1.0,
- 1.0,
- 0.4039215686,
- 0.7803921568627451,
- 1.0,
- 1.0,
- 0.4156862745,
- 0.7843137254901961,
- 1.0,
- 1.0,
- 0.431372549,
- 0.788235294117647,
- 1.0,
- 1.0,
- 0.4431372549,
- 0.792156862745098,
- 1.0,
- 1.0,
- 0.4549019608,
- 0.796078431372549,
- 1.0,
- 1.0,
- 0.4666666667,
- 0.8,
- 1.0,
- 1.0,
- 0.4784313725,
- 0.803921568627451,
- 1.0,
- 1.0,
- 0.4901960784,
- 0.807843137254902,
- 1.0,
- 1.0,
- 0.5019607843,
- 0.8117647058823529,
- 1.0,
- 1.0,
- 0.5137254902,
- 0.8156862745098039,
- 1.0,
- 1.0,
- 0.5294117647,
- 0.8196078431372549,
- 1.0,
- 1.0,
- 0.5411764706,
- 0.8235294117647058,
- 1.0,
- 1.0,
- 0.5568627451,
- 0.8274509803921568,
- 1.0,
- 1.0,
- 0.568627451,
- 0.8313725490196079,
- 1.0,
- 1.0,
- 0.5843137255,
- 0.8352941176470589,
- 1.0,
- 1.0,
- 0.5960784314,
- 0.8392156862745098,
- 1.0,
- 1.0,
- 0.6078431373,
- 0.8431372549019608,
- 1.0,
- 1.0,
- 0.6196078431,
- 0.8470588235294118,
- 1.0,
- 1.0,
- 0.631372549,
- 0.8509803921568627,
- 1.0,
- 1.0,
- 0.6431372549,
- 0.8549019607843137,
- 1.0,
- 1.0,
- 0.6549019608,
- 0.8588235294117647,
- 1.0,
- 1.0,
- 0.6666666667,
- 0.8627450980392157,
- 1.0,
- 1.0,
- 0.6823529412,
- 0.8666666666666667,
- 1.0,
- 1.0,
- 0.6941176471,
- 0.8705882352941177,
- 1.0,
- 1.0,
- 0.7058823529,
- 0.8745098039215686,
- 1.0,
- 1.0,
- 0.7176470588,
- 0.8784313725490196,
- 1.0,
- 1.0,
- 0.7333333333,
- 0.8823529411764706,
- 1.0,
- 1.0,
- 0.7450980392,
- 0.8862745098039215,
- 1.0,
- 1.0,
- 0.7568627451,
- 0.8901960784313725,
- 1.0,
- 1.0,
- 0.768627451,
- 0.8941176470588236,
- 1.0,
- 1.0,
- 0.7843137255,
- 0.8980392156862745,
- 1.0,
- 1.0,
- 0.7960784314,
- 0.9019607843137255,
- 1.0,
- 1.0,
- 0.8078431373,
- 0.9058823529411765,
- 1.0,
- 1.0,
- 0.8196078431,
- 0.9098039215686274,
- 1.0,
- 1.0,
- 0.8352941176,
- 0.9137254901960784,
- 1.0,
- 1.0,
- 0.8470588235,
- 0.9176470588235294,
- 1.0,
- 1.0,
- 0.8588235294,
- 0.9215686274509803,
- 1.0,
- 1.0,
- 0.8705882353,
- 0.9254901960784314,
- 1.0,
- 1.0,
- 0.8823529412,
- 0.9294117647058824,
- 1.0,
- 1.0,
- 0.8941176471,
- 0.9333333333333333,
- 1.0,
- 1.0,
- 0.9098039216,
- 0.9372549019607843,
- 1.0,
- 1.0,
- 0.9215686275,
- 0.9411764705882354,
- 1.0,
- 1.0,
- 0.937254902,
- 0.9450980392156864,
- 1.0,
- 1.0,
- 0.9490196078,
- 0.9490196078431372,
- 1.0,
- 1.0,
- 0.9607843137,
- 0.9529411764705882,
- 1.0,
- 1.0,
- 0.9725490196,
- 0.9568627450980394,
- 1.0,
- 1.0,
- 0.9882352941,
- 0.9607843137254903,
- 1.0,
- 1.0,
- 0.9882352941,
- 0.9647058823529413,
- 1.0,
- 1.0,
- 0.9921568627,
- 0.9686274509803922,
- 1.0,
- 1.0,
- 0.9960784314,
- 0.9725490196078431,
- 1.0,
- 1.0,
- 1.0,
- 0.9764705882352941,
- 1.0,
- 1.0,
- 1.0,
- 0.9803921568627451,
- 1.0,
- 1.0,
- 1.0,
- 0.984313725490196,
- 1.0,
- 1.0,
- 1.0,
- 0.9882352941176471,
- 1.0,
- 1.0,
- 1.0,
- 0.9921568627450981,
- 1.0,
- 1.0,
- 1.0,
- 0.996078431372549,
- 1.0,
- 1.0,
- 1.0,
- 1.0,
- 1.0,
- 1.0,
- 1.0,
+ 0.0, 0.0, 0.0, 0.0, 0.00392156862745098, 0.0, 0.0, 0.0, 0.00784313725490196, 0.0, 0.0, 0.0,
+ 0.011764705882352941, 0.0, 0.0, 0.0, 0.01568627450980392, 0.0039215686, 0.0039215686,
+ 0.0039215686, 0.0196078431372549, 0.0039215686, 0.0039215686, 0.0039215686,
+ 0.023529411764705882, 0.0039215686, 0.0039215686, 0.0039215686, 0.027450980392156862,
+ 0.0039215686, 0.0039215686, 0.0039215686, 0.03137254901960784, 0.0039215686, 0.0039215686,
+ 0.0039215686, 0.03529411764705882, 0.0156862745, 0.0, 0.0, 0.0392156862745098, 0.0274509804,
+ 0.0, 0.0, 0.043137254901960784, 0.0392156863, 0.0, 0.0, 0.047058823529411764, 0.0509803922,
+ 0.0, 0.0, 0.050980392156862744, 0.062745098, 0.0, 0.0, 0.054901960784313725, 0.0784313725,
+ 0.0, 0.0, 0.05882352941176471, 0.0901960784, 0.0, 0.0, 0.06274509803921569, 0.1058823529, 0.0,
+ 0.0, 0.06666666666666667, 0.1176470588, 0.0, 0.0, 0.07058823529411765, 0.1294117647, 0.0, 0.0,
+ 0.07450980392156863, 0.1411764706, 0.0, 0.0, 0.0784313725490196, 0.1529411765, 0.0, 0.0,
+ 0.08235294117647059, 0.1647058824, 0.0, 0.0, 0.08627450980392157, 0.1764705882, 0.0, 0.0,
+ 0.09019607843137255, 0.1882352941, 0.0, 0.0, 0.09411764705882353, 0.2039215686, 0.0, 0.0,
+ 0.09803921568627451, 0.2156862745, 0.0, 0.0, 0.10196078431372549, 0.2274509804, 0.0, 0.0,
+ 0.10588235294117647, 0.2392156863, 0.0, 0.0, 0.10980392156862745, 0.2549019608, 0.0, 0.0,
+ 0.11372549019607843, 0.2666666667, 0.0, 0.0, 0.11764705882352942, 0.2784313725, 0.0, 0.0,
+ 0.12156862745098039, 0.2901960784, 0.0, 0.0, 0.12549019607843137, 0.3058823529, 0.0, 0.0,
+ 0.12941176470588237, 0.3176470588, 0.0, 0.0, 0.13333333333333333, 0.3294117647, 0.0, 0.0,
+ 0.13725490196078433, 0.3411764706, 0.0, 0.0, 0.1411764705882353, 0.3529411765, 0.0, 0.0,
+ 0.1450980392156863, 0.3647058824, 0.0, 0.0, 0.14901960784313725, 0.3764705882, 0.0, 0.0,
+ 0.15294117647058825, 0.3882352941, 0.0, 0.0, 0.1568627450980392, 0.4039215686, 0.0, 0.0,
+ 0.1607843137254902, 0.4156862745, 0.0, 0.0, 0.16470588235294117, 0.431372549, 0.0, 0.0,
+ 0.16862745098039217, 0.4431372549, 0.0, 0.0, 0.17254901960784313, 0.4588235294, 0.0, 0.0,
+ 0.17647058823529413, 0.4705882353, 0.0, 0.0, 0.1803921568627451, 0.4823529412, 0.0, 0.0,
+ 0.1843137254901961, 0.4941176471, 0.0, 0.0, 0.18823529411764706, 0.5098039216, 0.0, 0.0,
+ 0.19215686274509805, 0.5215686275, 0.0, 0.0, 0.19607843137254902, 0.5333333333, 0.0, 0.0, 0.2,
+ 0.5450980392, 0.0, 0.0, 0.20392156862745098, 0.5568627451, 0.0, 0.0, 0.20784313725490197,
+ 0.568627451, 0.0, 0.0, 0.21176470588235294, 0.5803921569, 0.0, 0.0, 0.21568627450980393,
+ 0.5921568627, 0.0, 0.0, 0.2196078431372549, 0.6078431373, 0.0, 0.0, 0.2235294117647059,
+ 0.6196078431, 0.0, 0.0, 0.22745098039215686, 0.631372549, 0.0, 0.0, 0.23137254901960785,
+ 0.6431372549, 0.0, 0.0, 0.23529411764705885, 0.6588235294, 0.0, 0.0, 0.23921568627450984,
+ 0.6705882353, 0.0, 0.0, 0.24313725490196078, 0.6823529412, 0.0, 0.0, 0.24705882352941178,
+ 0.6941176471, 0.0, 0.0, 0.25098039215686274, 0.7098039216, 0.0, 0.0, 0.2549019607843137,
+ 0.7215686275, 0.0, 0.0, 0.25882352941176473, 0.7333333333, 0.0, 0.0, 0.2627450980392157,
+ 0.7450980392, 0.0, 0.0, 0.26666666666666666, 0.7568627451, 0.0, 0.0, 0.27058823529411763,
+ 0.768627451, 0.0, 0.0, 0.27450980392156865, 0.7843137255, 0.0, 0.0, 0.2784313725490196,
+ 0.7960784314, 0.0, 0.0, 0.2823529411764706, 0.8117647059, 0.0, 0.0, 0.28627450980392155,
+ 0.8235294118, 0.0, 0.0, 0.2901960784313726, 0.8352941176, 0.0, 0.0, 0.29411764705882354,
+ 0.8470588235, 0.0, 0.0, 0.2980392156862745, 0.862745098, 0.0, 0.0, 0.30196078431372547,
+ 0.8745098039, 0.0, 0.0, 0.3058823529411765, 0.8862745098, 0.0, 0.0, 0.30980392156862746,
+ 0.8980392157, 0.0, 0.0, 0.3137254901960784, 0.9137254902, 0.0, 0.0, 0.3176470588235294,
+ 0.9254901961, 0.0, 0.0, 0.3215686274509804, 0.937254902, 0.0, 0.0, 0.3254901960784314,
+ 0.9490196078, 0.0, 0.0, 0.32941176470588235, 0.9607843137, 0.0, 0.0, 0.3333333333333333,
+ 0.968627451, 0.0, 0.0, 0.33725490196078434, 0.9803921569, 0.0039215686, 0.0,
+ 0.3411764705882353, 0.9882352941, 0.0078431373, 0.0, 0.34509803921568627, 1.0, 0.0117647059,
+ 0.0, 0.34901960784313724, 1.0, 0.0235294118, 0.0, 0.35294117647058826, 1.0, 0.0352941176, 0.0,
+ 0.3568627450980392, 1.0, 0.0470588235, 0.0, 0.3607843137254902, 1.0, 0.062745098, 0.0,
+ 0.36470588235294116, 1.0, 0.0745098039, 0.0, 0.3686274509803922, 1.0, 0.0862745098, 0.0,
+ 0.37254901960784315, 1.0, 0.0980392157, 0.0, 0.3764705882352941, 1.0, 0.1137254902, 0.0,
+ 0.3803921568627451, 1.0, 0.1254901961, 0.0, 0.3843137254901961, 1.0, 0.137254902, 0.0,
+ 0.38823529411764707, 1.0, 0.1490196078, 0.0, 0.39215686274509803, 1.0, 0.1647058824, 0.0,
+ 0.396078431372549, 1.0, 0.1764705882, 0.0, 0.4, 1.0, 0.1882352941, 0.0, 0.403921568627451,
+ 1.0, 0.2, 0.0, 0.40784313725490196, 1.0, 0.2156862745, 0.0, 0.4117647058823529, 1.0,
+ 0.2274509804, 0.0, 0.41568627450980394, 1.0, 0.2392156863, 0.0, 0.4196078431372549, 1.0,
+ 0.2509803922, 0.0, 0.4235294117647059, 1.0, 0.2666666667, 0.0, 0.42745098039215684, 1.0,
+ 0.2784313725, 0.0, 0.43137254901960786, 1.0, 0.2901960784, 0.0, 0.43529411764705883, 1.0,
+ 0.3019607843, 0.0, 0.4392156862745098, 1.0, 0.3176470588, 0.0, 0.44313725490196076, 1.0,
+ 0.3294117647, 0.0, 0.4470588235294118, 1.0, 0.3411764706, 0.0, 0.45098039215686275, 1.0,
+ 0.3529411765, 0.0, 0.4549019607843137, 1.0, 0.368627451, 0.0, 0.4588235294117647, 1.0,
+ 0.3803921569, 0.0, 0.4627450980392157, 1.0, 0.3921568627, 0.0, 0.4666666666666667, 1.0,
+ 0.4039215686, 0.0, 0.4705882352941177, 1.0, 0.4156862745, 0.0, 0.4745098039215686, 1.0,
+ 0.4274509804, 0.0, 0.4784313725490197, 1.0, 0.4392156863, 0.0, 0.48235294117647065, 1.0,
+ 0.4509803922, 0.0, 0.48627450980392156, 1.0, 0.4666666667, 0.0, 0.49019607843137253, 1.0,
+ 0.4784313725, 0.0, 0.49411764705882355, 1.0, 0.4941176471, 0.0, 0.4980392156862745, 1.0,
+ 0.5058823529, 0.0, 0.5019607843137255, 1.0, 0.5215686275, 0.0, 0.5058823529411764, 1.0,
+ 0.5333333333, 0.0, 0.5098039215686274, 1.0, 0.5450980392, 0.0, 0.5137254901960784, 1.0,
+ 0.5568627451, 0.0, 0.5176470588235295, 1.0, 0.568627451, 0.0, 0.5215686274509804, 1.0,
+ 0.5803921569, 0.0, 0.5254901960784314, 1.0, 0.5921568627, 0.0, 0.5294117647058824, 1.0,
+ 0.6039215686, 0.0, 0.5333333333333333, 1.0, 0.6196078431, 0.0, 0.5372549019607843, 1.0,
+ 0.631372549, 0.0, 0.5411764705882353, 1.0, 0.6431372549, 0.0, 0.5450980392156862, 1.0,
+ 0.6549019608, 0.0, 0.5490196078431373, 1.0, 0.6705882353, 0.0, 0.5529411764705883, 1.0,
+ 0.6823529412, 0.0, 0.5568627450980392, 1.0, 0.6941176471, 0.0, 0.5607843137254902, 1.0,
+ 0.7058823529, 0.0, 0.5647058823529412, 1.0, 0.7215686275, 0.0, 0.5686274509803921, 1.0,
+ 0.7333333333, 0.0, 0.5725490196078431, 1.0, 0.7450980392, 0.0, 0.5764705882352941, 1.0,
+ 0.7568627451, 0.0, 0.5803921568627451, 1.0, 0.7725490196, 0.0, 0.5843137254901961, 1.0,
+ 0.7843137255, 0.0, 0.5882352941176471, 1.0, 0.7960784314, 0.0, 0.592156862745098, 1.0,
+ 0.8078431373, 0.0, 0.596078431372549, 1.0, 0.8196078431, 0.0, 0.6, 1.0, 0.831372549, 0.0,
+ 0.6039215686274509, 1.0, 0.8470588235, 0.0, 0.6078431372549019, 1.0, 0.8588235294, 0.0,
+ 0.611764705882353, 1.0, 0.8745098039, 0.0, 0.615686274509804, 1.0, 0.8862745098, 0.0,
+ 0.6196078431372549, 1.0, 0.8980392157, 0.0, 0.6235294117647059, 1.0, 0.9098039216, 0.0,
+ 0.6274509803921569, 1.0, 0.9254901961, 0.0, 0.6313725490196078, 1.0, 0.937254902, 0.0,
+ 0.6352941176470588, 1.0, 0.9490196078, 0.0, 0.6392156862745098, 1.0, 0.9607843137, 0.0,
+ 0.6431372549019608, 1.0, 0.9764705882, 0.0, 0.6470588235294118, 1.0, 0.9803921569,
+ 0.0039215686, 0.6509803921568628, 1.0, 0.9882352941, 0.0117647059, 0.6549019607843137, 1.0,
+ 0.9921568627, 0.0156862745, 0.6588235294117647, 1.0, 1.0, 0.0235294118, 0.6627450980392157,
+ 1.0, 1.0, 0.0352941176, 0.6666666666666666, 1.0, 1.0, 0.0470588235, 0.6705882352941176, 1.0,
+ 1.0, 0.0588235294, 0.6745098039215687, 1.0, 1.0, 0.0745098039, 0.6784313725490196, 1.0, 1.0,
+ 0.0862745098, 0.6823529411764706, 1.0, 1.0, 0.0980392157, 0.6862745098039216, 1.0, 1.0,
+ 0.1098039216, 0.6901960784313725, 1.0, 1.0, 0.1254901961, 0.6941176470588235, 1.0, 1.0,
+ 0.137254902, 0.6980392156862745, 1.0, 1.0, 0.1490196078, 0.7019607843137254, 1.0, 1.0,
+ 0.1607843137, 0.7058823529411765, 1.0, 1.0, 0.1764705882, 0.7098039215686275, 1.0, 1.0,
+ 0.1882352941, 0.7137254901960784, 1.0, 1.0, 0.2, 0.7176470588235294, 1.0, 1.0, 0.2117647059,
+ 0.7215686274509804, 1.0, 1.0, 0.2274509804, 0.7254901960784313, 1.0, 1.0, 0.2392156863,
+ 0.7294117647058823, 1.0, 1.0, 0.2509803922, 0.7333333333333333, 1.0, 1.0, 0.262745098,
+ 0.7372549019607844, 1.0, 1.0, 0.2784313725, 0.7411764705882353, 1.0, 1.0, 0.2901960784,
+ 0.7450980392156863, 1.0, 1.0, 0.3019607843, 0.7490196078431373, 1.0, 1.0, 0.3137254902,
+ 0.7529411764705882, 1.0, 1.0, 0.3294117647, 0.7568627450980392, 1.0, 1.0, 0.3411764706,
+ 0.7607843137254902, 1.0, 1.0, 0.3529411765, 0.7647058823529411, 1.0, 1.0, 0.3647058824,
+ 0.7686274509803922, 1.0, 1.0, 0.3803921569, 0.7725490196078432, 1.0, 1.0, 0.3921568627,
+ 0.7764705882352941, 1.0, 1.0, 0.4039215686, 0.7803921568627451, 1.0, 1.0, 0.4156862745,
+ 0.7843137254901961, 1.0, 1.0, 0.431372549, 0.788235294117647, 1.0, 1.0, 0.4431372549,
+ 0.792156862745098, 1.0, 1.0, 0.4549019608, 0.796078431372549, 1.0, 1.0, 0.4666666667, 0.8,
+ 1.0, 1.0, 0.4784313725, 0.803921568627451, 1.0, 1.0, 0.4901960784, 0.807843137254902, 1.0,
+ 1.0, 0.5019607843, 0.8117647058823529, 1.0, 1.0, 0.5137254902, 0.8156862745098039, 1.0, 1.0,
+ 0.5294117647, 0.8196078431372549, 1.0, 1.0, 0.5411764706, 0.8235294117647058, 1.0, 1.0,
+ 0.5568627451, 0.8274509803921568, 1.0, 1.0, 0.568627451, 0.8313725490196079, 1.0, 1.0,
+ 0.5843137255, 0.8352941176470589, 1.0, 1.0, 0.5960784314, 0.8392156862745098, 1.0, 1.0,
+ 0.6078431373, 0.8431372549019608, 1.0, 1.0, 0.6196078431, 0.8470588235294118, 1.0, 1.0,
+ 0.631372549, 0.8509803921568627, 1.0, 1.0, 0.6431372549, 0.8549019607843137, 1.0, 1.0,
+ 0.6549019608, 0.8588235294117647, 1.0, 1.0, 0.6666666667, 0.8627450980392157, 1.0, 1.0,
+ 0.6823529412, 0.8666666666666667, 1.0, 1.0, 0.6941176471, 0.8705882352941177, 1.0, 1.0,
+ 0.7058823529, 0.8745098039215686, 1.0, 1.0, 0.7176470588, 0.8784313725490196, 1.0, 1.0,
+ 0.7333333333, 0.8823529411764706, 1.0, 1.0, 0.7450980392, 0.8862745098039215, 1.0, 1.0,
+ 0.7568627451, 0.8901960784313725, 1.0, 1.0, 0.768627451, 0.8941176470588236, 1.0, 1.0,
+ 0.7843137255, 0.8980392156862745, 1.0, 1.0, 0.7960784314, 0.9019607843137255, 1.0, 1.0,
+ 0.8078431373, 0.9058823529411765, 1.0, 1.0, 0.8196078431, 0.9098039215686274, 1.0, 1.0,
+ 0.8352941176, 0.9137254901960784, 1.0, 1.0, 0.8470588235, 0.9176470588235294, 1.0, 1.0,
+ 0.8588235294, 0.9215686274509803, 1.0, 1.0, 0.8705882353, 0.9254901960784314, 1.0, 1.0,
+ 0.8823529412, 0.9294117647058824, 1.0, 1.0, 0.8941176471, 0.9333333333333333, 1.0, 1.0,
+ 0.9098039216, 0.9372549019607843, 1.0, 1.0, 0.9215686275, 0.9411764705882354, 1.0, 1.0,
+ 0.937254902, 0.9450980392156864, 1.0, 1.0, 0.9490196078, 0.9490196078431372, 1.0, 1.0,
+ 0.9607843137, 0.9529411764705882, 1.0, 1.0, 0.9725490196, 0.9568627450980394, 1.0, 1.0,
+ 0.9882352941, 0.9607843137254903, 1.0, 1.0, 0.9882352941, 0.9647058823529413, 1.0, 1.0,
+ 0.9921568627, 0.9686274509803922, 1.0, 1.0, 0.9960784314, 0.9725490196078431, 1.0, 1.0, 1.0,
+ 0.9764705882352941, 1.0, 1.0, 1.0, 0.9803921568627451, 1.0, 1.0, 1.0, 0.984313725490196, 1.0,
+ 1.0, 1.0, 0.9882352941176471, 1.0, 1.0, 1.0, 0.9921568627450981, 1.0, 1.0, 1.0,
+ 0.996078431372549, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
],
},
{
ColorSpace: 'RGB',
Name: 's_pet',
RGBPoints: [
- 0.0,
- 0.0156862745,
- 0.0039215686,
- 0.0156862745,
- 0.00392156862745098,
- 0.0156862745,
- 0.0039215686,
- 0.0156862745,
- 0.00784313725490196,
- 0.0274509804,
- 0.0039215686,
- 0.031372549,
- 0.011764705882352941,
- 0.0352941176,
- 0.0039215686,
- 0.0509803922,
- 0.01568627450980392,
- 0.0392156863,
- 0.0039215686,
- 0.0666666667,
- 0.0196078431372549,
- 0.0509803922,
- 0.0039215686,
- 0.0823529412,
- 0.023529411764705882,
- 0.062745098,
- 0.0039215686,
- 0.0980392157,
- 0.027450980392156862,
- 0.0705882353,
- 0.0039215686,
- 0.1176470588,
- 0.03137254901960784,
- 0.0745098039,
- 0.0039215686,
- 0.1333333333,
- 0.03529411764705882,
- 0.0862745098,
- 0.0039215686,
- 0.1490196078,
- 0.0392156862745098,
- 0.0980392157,
- 0.0039215686,
- 0.1647058824,
- 0.043137254901960784,
- 0.1058823529,
- 0.0039215686,
- 0.1843137255,
- 0.047058823529411764,
- 0.1098039216,
- 0.0039215686,
- 0.2,
- 0.050980392156862744,
- 0.1215686275,
- 0.0039215686,
- 0.2156862745,
- 0.054901960784313725,
- 0.1333333333,
- 0.0039215686,
- 0.231372549,
- 0.05882352941176471,
- 0.137254902,
- 0.0039215686,
- 0.2509803922,
- 0.06274509803921569,
- 0.1490196078,
- 0.0039215686,
- 0.262745098,
- 0.06666666666666667,
- 0.1607843137,
- 0.0039215686,
- 0.2784313725,
- 0.07058823529411765,
- 0.168627451,
- 0.0039215686,
- 0.2941176471,
- 0.07450980392156863,
- 0.1725490196,
- 0.0039215686,
- 0.3137254902,
- 0.0784313725490196,
- 0.1843137255,
- 0.0039215686,
- 0.3294117647,
- 0.08235294117647059,
- 0.1960784314,
- 0.0039215686,
- 0.3450980392,
- 0.08627450980392157,
- 0.2039215686,
- 0.0039215686,
- 0.3607843137,
- 0.09019607843137255,
- 0.2078431373,
- 0.0039215686,
- 0.3803921569,
- 0.09411764705882353,
- 0.2196078431,
- 0.0039215686,
- 0.3960784314,
- 0.09803921568627451,
- 0.231372549,
- 0.0039215686,
- 0.4117647059,
- 0.10196078431372549,
- 0.2392156863,
- 0.0039215686,
- 0.4274509804,
- 0.10588235294117647,
- 0.2431372549,
- 0.0039215686,
- 0.4470588235,
- 0.10980392156862745,
- 0.2509803922,
- 0.0039215686,
- 0.462745098,
- 0.11372549019607843,
- 0.262745098,
- 0.0039215686,
- 0.4784313725,
- 0.11764705882352942,
- 0.2666666667,
- 0.0039215686,
- 0.4980392157,
- 0.12156862745098039,
- 0.2666666667,
- 0.0039215686,
- 0.4980392157,
- 0.12549019607843137,
- 0.262745098,
- 0.0039215686,
- 0.5137254902,
- 0.12941176470588237,
- 0.2509803922,
- 0.0039215686,
- 0.5294117647,
- 0.13333333333333333,
- 0.2431372549,
- 0.0039215686,
- 0.5450980392,
- 0.13725490196078433,
- 0.2392156863,
- 0.0039215686,
- 0.5607843137,
- 0.1411764705882353,
- 0.231372549,
- 0.0039215686,
- 0.5764705882,
- 0.1450980392156863,
- 0.2196078431,
- 0.0039215686,
- 0.5921568627,
- 0.14901960784313725,
- 0.2078431373,
- 0.0039215686,
- 0.6078431373,
- 0.15294117647058825,
- 0.2039215686,
- 0.0039215686,
- 0.6235294118,
- 0.1568627450980392,
- 0.1960784314,
- 0.0039215686,
- 0.6392156863,
- 0.1607843137254902,
- 0.1843137255,
- 0.0039215686,
- 0.6549019608,
- 0.16470588235294117,
- 0.1725490196,
- 0.0039215686,
- 0.6705882353,
- 0.16862745098039217,
- 0.168627451,
- 0.0039215686,
- 0.6862745098,
- 0.17254901960784313,
- 0.1607843137,
- 0.0039215686,
- 0.7019607843,
- 0.17647058823529413,
- 0.1490196078,
- 0.0039215686,
- 0.7176470588,
- 0.1803921568627451,
- 0.137254902,
- 0.0039215686,
- 0.7333333333,
- 0.1843137254901961,
- 0.1333333333,
- 0.0039215686,
- 0.7490196078,
- 0.18823529411764706,
- 0.1215686275,
- 0.0039215686,
- 0.7607843137,
- 0.19215686274509805,
- 0.1098039216,
- 0.0039215686,
- 0.7764705882,
- 0.19607843137254902,
- 0.1058823529,
- 0.0039215686,
- 0.7921568627,
- 0.2,
- 0.0980392157,
- 0.0039215686,
- 0.8078431373,
- 0.20392156862745098,
- 0.0862745098,
- 0.0039215686,
- 0.8235294118,
- 0.20784313725490197,
- 0.0745098039,
- 0.0039215686,
- 0.8392156863,
- 0.21176470588235294,
- 0.0705882353,
- 0.0039215686,
- 0.8549019608,
- 0.21568627450980393,
- 0.062745098,
- 0.0039215686,
- 0.8705882353,
- 0.2196078431372549,
- 0.0509803922,
- 0.0039215686,
- 0.8862745098,
- 0.2235294117647059,
- 0.0392156863,
- 0.0039215686,
- 0.9019607843,
- 0.22745098039215686,
- 0.0352941176,
- 0.0039215686,
- 0.9176470588,
- 0.23137254901960785,
- 0.0274509804,
- 0.0039215686,
- 0.9333333333,
- 0.23529411764705885,
- 0.0156862745,
- 0.0039215686,
- 0.9490196078,
- 0.23921568627450984,
- 0.0078431373,
- 0.0039215686,
- 0.9647058824,
- 0.24313725490196078,
- 0.0039215686,
- 0.0039215686,
- 0.9960784314,
- 0.24705882352941178,
- 0.0039215686,
- 0.0039215686,
- 0.9960784314,
- 0.25098039215686274,
- 0.0039215686,
- 0.0196078431,
- 0.9647058824,
- 0.2549019607843137,
- 0.0039215686,
- 0.0392156863,
- 0.9490196078,
- 0.25882352941176473,
- 0.0039215686,
- 0.0549019608,
- 0.9333333333,
- 0.2627450980392157,
- 0.0039215686,
- 0.0745098039,
- 0.9176470588,
- 0.26666666666666666,
- 0.0039215686,
- 0.0901960784,
- 0.9019607843,
- 0.27058823529411763,
- 0.0039215686,
- 0.1098039216,
- 0.8862745098,
- 0.27450980392156865,
- 0.0039215686,
- 0.1254901961,
- 0.8705882353,
- 0.2784313725490196,
- 0.0039215686,
- 0.1450980392,
- 0.8549019608,
- 0.2823529411764706,
- 0.0039215686,
- 0.1607843137,
- 0.8392156863,
- 0.28627450980392155,
- 0.0039215686,
- 0.1803921569,
- 0.8235294118,
- 0.2901960784313726,
- 0.0039215686,
- 0.1960784314,
- 0.8078431373,
- 0.29411764705882354,
- 0.0039215686,
- 0.2156862745,
- 0.7921568627,
- 0.2980392156862745,
- 0.0039215686,
- 0.231372549,
- 0.7764705882,
- 0.30196078431372547,
- 0.0039215686,
- 0.2509803922,
- 0.7607843137,
- 0.3058823529411765,
- 0.0039215686,
- 0.262745098,
- 0.7490196078,
- 0.30980392156862746,
- 0.0039215686,
- 0.2823529412,
- 0.7333333333,
- 0.3137254901960784,
- 0.0039215686,
- 0.2980392157,
- 0.7176470588,
- 0.3176470588235294,
- 0.0039215686,
- 0.3176470588,
- 0.7019607843,
- 0.3215686274509804,
- 0.0039215686,
- 0.3333333333,
- 0.6862745098,
- 0.3254901960784314,
- 0.0039215686,
- 0.3529411765,
- 0.6705882353,
- 0.32941176470588235,
- 0.0039215686,
- 0.368627451,
- 0.6549019608,
- 0.3333333333333333,
- 0.0039215686,
- 0.3882352941,
- 0.6392156863,
- 0.33725490196078434,
- 0.0039215686,
- 0.4039215686,
- 0.6235294118,
- 0.3411764705882353,
- 0.0039215686,
- 0.4235294118,
- 0.6078431373,
- 0.34509803921568627,
- 0.0039215686,
- 0.4392156863,
- 0.5921568627,
- 0.34901960784313724,
- 0.0039215686,
- 0.4588235294,
- 0.5764705882,
- 0.35294117647058826,
- 0.0039215686,
- 0.4745098039,
- 0.5607843137,
- 0.3568627450980392,
- 0.0039215686,
- 0.4941176471,
- 0.5450980392,
- 0.3607843137254902,
- 0.0039215686,
- 0.5098039216,
- 0.5294117647,
- 0.36470588235294116,
- 0.0039215686,
- 0.5294117647,
- 0.5137254902,
- 0.3686274509803922,
- 0.0039215686,
- 0.5450980392,
- 0.4980392157,
- 0.37254901960784315,
- 0.0039215686,
- 0.5647058824,
- 0.4784313725,
- 0.3764705882352941,
- 0.0039215686,
- 0.5803921569,
- 0.462745098,
- 0.3803921568627451,
- 0.0039215686,
- 0.6,
- 0.4470588235,
- 0.3843137254901961,
- 0.0039215686,
- 0.6156862745,
- 0.4274509804,
- 0.38823529411764707,
- 0.0039215686,
- 0.6352941176,
- 0.4117647059,
- 0.39215686274509803,
- 0.0039215686,
- 0.6509803922,
- 0.3960784314,
- 0.396078431372549,
- 0.0039215686,
- 0.6705882353,
- 0.3803921569,
- 0.4,
- 0.0039215686,
- 0.6862745098,
- 0.3607843137,
- 0.403921568627451,
- 0.0039215686,
- 0.7058823529,
- 0.3450980392,
- 0.40784313725490196,
- 0.0039215686,
- 0.7215686275,
- 0.3294117647,
- 0.4117647058823529,
- 0.0039215686,
- 0.7411764706,
- 0.3137254902,
- 0.41568627450980394,
- 0.0039215686,
- 0.7529411765,
- 0.2941176471,
- 0.4196078431372549,
- 0.0039215686,
- 0.7960784314,
- 0.2784313725,
- 0.4235294117647059,
- 0.0039215686,
- 0.7960784314,
- 0.262745098,
- 0.42745098039215684,
- 0.0392156863,
- 0.8039215686,
- 0.2509803922,
- 0.43137254901960786,
- 0.0745098039,
- 0.8117647059,
- 0.231372549,
- 0.43529411764705883,
- 0.1098039216,
- 0.8196078431,
- 0.2156862745,
- 0.4392156862745098,
- 0.1450980392,
- 0.8274509804,
- 0.2,
- 0.44313725490196076,
- 0.1803921569,
- 0.8352941176,
- 0.1843137255,
- 0.4470588235294118,
- 0.2156862745,
- 0.8431372549,
- 0.1647058824,
- 0.45098039215686275,
- 0.2509803922,
- 0.8509803922,
- 0.1490196078,
- 0.4549019607843137,
- 0.2823529412,
- 0.8588235294,
- 0.1333333333,
- 0.4588235294117647,
- 0.3176470588,
- 0.8666666667,
- 0.1176470588,
- 0.4627450980392157,
- 0.3529411765,
- 0.8745098039,
- 0.0980392157,
- 0.4666666666666667,
- 0.3882352941,
- 0.8823529412,
- 0.0823529412,
- 0.4705882352941177,
- 0.4235294118,
- 0.8901960784,
- 0.0666666667,
- 0.4745098039215686,
- 0.4588235294,
- 0.8980392157,
- 0.0509803922,
- 0.4784313725490197,
- 0.4941176471,
- 0.9058823529,
- 0.0431372549,
- 0.48235294117647065,
- 0.5294117647,
- 0.9137254902,
- 0.031372549,
- 0.48627450980392156,
- 0.5647058824,
- 0.9215686275,
- 0.0196078431,
- 0.49019607843137253,
- 0.6,
- 0.9294117647,
- 0.0078431373,
- 0.49411764705882355,
- 0.6352941176,
- 0.937254902,
- 0.0039215686,
- 0.4980392156862745,
- 0.6705882353,
- 0.9450980392,
- 0.0039215686,
- 0.5019607843137255,
- 0.7058823529,
- 0.9490196078,
- 0.0039215686,
- 0.5058823529411764,
- 0.7411764706,
- 0.9568627451,
- 0.0039215686,
- 0.5098039215686274,
- 0.7725490196,
- 0.9607843137,
- 0.0039215686,
- 0.5137254901960784,
- 0.8078431373,
- 0.968627451,
- 0.0039215686,
- 0.5176470588235295,
- 0.8431372549,
- 0.9725490196,
- 0.0039215686,
- 0.5215686274509804,
- 0.8784313725,
- 0.9803921569,
- 0.0039215686,
- 0.5254901960784314,
- 0.9137254902,
- 0.9843137255,
- 0.0039215686,
- 0.5294117647058824,
- 0.9490196078,
- 0.9921568627,
- 0.0039215686,
- 0.5333333333333333,
- 0.9960784314,
- 0.9960784314,
- 0.0039215686,
- 0.5372549019607843,
- 0.9960784314,
- 0.9960784314,
- 0.0039215686,
- 0.5411764705882353,
- 0.9960784314,
- 0.9921568627,
- 0.0039215686,
- 0.5450980392156862,
- 0.9960784314,
- 0.9843137255,
- 0.0039215686,
- 0.5490196078431373,
- 0.9960784314,
- 0.9764705882,
- 0.0039215686,
- 0.5529411764705883,
- 0.9960784314,
- 0.968627451,
- 0.0039215686,
- 0.5568627450980392,
- 0.9960784314,
- 0.9607843137,
- 0.0039215686,
- 0.5607843137254902,
- 0.9960784314,
- 0.9529411765,
- 0.0039215686,
- 0.5647058823529412,
- 0.9960784314,
- 0.9450980392,
- 0.0039215686,
- 0.5686274509803921,
- 0.9960784314,
- 0.937254902,
- 0.0039215686,
- 0.5725490196078431,
- 0.9960784314,
- 0.9294117647,
- 0.0039215686,
- 0.5764705882352941,
- 0.9960784314,
- 0.9215686275,
- 0.0039215686,
- 0.5803921568627451,
- 0.9960784314,
- 0.9137254902,
- 0.0039215686,
- 0.5843137254901961,
- 0.9960784314,
- 0.9058823529,
- 0.0039215686,
- 0.5882352941176471,
- 0.9960784314,
- 0.8980392157,
- 0.0039215686,
- 0.592156862745098,
- 0.9960784314,
- 0.8901960784,
- 0.0039215686,
- 0.596078431372549,
- 0.9960784314,
- 0.8823529412,
- 0.0039215686,
- 0.6,
- 0.9960784314,
- 0.8745098039,
- 0.0039215686,
- 0.6039215686274509,
- 0.9960784314,
- 0.8666666667,
- 0.0039215686,
- 0.6078431372549019,
- 0.9960784314,
- 0.8588235294,
- 0.0039215686,
- 0.611764705882353,
- 0.9960784314,
- 0.8509803922,
- 0.0039215686,
- 0.615686274509804,
- 0.9960784314,
- 0.8431372549,
- 0.0039215686,
- 0.6196078431372549,
- 0.9960784314,
- 0.8352941176,
- 0.0039215686,
- 0.6235294117647059,
- 0.9960784314,
- 0.8274509804,
- 0.0039215686,
- 0.6274509803921569,
- 0.9960784314,
- 0.8196078431,
- 0.0039215686,
- 0.6313725490196078,
- 0.9960784314,
- 0.8117647059,
- 0.0039215686,
- 0.6352941176470588,
- 0.9960784314,
- 0.8039215686,
- 0.0039215686,
- 0.6392156862745098,
- 0.9960784314,
- 0.7960784314,
- 0.0039215686,
- 0.6431372549019608,
- 0.9960784314,
- 0.7882352941,
- 0.0039215686,
- 0.6470588235294118,
- 0.9960784314,
- 0.7803921569,
- 0.0039215686,
- 0.6509803921568628,
- 0.9960784314,
- 0.7725490196,
- 0.0039215686,
- 0.6549019607843137,
- 0.9960784314,
- 0.7647058824,
- 0.0039215686,
- 0.6588235294117647,
- 0.9960784314,
- 0.7568627451,
- 0.0039215686,
- 0.6627450980392157,
- 0.9960784314,
- 0.7490196078,
- 0.0039215686,
- 0.6666666666666666,
- 0.9960784314,
- 0.7450980392,
- 0.0039215686,
- 0.6705882352941176,
- 0.9960784314,
- 0.737254902,
- 0.0039215686,
- 0.6745098039215687,
- 0.9960784314,
- 0.7294117647,
- 0.0039215686,
- 0.6784313725490196,
- 0.9960784314,
- 0.7215686275,
- 0.0039215686,
- 0.6823529411764706,
- 0.9960784314,
- 0.7137254902,
- 0.0039215686,
- 0.6862745098039216,
- 0.9960784314,
- 0.7058823529,
- 0.0039215686,
- 0.6901960784313725,
- 0.9960784314,
- 0.6980392157,
- 0.0039215686,
- 0.6941176470588235,
- 0.9960784314,
- 0.6901960784,
- 0.0039215686,
- 0.6980392156862745,
- 0.9960784314,
- 0.6823529412,
- 0.0039215686,
- 0.7019607843137254,
- 0.9960784314,
- 0.6745098039,
- 0.0039215686,
- 0.7058823529411765,
- 0.9960784314,
- 0.6666666667,
- 0.0039215686,
- 0.7098039215686275,
- 0.9960784314,
- 0.6588235294,
- 0.0039215686,
- 0.7137254901960784,
- 0.9960784314,
- 0.6509803922,
- 0.0039215686,
- 0.7176470588235294,
- 0.9960784314,
- 0.6431372549,
- 0.0039215686,
- 0.7215686274509804,
- 0.9960784314,
- 0.6352941176,
- 0.0039215686,
- 0.7254901960784313,
- 0.9960784314,
- 0.6274509804,
- 0.0039215686,
- 0.7294117647058823,
- 0.9960784314,
- 0.6196078431,
- 0.0039215686,
- 0.7333333333333333,
- 0.9960784314,
- 0.6117647059,
- 0.0039215686,
- 0.7372549019607844,
- 0.9960784314,
- 0.6039215686,
- 0.0039215686,
- 0.7411764705882353,
- 0.9960784314,
- 0.5960784314,
- 0.0039215686,
- 0.7450980392156863,
- 0.9960784314,
- 0.5882352941,
- 0.0039215686,
- 0.7490196078431373,
- 0.9960784314,
- 0.5803921569,
- 0.0039215686,
- 0.7529411764705882,
- 0.9960784314,
- 0.5725490196,
- 0.0039215686,
- 0.7568627450980392,
- 0.9960784314,
- 0.5647058824,
- 0.0039215686,
- 0.7607843137254902,
- 0.9960784314,
- 0.5568627451,
- 0.0039215686,
- 0.7647058823529411,
- 0.9960784314,
- 0.5490196078,
- 0.0039215686,
- 0.7686274509803922,
- 0.9960784314,
- 0.5411764706,
- 0.0039215686,
- 0.7725490196078432,
- 0.9960784314,
- 0.5333333333,
- 0.0039215686,
- 0.7764705882352941,
- 0.9960784314,
- 0.5254901961,
- 0.0039215686,
- 0.7803921568627451,
- 0.9960784314,
- 0.5176470588,
- 0.0039215686,
- 0.7843137254901961,
- 0.9960784314,
- 0.5098039216,
- 0.0039215686,
- 0.788235294117647,
- 0.9960784314,
- 0.5019607843,
- 0.0039215686,
- 0.792156862745098,
- 0.9960784314,
- 0.4941176471,
- 0.0039215686,
- 0.796078431372549,
- 0.9960784314,
- 0.4862745098,
- 0.0039215686,
- 0.8,
- 0.9960784314,
- 0.4784313725,
- 0.0039215686,
- 0.803921568627451,
- 0.9960784314,
- 0.4705882353,
- 0.0039215686,
- 0.807843137254902,
- 0.9960784314,
- 0.462745098,
- 0.0039215686,
- 0.8117647058823529,
- 0.9960784314,
- 0.4549019608,
- 0.0039215686,
- 0.8156862745098039,
- 0.9960784314,
- 0.4470588235,
- 0.0039215686,
- 0.8196078431372549,
- 0.9960784314,
- 0.4392156863,
- 0.0039215686,
- 0.8235294117647058,
- 0.9960784314,
- 0.431372549,
- 0.0039215686,
- 0.8274509803921568,
- 0.9960784314,
- 0.4235294118,
- 0.0039215686,
- 0.8313725490196079,
- 0.9960784314,
- 0.4156862745,
- 0.0039215686,
- 0.8352941176470589,
- 0.9960784314,
- 0.4078431373,
- 0.0039215686,
- 0.8392156862745098,
- 0.9960784314,
- 0.4,
- 0.0039215686,
- 0.8431372549019608,
- 0.9960784314,
- 0.3921568627,
- 0.0039215686,
- 0.8470588235294118,
- 0.9960784314,
- 0.3843137255,
- 0.0039215686,
- 0.8509803921568627,
- 0.9960784314,
- 0.3764705882,
- 0.0039215686,
- 0.8549019607843137,
- 0.9960784314,
- 0.368627451,
- 0.0039215686,
- 0.8588235294117647,
- 0.9960784314,
- 0.3607843137,
- 0.0039215686,
- 0.8627450980392157,
- 0.9960784314,
- 0.3529411765,
- 0.0039215686,
- 0.8666666666666667,
- 0.9960784314,
- 0.3450980392,
- 0.0039215686,
- 0.8705882352941177,
- 0.9960784314,
- 0.337254902,
- 0.0039215686,
- 0.8745098039215686,
- 0.9960784314,
- 0.3294117647,
- 0.0039215686,
- 0.8784313725490196,
- 0.9960784314,
- 0.3215686275,
- 0.0039215686,
- 0.8823529411764706,
- 0.9960784314,
- 0.3137254902,
- 0.0039215686,
- 0.8862745098039215,
- 0.9960784314,
- 0.3058823529,
- 0.0039215686,
- 0.8901960784313725,
- 0.9960784314,
- 0.2980392157,
- 0.0039215686,
- 0.8941176470588236,
- 0.9960784314,
- 0.2901960784,
- 0.0039215686,
- 0.8980392156862745,
- 0.9960784314,
- 0.2823529412,
- 0.0039215686,
- 0.9019607843137255,
- 0.9960784314,
- 0.2705882353,
- 0.0039215686,
- 0.9058823529411765,
- 0.9960784314,
- 0.2588235294,
- 0.0039215686,
- 0.9098039215686274,
- 0.9960784314,
- 0.2509803922,
- 0.0039215686,
- 0.9137254901960784,
- 0.9960784314,
- 0.2431372549,
- 0.0039215686,
- 0.9176470588235294,
- 0.9960784314,
- 0.231372549,
- 0.0039215686,
- 0.9215686274509803,
- 0.9960784314,
- 0.2196078431,
- 0.0039215686,
- 0.9254901960784314,
- 0.9960784314,
- 0.2117647059,
- 0.0039215686,
- 0.9294117647058824,
- 0.9960784314,
- 0.2,
- 0.0039215686,
- 0.9333333333333333,
- 0.9960784314,
- 0.1882352941,
- 0.0039215686,
- 0.9372549019607843,
- 0.9960784314,
- 0.1764705882,
- 0.0039215686,
- 0.9411764705882354,
- 0.9960784314,
- 0.168627451,
- 0.0039215686,
- 0.9450980392156864,
- 0.9960784314,
- 0.1568627451,
- 0.0039215686,
- 0.9490196078431372,
- 0.9960784314,
- 0.1450980392,
- 0.0039215686,
- 0.9529411764705882,
- 0.9960784314,
- 0.1333333333,
- 0.0039215686,
- 0.9568627450980394,
- 0.9960784314,
- 0.1254901961,
- 0.0039215686,
- 0.9607843137254903,
- 0.9960784314,
- 0.1137254902,
- 0.0039215686,
- 0.9647058823529413,
- 0.9960784314,
- 0.1019607843,
- 0.0039215686,
- 0.9686274509803922,
- 0.9960784314,
- 0.0901960784,
- 0.0039215686,
- 0.9725490196078431,
- 0.9960784314,
- 0.0823529412,
- 0.0039215686,
- 0.9764705882352941,
- 0.9960784314,
- 0.0705882353,
- 0.0039215686,
- 0.9803921568627451,
- 0.9960784314,
- 0.0588235294,
- 0.0039215686,
- 0.984313725490196,
- 0.9960784314,
- 0.0470588235,
- 0.0039215686,
- 0.9882352941176471,
- 0.9960784314,
- 0.0392156863,
- 0.0039215686,
- 0.9921568627450981,
- 0.9960784314,
- 0.0274509804,
- 0.0039215686,
- 0.996078431372549,
- 0.9960784314,
- 0.0156862745,
- 0.0039215686,
- 1.0,
- 0.9960784314,
- 0.0156862745,
- 0.0039215686,
+ 0.0, 0.0156862745, 0.0039215686, 0.0156862745, 0.00392156862745098, 0.0156862745,
+ 0.0039215686, 0.0156862745, 0.00784313725490196, 0.0274509804, 0.0039215686, 0.031372549,
+ 0.011764705882352941, 0.0352941176, 0.0039215686, 0.0509803922, 0.01568627450980392,
+ 0.0392156863, 0.0039215686, 0.0666666667, 0.0196078431372549, 0.0509803922, 0.0039215686,
+ 0.0823529412, 0.023529411764705882, 0.062745098, 0.0039215686, 0.0980392157,
+ 0.027450980392156862, 0.0705882353, 0.0039215686, 0.1176470588, 0.03137254901960784,
+ 0.0745098039, 0.0039215686, 0.1333333333, 0.03529411764705882, 0.0862745098, 0.0039215686,
+ 0.1490196078, 0.0392156862745098, 0.0980392157, 0.0039215686, 0.1647058824,
+ 0.043137254901960784, 0.1058823529, 0.0039215686, 0.1843137255, 0.047058823529411764,
+ 0.1098039216, 0.0039215686, 0.2, 0.050980392156862744, 0.1215686275, 0.0039215686,
+ 0.2156862745, 0.054901960784313725, 0.1333333333, 0.0039215686, 0.231372549,
+ 0.05882352941176471, 0.137254902, 0.0039215686, 0.2509803922, 0.06274509803921569,
+ 0.1490196078, 0.0039215686, 0.262745098, 0.06666666666666667, 0.1607843137, 0.0039215686,
+ 0.2784313725, 0.07058823529411765, 0.168627451, 0.0039215686, 0.2941176471,
+ 0.07450980392156863, 0.1725490196, 0.0039215686, 0.3137254902, 0.0784313725490196,
+ 0.1843137255, 0.0039215686, 0.3294117647, 0.08235294117647059, 0.1960784314, 0.0039215686,
+ 0.3450980392, 0.08627450980392157, 0.2039215686, 0.0039215686, 0.3607843137,
+ 0.09019607843137255, 0.2078431373, 0.0039215686, 0.3803921569, 0.09411764705882353,
+ 0.2196078431, 0.0039215686, 0.3960784314, 0.09803921568627451, 0.231372549, 0.0039215686,
+ 0.4117647059, 0.10196078431372549, 0.2392156863, 0.0039215686, 0.4274509804,
+ 0.10588235294117647, 0.2431372549, 0.0039215686, 0.4470588235, 0.10980392156862745,
+ 0.2509803922, 0.0039215686, 0.462745098, 0.11372549019607843, 0.262745098, 0.0039215686,
+ 0.4784313725, 0.11764705882352942, 0.2666666667, 0.0039215686, 0.4980392157,
+ 0.12156862745098039, 0.2666666667, 0.0039215686, 0.4980392157, 0.12549019607843137,
+ 0.262745098, 0.0039215686, 0.5137254902, 0.12941176470588237, 0.2509803922, 0.0039215686,
+ 0.5294117647, 0.13333333333333333, 0.2431372549, 0.0039215686, 0.5450980392,
+ 0.13725490196078433, 0.2392156863, 0.0039215686, 0.5607843137, 0.1411764705882353,
+ 0.231372549, 0.0039215686, 0.5764705882, 0.1450980392156863, 0.2196078431, 0.0039215686,
+ 0.5921568627, 0.14901960784313725, 0.2078431373, 0.0039215686, 0.6078431373,
+ 0.15294117647058825, 0.2039215686, 0.0039215686, 0.6235294118, 0.1568627450980392,
+ 0.1960784314, 0.0039215686, 0.6392156863, 0.1607843137254902, 0.1843137255, 0.0039215686,
+ 0.6549019608, 0.16470588235294117, 0.1725490196, 0.0039215686, 0.6705882353,
+ 0.16862745098039217, 0.168627451, 0.0039215686, 0.6862745098, 0.17254901960784313,
+ 0.1607843137, 0.0039215686, 0.7019607843, 0.17647058823529413, 0.1490196078, 0.0039215686,
+ 0.7176470588, 0.1803921568627451, 0.137254902, 0.0039215686, 0.7333333333, 0.1843137254901961,
+ 0.1333333333, 0.0039215686, 0.7490196078, 0.18823529411764706, 0.1215686275, 0.0039215686,
+ 0.7607843137, 0.19215686274509805, 0.1098039216, 0.0039215686, 0.7764705882,
+ 0.19607843137254902, 0.1058823529, 0.0039215686, 0.7921568627, 0.2, 0.0980392157,
+ 0.0039215686, 0.8078431373, 0.20392156862745098, 0.0862745098, 0.0039215686, 0.8235294118,
+ 0.20784313725490197, 0.0745098039, 0.0039215686, 0.8392156863, 0.21176470588235294,
+ 0.0705882353, 0.0039215686, 0.8549019608, 0.21568627450980393, 0.062745098, 0.0039215686,
+ 0.8705882353, 0.2196078431372549, 0.0509803922, 0.0039215686, 0.8862745098,
+ 0.2235294117647059, 0.0392156863, 0.0039215686, 0.9019607843, 0.22745098039215686,
+ 0.0352941176, 0.0039215686, 0.9176470588, 0.23137254901960785, 0.0274509804, 0.0039215686,
+ 0.9333333333, 0.23529411764705885, 0.0156862745, 0.0039215686, 0.9490196078,
+ 0.23921568627450984, 0.0078431373, 0.0039215686, 0.9647058824, 0.24313725490196078,
+ 0.0039215686, 0.0039215686, 0.9960784314, 0.24705882352941178, 0.0039215686, 0.0039215686,
+ 0.9960784314, 0.25098039215686274, 0.0039215686, 0.0196078431, 0.9647058824,
+ 0.2549019607843137, 0.0039215686, 0.0392156863, 0.9490196078, 0.25882352941176473,
+ 0.0039215686, 0.0549019608, 0.9333333333, 0.2627450980392157, 0.0039215686, 0.0745098039,
+ 0.9176470588, 0.26666666666666666, 0.0039215686, 0.0901960784, 0.9019607843,
+ 0.27058823529411763, 0.0039215686, 0.1098039216, 0.8862745098, 0.27450980392156865,
+ 0.0039215686, 0.1254901961, 0.8705882353, 0.2784313725490196, 0.0039215686, 0.1450980392,
+ 0.8549019608, 0.2823529411764706, 0.0039215686, 0.1607843137, 0.8392156863,
+ 0.28627450980392155, 0.0039215686, 0.1803921569, 0.8235294118, 0.2901960784313726,
+ 0.0039215686, 0.1960784314, 0.8078431373, 0.29411764705882354, 0.0039215686, 0.2156862745,
+ 0.7921568627, 0.2980392156862745, 0.0039215686, 0.231372549, 0.7764705882,
+ 0.30196078431372547, 0.0039215686, 0.2509803922, 0.7607843137, 0.3058823529411765,
+ 0.0039215686, 0.262745098, 0.7490196078, 0.30980392156862746, 0.0039215686, 0.2823529412,
+ 0.7333333333, 0.3137254901960784, 0.0039215686, 0.2980392157, 0.7176470588,
+ 0.3176470588235294, 0.0039215686, 0.3176470588, 0.7019607843, 0.3215686274509804,
+ 0.0039215686, 0.3333333333, 0.6862745098, 0.3254901960784314, 0.0039215686, 0.3529411765,
+ 0.6705882353, 0.32941176470588235, 0.0039215686, 0.368627451, 0.6549019608,
+ 0.3333333333333333, 0.0039215686, 0.3882352941, 0.6392156863, 0.33725490196078434,
+ 0.0039215686, 0.4039215686, 0.6235294118, 0.3411764705882353, 0.0039215686, 0.4235294118,
+ 0.6078431373, 0.34509803921568627, 0.0039215686, 0.4392156863, 0.5921568627,
+ 0.34901960784313724, 0.0039215686, 0.4588235294, 0.5764705882, 0.35294117647058826,
+ 0.0039215686, 0.4745098039, 0.5607843137, 0.3568627450980392, 0.0039215686, 0.4941176471,
+ 0.5450980392, 0.3607843137254902, 0.0039215686, 0.5098039216, 0.5294117647,
+ 0.36470588235294116, 0.0039215686, 0.5294117647, 0.5137254902, 0.3686274509803922,
+ 0.0039215686, 0.5450980392, 0.4980392157, 0.37254901960784315, 0.0039215686, 0.5647058824,
+ 0.4784313725, 0.3764705882352941, 0.0039215686, 0.5803921569, 0.462745098, 0.3803921568627451,
+ 0.0039215686, 0.6, 0.4470588235, 0.3843137254901961, 0.0039215686, 0.6156862745, 0.4274509804,
+ 0.38823529411764707, 0.0039215686, 0.6352941176, 0.4117647059, 0.39215686274509803,
+ 0.0039215686, 0.6509803922, 0.3960784314, 0.396078431372549, 0.0039215686, 0.6705882353,
+ 0.3803921569, 0.4, 0.0039215686, 0.6862745098, 0.3607843137, 0.403921568627451, 0.0039215686,
+ 0.7058823529, 0.3450980392, 0.40784313725490196, 0.0039215686, 0.7215686275, 0.3294117647,
+ 0.4117647058823529, 0.0039215686, 0.7411764706, 0.3137254902, 0.41568627450980394,
+ 0.0039215686, 0.7529411765, 0.2941176471, 0.4196078431372549, 0.0039215686, 0.7960784314,
+ 0.2784313725, 0.4235294117647059, 0.0039215686, 0.7960784314, 0.262745098,
+ 0.42745098039215684, 0.0392156863, 0.8039215686, 0.2509803922, 0.43137254901960786,
+ 0.0745098039, 0.8117647059, 0.231372549, 0.43529411764705883, 0.1098039216, 0.8196078431,
+ 0.2156862745, 0.4392156862745098, 0.1450980392, 0.8274509804, 0.2, 0.44313725490196076,
+ 0.1803921569, 0.8352941176, 0.1843137255, 0.4470588235294118, 0.2156862745, 0.8431372549,
+ 0.1647058824, 0.45098039215686275, 0.2509803922, 0.8509803922, 0.1490196078,
+ 0.4549019607843137, 0.2823529412, 0.8588235294, 0.1333333333, 0.4588235294117647,
+ 0.3176470588, 0.8666666667, 0.1176470588, 0.4627450980392157, 0.3529411765, 0.8745098039,
+ 0.0980392157, 0.4666666666666667, 0.3882352941, 0.8823529412, 0.0823529412,
+ 0.4705882352941177, 0.4235294118, 0.8901960784, 0.0666666667, 0.4745098039215686,
+ 0.4588235294, 0.8980392157, 0.0509803922, 0.4784313725490197, 0.4941176471, 0.9058823529,
+ 0.0431372549, 0.48235294117647065, 0.5294117647, 0.9137254902, 0.031372549,
+ 0.48627450980392156, 0.5647058824, 0.9215686275, 0.0196078431, 0.49019607843137253, 0.6,
+ 0.9294117647, 0.0078431373, 0.49411764705882355, 0.6352941176, 0.937254902, 0.0039215686,
+ 0.4980392156862745, 0.6705882353, 0.9450980392, 0.0039215686, 0.5019607843137255,
+ 0.7058823529, 0.9490196078, 0.0039215686, 0.5058823529411764, 0.7411764706, 0.9568627451,
+ 0.0039215686, 0.5098039215686274, 0.7725490196, 0.9607843137, 0.0039215686,
+ 0.5137254901960784, 0.8078431373, 0.968627451, 0.0039215686, 0.5176470588235295, 0.8431372549,
+ 0.9725490196, 0.0039215686, 0.5215686274509804, 0.8784313725, 0.9803921569, 0.0039215686,
+ 0.5254901960784314, 0.9137254902, 0.9843137255, 0.0039215686, 0.5294117647058824,
+ 0.9490196078, 0.9921568627, 0.0039215686, 0.5333333333333333, 0.9960784314, 0.9960784314,
+ 0.0039215686, 0.5372549019607843, 0.9960784314, 0.9960784314, 0.0039215686,
+ 0.5411764705882353, 0.9960784314, 0.9921568627, 0.0039215686, 0.5450980392156862,
+ 0.9960784314, 0.9843137255, 0.0039215686, 0.5490196078431373, 0.9960784314, 0.9764705882,
+ 0.0039215686, 0.5529411764705883, 0.9960784314, 0.968627451, 0.0039215686, 0.5568627450980392,
+ 0.9960784314, 0.9607843137, 0.0039215686, 0.5607843137254902, 0.9960784314, 0.9529411765,
+ 0.0039215686, 0.5647058823529412, 0.9960784314, 0.9450980392, 0.0039215686,
+ 0.5686274509803921, 0.9960784314, 0.937254902, 0.0039215686, 0.5725490196078431, 0.9960784314,
+ 0.9294117647, 0.0039215686, 0.5764705882352941, 0.9960784314, 0.9215686275, 0.0039215686,
+ 0.5803921568627451, 0.9960784314, 0.9137254902, 0.0039215686, 0.5843137254901961,
+ 0.9960784314, 0.9058823529, 0.0039215686, 0.5882352941176471, 0.9960784314, 0.8980392157,
+ 0.0039215686, 0.592156862745098, 0.9960784314, 0.8901960784, 0.0039215686, 0.596078431372549,
+ 0.9960784314, 0.8823529412, 0.0039215686, 0.6, 0.9960784314, 0.8745098039, 0.0039215686,
+ 0.6039215686274509, 0.9960784314, 0.8666666667, 0.0039215686, 0.6078431372549019,
+ 0.9960784314, 0.8588235294, 0.0039215686, 0.611764705882353, 0.9960784314, 0.8509803922,
+ 0.0039215686, 0.615686274509804, 0.9960784314, 0.8431372549, 0.0039215686, 0.6196078431372549,
+ 0.9960784314, 0.8352941176, 0.0039215686, 0.6235294117647059, 0.9960784314, 0.8274509804,
+ 0.0039215686, 0.6274509803921569, 0.9960784314, 0.8196078431, 0.0039215686,
+ 0.6313725490196078, 0.9960784314, 0.8117647059, 0.0039215686, 0.6352941176470588,
+ 0.9960784314, 0.8039215686, 0.0039215686, 0.6392156862745098, 0.9960784314, 0.7960784314,
+ 0.0039215686, 0.6431372549019608, 0.9960784314, 0.7882352941, 0.0039215686,
+ 0.6470588235294118, 0.9960784314, 0.7803921569, 0.0039215686, 0.6509803921568628,
+ 0.9960784314, 0.7725490196, 0.0039215686, 0.6549019607843137, 0.9960784314, 0.7647058824,
+ 0.0039215686, 0.6588235294117647, 0.9960784314, 0.7568627451, 0.0039215686,
+ 0.6627450980392157, 0.9960784314, 0.7490196078, 0.0039215686, 0.6666666666666666,
+ 0.9960784314, 0.7450980392, 0.0039215686, 0.6705882352941176, 0.9960784314, 0.737254902,
+ 0.0039215686, 0.6745098039215687, 0.9960784314, 0.7294117647, 0.0039215686,
+ 0.6784313725490196, 0.9960784314, 0.7215686275, 0.0039215686, 0.6823529411764706,
+ 0.9960784314, 0.7137254902, 0.0039215686, 0.6862745098039216, 0.9960784314, 0.7058823529,
+ 0.0039215686, 0.6901960784313725, 0.9960784314, 0.6980392157, 0.0039215686,
+ 0.6941176470588235, 0.9960784314, 0.6901960784, 0.0039215686, 0.6980392156862745,
+ 0.9960784314, 0.6823529412, 0.0039215686, 0.7019607843137254, 0.9960784314, 0.6745098039,
+ 0.0039215686, 0.7058823529411765, 0.9960784314, 0.6666666667, 0.0039215686,
+ 0.7098039215686275, 0.9960784314, 0.6588235294, 0.0039215686, 0.7137254901960784,
+ 0.9960784314, 0.6509803922, 0.0039215686, 0.7176470588235294, 0.9960784314, 0.6431372549,
+ 0.0039215686, 0.7215686274509804, 0.9960784314, 0.6352941176, 0.0039215686,
+ 0.7254901960784313, 0.9960784314, 0.6274509804, 0.0039215686, 0.7294117647058823,
+ 0.9960784314, 0.6196078431, 0.0039215686, 0.7333333333333333, 0.9960784314, 0.6117647059,
+ 0.0039215686, 0.7372549019607844, 0.9960784314, 0.6039215686, 0.0039215686,
+ 0.7411764705882353, 0.9960784314, 0.5960784314, 0.0039215686, 0.7450980392156863,
+ 0.9960784314, 0.5882352941, 0.0039215686, 0.7490196078431373, 0.9960784314, 0.5803921569,
+ 0.0039215686, 0.7529411764705882, 0.9960784314, 0.5725490196, 0.0039215686,
+ 0.7568627450980392, 0.9960784314, 0.5647058824, 0.0039215686, 0.7607843137254902,
+ 0.9960784314, 0.5568627451, 0.0039215686, 0.7647058823529411, 0.9960784314, 0.5490196078,
+ 0.0039215686, 0.7686274509803922, 0.9960784314, 0.5411764706, 0.0039215686,
+ 0.7725490196078432, 0.9960784314, 0.5333333333, 0.0039215686, 0.7764705882352941,
+ 0.9960784314, 0.5254901961, 0.0039215686, 0.7803921568627451, 0.9960784314, 0.5176470588,
+ 0.0039215686, 0.7843137254901961, 0.9960784314, 0.5098039216, 0.0039215686, 0.788235294117647,
+ 0.9960784314, 0.5019607843, 0.0039215686, 0.792156862745098, 0.9960784314, 0.4941176471,
+ 0.0039215686, 0.796078431372549, 0.9960784314, 0.4862745098, 0.0039215686, 0.8, 0.9960784314,
+ 0.4784313725, 0.0039215686, 0.803921568627451, 0.9960784314, 0.4705882353, 0.0039215686,
+ 0.807843137254902, 0.9960784314, 0.462745098, 0.0039215686, 0.8117647058823529, 0.9960784314,
+ 0.4549019608, 0.0039215686, 0.8156862745098039, 0.9960784314, 0.4470588235, 0.0039215686,
+ 0.8196078431372549, 0.9960784314, 0.4392156863, 0.0039215686, 0.8235294117647058,
+ 0.9960784314, 0.431372549, 0.0039215686, 0.8274509803921568, 0.9960784314, 0.4235294118,
+ 0.0039215686, 0.8313725490196079, 0.9960784314, 0.4156862745, 0.0039215686,
+ 0.8352941176470589, 0.9960784314, 0.4078431373, 0.0039215686, 0.8392156862745098,
+ 0.9960784314, 0.4, 0.0039215686, 0.8431372549019608, 0.9960784314, 0.3921568627, 0.0039215686,
+ 0.8470588235294118, 0.9960784314, 0.3843137255, 0.0039215686, 0.8509803921568627,
+ 0.9960784314, 0.3764705882, 0.0039215686, 0.8549019607843137, 0.9960784314, 0.368627451,
+ 0.0039215686, 0.8588235294117647, 0.9960784314, 0.3607843137, 0.0039215686,
+ 0.8627450980392157, 0.9960784314, 0.3529411765, 0.0039215686, 0.8666666666666667,
+ 0.9960784314, 0.3450980392, 0.0039215686, 0.8705882352941177, 0.9960784314, 0.337254902,
+ 0.0039215686, 0.8745098039215686, 0.9960784314, 0.3294117647, 0.0039215686,
+ 0.8784313725490196, 0.9960784314, 0.3215686275, 0.0039215686, 0.8823529411764706,
+ 0.9960784314, 0.3137254902, 0.0039215686, 0.8862745098039215, 0.9960784314, 0.3058823529,
+ 0.0039215686, 0.8901960784313725, 0.9960784314, 0.2980392157, 0.0039215686,
+ 0.8941176470588236, 0.9960784314, 0.2901960784, 0.0039215686, 0.8980392156862745,
+ 0.9960784314, 0.2823529412, 0.0039215686, 0.9019607843137255, 0.9960784314, 0.2705882353,
+ 0.0039215686, 0.9058823529411765, 0.9960784314, 0.2588235294, 0.0039215686,
+ 0.9098039215686274, 0.9960784314, 0.2509803922, 0.0039215686, 0.9137254901960784,
+ 0.9960784314, 0.2431372549, 0.0039215686, 0.9176470588235294, 0.9960784314, 0.231372549,
+ 0.0039215686, 0.9215686274509803, 0.9960784314, 0.2196078431, 0.0039215686,
+ 0.9254901960784314, 0.9960784314, 0.2117647059, 0.0039215686, 0.9294117647058824,
+ 0.9960784314, 0.2, 0.0039215686, 0.9333333333333333, 0.9960784314, 0.1882352941, 0.0039215686,
+ 0.9372549019607843, 0.9960784314, 0.1764705882, 0.0039215686, 0.9411764705882354,
+ 0.9960784314, 0.168627451, 0.0039215686, 0.9450980392156864, 0.9960784314, 0.1568627451,
+ 0.0039215686, 0.9490196078431372, 0.9960784314, 0.1450980392, 0.0039215686,
+ 0.9529411764705882, 0.9960784314, 0.1333333333, 0.0039215686, 0.9568627450980394,
+ 0.9960784314, 0.1254901961, 0.0039215686, 0.9607843137254903, 0.9960784314, 0.1137254902,
+ 0.0039215686, 0.9647058823529413, 0.9960784314, 0.1019607843, 0.0039215686,
+ 0.9686274509803922, 0.9960784314, 0.0901960784, 0.0039215686, 0.9725490196078431,
+ 0.9960784314, 0.0823529412, 0.0039215686, 0.9764705882352941, 0.9960784314, 0.0705882353,
+ 0.0039215686, 0.9803921568627451, 0.9960784314, 0.0588235294, 0.0039215686, 0.984313725490196,
+ 0.9960784314, 0.0470588235, 0.0039215686, 0.9882352941176471, 0.9960784314, 0.0392156863,
+ 0.0039215686, 0.9921568627450981, 0.9960784314, 0.0274509804, 0.0039215686, 0.996078431372549,
+ 0.9960784314, 0.0156862745, 0.0039215686, 1.0, 0.9960784314, 0.0156862745, 0.0039215686,
],
},
{
ColorSpace: 'RGB',
Name: 'perfusion',
RGBPoints: [
- 0.0,
- 0.0,
- 0.0,
- 0.0,
- 0.00392156862745098,
- 0.0078431373,
- 0.0235294118,
- 0.0235294118,
- 0.00784313725490196,
- 0.0078431373,
- 0.031372549,
- 0.0470588235,
- 0.011764705882352941,
- 0.0078431373,
- 0.0392156863,
- 0.062745098,
- 0.01568627450980392,
- 0.0078431373,
- 0.0470588235,
- 0.0862745098,
- 0.0196078431372549,
- 0.0078431373,
- 0.0549019608,
- 0.1019607843,
- 0.023529411764705882,
- 0.0078431373,
- 0.0549019608,
- 0.1254901961,
- 0.027450980392156862,
- 0.0078431373,
- 0.062745098,
- 0.1411764706,
- 0.03137254901960784,
- 0.0078431373,
- 0.0705882353,
- 0.1647058824,
- 0.03529411764705882,
- 0.0078431373,
- 0.0784313725,
- 0.1803921569,
- 0.0392156862745098,
- 0.0078431373,
- 0.0862745098,
- 0.2039215686,
- 0.043137254901960784,
- 0.0078431373,
- 0.0862745098,
- 0.2196078431,
- 0.047058823529411764,
- 0.0078431373,
- 0.0941176471,
- 0.2431372549,
- 0.050980392156862744,
- 0.0078431373,
- 0.1019607843,
- 0.2666666667,
- 0.054901960784313725,
- 0.0078431373,
- 0.1098039216,
- 0.2823529412,
- 0.05882352941176471,
- 0.0078431373,
- 0.1176470588,
- 0.3058823529,
- 0.06274509803921569,
- 0.0078431373,
- 0.1176470588,
- 0.3215686275,
- 0.06666666666666667,
- 0.0078431373,
- 0.1254901961,
- 0.3450980392,
- 0.07058823529411765,
- 0.0078431373,
- 0.1333333333,
- 0.3607843137,
- 0.07450980392156863,
- 0.0078431373,
- 0.1411764706,
- 0.3843137255,
- 0.0784313725490196,
- 0.0078431373,
- 0.1490196078,
- 0.4,
- 0.08235294117647059,
- 0.0078431373,
- 0.1490196078,
- 0.4235294118,
- 0.08627450980392157,
- 0.0078431373,
- 0.1568627451,
- 0.4392156863,
- 0.09019607843137255,
- 0.0078431373,
- 0.1647058824,
- 0.462745098,
- 0.09411764705882353,
- 0.0078431373,
- 0.1725490196,
- 0.4784313725,
- 0.09803921568627451,
- 0.0078431373,
- 0.1803921569,
- 0.5019607843,
- 0.10196078431372549,
- 0.0078431373,
- 0.1803921569,
- 0.5254901961,
- 0.10588235294117647,
- 0.0078431373,
- 0.1882352941,
- 0.5411764706,
- 0.10980392156862745,
- 0.0078431373,
- 0.1960784314,
- 0.5647058824,
- 0.11372549019607843,
- 0.0078431373,
- 0.2039215686,
- 0.5803921569,
- 0.11764705882352942,
- 0.0078431373,
- 0.2117647059,
- 0.6039215686,
- 0.12156862745098039,
- 0.0078431373,
- 0.2117647059,
- 0.6196078431,
- 0.12549019607843137,
- 0.0078431373,
- 0.2196078431,
- 0.6431372549,
- 0.12941176470588237,
- 0.0078431373,
- 0.2274509804,
- 0.6588235294,
- 0.13333333333333333,
- 0.0078431373,
- 0.2352941176,
- 0.6823529412,
- 0.13725490196078433,
- 0.0078431373,
- 0.2431372549,
- 0.6980392157,
- 0.1411764705882353,
- 0.0078431373,
- 0.2431372549,
- 0.7215686275,
- 0.1450980392156863,
- 0.0078431373,
- 0.2509803922,
- 0.737254902,
- 0.14901960784313725,
- 0.0078431373,
- 0.2588235294,
- 0.7607843137,
- 0.15294117647058825,
- 0.0078431373,
- 0.2666666667,
- 0.7843137255,
- 0.1568627450980392,
- 0.0078431373,
- 0.2745098039,
- 0.8,
- 0.1607843137254902,
- 0.0078431373,
- 0.2745098039,
- 0.8235294118,
- 0.16470588235294117,
- 0.0078431373,
- 0.2823529412,
- 0.8392156863,
- 0.16862745098039217,
- 0.0078431373,
- 0.2901960784,
- 0.862745098,
- 0.17254901960784313,
- 0.0078431373,
- 0.2980392157,
- 0.8784313725,
- 0.17647058823529413,
- 0.0078431373,
- 0.3058823529,
- 0.9019607843,
- 0.1803921568627451,
- 0.0078431373,
- 0.3058823529,
- 0.9176470588,
- 0.1843137254901961,
- 0.0078431373,
- 0.2980392157,
- 0.9411764706,
- 0.18823529411764706,
- 0.0078431373,
- 0.3058823529,
- 0.9568627451,
- 0.19215686274509805,
- 0.0078431373,
- 0.2980392157,
- 0.9803921569,
- 0.19607843137254902,
- 0.0078431373,
- 0.2980392157,
- 0.9882352941,
- 0.2,
- 0.0078431373,
- 0.2901960784,
- 0.9803921569,
- 0.20392156862745098,
- 0.0078431373,
- 0.2901960784,
- 0.9647058824,
- 0.20784313725490197,
- 0.0078431373,
- 0.2823529412,
- 0.9568627451,
- 0.21176470588235294,
- 0.0078431373,
- 0.2823529412,
- 0.9411764706,
- 0.21568627450980393,
- 0.0078431373,
- 0.2745098039,
- 0.9333333333,
- 0.2196078431372549,
- 0.0078431373,
- 0.2666666667,
- 0.9176470588,
- 0.2235294117647059,
- 0.0078431373,
- 0.2666666667,
- 0.9098039216,
- 0.22745098039215686,
- 0.0078431373,
- 0.2588235294,
- 0.9019607843,
- 0.23137254901960785,
- 0.0078431373,
- 0.2588235294,
- 0.8862745098,
- 0.23529411764705885,
- 0.0078431373,
- 0.2509803922,
- 0.8784313725,
- 0.23921568627450984,
- 0.0078431373,
- 0.2509803922,
- 0.862745098,
- 0.24313725490196078,
- 0.0078431373,
- 0.2431372549,
- 0.8549019608,
- 0.24705882352941178,
- 0.0078431373,
- 0.2352941176,
- 0.8392156863,
- 0.25098039215686274,
- 0.0078431373,
- 0.2352941176,
- 0.831372549,
- 0.2549019607843137,
- 0.0078431373,
- 0.2274509804,
- 0.8235294118,
- 0.25882352941176473,
- 0.0078431373,
- 0.2274509804,
- 0.8078431373,
- 0.2627450980392157,
- 0.0078431373,
- 0.2196078431,
- 0.8,
- 0.26666666666666666,
- 0.0078431373,
- 0.2196078431,
- 0.7843137255,
- 0.27058823529411763,
- 0.0078431373,
- 0.2117647059,
- 0.7764705882,
- 0.27450980392156865,
- 0.0078431373,
- 0.2039215686,
- 0.7607843137,
- 0.2784313725490196,
- 0.0078431373,
- 0.2039215686,
- 0.7529411765,
- 0.2823529411764706,
- 0.0078431373,
- 0.1960784314,
- 0.7450980392,
- 0.28627450980392155,
- 0.0078431373,
- 0.1960784314,
- 0.7294117647,
- 0.2901960784313726,
- 0.0078431373,
- 0.1882352941,
- 0.7215686275,
- 0.29411764705882354,
- 0.0078431373,
- 0.1882352941,
- 0.7058823529,
- 0.2980392156862745,
- 0.0078431373,
- 0.1803921569,
- 0.6980392157,
- 0.30196078431372547,
- 0.0078431373,
- 0.1803921569,
- 0.6823529412,
- 0.3058823529411765,
- 0.0078431373,
- 0.1725490196,
- 0.6745098039,
- 0.30980392156862746,
- 0.0078431373,
- 0.1647058824,
- 0.6666666667,
- 0.3137254901960784,
- 0.0078431373,
- 0.1647058824,
- 0.6509803922,
- 0.3176470588235294,
- 0.0078431373,
- 0.1568627451,
- 0.6431372549,
- 0.3215686274509804,
- 0.0078431373,
- 0.1568627451,
- 0.6274509804,
- 0.3254901960784314,
- 0.0078431373,
- 0.1490196078,
- 0.6196078431,
- 0.32941176470588235,
- 0.0078431373,
- 0.1490196078,
- 0.6039215686,
- 0.3333333333333333,
- 0.0078431373,
- 0.1411764706,
- 0.5960784314,
- 0.33725490196078434,
- 0.0078431373,
- 0.1333333333,
- 0.5882352941,
- 0.3411764705882353,
- 0.0078431373,
- 0.1333333333,
- 0.5725490196,
- 0.34509803921568627,
- 0.0078431373,
- 0.1254901961,
- 0.5647058824,
- 0.34901960784313724,
- 0.0078431373,
- 0.1254901961,
- 0.5490196078,
- 0.35294117647058826,
- 0.0078431373,
- 0.1176470588,
- 0.5411764706,
- 0.3568627450980392,
- 0.0078431373,
- 0.1176470588,
- 0.5254901961,
- 0.3607843137254902,
- 0.0078431373,
- 0.1098039216,
- 0.5176470588,
- 0.36470588235294116,
- 0.0078431373,
- 0.1019607843,
- 0.5098039216,
- 0.3686274509803922,
- 0.0078431373,
- 0.1019607843,
- 0.4941176471,
- 0.37254901960784315,
- 0.0078431373,
- 0.0941176471,
- 0.4862745098,
- 0.3764705882352941,
- 0.0078431373,
- 0.0941176471,
- 0.4705882353,
- 0.3803921568627451,
- 0.0078431373,
- 0.0862745098,
- 0.462745098,
- 0.3843137254901961,
- 0.0078431373,
- 0.0862745098,
- 0.4470588235,
- 0.38823529411764707,
- 0.0078431373,
- 0.0784313725,
- 0.4392156863,
- 0.39215686274509803,
- 0.0078431373,
- 0.0705882353,
- 0.431372549,
- 0.396078431372549,
- 0.0078431373,
- 0.0705882353,
- 0.4156862745,
- 0.4,
- 0.0078431373,
- 0.062745098,
- 0.4078431373,
- 0.403921568627451,
- 0.0078431373,
- 0.062745098,
- 0.3921568627,
- 0.40784313725490196,
- 0.0078431373,
- 0.0549019608,
- 0.3843137255,
- 0.4117647058823529,
- 0.0078431373,
- 0.0549019608,
- 0.368627451,
- 0.41568627450980394,
- 0.0078431373,
- 0.0470588235,
- 0.3607843137,
- 0.4196078431372549,
- 0.0078431373,
- 0.0470588235,
- 0.3529411765,
- 0.4235294117647059,
- 0.0078431373,
- 0.0392156863,
- 0.337254902,
- 0.42745098039215684,
- 0.0078431373,
- 0.031372549,
- 0.3294117647,
- 0.43137254901960786,
- 0.0078431373,
- 0.031372549,
- 0.3137254902,
- 0.43529411764705883,
- 0.0078431373,
- 0.0235294118,
- 0.3058823529,
- 0.4392156862745098,
- 0.0078431373,
- 0.0235294118,
- 0.2901960784,
- 0.44313725490196076,
- 0.0078431373,
- 0.0156862745,
- 0.2823529412,
- 0.4470588235294118,
- 0.0078431373,
- 0.0156862745,
- 0.2745098039,
- 0.45098039215686275,
- 0.0078431373,
- 0.0078431373,
- 0.2588235294,
- 0.4549019607843137,
- 0.0235294118,
- 0.0078431373,
- 0.2509803922,
- 0.4588235294117647,
- 0.0078431373,
- 0.0078431373,
- 0.2352941176,
- 0.4627450980392157,
- 0.0078431373,
- 0.0078431373,
- 0.2274509804,
- 0.4666666666666667,
- 0.0078431373,
- 0.0078431373,
- 0.2117647059,
- 0.4705882352941177,
- 0.0078431373,
- 0.0078431373,
- 0.2039215686,
- 0.4745098039215686,
- 0.0078431373,
- 0.0078431373,
- 0.1960784314,
- 0.4784313725490197,
- 0.0078431373,
- 0.0078431373,
- 0.1803921569,
- 0.48235294117647065,
- 0.0078431373,
- 0.0078431373,
- 0.1725490196,
- 0.48627450980392156,
- 0.0078431373,
- 0.0078431373,
- 0.1568627451,
- 0.49019607843137253,
- 0.0078431373,
- 0.0078431373,
- 0.1490196078,
- 0.49411764705882355,
- 0.0078431373,
- 0.0078431373,
- 0.1333333333,
- 0.4980392156862745,
- 0.0078431373,
- 0.0078431373,
- 0.1254901961,
- 0.5019607843137255,
- 0.0078431373,
- 0.0078431373,
- 0.1176470588,
- 0.5058823529411764,
- 0.0078431373,
- 0.0078431373,
- 0.1019607843,
- 0.5098039215686274,
- 0.0078431373,
- 0.0078431373,
- 0.0941176471,
- 0.5137254901960784,
- 0.0078431373,
- 0.0078431373,
- 0.0784313725,
- 0.5176470588235295,
- 0.0078431373,
- 0.0078431373,
- 0.0705882353,
- 0.5215686274509804,
- 0.0078431373,
- 0.0078431373,
- 0.0549019608,
- 0.5254901960784314,
- 0.0078431373,
- 0.0078431373,
- 0.0470588235,
- 0.5294117647058824,
- 0.0235294118,
- 0.0078431373,
- 0.0392156863,
- 0.5333333333333333,
- 0.031372549,
- 0.0078431373,
- 0.0235294118,
- 0.5372549019607843,
- 0.0392156863,
- 0.0078431373,
- 0.0156862745,
- 0.5411764705882353,
- 0.0549019608,
- 0.0078431373,
- 0.0,
- 0.5450980392156862,
- 0.062745098,
- 0.0078431373,
- 0.0,
- 0.5490196078431373,
- 0.0705882353,
- 0.0078431373,
- 0.0,
- 0.5529411764705883,
- 0.0862745098,
- 0.0078431373,
- 0.0,
- 0.5568627450980392,
- 0.0941176471,
- 0.0078431373,
- 0.0,
- 0.5607843137254902,
- 0.1019607843,
- 0.0078431373,
- 0.0,
- 0.5647058823529412,
- 0.1098039216,
- 0.0078431373,
- 0.0,
- 0.5686274509803921,
- 0.1254901961,
- 0.0078431373,
- 0.0,
- 0.5725490196078431,
- 0.1333333333,
- 0.0078431373,
- 0.0,
- 0.5764705882352941,
- 0.1411764706,
- 0.0078431373,
- 0.0,
- 0.5803921568627451,
- 0.1568627451,
- 0.0078431373,
- 0.0,
- 0.5843137254901961,
- 0.1647058824,
- 0.0078431373,
- 0.0,
- 0.5882352941176471,
- 0.1725490196,
- 0.0078431373,
- 0.0,
- 0.592156862745098,
- 0.1882352941,
- 0.0078431373,
- 0.0,
- 0.596078431372549,
- 0.1960784314,
- 0.0078431373,
- 0.0,
- 0.6,
- 0.2039215686,
- 0.0078431373,
- 0.0,
- 0.6039215686274509,
- 0.2117647059,
- 0.0078431373,
- 0.0,
- 0.6078431372549019,
- 0.2274509804,
- 0.0078431373,
- 0.0,
- 0.611764705882353,
- 0.2352941176,
- 0.0078431373,
- 0.0,
- 0.615686274509804,
- 0.2431372549,
- 0.0078431373,
- 0.0,
- 0.6196078431372549,
- 0.2588235294,
- 0.0078431373,
- 0.0,
- 0.6235294117647059,
- 0.2666666667,
- 0.0078431373,
- 0.0,
- 0.6274509803921569,
- 0.2745098039,
- 0.0,
- 0.0,
- 0.6313725490196078,
- 0.2901960784,
- 0.0156862745,
- 0.0,
- 0.6352941176470588,
- 0.2980392157,
- 0.0235294118,
- 0.0,
- 0.6392156862745098,
- 0.3058823529,
- 0.0392156863,
- 0.0,
- 0.6431372549019608,
- 0.3137254902,
- 0.0470588235,
- 0.0,
- 0.6470588235294118,
- 0.3294117647,
- 0.0549019608,
- 0.0,
- 0.6509803921568628,
- 0.337254902,
- 0.0705882353,
- 0.0,
- 0.6549019607843137,
- 0.3450980392,
- 0.0784313725,
- 0.0,
- 0.6588235294117647,
- 0.3607843137,
- 0.0862745098,
- 0.0,
- 0.6627450980392157,
- 0.368627451,
- 0.1019607843,
- 0.0,
- 0.6666666666666666,
- 0.3764705882,
- 0.1098039216,
- 0.0,
- 0.6705882352941176,
- 0.3843137255,
- 0.1176470588,
- 0.0,
- 0.6745098039215687,
- 0.4,
- 0.1333333333,
- 0.0,
- 0.6784313725490196,
- 0.4078431373,
- 0.1411764706,
- 0.0,
- 0.6823529411764706,
- 0.4156862745,
- 0.1490196078,
- 0.0,
- 0.6862745098039216,
- 0.431372549,
- 0.1647058824,
- 0.0,
- 0.6901960784313725,
- 0.4392156863,
- 0.1725490196,
- 0.0,
- 0.6941176470588235,
- 0.4470588235,
- 0.1803921569,
- 0.0,
- 0.6980392156862745,
- 0.462745098,
- 0.1960784314,
- 0.0,
- 0.7019607843137254,
- 0.4705882353,
- 0.2039215686,
- 0.0,
- 0.7058823529411765,
- 0.4784313725,
- 0.2117647059,
- 0.0,
- 0.7098039215686275,
- 0.4862745098,
- 0.2274509804,
- 0.0,
- 0.7137254901960784,
- 0.5019607843,
- 0.2352941176,
- 0.0,
- 0.7176470588235294,
- 0.5098039216,
- 0.2431372549,
- 0.0,
- 0.7215686274509804,
- 0.5176470588,
- 0.2588235294,
- 0.0,
- 0.7254901960784313,
- 0.5333333333,
- 0.2666666667,
- 0.0,
- 0.7294117647058823,
- 0.5411764706,
- 0.2745098039,
- 0.0,
- 0.7333333333333333,
- 0.5490196078,
- 0.2901960784,
- 0.0,
- 0.7372549019607844,
- 0.5647058824,
- 0.2980392157,
- 0.0,
- 0.7411764705882353,
- 0.5725490196,
- 0.3058823529,
- 0.0,
- 0.7450980392156863,
- 0.5803921569,
- 0.3215686275,
- 0.0,
- 0.7490196078431373,
- 0.5882352941,
- 0.3294117647,
- 0.0,
- 0.7529411764705882,
- 0.6039215686,
- 0.337254902,
- 0.0,
- 0.7568627450980392,
- 0.6117647059,
- 0.3529411765,
- 0.0,
- 0.7607843137254902,
- 0.6196078431,
- 0.3607843137,
- 0.0,
- 0.7647058823529411,
- 0.6352941176,
- 0.368627451,
- 0.0,
- 0.7686274509803922,
- 0.6431372549,
- 0.3843137255,
- 0.0,
- 0.7725490196078432,
- 0.6509803922,
- 0.3921568627,
- 0.0,
- 0.7764705882352941,
- 0.6588235294,
- 0.4,
- 0.0,
- 0.7803921568627451,
- 0.6745098039,
- 0.4156862745,
- 0.0,
- 0.7843137254901961,
- 0.6823529412,
- 0.4235294118,
- 0.0,
- 0.788235294117647,
- 0.6901960784,
- 0.431372549,
- 0.0,
- 0.792156862745098,
- 0.7058823529,
- 0.4470588235,
- 0.0,
- 0.796078431372549,
- 0.7137254902,
- 0.4549019608,
- 0.0,
- 0.8,
- 0.7215686275,
- 0.462745098,
- 0.0,
- 0.803921568627451,
- 0.737254902,
- 0.4784313725,
- 0.0,
- 0.807843137254902,
- 0.7450980392,
- 0.4862745098,
- 0.0,
- 0.8117647058823529,
- 0.7529411765,
- 0.4941176471,
- 0.0,
- 0.8156862745098039,
- 0.7607843137,
- 0.5098039216,
- 0.0,
- 0.8196078431372549,
- 0.7764705882,
- 0.5176470588,
- 0.0,
- 0.8235294117647058,
- 0.7843137255,
- 0.5254901961,
- 0.0,
- 0.8274509803921568,
- 0.7921568627,
- 0.5411764706,
- 0.0,
- 0.8313725490196079,
- 0.8078431373,
- 0.5490196078,
- 0.0,
- 0.8352941176470589,
- 0.8156862745,
- 0.5568627451,
- 0.0,
- 0.8392156862745098,
- 0.8235294118,
- 0.5725490196,
- 0.0,
- 0.8431372549019608,
- 0.8392156863,
- 0.5803921569,
- 0.0,
- 0.8470588235294118,
- 0.8470588235,
- 0.5882352941,
- 0.0,
- 0.8509803921568627,
- 0.8549019608,
- 0.6039215686,
- 0.0,
- 0.8549019607843137,
- 0.862745098,
- 0.6117647059,
- 0.0,
- 0.8588235294117647,
- 0.8784313725,
- 0.6196078431,
- 0.0,
- 0.8627450980392157,
- 0.8862745098,
- 0.6352941176,
- 0.0,
- 0.8666666666666667,
- 0.8941176471,
- 0.6431372549,
- 0.0,
- 0.8705882352941177,
- 0.9098039216,
- 0.6509803922,
- 0.0,
- 0.8745098039215686,
- 0.9176470588,
- 0.6666666667,
- 0.0,
- 0.8784313725490196,
- 0.9254901961,
- 0.6745098039,
- 0.0,
- 0.8823529411764706,
- 0.9411764706,
- 0.6823529412,
- 0.0,
- 0.8862745098039215,
- 0.9490196078,
- 0.6980392157,
- 0.0,
- 0.8901960784313725,
- 0.9568627451,
- 0.7058823529,
- 0.0,
- 0.8941176470588236,
- 0.9647058824,
- 0.7137254902,
- 0.0,
- 0.8980392156862745,
- 0.9803921569,
- 0.7294117647,
- 0.0,
- 0.9019607843137255,
- 0.9882352941,
- 0.737254902,
- 0.0,
- 0.9058823529411765,
- 0.9960784314,
- 0.7450980392,
- 0.0,
- 0.9098039215686274,
- 0.9960784314,
- 0.7607843137,
- 0.0,
- 0.9137254901960784,
- 0.9960784314,
- 0.768627451,
- 0.0,
- 0.9176470588235294,
- 0.9960784314,
- 0.7764705882,
- 0.0,
- 0.9215686274509803,
- 0.9960784314,
- 0.7921568627,
- 0.0,
- 0.9254901960784314,
- 0.9960784314,
- 0.8,
- 0.0,
- 0.9294117647058824,
- 0.9960784314,
- 0.8078431373,
- 0.0,
- 0.9333333333333333,
- 0.9960784314,
- 0.8235294118,
- 0.0,
- 0.9372549019607843,
- 0.9960784314,
- 0.831372549,
- 0.0,
- 0.9411764705882354,
- 0.9960784314,
- 0.8392156863,
- 0.0,
- 0.9450980392156864,
- 0.9960784314,
- 0.8549019608,
- 0.0,
- 0.9490196078431372,
- 0.9960784314,
- 0.862745098,
- 0.0549019608,
- 0.9529411764705882,
- 0.9960784314,
- 0.8705882353,
- 0.1098039216,
- 0.9568627450980394,
- 0.9960784314,
- 0.8862745098,
- 0.1647058824,
- 0.9607843137254903,
- 0.9960784314,
- 0.8941176471,
- 0.2196078431,
- 0.9647058823529413,
- 0.9960784314,
- 0.9019607843,
- 0.2666666667,
- 0.9686274509803922,
- 0.9960784314,
- 0.9176470588,
- 0.3215686275,
- 0.9725490196078431,
- 0.9960784314,
- 0.9254901961,
- 0.3764705882,
- 0.9764705882352941,
- 0.9960784314,
- 0.9333333333,
- 0.431372549,
- 0.9803921568627451,
- 0.9960784314,
- 0.9490196078,
- 0.4862745098,
- 0.984313725490196,
- 0.9960784314,
- 0.9568627451,
- 0.5333333333,
- 0.9882352941176471,
- 0.9960784314,
- 0.9647058824,
- 0.5882352941,
- 0.9921568627450981,
- 0.9960784314,
- 0.9803921569,
- 0.6431372549,
- 0.996078431372549,
- 0.9960784314,
- 0.9882352941,
- 0.6980392157,
- 1.0,
- 0.9960784314,
- 0.9960784314,
- 0.7450980392,
+ 0.0, 0.0, 0.0, 0.0, 0.00392156862745098, 0.0078431373, 0.0235294118, 0.0235294118,
+ 0.00784313725490196, 0.0078431373, 0.031372549, 0.0470588235, 0.011764705882352941,
+ 0.0078431373, 0.0392156863, 0.062745098, 0.01568627450980392, 0.0078431373, 0.0470588235,
+ 0.0862745098, 0.0196078431372549, 0.0078431373, 0.0549019608, 0.1019607843,
+ 0.023529411764705882, 0.0078431373, 0.0549019608, 0.1254901961, 0.027450980392156862,
+ 0.0078431373, 0.062745098, 0.1411764706, 0.03137254901960784, 0.0078431373, 0.0705882353,
+ 0.1647058824, 0.03529411764705882, 0.0078431373, 0.0784313725, 0.1803921569,
+ 0.0392156862745098, 0.0078431373, 0.0862745098, 0.2039215686, 0.043137254901960784,
+ 0.0078431373, 0.0862745098, 0.2196078431, 0.047058823529411764, 0.0078431373, 0.0941176471,
+ 0.2431372549, 0.050980392156862744, 0.0078431373, 0.1019607843, 0.2666666667,
+ 0.054901960784313725, 0.0078431373, 0.1098039216, 0.2823529412, 0.05882352941176471,
+ 0.0078431373, 0.1176470588, 0.3058823529, 0.06274509803921569, 0.0078431373, 0.1176470588,
+ 0.3215686275, 0.06666666666666667, 0.0078431373, 0.1254901961, 0.3450980392,
+ 0.07058823529411765, 0.0078431373, 0.1333333333, 0.3607843137, 0.07450980392156863,
+ 0.0078431373, 0.1411764706, 0.3843137255, 0.0784313725490196, 0.0078431373, 0.1490196078, 0.4,
+ 0.08235294117647059, 0.0078431373, 0.1490196078, 0.4235294118, 0.08627450980392157,
+ 0.0078431373, 0.1568627451, 0.4392156863, 0.09019607843137255, 0.0078431373, 0.1647058824,
+ 0.462745098, 0.09411764705882353, 0.0078431373, 0.1725490196, 0.4784313725,
+ 0.09803921568627451, 0.0078431373, 0.1803921569, 0.5019607843, 0.10196078431372549,
+ 0.0078431373, 0.1803921569, 0.5254901961, 0.10588235294117647, 0.0078431373, 0.1882352941,
+ 0.5411764706, 0.10980392156862745, 0.0078431373, 0.1960784314, 0.5647058824,
+ 0.11372549019607843, 0.0078431373, 0.2039215686, 0.5803921569, 0.11764705882352942,
+ 0.0078431373, 0.2117647059, 0.6039215686, 0.12156862745098039, 0.0078431373, 0.2117647059,
+ 0.6196078431, 0.12549019607843137, 0.0078431373, 0.2196078431, 0.6431372549,
+ 0.12941176470588237, 0.0078431373, 0.2274509804, 0.6588235294, 0.13333333333333333,
+ 0.0078431373, 0.2352941176, 0.6823529412, 0.13725490196078433, 0.0078431373, 0.2431372549,
+ 0.6980392157, 0.1411764705882353, 0.0078431373, 0.2431372549, 0.7215686275,
+ 0.1450980392156863, 0.0078431373, 0.2509803922, 0.737254902, 0.14901960784313725,
+ 0.0078431373, 0.2588235294, 0.7607843137, 0.15294117647058825, 0.0078431373, 0.2666666667,
+ 0.7843137255, 0.1568627450980392, 0.0078431373, 0.2745098039, 0.8, 0.1607843137254902,
+ 0.0078431373, 0.2745098039, 0.8235294118, 0.16470588235294117, 0.0078431373, 0.2823529412,
+ 0.8392156863, 0.16862745098039217, 0.0078431373, 0.2901960784, 0.862745098,
+ 0.17254901960784313, 0.0078431373, 0.2980392157, 0.8784313725, 0.17647058823529413,
+ 0.0078431373, 0.3058823529, 0.9019607843, 0.1803921568627451, 0.0078431373, 0.3058823529,
+ 0.9176470588, 0.1843137254901961, 0.0078431373, 0.2980392157, 0.9411764706,
+ 0.18823529411764706, 0.0078431373, 0.3058823529, 0.9568627451, 0.19215686274509805,
+ 0.0078431373, 0.2980392157, 0.9803921569, 0.19607843137254902, 0.0078431373, 0.2980392157,
+ 0.9882352941, 0.2, 0.0078431373, 0.2901960784, 0.9803921569, 0.20392156862745098,
+ 0.0078431373, 0.2901960784, 0.9647058824, 0.20784313725490197, 0.0078431373, 0.2823529412,
+ 0.9568627451, 0.21176470588235294, 0.0078431373, 0.2823529412, 0.9411764706,
+ 0.21568627450980393, 0.0078431373, 0.2745098039, 0.9333333333, 0.2196078431372549,
+ 0.0078431373, 0.2666666667, 0.9176470588, 0.2235294117647059, 0.0078431373, 0.2666666667,
+ 0.9098039216, 0.22745098039215686, 0.0078431373, 0.2588235294, 0.9019607843,
+ 0.23137254901960785, 0.0078431373, 0.2588235294, 0.8862745098, 0.23529411764705885,
+ 0.0078431373, 0.2509803922, 0.8784313725, 0.23921568627450984, 0.0078431373, 0.2509803922,
+ 0.862745098, 0.24313725490196078, 0.0078431373, 0.2431372549, 0.8549019608,
+ 0.24705882352941178, 0.0078431373, 0.2352941176, 0.8392156863, 0.25098039215686274,
+ 0.0078431373, 0.2352941176, 0.831372549, 0.2549019607843137, 0.0078431373, 0.2274509804,
+ 0.8235294118, 0.25882352941176473, 0.0078431373, 0.2274509804, 0.8078431373,
+ 0.2627450980392157, 0.0078431373, 0.2196078431, 0.8, 0.26666666666666666, 0.0078431373,
+ 0.2196078431, 0.7843137255, 0.27058823529411763, 0.0078431373, 0.2117647059, 0.7764705882,
+ 0.27450980392156865, 0.0078431373, 0.2039215686, 0.7607843137, 0.2784313725490196,
+ 0.0078431373, 0.2039215686, 0.7529411765, 0.2823529411764706, 0.0078431373, 0.1960784314,
+ 0.7450980392, 0.28627450980392155, 0.0078431373, 0.1960784314, 0.7294117647,
+ 0.2901960784313726, 0.0078431373, 0.1882352941, 0.7215686275, 0.29411764705882354,
+ 0.0078431373, 0.1882352941, 0.7058823529, 0.2980392156862745, 0.0078431373, 0.1803921569,
+ 0.6980392157, 0.30196078431372547, 0.0078431373, 0.1803921569, 0.6823529412,
+ 0.3058823529411765, 0.0078431373, 0.1725490196, 0.6745098039, 0.30980392156862746,
+ 0.0078431373, 0.1647058824, 0.6666666667, 0.3137254901960784, 0.0078431373, 0.1647058824,
+ 0.6509803922, 0.3176470588235294, 0.0078431373, 0.1568627451, 0.6431372549,
+ 0.3215686274509804, 0.0078431373, 0.1568627451, 0.6274509804, 0.3254901960784314,
+ 0.0078431373, 0.1490196078, 0.6196078431, 0.32941176470588235, 0.0078431373, 0.1490196078,
+ 0.6039215686, 0.3333333333333333, 0.0078431373, 0.1411764706, 0.5960784314,
+ 0.33725490196078434, 0.0078431373, 0.1333333333, 0.5882352941, 0.3411764705882353,
+ 0.0078431373, 0.1333333333, 0.5725490196, 0.34509803921568627, 0.0078431373, 0.1254901961,
+ 0.5647058824, 0.34901960784313724, 0.0078431373, 0.1254901961, 0.5490196078,
+ 0.35294117647058826, 0.0078431373, 0.1176470588, 0.5411764706, 0.3568627450980392,
+ 0.0078431373, 0.1176470588, 0.5254901961, 0.3607843137254902, 0.0078431373, 0.1098039216,
+ 0.5176470588, 0.36470588235294116, 0.0078431373, 0.1019607843, 0.5098039216,
+ 0.3686274509803922, 0.0078431373, 0.1019607843, 0.4941176471, 0.37254901960784315,
+ 0.0078431373, 0.0941176471, 0.4862745098, 0.3764705882352941, 0.0078431373, 0.0941176471,
+ 0.4705882353, 0.3803921568627451, 0.0078431373, 0.0862745098, 0.462745098, 0.3843137254901961,
+ 0.0078431373, 0.0862745098, 0.4470588235, 0.38823529411764707, 0.0078431373, 0.0784313725,
+ 0.4392156863, 0.39215686274509803, 0.0078431373, 0.0705882353, 0.431372549, 0.396078431372549,
+ 0.0078431373, 0.0705882353, 0.4156862745, 0.4, 0.0078431373, 0.062745098, 0.4078431373,
+ 0.403921568627451, 0.0078431373, 0.062745098, 0.3921568627, 0.40784313725490196, 0.0078431373,
+ 0.0549019608, 0.3843137255, 0.4117647058823529, 0.0078431373, 0.0549019608, 0.368627451,
+ 0.41568627450980394, 0.0078431373, 0.0470588235, 0.3607843137, 0.4196078431372549,
+ 0.0078431373, 0.0470588235, 0.3529411765, 0.4235294117647059, 0.0078431373, 0.0392156863,
+ 0.337254902, 0.42745098039215684, 0.0078431373, 0.031372549, 0.3294117647,
+ 0.43137254901960786, 0.0078431373, 0.031372549, 0.3137254902, 0.43529411764705883,
+ 0.0078431373, 0.0235294118, 0.3058823529, 0.4392156862745098, 0.0078431373, 0.0235294118,
+ 0.2901960784, 0.44313725490196076, 0.0078431373, 0.0156862745, 0.2823529412,
+ 0.4470588235294118, 0.0078431373, 0.0156862745, 0.2745098039, 0.45098039215686275,
+ 0.0078431373, 0.0078431373, 0.2588235294, 0.4549019607843137, 0.0235294118, 0.0078431373,
+ 0.2509803922, 0.4588235294117647, 0.0078431373, 0.0078431373, 0.2352941176,
+ 0.4627450980392157, 0.0078431373, 0.0078431373, 0.2274509804, 0.4666666666666667,
+ 0.0078431373, 0.0078431373, 0.2117647059, 0.4705882352941177, 0.0078431373, 0.0078431373,
+ 0.2039215686, 0.4745098039215686, 0.0078431373, 0.0078431373, 0.1960784314,
+ 0.4784313725490197, 0.0078431373, 0.0078431373, 0.1803921569, 0.48235294117647065,
+ 0.0078431373, 0.0078431373, 0.1725490196, 0.48627450980392156, 0.0078431373, 0.0078431373,
+ 0.1568627451, 0.49019607843137253, 0.0078431373, 0.0078431373, 0.1490196078,
+ 0.49411764705882355, 0.0078431373, 0.0078431373, 0.1333333333, 0.4980392156862745,
+ 0.0078431373, 0.0078431373, 0.1254901961, 0.5019607843137255, 0.0078431373, 0.0078431373,
+ 0.1176470588, 0.5058823529411764, 0.0078431373, 0.0078431373, 0.1019607843,
+ 0.5098039215686274, 0.0078431373, 0.0078431373, 0.0941176471, 0.5137254901960784,
+ 0.0078431373, 0.0078431373, 0.0784313725, 0.5176470588235295, 0.0078431373, 0.0078431373,
+ 0.0705882353, 0.5215686274509804, 0.0078431373, 0.0078431373, 0.0549019608,
+ 0.5254901960784314, 0.0078431373, 0.0078431373, 0.0470588235, 0.5294117647058824,
+ 0.0235294118, 0.0078431373, 0.0392156863, 0.5333333333333333, 0.031372549, 0.0078431373,
+ 0.0235294118, 0.5372549019607843, 0.0392156863, 0.0078431373, 0.0156862745,
+ 0.5411764705882353, 0.0549019608, 0.0078431373, 0.0, 0.5450980392156862, 0.062745098,
+ 0.0078431373, 0.0, 0.5490196078431373, 0.0705882353, 0.0078431373, 0.0, 0.5529411764705883,
+ 0.0862745098, 0.0078431373, 0.0, 0.5568627450980392, 0.0941176471, 0.0078431373, 0.0,
+ 0.5607843137254902, 0.1019607843, 0.0078431373, 0.0, 0.5647058823529412, 0.1098039216,
+ 0.0078431373, 0.0, 0.5686274509803921, 0.1254901961, 0.0078431373, 0.0, 0.5725490196078431,
+ 0.1333333333, 0.0078431373, 0.0, 0.5764705882352941, 0.1411764706, 0.0078431373, 0.0,
+ 0.5803921568627451, 0.1568627451, 0.0078431373, 0.0, 0.5843137254901961, 0.1647058824,
+ 0.0078431373, 0.0, 0.5882352941176471, 0.1725490196, 0.0078431373, 0.0, 0.592156862745098,
+ 0.1882352941, 0.0078431373, 0.0, 0.596078431372549, 0.1960784314, 0.0078431373, 0.0, 0.6,
+ 0.2039215686, 0.0078431373, 0.0, 0.6039215686274509, 0.2117647059, 0.0078431373, 0.0,
+ 0.6078431372549019, 0.2274509804, 0.0078431373, 0.0, 0.611764705882353, 0.2352941176,
+ 0.0078431373, 0.0, 0.615686274509804, 0.2431372549, 0.0078431373, 0.0, 0.6196078431372549,
+ 0.2588235294, 0.0078431373, 0.0, 0.6235294117647059, 0.2666666667, 0.0078431373, 0.0,
+ 0.6274509803921569, 0.2745098039, 0.0, 0.0, 0.6313725490196078, 0.2901960784, 0.0156862745,
+ 0.0, 0.6352941176470588, 0.2980392157, 0.0235294118, 0.0, 0.6392156862745098, 0.3058823529,
+ 0.0392156863, 0.0, 0.6431372549019608, 0.3137254902, 0.0470588235, 0.0, 0.6470588235294118,
+ 0.3294117647, 0.0549019608, 0.0, 0.6509803921568628, 0.337254902, 0.0705882353, 0.0,
+ 0.6549019607843137, 0.3450980392, 0.0784313725, 0.0, 0.6588235294117647, 0.3607843137,
+ 0.0862745098, 0.0, 0.6627450980392157, 0.368627451, 0.1019607843, 0.0, 0.6666666666666666,
+ 0.3764705882, 0.1098039216, 0.0, 0.6705882352941176, 0.3843137255, 0.1176470588, 0.0,
+ 0.6745098039215687, 0.4, 0.1333333333, 0.0, 0.6784313725490196, 0.4078431373, 0.1411764706,
+ 0.0, 0.6823529411764706, 0.4156862745, 0.1490196078, 0.0, 0.6862745098039216, 0.431372549,
+ 0.1647058824, 0.0, 0.6901960784313725, 0.4392156863, 0.1725490196, 0.0, 0.6941176470588235,
+ 0.4470588235, 0.1803921569, 0.0, 0.6980392156862745, 0.462745098, 0.1960784314, 0.0,
+ 0.7019607843137254, 0.4705882353, 0.2039215686, 0.0, 0.7058823529411765, 0.4784313725,
+ 0.2117647059, 0.0, 0.7098039215686275, 0.4862745098, 0.2274509804, 0.0, 0.7137254901960784,
+ 0.5019607843, 0.2352941176, 0.0, 0.7176470588235294, 0.5098039216, 0.2431372549, 0.0,
+ 0.7215686274509804, 0.5176470588, 0.2588235294, 0.0, 0.7254901960784313, 0.5333333333,
+ 0.2666666667, 0.0, 0.7294117647058823, 0.5411764706, 0.2745098039, 0.0, 0.7333333333333333,
+ 0.5490196078, 0.2901960784, 0.0, 0.7372549019607844, 0.5647058824, 0.2980392157, 0.0,
+ 0.7411764705882353, 0.5725490196, 0.3058823529, 0.0, 0.7450980392156863, 0.5803921569,
+ 0.3215686275, 0.0, 0.7490196078431373, 0.5882352941, 0.3294117647, 0.0, 0.7529411764705882,
+ 0.6039215686, 0.337254902, 0.0, 0.7568627450980392, 0.6117647059, 0.3529411765, 0.0,
+ 0.7607843137254902, 0.6196078431, 0.3607843137, 0.0, 0.7647058823529411, 0.6352941176,
+ 0.368627451, 0.0, 0.7686274509803922, 0.6431372549, 0.3843137255, 0.0, 0.7725490196078432,
+ 0.6509803922, 0.3921568627, 0.0, 0.7764705882352941, 0.6588235294, 0.4, 0.0,
+ 0.7803921568627451, 0.6745098039, 0.4156862745, 0.0, 0.7843137254901961, 0.6823529412,
+ 0.4235294118, 0.0, 0.788235294117647, 0.6901960784, 0.431372549, 0.0, 0.792156862745098,
+ 0.7058823529, 0.4470588235, 0.0, 0.796078431372549, 0.7137254902, 0.4549019608, 0.0, 0.8,
+ 0.7215686275, 0.462745098, 0.0, 0.803921568627451, 0.737254902, 0.4784313725, 0.0,
+ 0.807843137254902, 0.7450980392, 0.4862745098, 0.0, 0.8117647058823529, 0.7529411765,
+ 0.4941176471, 0.0, 0.8156862745098039, 0.7607843137, 0.5098039216, 0.0, 0.8196078431372549,
+ 0.7764705882, 0.5176470588, 0.0, 0.8235294117647058, 0.7843137255, 0.5254901961, 0.0,
+ 0.8274509803921568, 0.7921568627, 0.5411764706, 0.0, 0.8313725490196079, 0.8078431373,
+ 0.5490196078, 0.0, 0.8352941176470589, 0.8156862745, 0.5568627451, 0.0, 0.8392156862745098,
+ 0.8235294118, 0.5725490196, 0.0, 0.8431372549019608, 0.8392156863, 0.5803921569, 0.0,
+ 0.8470588235294118, 0.8470588235, 0.5882352941, 0.0, 0.8509803921568627, 0.8549019608,
+ 0.6039215686, 0.0, 0.8549019607843137, 0.862745098, 0.6117647059, 0.0, 0.8588235294117647,
+ 0.8784313725, 0.6196078431, 0.0, 0.8627450980392157, 0.8862745098, 0.6352941176, 0.0,
+ 0.8666666666666667, 0.8941176471, 0.6431372549, 0.0, 0.8705882352941177, 0.9098039216,
+ 0.6509803922, 0.0, 0.8745098039215686, 0.9176470588, 0.6666666667, 0.0, 0.8784313725490196,
+ 0.9254901961, 0.6745098039, 0.0, 0.8823529411764706, 0.9411764706, 0.6823529412, 0.0,
+ 0.8862745098039215, 0.9490196078, 0.6980392157, 0.0, 0.8901960784313725, 0.9568627451,
+ 0.7058823529, 0.0, 0.8941176470588236, 0.9647058824, 0.7137254902, 0.0, 0.8980392156862745,
+ 0.9803921569, 0.7294117647, 0.0, 0.9019607843137255, 0.9882352941, 0.737254902, 0.0,
+ 0.9058823529411765, 0.9960784314, 0.7450980392, 0.0, 0.9098039215686274, 0.9960784314,
+ 0.7607843137, 0.0, 0.9137254901960784, 0.9960784314, 0.768627451, 0.0, 0.9176470588235294,
+ 0.9960784314, 0.7764705882, 0.0, 0.9215686274509803, 0.9960784314, 0.7921568627, 0.0,
+ 0.9254901960784314, 0.9960784314, 0.8, 0.0, 0.9294117647058824, 0.9960784314, 0.8078431373,
+ 0.0, 0.9333333333333333, 0.9960784314, 0.8235294118, 0.0, 0.9372549019607843, 0.9960784314,
+ 0.831372549, 0.0, 0.9411764705882354, 0.9960784314, 0.8392156863, 0.0, 0.9450980392156864,
+ 0.9960784314, 0.8549019608, 0.0, 0.9490196078431372, 0.9960784314, 0.862745098, 0.0549019608,
+ 0.9529411764705882, 0.9960784314, 0.8705882353, 0.1098039216, 0.9568627450980394,
+ 0.9960784314, 0.8862745098, 0.1647058824, 0.9607843137254903, 0.9960784314, 0.8941176471,
+ 0.2196078431, 0.9647058823529413, 0.9960784314, 0.9019607843, 0.2666666667,
+ 0.9686274509803922, 0.9960784314, 0.9176470588, 0.3215686275, 0.9725490196078431,
+ 0.9960784314, 0.9254901961, 0.3764705882, 0.9764705882352941, 0.9960784314, 0.9333333333,
+ 0.431372549, 0.9803921568627451, 0.9960784314, 0.9490196078, 0.4862745098, 0.984313725490196,
+ 0.9960784314, 0.9568627451, 0.5333333333, 0.9882352941176471, 0.9960784314, 0.9647058824,
+ 0.5882352941, 0.9921568627450981, 0.9960784314, 0.9803921569, 0.6431372549, 0.996078431372549,
+ 0.9960784314, 0.9882352941, 0.6980392157, 1.0, 0.9960784314, 0.9960784314, 0.7450980392,
],
},
{
ColorSpace: 'RGB',
Name: 'rainbow_2',
RGBPoints: [
- 0.0,
- 0.0,
- 0.0,
- 0.0,
- 0.00392156862745098,
- 0.0156862745,
- 0.0,
- 0.0117647059,
- 0.00784313725490196,
- 0.0352941176,
- 0.0,
- 0.0274509804,
- 0.011764705882352941,
- 0.0509803922,
- 0.0,
- 0.0392156863,
- 0.01568627450980392,
- 0.0705882353,
- 0.0,
- 0.0549019608,
- 0.0196078431372549,
- 0.0862745098,
- 0.0,
- 0.0745098039,
- 0.023529411764705882,
- 0.1058823529,
- 0.0,
- 0.0901960784,
- 0.027450980392156862,
- 0.1215686275,
- 0.0,
- 0.1098039216,
- 0.03137254901960784,
- 0.1411764706,
- 0.0,
- 0.1254901961,
- 0.03529411764705882,
- 0.1568627451,
- 0.0,
- 0.1490196078,
- 0.0392156862745098,
- 0.1764705882,
- 0.0,
- 0.168627451,
- 0.043137254901960784,
- 0.1960784314,
- 0.0,
- 0.1882352941,
- 0.047058823529411764,
- 0.2117647059,
- 0.0,
- 0.2078431373,
- 0.050980392156862744,
- 0.2274509804,
- 0.0,
- 0.231372549,
- 0.054901960784313725,
- 0.2392156863,
- 0.0,
- 0.2470588235,
- 0.05882352941176471,
- 0.2509803922,
- 0.0,
- 0.2666666667,
- 0.06274509803921569,
- 0.2666666667,
- 0.0,
- 0.2823529412,
- 0.06666666666666667,
- 0.2705882353,
- 0.0,
- 0.3019607843,
- 0.07058823529411765,
- 0.2823529412,
- 0.0,
- 0.3176470588,
- 0.07450980392156863,
- 0.2901960784,
- 0.0,
- 0.337254902,
- 0.0784313725490196,
- 0.3019607843,
- 0.0,
- 0.3568627451,
- 0.08235294117647059,
- 0.3098039216,
- 0.0,
- 0.3725490196,
- 0.08627450980392157,
- 0.3137254902,
- 0.0,
- 0.3921568627,
- 0.09019607843137255,
- 0.3215686275,
- 0.0,
- 0.4078431373,
- 0.09411764705882353,
- 0.3254901961,
- 0.0,
- 0.4274509804,
- 0.09803921568627451,
- 0.3333333333,
- 0.0,
- 0.4431372549,
- 0.10196078431372549,
- 0.3294117647,
- 0.0,
- 0.462745098,
- 0.10588235294117647,
- 0.337254902,
- 0.0,
- 0.4784313725,
- 0.10980392156862745,
- 0.3411764706,
- 0.0,
- 0.4980392157,
- 0.11372549019607843,
- 0.3450980392,
- 0.0,
- 0.5176470588,
- 0.11764705882352942,
- 0.337254902,
- 0.0,
- 0.5333333333,
- 0.12156862745098039,
- 0.3411764706,
- 0.0,
- 0.5529411765,
- 0.12549019607843137,
- 0.3411764706,
- 0.0,
- 0.568627451,
- 0.12941176470588237,
- 0.3411764706,
- 0.0,
- 0.5882352941,
- 0.13333333333333333,
- 0.3333333333,
- 0.0,
- 0.6039215686,
- 0.13725490196078433,
- 0.3294117647,
- 0.0,
- 0.6235294118,
- 0.1411764705882353,
- 0.3294117647,
- 0.0,
- 0.6392156863,
- 0.1450980392156863,
- 0.3294117647,
- 0.0,
- 0.6588235294,
- 0.14901960784313725,
- 0.3254901961,
- 0.0,
- 0.6784313725,
- 0.15294117647058825,
- 0.3098039216,
- 0.0,
- 0.6941176471,
- 0.1568627450980392,
- 0.3058823529,
- 0.0,
- 0.7137254902,
- 0.1607843137254902,
- 0.3019607843,
- 0.0,
- 0.7294117647,
- 0.16470588235294117,
- 0.2980392157,
- 0.0,
- 0.7490196078,
- 0.16862745098039217,
- 0.2784313725,
- 0.0,
- 0.7647058824,
- 0.17254901960784313,
- 0.2745098039,
- 0.0,
- 0.7843137255,
- 0.17647058823529413,
- 0.2666666667,
- 0.0,
- 0.8,
- 0.1803921568627451,
- 0.2588235294,
- 0.0,
- 0.8196078431,
- 0.1843137254901961,
- 0.2352941176,
- 0.0,
- 0.8392156863,
- 0.18823529411764706,
- 0.2274509804,
- 0.0,
- 0.8549019608,
- 0.19215686274509805,
- 0.2156862745,
- 0.0,
- 0.8745098039,
- 0.19607843137254902,
- 0.2078431373,
- 0.0,
- 0.8901960784,
- 0.2,
- 0.1803921569,
- 0.0,
- 0.9098039216,
- 0.20392156862745098,
- 0.168627451,
- 0.0,
- 0.9254901961,
- 0.20784313725490197,
- 0.1568627451,
- 0.0,
- 0.9450980392,
- 0.21176470588235294,
- 0.1411764706,
- 0.0,
- 0.9607843137,
- 0.21568627450980393,
- 0.1294117647,
- 0.0,
- 0.9803921569,
- 0.2196078431372549,
- 0.0980392157,
- 0.0,
- 1.0,
- 0.2235294117647059,
- 0.0823529412,
- 0.0,
- 1.0,
- 0.22745098039215686,
- 0.062745098,
- 0.0,
- 1.0,
- 0.23137254901960785,
- 0.0470588235,
- 0.0,
- 1.0,
- 0.23529411764705885,
- 0.0156862745,
- 0.0,
- 1.0,
- 0.23921568627450984,
- 0.0,
- 0.0,
- 1.0,
- 0.24313725490196078,
- 0.0,
- 0.0156862745,
- 1.0,
- 0.24705882352941178,
- 0.0,
- 0.031372549,
- 1.0,
- 0.25098039215686274,
- 0.0,
- 0.062745098,
- 1.0,
- 0.2549019607843137,
- 0.0,
- 0.0823529412,
- 1.0,
- 0.25882352941176473,
- 0.0,
- 0.0980392157,
- 1.0,
- 0.2627450980392157,
- 0.0,
- 0.1137254902,
- 1.0,
- 0.26666666666666666,
- 0.0,
- 0.1490196078,
- 1.0,
- 0.27058823529411763,
- 0.0,
- 0.1647058824,
- 1.0,
- 0.27450980392156865,
- 0.0,
- 0.1803921569,
- 1.0,
- 0.2784313725490196,
- 0.0,
- 0.2,
- 1.0,
- 0.2823529411764706,
- 0.0,
- 0.2156862745,
- 1.0,
- 0.28627450980392155,
- 0.0,
- 0.2470588235,
- 1.0,
- 0.2901960784313726,
- 0.0,
- 0.262745098,
- 1.0,
- 0.29411764705882354,
- 0.0,
- 0.2823529412,
- 1.0,
- 0.2980392156862745,
- 0.0,
- 0.2980392157,
- 1.0,
- 0.30196078431372547,
- 0.0,
- 0.3294117647,
- 1.0,
- 0.3058823529411765,
- 0.0,
- 0.3490196078,
- 1.0,
- 0.30980392156862746,
- 0.0,
- 0.3647058824,
- 1.0,
- 0.3137254901960784,
- 0.0,
- 0.3803921569,
- 1.0,
- 0.3176470588235294,
- 0.0,
- 0.4156862745,
- 1.0,
- 0.3215686274509804,
- 0.0,
- 0.431372549,
- 1.0,
- 0.3254901960784314,
- 0.0,
- 0.4470588235,
- 1.0,
- 0.32941176470588235,
- 0.0,
- 0.4666666667,
- 1.0,
- 0.3333333333333333,
- 0.0,
- 0.4980392157,
- 1.0,
- 0.33725490196078434,
- 0.0,
- 0.5137254902,
- 1.0,
- 0.3411764705882353,
- 0.0,
- 0.5294117647,
- 1.0,
- 0.34509803921568627,
- 0.0,
- 0.5490196078,
- 1.0,
- 0.34901960784313724,
- 0.0,
- 0.5647058824,
- 1.0,
- 0.35294117647058826,
- 0.0,
- 0.5960784314,
- 1.0,
- 0.3568627450980392,
- 0.0,
- 0.6156862745,
- 1.0,
- 0.3607843137254902,
- 0.0,
- 0.631372549,
- 1.0,
- 0.36470588235294116,
- 0.0,
- 0.6470588235,
- 1.0,
- 0.3686274509803922,
- 0.0,
- 0.6823529412,
- 1.0,
- 0.37254901960784315,
- 0.0,
- 0.6980392157,
- 1.0,
- 0.3764705882352941,
- 0.0,
- 0.7137254902,
- 1.0,
- 0.3803921568627451,
- 0.0,
- 0.7333333333,
- 1.0,
- 0.3843137254901961,
- 0.0,
- 0.7647058824,
- 1.0,
- 0.38823529411764707,
- 0.0,
- 0.7803921569,
- 1.0,
- 0.39215686274509803,
- 0.0,
- 0.7960784314,
- 1.0,
- 0.396078431372549,
- 0.0,
- 0.8156862745,
- 1.0,
- 0.4,
- 0.0,
- 0.8470588235,
- 1.0,
- 0.403921568627451,
- 0.0,
- 0.862745098,
- 1.0,
- 0.40784313725490196,
- 0.0,
- 0.8823529412,
- 1.0,
- 0.4117647058823529,
- 0.0,
- 0.8980392157,
- 1.0,
- 0.41568627450980394,
- 0.0,
- 0.9137254902,
- 1.0,
- 0.4196078431372549,
- 0.0,
- 0.9490196078,
- 1.0,
- 0.4235294117647059,
- 0.0,
- 0.9647058824,
- 1.0,
- 0.42745098039215684,
- 0.0,
- 0.9803921569,
- 1.0,
- 0.43137254901960786,
- 0.0,
- 1.0,
- 1.0,
- 0.43529411764705883,
- 0.0,
- 1.0,
- 0.9647058824,
- 0.4392156862745098,
- 0.0,
- 1.0,
- 0.9490196078,
- 0.44313725490196076,
- 0.0,
- 1.0,
- 0.9333333333,
- 0.4470588235294118,
- 0.0,
- 1.0,
- 0.9137254902,
- 0.45098039215686275,
- 0.0,
- 1.0,
- 0.8823529412,
- 0.4549019607843137,
- 0.0,
- 1.0,
- 0.862745098,
- 0.4588235294117647,
- 0.0,
- 1.0,
- 0.8470588235,
- 0.4627450980392157,
- 0.0,
- 1.0,
- 0.831372549,
- 0.4666666666666667,
- 0.0,
- 1.0,
- 0.7960784314,
- 0.4705882352941177,
- 0.0,
- 1.0,
- 0.7803921569,
- 0.4745098039215686,
- 0.0,
- 1.0,
- 0.7647058824,
- 0.4784313725490197,
- 0.0,
- 1.0,
- 0.7490196078,
- 0.48235294117647065,
- 0.0,
- 1.0,
- 0.7333333333,
- 0.48627450980392156,
- 0.0,
- 1.0,
- 0.6980392157,
- 0.49019607843137253,
- 0.0,
- 1.0,
- 0.6823529412,
- 0.49411764705882355,
- 0.0,
- 1.0,
- 0.6666666667,
- 0.4980392156862745,
- 0.0,
- 1.0,
- 0.6470588235,
- 0.5019607843137255,
- 0.0,
- 1.0,
- 0.6156862745,
- 0.5058823529411764,
- 0.0,
- 1.0,
- 0.5960784314,
- 0.5098039215686274,
- 0.0,
- 1.0,
- 0.5803921569,
- 0.5137254901960784,
- 0.0,
- 1.0,
- 0.5647058824,
- 0.5176470588235295,
- 0.0,
- 1.0,
- 0.5294117647,
- 0.5215686274509804,
- 0.0,
- 1.0,
- 0.5137254902,
- 0.5254901960784314,
- 0.0,
- 1.0,
- 0.4980392157,
- 0.5294117647058824,
- 0.0,
- 1.0,
- 0.4823529412,
- 0.5333333333333333,
- 0.0,
- 1.0,
- 0.4470588235,
- 0.5372549019607843,
- 0.0,
- 1.0,
- 0.431372549,
- 0.5411764705882353,
- 0.0,
- 1.0,
- 0.4156862745,
- 0.5450980392156862,
- 0.0,
- 1.0,
- 0.4,
- 0.5490196078431373,
- 0.0,
- 1.0,
- 0.3803921569,
- 0.5529411764705883,
- 0.0,
- 1.0,
- 0.3490196078,
- 0.5568627450980392,
- 0.0,
- 1.0,
- 0.3294117647,
- 0.5607843137254902,
- 0.0,
- 1.0,
- 0.3137254902,
- 0.5647058823529412,
- 0.0,
- 1.0,
- 0.2980392157,
- 0.5686274509803921,
- 0.0,
- 1.0,
- 0.262745098,
- 0.5725490196078431,
- 0.0,
- 1.0,
- 0.2470588235,
- 0.5764705882352941,
- 0.0,
- 1.0,
- 0.231372549,
- 0.5803921568627451,
- 0.0,
- 1.0,
- 0.2156862745,
- 0.5843137254901961,
- 0.0,
- 1.0,
- 0.1803921569,
- 0.5882352941176471,
- 0.0,
- 1.0,
- 0.1647058824,
- 0.592156862745098,
- 0.0,
- 1.0,
- 0.1490196078,
- 0.596078431372549,
- 0.0,
- 1.0,
- 0.1333333333,
- 0.6,
- 0.0,
- 1.0,
- 0.0980392157,
- 0.6039215686274509,
- 0.0,
- 1.0,
- 0.0823529412,
- 0.6078431372549019,
- 0.0,
- 1.0,
- 0.062745098,
- 0.611764705882353,
- 0.0,
- 1.0,
- 0.0470588235,
- 0.615686274509804,
- 0.0,
- 1.0,
- 0.031372549,
- 0.6196078431372549,
- 0.0,
- 1.0,
- 0.0,
- 0.6235294117647059,
- 0.0156862745,
- 1.0,
- 0.0,
- 0.6274509803921569,
- 0.031372549,
- 1.0,
- 0.0,
- 0.6313725490196078,
- 0.0470588235,
- 1.0,
- 0.0,
- 0.6352941176470588,
- 0.0823529412,
- 1.0,
- 0.0,
- 0.6392156862745098,
- 0.0980392157,
- 1.0,
- 0.0,
- 0.6431372549019608,
- 0.1137254902,
- 1.0,
- 0.0,
- 0.6470588235294118,
- 0.1294117647,
- 1.0,
- 0.0,
- 0.6509803921568628,
- 0.1647058824,
- 1.0,
- 0.0,
- 0.6549019607843137,
- 0.1803921569,
- 1.0,
- 0.0,
- 0.6588235294117647,
- 0.2,
- 1.0,
- 0.0,
- 0.6627450980392157,
- 0.2156862745,
- 1.0,
- 0.0,
- 0.6666666666666666,
- 0.2470588235,
- 1.0,
- 0.0,
- 0.6705882352941176,
- 0.262745098,
- 1.0,
- 0.0,
- 0.6745098039215687,
- 0.2823529412,
- 1.0,
- 0.0,
- 0.6784313725490196,
- 0.2980392157,
- 1.0,
- 0.0,
- 0.6823529411764706,
- 0.3137254902,
- 1.0,
- 0.0,
- 0.6862745098039216,
- 0.3490196078,
- 1.0,
- 0.0,
- 0.6901960784313725,
- 0.3647058824,
- 1.0,
- 0.0,
- 0.6941176470588235,
- 0.3803921569,
- 1.0,
- 0.0,
- 0.6980392156862745,
- 0.3960784314,
- 1.0,
- 0.0,
- 0.7019607843137254,
- 0.431372549,
- 1.0,
- 0.0,
- 0.7058823529411765,
- 0.4470588235,
- 1.0,
- 0.0,
- 0.7098039215686275,
- 0.4666666667,
- 1.0,
- 0.0,
- 0.7137254901960784,
- 0.4823529412,
- 1.0,
- 0.0,
- 0.7176470588235294,
- 0.5137254902,
- 1.0,
- 0.0,
- 0.7215686274509804,
- 0.5294117647,
- 1.0,
- 0.0,
- 0.7254901960784313,
- 0.5490196078,
- 1.0,
- 0.0,
- 0.7294117647058823,
- 0.5647058824,
- 1.0,
- 0.0,
- 0.7333333333333333,
- 0.6,
- 1.0,
- 0.0,
- 0.7372549019607844,
- 0.6156862745,
- 1.0,
- 0.0,
- 0.7411764705882353,
- 0.631372549,
- 1.0,
- 0.0,
- 0.7450980392156863,
- 0.6470588235,
- 1.0,
- 0.0,
- 0.7490196078431373,
- 0.662745098,
- 1.0,
- 0.0,
- 0.7529411764705882,
- 0.6980392157,
- 1.0,
- 0.0,
- 0.7568627450980392,
- 0.7137254902,
- 1.0,
- 0.0,
- 0.7607843137254902,
- 0.7333333333,
- 1.0,
- 0.0,
- 0.7647058823529411,
- 0.7490196078,
- 1.0,
- 0.0,
- 0.7686274509803922,
- 0.7803921569,
- 1.0,
- 0.0,
- 0.7725490196078432,
- 0.7960784314,
- 1.0,
- 0.0,
- 0.7764705882352941,
- 0.8156862745,
- 1.0,
- 0.0,
- 0.7803921568627451,
- 0.831372549,
- 1.0,
- 0.0,
- 0.7843137254901961,
- 0.8666666667,
- 1.0,
- 0.0,
- 0.788235294117647,
- 0.8823529412,
- 1.0,
- 0.0,
- 0.792156862745098,
- 0.8980392157,
- 1.0,
- 0.0,
- 0.796078431372549,
- 0.9137254902,
- 1.0,
- 0.0,
- 0.8,
- 0.9490196078,
- 1.0,
- 0.0,
- 0.803921568627451,
- 0.9647058824,
- 1.0,
- 0.0,
- 0.807843137254902,
- 0.9803921569,
- 1.0,
- 0.0,
- 0.8117647058823529,
- 1.0,
- 1.0,
- 0.0,
- 0.8156862745098039,
- 1.0,
- 0.9803921569,
- 0.0,
- 0.8196078431372549,
- 1.0,
- 0.9490196078,
- 0.0,
- 0.8235294117647058,
- 1.0,
- 0.9333333333,
- 0.0,
- 0.8274509803921568,
- 1.0,
- 0.9137254902,
- 0.0,
- 0.8313725490196079,
- 1.0,
- 0.8980392157,
- 0.0,
- 0.8352941176470589,
- 1.0,
- 0.8666666667,
- 0.0,
- 0.8392156862745098,
- 1.0,
- 0.8470588235,
- 0.0,
- 0.8431372549019608,
- 1.0,
- 0.831372549,
- 0.0,
- 0.8470588235294118,
- 1.0,
- 0.8156862745,
- 0.0,
- 0.8509803921568627,
- 1.0,
- 0.7803921569,
- 0.0,
- 0.8549019607843137,
- 1.0,
- 0.7647058824,
- 0.0,
- 0.8588235294117647,
- 1.0,
- 0.7490196078,
- 0.0,
- 0.8627450980392157,
- 1.0,
- 0.7333333333,
- 0.0,
- 0.8666666666666667,
- 1.0,
- 0.6980392157,
- 0.0,
- 0.8705882352941177,
- 1.0,
- 0.6823529412,
- 0.0,
- 0.8745098039215686,
- 1.0,
- 0.6666666667,
- 0.0,
- 0.8784313725490196,
- 1.0,
- 0.6470588235,
- 0.0,
- 0.8823529411764706,
- 1.0,
- 0.631372549,
- 0.0,
- 0.8862745098039215,
- 1.0,
- 0.6,
- 0.0,
- 0.8901960784313725,
- 1.0,
- 0.5803921569,
- 0.0,
- 0.8941176470588236,
- 1.0,
- 0.5647058824,
- 0.0,
- 0.8980392156862745,
- 1.0,
- 0.5490196078,
- 0.0,
- 0.9019607843137255,
- 1.0,
- 0.5137254902,
- 0.0,
- 0.9058823529411765,
- 1.0,
- 0.4980392157,
- 0.0,
- 0.9098039215686274,
- 1.0,
- 0.4823529412,
- 0.0,
- 0.9137254901960784,
- 1.0,
- 0.4666666667,
- 0.0,
- 0.9176470588235294,
- 1.0,
- 0.431372549,
- 0.0,
- 0.9215686274509803,
- 1.0,
- 0.4156862745,
- 0.0,
- 0.9254901960784314,
- 1.0,
- 0.4,
- 0.0,
- 0.9294117647058824,
- 1.0,
- 0.3803921569,
- 0.0,
- 0.9333333333333333,
- 1.0,
- 0.3490196078,
- 0.0,
- 0.9372549019607843,
- 1.0,
- 0.3333333333,
- 0.0,
- 0.9411764705882354,
- 1.0,
- 0.3137254902,
- 0.0,
- 0.9450980392156864,
- 1.0,
- 0.2980392157,
- 0.0,
- 0.9490196078431372,
- 1.0,
- 0.2823529412,
- 0.0,
- 0.9529411764705882,
- 1.0,
- 0.2470588235,
- 0.0,
- 0.9568627450980394,
- 1.0,
- 0.231372549,
- 0.0,
- 0.9607843137254903,
- 1.0,
- 0.2156862745,
- 0.0,
- 0.9647058823529413,
- 1.0,
- 0.2,
- 0.0,
- 0.9686274509803922,
- 1.0,
- 0.1647058824,
- 0.0,
- 0.9725490196078431,
- 1.0,
- 0.1490196078,
- 0.0,
- 0.9764705882352941,
- 1.0,
- 0.1333333333,
- 0.0,
- 0.9803921568627451,
- 1.0,
- 0.1137254902,
- 0.0,
- 0.984313725490196,
- 1.0,
- 0.0823529412,
- 0.0,
- 0.9882352941176471,
- 1.0,
- 0.0666666667,
- 0.0,
- 0.9921568627450981,
- 1.0,
- 0.0470588235,
- 0.0,
- 0.996078431372549,
- 1.0,
- 0.031372549,
- 0.0,
- 1.0,
- 1.0,
- 0.0,
- 0.0,
+ 0.0, 0.0, 0.0, 0.0, 0.00392156862745098, 0.0156862745, 0.0, 0.0117647059, 0.00784313725490196,
+ 0.0352941176, 0.0, 0.0274509804, 0.011764705882352941, 0.0509803922, 0.0, 0.0392156863,
+ 0.01568627450980392, 0.0705882353, 0.0, 0.0549019608, 0.0196078431372549, 0.0862745098, 0.0,
+ 0.0745098039, 0.023529411764705882, 0.1058823529, 0.0, 0.0901960784, 0.027450980392156862,
+ 0.1215686275, 0.0, 0.1098039216, 0.03137254901960784, 0.1411764706, 0.0, 0.1254901961,
+ 0.03529411764705882, 0.1568627451, 0.0, 0.1490196078, 0.0392156862745098, 0.1764705882, 0.0,
+ 0.168627451, 0.043137254901960784, 0.1960784314, 0.0, 0.1882352941, 0.047058823529411764,
+ 0.2117647059, 0.0, 0.2078431373, 0.050980392156862744, 0.2274509804, 0.0, 0.231372549,
+ 0.054901960784313725, 0.2392156863, 0.0, 0.2470588235, 0.05882352941176471, 0.2509803922, 0.0,
+ 0.2666666667, 0.06274509803921569, 0.2666666667, 0.0, 0.2823529412, 0.06666666666666667,
+ 0.2705882353, 0.0, 0.3019607843, 0.07058823529411765, 0.2823529412, 0.0, 0.3176470588,
+ 0.07450980392156863, 0.2901960784, 0.0, 0.337254902, 0.0784313725490196, 0.3019607843, 0.0,
+ 0.3568627451, 0.08235294117647059, 0.3098039216, 0.0, 0.3725490196, 0.08627450980392157,
+ 0.3137254902, 0.0, 0.3921568627, 0.09019607843137255, 0.3215686275, 0.0, 0.4078431373,
+ 0.09411764705882353, 0.3254901961, 0.0, 0.4274509804, 0.09803921568627451, 0.3333333333, 0.0,
+ 0.4431372549, 0.10196078431372549, 0.3294117647, 0.0, 0.462745098, 0.10588235294117647,
+ 0.337254902, 0.0, 0.4784313725, 0.10980392156862745, 0.3411764706, 0.0, 0.4980392157,
+ 0.11372549019607843, 0.3450980392, 0.0, 0.5176470588, 0.11764705882352942, 0.337254902, 0.0,
+ 0.5333333333, 0.12156862745098039, 0.3411764706, 0.0, 0.5529411765, 0.12549019607843137,
+ 0.3411764706, 0.0, 0.568627451, 0.12941176470588237, 0.3411764706, 0.0, 0.5882352941,
+ 0.13333333333333333, 0.3333333333, 0.0, 0.6039215686, 0.13725490196078433, 0.3294117647, 0.0,
+ 0.6235294118, 0.1411764705882353, 0.3294117647, 0.0, 0.6392156863, 0.1450980392156863,
+ 0.3294117647, 0.0, 0.6588235294, 0.14901960784313725, 0.3254901961, 0.0, 0.6784313725,
+ 0.15294117647058825, 0.3098039216, 0.0, 0.6941176471, 0.1568627450980392, 0.3058823529, 0.0,
+ 0.7137254902, 0.1607843137254902, 0.3019607843, 0.0, 0.7294117647, 0.16470588235294117,
+ 0.2980392157, 0.0, 0.7490196078, 0.16862745098039217, 0.2784313725, 0.0, 0.7647058824,
+ 0.17254901960784313, 0.2745098039, 0.0, 0.7843137255, 0.17647058823529413, 0.2666666667, 0.0,
+ 0.8, 0.1803921568627451, 0.2588235294, 0.0, 0.8196078431, 0.1843137254901961, 0.2352941176,
+ 0.0, 0.8392156863, 0.18823529411764706, 0.2274509804, 0.0, 0.8549019608, 0.19215686274509805,
+ 0.2156862745, 0.0, 0.8745098039, 0.19607843137254902, 0.2078431373, 0.0, 0.8901960784, 0.2,
+ 0.1803921569, 0.0, 0.9098039216, 0.20392156862745098, 0.168627451, 0.0, 0.9254901961,
+ 0.20784313725490197, 0.1568627451, 0.0, 0.9450980392, 0.21176470588235294, 0.1411764706, 0.0,
+ 0.9607843137, 0.21568627450980393, 0.1294117647, 0.0, 0.9803921569, 0.2196078431372549,
+ 0.0980392157, 0.0, 1.0, 0.2235294117647059, 0.0823529412, 0.0, 1.0, 0.22745098039215686,
+ 0.062745098, 0.0, 1.0, 0.23137254901960785, 0.0470588235, 0.0, 1.0, 0.23529411764705885,
+ 0.0156862745, 0.0, 1.0, 0.23921568627450984, 0.0, 0.0, 1.0, 0.24313725490196078, 0.0,
+ 0.0156862745, 1.0, 0.24705882352941178, 0.0, 0.031372549, 1.0, 0.25098039215686274, 0.0,
+ 0.062745098, 1.0, 0.2549019607843137, 0.0, 0.0823529412, 1.0, 0.25882352941176473, 0.0,
+ 0.0980392157, 1.0, 0.2627450980392157, 0.0, 0.1137254902, 1.0, 0.26666666666666666, 0.0,
+ 0.1490196078, 1.0, 0.27058823529411763, 0.0, 0.1647058824, 1.0, 0.27450980392156865, 0.0,
+ 0.1803921569, 1.0, 0.2784313725490196, 0.0, 0.2, 1.0, 0.2823529411764706, 0.0, 0.2156862745,
+ 1.0, 0.28627450980392155, 0.0, 0.2470588235, 1.0, 0.2901960784313726, 0.0, 0.262745098, 1.0,
+ 0.29411764705882354, 0.0, 0.2823529412, 1.0, 0.2980392156862745, 0.0, 0.2980392157, 1.0,
+ 0.30196078431372547, 0.0, 0.3294117647, 1.0, 0.3058823529411765, 0.0, 0.3490196078, 1.0,
+ 0.30980392156862746, 0.0, 0.3647058824, 1.0, 0.3137254901960784, 0.0, 0.3803921569, 1.0,
+ 0.3176470588235294, 0.0, 0.4156862745, 1.0, 0.3215686274509804, 0.0, 0.431372549, 1.0,
+ 0.3254901960784314, 0.0, 0.4470588235, 1.0, 0.32941176470588235, 0.0, 0.4666666667, 1.0,
+ 0.3333333333333333, 0.0, 0.4980392157, 1.0, 0.33725490196078434, 0.0, 0.5137254902, 1.0,
+ 0.3411764705882353, 0.0, 0.5294117647, 1.0, 0.34509803921568627, 0.0, 0.5490196078, 1.0,
+ 0.34901960784313724, 0.0, 0.5647058824, 1.0, 0.35294117647058826, 0.0, 0.5960784314, 1.0,
+ 0.3568627450980392, 0.0, 0.6156862745, 1.0, 0.3607843137254902, 0.0, 0.631372549, 1.0,
+ 0.36470588235294116, 0.0, 0.6470588235, 1.0, 0.3686274509803922, 0.0, 0.6823529412, 1.0,
+ 0.37254901960784315, 0.0, 0.6980392157, 1.0, 0.3764705882352941, 0.0, 0.7137254902, 1.0,
+ 0.3803921568627451, 0.0, 0.7333333333, 1.0, 0.3843137254901961, 0.0, 0.7647058824, 1.0,
+ 0.38823529411764707, 0.0, 0.7803921569, 1.0, 0.39215686274509803, 0.0, 0.7960784314, 1.0,
+ 0.396078431372549, 0.0, 0.8156862745, 1.0, 0.4, 0.0, 0.8470588235, 1.0, 0.403921568627451,
+ 0.0, 0.862745098, 1.0, 0.40784313725490196, 0.0, 0.8823529412, 1.0, 0.4117647058823529, 0.0,
+ 0.8980392157, 1.0, 0.41568627450980394, 0.0, 0.9137254902, 1.0, 0.4196078431372549, 0.0,
+ 0.9490196078, 1.0, 0.4235294117647059, 0.0, 0.9647058824, 1.0, 0.42745098039215684, 0.0,
+ 0.9803921569, 1.0, 0.43137254901960786, 0.0, 1.0, 1.0, 0.43529411764705883, 0.0, 1.0,
+ 0.9647058824, 0.4392156862745098, 0.0, 1.0, 0.9490196078, 0.44313725490196076, 0.0, 1.0,
+ 0.9333333333, 0.4470588235294118, 0.0, 1.0, 0.9137254902, 0.45098039215686275, 0.0, 1.0,
+ 0.8823529412, 0.4549019607843137, 0.0, 1.0, 0.862745098, 0.4588235294117647, 0.0, 1.0,
+ 0.8470588235, 0.4627450980392157, 0.0, 1.0, 0.831372549, 0.4666666666666667, 0.0, 1.0,
+ 0.7960784314, 0.4705882352941177, 0.0, 1.0, 0.7803921569, 0.4745098039215686, 0.0, 1.0,
+ 0.7647058824, 0.4784313725490197, 0.0, 1.0, 0.7490196078, 0.48235294117647065, 0.0, 1.0,
+ 0.7333333333, 0.48627450980392156, 0.0, 1.0, 0.6980392157, 0.49019607843137253, 0.0, 1.0,
+ 0.6823529412, 0.49411764705882355, 0.0, 1.0, 0.6666666667, 0.4980392156862745, 0.0, 1.0,
+ 0.6470588235, 0.5019607843137255, 0.0, 1.0, 0.6156862745, 0.5058823529411764, 0.0, 1.0,
+ 0.5960784314, 0.5098039215686274, 0.0, 1.0, 0.5803921569, 0.5137254901960784, 0.0, 1.0,
+ 0.5647058824, 0.5176470588235295, 0.0, 1.0, 0.5294117647, 0.5215686274509804, 0.0, 1.0,
+ 0.5137254902, 0.5254901960784314, 0.0, 1.0, 0.4980392157, 0.5294117647058824, 0.0, 1.0,
+ 0.4823529412, 0.5333333333333333, 0.0, 1.0, 0.4470588235, 0.5372549019607843, 0.0, 1.0,
+ 0.431372549, 0.5411764705882353, 0.0, 1.0, 0.4156862745, 0.5450980392156862, 0.0, 1.0, 0.4,
+ 0.5490196078431373, 0.0, 1.0, 0.3803921569, 0.5529411764705883, 0.0, 1.0, 0.3490196078,
+ 0.5568627450980392, 0.0, 1.0, 0.3294117647, 0.5607843137254902, 0.0, 1.0, 0.3137254902,
+ 0.5647058823529412, 0.0, 1.0, 0.2980392157, 0.5686274509803921, 0.0, 1.0, 0.262745098,
+ 0.5725490196078431, 0.0, 1.0, 0.2470588235, 0.5764705882352941, 0.0, 1.0, 0.231372549,
+ 0.5803921568627451, 0.0, 1.0, 0.2156862745, 0.5843137254901961, 0.0, 1.0, 0.1803921569,
+ 0.5882352941176471, 0.0, 1.0, 0.1647058824, 0.592156862745098, 0.0, 1.0, 0.1490196078,
+ 0.596078431372549, 0.0, 1.0, 0.1333333333, 0.6, 0.0, 1.0, 0.0980392157, 0.6039215686274509,
+ 0.0, 1.0, 0.0823529412, 0.6078431372549019, 0.0, 1.0, 0.062745098, 0.611764705882353, 0.0,
+ 1.0, 0.0470588235, 0.615686274509804, 0.0, 1.0, 0.031372549, 0.6196078431372549, 0.0, 1.0,
+ 0.0, 0.6235294117647059, 0.0156862745, 1.0, 0.0, 0.6274509803921569, 0.031372549, 1.0, 0.0,
+ 0.6313725490196078, 0.0470588235, 1.0, 0.0, 0.6352941176470588, 0.0823529412, 1.0, 0.0,
+ 0.6392156862745098, 0.0980392157, 1.0, 0.0, 0.6431372549019608, 0.1137254902, 1.0, 0.0,
+ 0.6470588235294118, 0.1294117647, 1.0, 0.0, 0.6509803921568628, 0.1647058824, 1.0, 0.0,
+ 0.6549019607843137, 0.1803921569, 1.0, 0.0, 0.6588235294117647, 0.2, 1.0, 0.0,
+ 0.6627450980392157, 0.2156862745, 1.0, 0.0, 0.6666666666666666, 0.2470588235, 1.0, 0.0,
+ 0.6705882352941176, 0.262745098, 1.0, 0.0, 0.6745098039215687, 0.2823529412, 1.0, 0.0,
+ 0.6784313725490196, 0.2980392157, 1.0, 0.0, 0.6823529411764706, 0.3137254902, 1.0, 0.0,
+ 0.6862745098039216, 0.3490196078, 1.0, 0.0, 0.6901960784313725, 0.3647058824, 1.0, 0.0,
+ 0.6941176470588235, 0.3803921569, 1.0, 0.0, 0.6980392156862745, 0.3960784314, 1.0, 0.0,
+ 0.7019607843137254, 0.431372549, 1.0, 0.0, 0.7058823529411765, 0.4470588235, 1.0, 0.0,
+ 0.7098039215686275, 0.4666666667, 1.0, 0.0, 0.7137254901960784, 0.4823529412, 1.0, 0.0,
+ 0.7176470588235294, 0.5137254902, 1.0, 0.0, 0.7215686274509804, 0.5294117647, 1.0, 0.0,
+ 0.7254901960784313, 0.5490196078, 1.0, 0.0, 0.7294117647058823, 0.5647058824, 1.0, 0.0,
+ 0.7333333333333333, 0.6, 1.0, 0.0, 0.7372549019607844, 0.6156862745, 1.0, 0.0,
+ 0.7411764705882353, 0.631372549, 1.0, 0.0, 0.7450980392156863, 0.6470588235, 1.0, 0.0,
+ 0.7490196078431373, 0.662745098, 1.0, 0.0, 0.7529411764705882, 0.6980392157, 1.0, 0.0,
+ 0.7568627450980392, 0.7137254902, 1.0, 0.0, 0.7607843137254902, 0.7333333333, 1.0, 0.0,
+ 0.7647058823529411, 0.7490196078, 1.0, 0.0, 0.7686274509803922, 0.7803921569, 1.0, 0.0,
+ 0.7725490196078432, 0.7960784314, 1.0, 0.0, 0.7764705882352941, 0.8156862745, 1.0, 0.0,
+ 0.7803921568627451, 0.831372549, 1.0, 0.0, 0.7843137254901961, 0.8666666667, 1.0, 0.0,
+ 0.788235294117647, 0.8823529412, 1.0, 0.0, 0.792156862745098, 0.8980392157, 1.0, 0.0,
+ 0.796078431372549, 0.9137254902, 1.0, 0.0, 0.8, 0.9490196078, 1.0, 0.0, 0.803921568627451,
+ 0.9647058824, 1.0, 0.0, 0.807843137254902, 0.9803921569, 1.0, 0.0, 0.8117647058823529, 1.0,
+ 1.0, 0.0, 0.8156862745098039, 1.0, 0.9803921569, 0.0, 0.8196078431372549, 1.0, 0.9490196078,
+ 0.0, 0.8235294117647058, 1.0, 0.9333333333, 0.0, 0.8274509803921568, 1.0, 0.9137254902, 0.0,
+ 0.8313725490196079, 1.0, 0.8980392157, 0.0, 0.8352941176470589, 1.0, 0.8666666667, 0.0,
+ 0.8392156862745098, 1.0, 0.8470588235, 0.0, 0.8431372549019608, 1.0, 0.831372549, 0.0,
+ 0.8470588235294118, 1.0, 0.8156862745, 0.0, 0.8509803921568627, 1.0, 0.7803921569, 0.0,
+ 0.8549019607843137, 1.0, 0.7647058824, 0.0, 0.8588235294117647, 1.0, 0.7490196078, 0.0,
+ 0.8627450980392157, 1.0, 0.7333333333, 0.0, 0.8666666666666667, 1.0, 0.6980392157, 0.0,
+ 0.8705882352941177, 1.0, 0.6823529412, 0.0, 0.8745098039215686, 1.0, 0.6666666667, 0.0,
+ 0.8784313725490196, 1.0, 0.6470588235, 0.0, 0.8823529411764706, 1.0, 0.631372549, 0.0,
+ 0.8862745098039215, 1.0, 0.6, 0.0, 0.8901960784313725, 1.0, 0.5803921569, 0.0,
+ 0.8941176470588236, 1.0, 0.5647058824, 0.0, 0.8980392156862745, 1.0, 0.5490196078, 0.0,
+ 0.9019607843137255, 1.0, 0.5137254902, 0.0, 0.9058823529411765, 1.0, 0.4980392157, 0.0,
+ 0.9098039215686274, 1.0, 0.4823529412, 0.0, 0.9137254901960784, 1.0, 0.4666666667, 0.0,
+ 0.9176470588235294, 1.0, 0.431372549, 0.0, 0.9215686274509803, 1.0, 0.4156862745, 0.0,
+ 0.9254901960784314, 1.0, 0.4, 0.0, 0.9294117647058824, 1.0, 0.3803921569, 0.0,
+ 0.9333333333333333, 1.0, 0.3490196078, 0.0, 0.9372549019607843, 1.0, 0.3333333333, 0.0,
+ 0.9411764705882354, 1.0, 0.3137254902, 0.0, 0.9450980392156864, 1.0, 0.2980392157, 0.0,
+ 0.9490196078431372, 1.0, 0.2823529412, 0.0, 0.9529411764705882, 1.0, 0.2470588235, 0.0,
+ 0.9568627450980394, 1.0, 0.231372549, 0.0, 0.9607843137254903, 1.0, 0.2156862745, 0.0,
+ 0.9647058823529413, 1.0, 0.2, 0.0, 0.9686274509803922, 1.0, 0.1647058824, 0.0,
+ 0.9725490196078431, 1.0, 0.1490196078, 0.0, 0.9764705882352941, 1.0, 0.1333333333, 0.0,
+ 0.9803921568627451, 1.0, 0.1137254902, 0.0, 0.984313725490196, 1.0, 0.0823529412, 0.0,
+ 0.9882352941176471, 1.0, 0.0666666667, 0.0, 0.9921568627450981, 1.0, 0.0470588235, 0.0,
+ 0.996078431372549, 1.0, 0.031372549, 0.0, 1.0, 1.0, 0.0, 0.0,
],
},
{
ColorSpace: 'RGB',
Name: 'suv',
RGBPoints: [
- 0.0,
- 1.0,
- 1.0,
- 1.0,
- 0.00392156862745098,
- 1.0,
- 1.0,
- 1.0,
- 0.00784313725490196,
- 1.0,
- 1.0,
- 1.0,
- 0.011764705882352941,
- 1.0,
- 1.0,
- 1.0,
- 0.01568627450980392,
- 1.0,
- 1.0,
- 1.0,
- 0.0196078431372549,
- 1.0,
- 1.0,
- 1.0,
- 0.023529411764705882,
- 1.0,
- 1.0,
- 1.0,
- 0.027450980392156862,
- 1.0,
- 1.0,
- 1.0,
- 0.03137254901960784,
- 1.0,
- 1.0,
- 1.0,
- 0.03529411764705882,
- 1.0,
- 1.0,
- 1.0,
- 0.0392156862745098,
- 1.0,
- 1.0,
- 1.0,
- 0.043137254901960784,
- 1.0,
- 1.0,
- 1.0,
- 0.047058823529411764,
- 1.0,
- 1.0,
- 1.0,
- 0.050980392156862744,
- 1.0,
- 1.0,
- 1.0,
- 0.054901960784313725,
- 1.0,
- 1.0,
- 1.0,
- 0.05882352941176471,
- 1.0,
- 1.0,
- 1.0,
- 0.06274509803921569,
- 1.0,
- 1.0,
- 1.0,
- 0.06666666666666667,
- 1.0,
- 1.0,
- 1.0,
- 0.07058823529411765,
- 1.0,
- 1.0,
- 1.0,
- 0.07450980392156863,
- 1.0,
- 1.0,
- 1.0,
- 0.0784313725490196,
- 1.0,
- 1.0,
- 1.0,
- 0.08235294117647059,
- 1.0,
- 1.0,
- 1.0,
- 0.08627450980392157,
- 1.0,
- 1.0,
- 1.0,
- 0.09019607843137255,
- 1.0,
- 1.0,
- 1.0,
- 0.09411764705882353,
- 1.0,
- 1.0,
- 1.0,
- 0.09803921568627451,
- 1.0,
- 1.0,
- 1.0,
- 0.10196078431372549,
- 0.737254902,
- 0.737254902,
- 0.737254902,
- 0.10588235294117647,
- 0.737254902,
- 0.737254902,
- 0.737254902,
- 0.10980392156862745,
- 0.737254902,
- 0.737254902,
- 0.737254902,
- 0.11372549019607843,
- 0.737254902,
- 0.737254902,
- 0.737254902,
- 0.11764705882352942,
- 0.737254902,
- 0.737254902,
- 0.737254902,
- 0.12156862745098039,
- 0.737254902,
- 0.737254902,
- 0.737254902,
- 0.12549019607843137,
- 0.737254902,
- 0.737254902,
- 0.737254902,
- 0.12941176470588237,
- 0.737254902,
- 0.737254902,
- 0.737254902,
- 0.13333333333333333,
- 0.737254902,
- 0.737254902,
- 0.737254902,
- 0.13725490196078433,
- 0.737254902,
- 0.737254902,
- 0.737254902,
- 0.1411764705882353,
- 0.737254902,
- 0.737254902,
- 0.737254902,
- 0.1450980392156863,
- 0.737254902,
- 0.737254902,
- 0.737254902,
- 0.14901960784313725,
- 0.737254902,
- 0.737254902,
- 0.737254902,
- 0.15294117647058825,
- 0.737254902,
- 0.737254902,
- 0.737254902,
- 0.1568627450980392,
- 0.737254902,
- 0.737254902,
- 0.737254902,
- 0.1607843137254902,
- 0.737254902,
- 0.737254902,
- 0.737254902,
- 0.16470588235294117,
- 0.737254902,
- 0.737254902,
- 0.737254902,
- 0.16862745098039217,
- 0.737254902,
- 0.737254902,
- 0.737254902,
- 0.17254901960784313,
- 0.737254902,
- 0.737254902,
- 0.737254902,
- 0.17647058823529413,
- 0.737254902,
- 0.737254902,
- 0.737254902,
- 0.1803921568627451,
- 0.737254902,
- 0.737254902,
- 0.737254902,
- 0.1843137254901961,
- 0.737254902,
- 0.737254902,
- 0.737254902,
- 0.18823529411764706,
- 0.737254902,
- 0.737254902,
- 0.737254902,
- 0.19215686274509805,
- 0.737254902,
- 0.737254902,
- 0.737254902,
- 0.19607843137254902,
- 0.737254902,
- 0.737254902,
- 0.737254902,
- 0.2,
- 0.737254902,
- 0.737254902,
- 0.737254902,
- 0.20392156862745098,
- 0.431372549,
- 0.0,
- 0.568627451,
- 0.20784313725490197,
- 0.431372549,
- 0.0,
- 0.568627451,
- 0.21176470588235294,
- 0.431372549,
- 0.0,
- 0.568627451,
- 0.21568627450980393,
- 0.431372549,
- 0.0,
- 0.568627451,
- 0.2196078431372549,
- 0.431372549,
- 0.0,
- 0.568627451,
- 0.2235294117647059,
- 0.431372549,
- 0.0,
- 0.568627451,
- 0.22745098039215686,
- 0.431372549,
- 0.0,
- 0.568627451,
- 0.23137254901960785,
- 0.431372549,
- 0.0,
- 0.568627451,
- 0.23529411764705885,
- 0.431372549,
- 0.0,
- 0.568627451,
- 0.23921568627450984,
- 0.431372549,
- 0.0,
- 0.568627451,
- 0.24313725490196078,
- 0.431372549,
- 0.0,
- 0.568627451,
- 0.24705882352941178,
- 0.431372549,
- 0.0,
- 0.568627451,
- 0.25098039215686274,
- 0.431372549,
- 0.0,
- 0.568627451,
- 0.2549019607843137,
- 0.431372549,
- 0.0,
- 0.568627451,
- 0.25882352941176473,
- 0.431372549,
- 0.0,
- 0.568627451,
- 0.2627450980392157,
- 0.431372549,
- 0.0,
- 0.568627451,
- 0.26666666666666666,
- 0.431372549,
- 0.0,
- 0.568627451,
- 0.27058823529411763,
- 0.431372549,
- 0.0,
- 0.568627451,
- 0.27450980392156865,
- 0.431372549,
- 0.0,
- 0.568627451,
- 0.2784313725490196,
- 0.431372549,
- 0.0,
- 0.568627451,
- 0.2823529411764706,
- 0.431372549,
- 0.0,
- 0.568627451,
- 0.28627450980392155,
- 0.431372549,
- 0.0,
- 0.568627451,
- 0.2901960784313726,
- 0.431372549,
- 0.0,
- 0.568627451,
- 0.29411764705882354,
- 0.431372549,
- 0.0,
- 0.568627451,
- 0.2980392156862745,
- 0.431372549,
- 0.0,
- 0.568627451,
- 0.30196078431372547,
- 0.431372549,
- 0.0,
- 0.568627451,
- 0.3058823529411765,
- 0.2509803922,
- 0.3333333333,
- 0.6509803922,
- 0.30980392156862746,
- 0.2509803922,
- 0.3333333333,
- 0.6509803922,
- 0.3137254901960784,
- 0.2509803922,
- 0.3333333333,
- 0.6509803922,
- 0.3176470588235294,
- 0.2509803922,
- 0.3333333333,
- 0.6509803922,
- 0.3215686274509804,
- 0.2509803922,
- 0.3333333333,
- 0.6509803922,
- 0.3254901960784314,
- 0.2509803922,
- 0.3333333333,
- 0.6509803922,
- 0.32941176470588235,
- 0.2509803922,
- 0.3333333333,
- 0.6509803922,
- 0.3333333333333333,
- 0.2509803922,
- 0.3333333333,
- 0.6509803922,
- 0.33725490196078434,
- 0.2509803922,
- 0.3333333333,
- 0.6509803922,
- 0.3411764705882353,
- 0.2509803922,
- 0.3333333333,
- 0.6509803922,
- 0.34509803921568627,
- 0.2509803922,
- 0.3333333333,
- 0.6509803922,
- 0.34901960784313724,
- 0.2509803922,
- 0.3333333333,
- 0.6509803922,
- 0.35294117647058826,
- 0.2509803922,
- 0.3333333333,
- 0.6509803922,
- 0.3568627450980392,
- 0.2509803922,
- 0.3333333333,
- 0.6509803922,
- 0.3607843137254902,
- 0.2509803922,
- 0.3333333333,
- 0.6509803922,
- 0.36470588235294116,
- 0.2509803922,
- 0.3333333333,
- 0.6509803922,
- 0.3686274509803922,
- 0.2509803922,
- 0.3333333333,
- 0.6509803922,
- 0.37254901960784315,
- 0.2509803922,
- 0.3333333333,
- 0.6509803922,
- 0.3764705882352941,
- 0.2509803922,
- 0.3333333333,
- 0.6509803922,
- 0.3803921568627451,
- 0.2509803922,
- 0.3333333333,
- 0.6509803922,
- 0.3843137254901961,
- 0.2509803922,
- 0.3333333333,
- 0.6509803922,
- 0.38823529411764707,
- 0.2509803922,
- 0.3333333333,
- 0.6509803922,
- 0.39215686274509803,
- 0.2509803922,
- 0.3333333333,
- 0.6509803922,
- 0.396078431372549,
- 0.2509803922,
- 0.3333333333,
- 0.6509803922,
- 0.4,
- 0.2509803922,
- 0.3333333333,
- 0.6509803922,
- 0.403921568627451,
- 0.2509803922,
- 0.3333333333,
- 0.6509803922,
- 0.40784313725490196,
- 0.0,
- 0.8,
- 1.0,
- 0.4117647058823529,
- 0.0,
- 0.8,
- 1.0,
- 0.41568627450980394,
- 0.0,
- 0.8,
- 1.0,
- 0.4196078431372549,
- 0.0,
- 0.8,
- 1.0,
- 0.4235294117647059,
- 0.0,
- 0.8,
- 1.0,
- 0.42745098039215684,
- 0.0,
- 0.8,
- 1.0,
- 0.43137254901960786,
- 0.0,
- 0.8,
- 1.0,
- 0.43529411764705883,
- 0.0,
- 0.8,
- 1.0,
- 0.4392156862745098,
- 0.0,
- 0.8,
- 1.0,
- 0.44313725490196076,
- 0.0,
- 0.8,
- 1.0,
- 0.4470588235294118,
- 0.0,
- 0.8,
- 1.0,
- 0.45098039215686275,
- 0.0,
- 0.8,
- 1.0,
- 0.4549019607843137,
- 0.0,
- 0.8,
- 1.0,
- 0.4588235294117647,
- 0.0,
- 0.8,
- 1.0,
- 0.4627450980392157,
- 0.0,
- 0.8,
- 1.0,
- 0.4666666666666667,
- 0.0,
- 0.8,
- 1.0,
- 0.4705882352941177,
- 0.0,
- 0.8,
- 1.0,
- 0.4745098039215686,
- 0.0,
- 0.8,
- 1.0,
- 0.4784313725490197,
- 0.0,
- 0.8,
- 1.0,
- 0.48235294117647065,
- 0.0,
- 0.8,
- 1.0,
- 0.48627450980392156,
- 0.0,
- 0.8,
- 1.0,
- 0.49019607843137253,
- 0.0,
- 0.8,
- 1.0,
- 0.49411764705882355,
- 0.0,
- 0.8,
- 1.0,
- 0.4980392156862745,
- 0.0,
- 0.8,
- 1.0,
- 0.5019607843137255,
- 0.0,
- 0.8,
- 1.0,
- 0.5058823529411764,
- 0.0,
- 0.6666666667,
- 0.5333333333,
- 0.5098039215686274,
- 0.0,
- 0.6666666667,
- 0.5333333333,
- 0.5137254901960784,
- 0.0,
- 0.6666666667,
- 0.5333333333,
- 0.5176470588235295,
- 0.0,
- 0.6666666667,
- 0.5333333333,
- 0.5215686274509804,
- 0.0,
- 0.6666666667,
- 0.5333333333,
- 0.5254901960784314,
- 0.0,
- 0.6666666667,
- 0.5333333333,
- 0.5294117647058824,
- 0.0,
- 0.6666666667,
- 0.5333333333,
- 0.5333333333333333,
- 0.0,
- 0.6666666667,
- 0.5333333333,
- 0.5372549019607843,
- 0.0,
- 0.6666666667,
- 0.5333333333,
- 0.5411764705882353,
- 0.0,
- 0.6666666667,
- 0.5333333333,
- 0.5450980392156862,
- 0.0,
- 0.6666666667,
- 0.5333333333,
- 0.5490196078431373,
- 0.0,
- 0.6666666667,
- 0.5333333333,
- 0.5529411764705883,
- 0.0,
- 0.6666666667,
- 0.5333333333,
- 0.5568627450980392,
- 0.0,
- 0.6666666667,
- 0.5333333333,
- 0.5607843137254902,
- 0.0,
- 0.6666666667,
- 0.5333333333,
- 0.5647058823529412,
- 0.0,
- 0.6666666667,
- 0.5333333333,
- 0.5686274509803921,
- 0.0,
- 0.6666666667,
- 0.5333333333,
- 0.5725490196078431,
- 0.0,
- 0.6666666667,
- 0.5333333333,
- 0.5764705882352941,
- 0.0,
- 0.6666666667,
- 0.5333333333,
- 0.5803921568627451,
- 0.0,
- 0.6666666667,
- 0.5333333333,
- 0.5843137254901961,
- 0.0,
- 0.6666666667,
- 0.5333333333,
- 0.5882352941176471,
- 0.0,
- 0.6666666667,
- 0.5333333333,
- 0.592156862745098,
- 0.0,
- 0.6666666667,
- 0.5333333333,
- 0.596078431372549,
- 0.0,
- 0.6666666667,
- 0.5333333333,
- 0.6,
- 0.0,
- 0.6666666667,
- 0.5333333333,
- 0.6039215686274509,
- 0.0,
- 0.6666666667,
- 0.5333333333,
- 0.6078431372549019,
- 0.4,
- 1.0,
- 0.4,
- 0.611764705882353,
- 0.4,
- 1.0,
- 0.4,
- 0.615686274509804,
- 0.4,
- 1.0,
- 0.4,
- 0.6196078431372549,
- 0.4,
- 1.0,
- 0.4,
- 0.6235294117647059,
- 0.4,
- 1.0,
- 0.4,
- 0.6274509803921569,
- 0.4,
- 1.0,
- 0.4,
- 0.6313725490196078,
- 0.4,
- 1.0,
- 0.4,
- 0.6352941176470588,
- 0.4,
- 1.0,
- 0.4,
- 0.6392156862745098,
- 0.4,
- 1.0,
- 0.4,
- 0.6431372549019608,
- 0.4,
- 1.0,
- 0.4,
- 0.6470588235294118,
- 0.4,
- 1.0,
- 0.4,
- 0.6509803921568628,
- 0.4,
- 1.0,
- 0.4,
- 0.6549019607843137,
- 0.4,
- 1.0,
- 0.4,
- 0.6588235294117647,
- 0.4,
- 1.0,
- 0.4,
- 0.6627450980392157,
- 0.4,
- 1.0,
- 0.4,
- 0.6666666666666666,
- 0.4,
- 1.0,
- 0.4,
- 0.6705882352941176,
- 0.4,
- 1.0,
- 0.4,
- 0.6745098039215687,
- 0.4,
- 1.0,
- 0.4,
- 0.6784313725490196,
- 0.4,
- 1.0,
- 0.4,
- 0.6823529411764706,
- 0.4,
- 1.0,
- 0.4,
- 0.6862745098039216,
- 0.4,
- 1.0,
- 0.4,
- 0.6901960784313725,
- 0.4,
- 1.0,
- 0.4,
- 0.6941176470588235,
- 0.4,
- 1.0,
- 0.4,
- 0.6980392156862745,
- 0.4,
- 1.0,
- 0.4,
- 0.7019607843137254,
- 0.4,
- 1.0,
- 0.4,
- 0.7058823529411765,
- 1.0,
- 0.9490196078,
- 0.0,
- 0.7098039215686275,
- 1.0,
- 0.9490196078,
- 0.0,
- 0.7137254901960784,
- 1.0,
- 0.9490196078,
- 0.0,
- 0.7176470588235294,
- 1.0,
- 0.9490196078,
- 0.0,
- 0.7215686274509804,
- 1.0,
- 0.9490196078,
- 0.0,
- 0.7254901960784313,
- 1.0,
- 0.9490196078,
- 0.0,
- 0.7294117647058823,
- 1.0,
- 0.9490196078,
- 0.0,
- 0.7333333333333333,
- 1.0,
- 0.9490196078,
- 0.0,
- 0.7372549019607844,
- 1.0,
- 0.9490196078,
- 0.0,
- 0.7411764705882353,
- 1.0,
- 0.9490196078,
- 0.0,
- 0.7450980392156863,
- 1.0,
- 0.9490196078,
- 0.0,
- 0.7490196078431373,
- 1.0,
- 0.9490196078,
- 0.0,
- 0.7529411764705882,
- 1.0,
- 0.9490196078,
- 0.0,
- 0.7568627450980392,
- 1.0,
- 0.9490196078,
- 0.0,
- 0.7607843137254902,
- 1.0,
- 0.9490196078,
- 0.0,
- 0.7647058823529411,
- 1.0,
- 0.9490196078,
- 0.0,
- 0.7686274509803922,
- 1.0,
- 0.9490196078,
- 0.0,
- 0.7725490196078432,
- 1.0,
- 0.9490196078,
- 0.0,
- 0.7764705882352941,
- 1.0,
- 0.9490196078,
- 0.0,
- 0.7803921568627451,
- 1.0,
- 0.9490196078,
- 0.0,
- 0.7843137254901961,
- 1.0,
- 0.9490196078,
- 0.0,
- 0.788235294117647,
- 1.0,
- 0.9490196078,
- 0.0,
- 0.792156862745098,
- 1.0,
- 0.9490196078,
- 0.0,
- 0.796078431372549,
- 1.0,
- 0.9490196078,
- 0.0,
- 0.8,
- 1.0,
- 0.9490196078,
- 0.0,
- 0.803921568627451,
- 1.0,
- 0.9490196078,
- 0.0,
- 0.807843137254902,
- 0.9490196078,
- 0.6509803922,
- 0.2509803922,
- 0.8117647058823529,
- 0.9490196078,
- 0.6509803922,
- 0.2509803922,
- 0.8156862745098039,
- 0.9490196078,
- 0.6509803922,
- 0.2509803922,
- 0.8196078431372549,
- 0.9490196078,
- 0.6509803922,
- 0.2509803922,
- 0.8235294117647058,
- 0.9490196078,
- 0.6509803922,
- 0.2509803922,
- 0.8274509803921568,
- 0.9490196078,
- 0.6509803922,
- 0.2509803922,
- 0.8313725490196079,
- 0.9490196078,
- 0.6509803922,
- 0.2509803922,
- 0.8352941176470589,
- 0.9490196078,
- 0.6509803922,
- 0.2509803922,
- 0.8392156862745098,
- 0.9490196078,
- 0.6509803922,
- 0.2509803922,
- 0.8431372549019608,
- 0.9490196078,
- 0.6509803922,
- 0.2509803922,
- 0.8470588235294118,
- 0.9490196078,
- 0.6509803922,
- 0.2509803922,
- 0.8509803921568627,
- 0.9490196078,
- 0.6509803922,
- 0.2509803922,
- 0.8549019607843137,
- 0.9490196078,
- 0.6509803922,
- 0.2509803922,
- 0.8588235294117647,
- 0.9490196078,
- 0.6509803922,
- 0.2509803922,
- 0.8627450980392157,
- 0.9490196078,
- 0.6509803922,
- 0.2509803922,
- 0.8666666666666667,
- 0.9490196078,
- 0.6509803922,
- 0.2509803922,
- 0.8705882352941177,
- 0.9490196078,
- 0.6509803922,
- 0.2509803922,
- 0.8745098039215686,
- 0.9490196078,
- 0.6509803922,
- 0.2509803922,
- 0.8784313725490196,
- 0.9490196078,
- 0.6509803922,
- 0.2509803922,
- 0.8823529411764706,
- 0.9490196078,
- 0.6509803922,
- 0.2509803922,
- 0.8862745098039215,
- 0.9490196078,
- 0.6509803922,
- 0.2509803922,
- 0.8901960784313725,
- 0.9490196078,
- 0.6509803922,
- 0.2509803922,
- 0.8941176470588236,
- 0.9490196078,
- 0.6509803922,
- 0.2509803922,
- 0.8980392156862745,
- 0.9490196078,
- 0.6509803922,
- 0.2509803922,
- 0.9019607843137255,
- 0.9490196078,
- 0.6509803922,
- 0.2509803922,
- 0.9058823529411765,
- 0.9490196078,
- 0.6509803922,
- 0.2509803922,
- 0.9098039215686274,
- 1.0,
- 0.0,
- 0.0,
- 0.9137254901960784,
- 1.0,
- 0.0,
- 0.0,
- 0.9176470588235294,
- 1.0,
- 0.0,
- 0.0,
- 0.9215686274509803,
- 1.0,
- 0.0,
- 0.0,
- 0.9254901960784314,
- 1.0,
- 0.0,
- 0.0,
- 0.9294117647058824,
- 1.0,
- 0.0,
- 0.0,
- 0.9333333333333333,
- 1.0,
- 0.0,
- 0.0,
- 0.9372549019607843,
- 1.0,
- 0.0,
- 0.0,
- 0.9411764705882354,
- 1.0,
- 0.0,
- 0.0,
- 0.9450980392156864,
- 1.0,
- 0.0,
- 0.0,
- 0.9490196078431372,
- 1.0,
- 0.0,
- 0.0,
- 0.9529411764705882,
- 1.0,
- 0.0,
- 0.0,
- 0.9568627450980394,
- 1.0,
- 0.0,
- 0.0,
- 0.9607843137254903,
- 1.0,
- 0.0,
- 0.0,
- 0.9647058823529413,
- 1.0,
- 0.0,
- 0.0,
- 0.9686274509803922,
- 1.0,
- 0.0,
- 0.0,
- 0.9725490196078431,
- 1.0,
- 0.0,
- 0.0,
- 0.9764705882352941,
- 1.0,
- 0.0,
- 0.0,
- 0.9803921568627451,
- 1.0,
- 0.0,
- 0.0,
- 0.984313725490196,
- 1.0,
- 0.0,
- 0.0,
- 0.9882352941176471,
- 1.0,
- 0.0,
- 0.0,
- 0.9921568627450981,
- 1.0,
- 0.0,
- 0.0,
- 0.996078431372549,
- 1.0,
- 0.0,
- 0.0,
- 1.0,
- 1.0,
- 0.0,
- 0.0,
+ 0.0, 1.0, 1.0, 1.0, 0.00392156862745098, 1.0, 1.0, 1.0, 0.00784313725490196, 1.0, 1.0, 1.0,
+ 0.011764705882352941, 1.0, 1.0, 1.0, 0.01568627450980392, 1.0, 1.0, 1.0, 0.0196078431372549,
+ 1.0, 1.0, 1.0, 0.023529411764705882, 1.0, 1.0, 1.0, 0.027450980392156862, 1.0, 1.0, 1.0,
+ 0.03137254901960784, 1.0, 1.0, 1.0, 0.03529411764705882, 1.0, 1.0, 1.0, 0.0392156862745098,
+ 1.0, 1.0, 1.0, 0.043137254901960784, 1.0, 1.0, 1.0, 0.047058823529411764, 1.0, 1.0, 1.0,
+ 0.050980392156862744, 1.0, 1.0, 1.0, 0.054901960784313725, 1.0, 1.0, 1.0, 0.05882352941176471,
+ 1.0, 1.0, 1.0, 0.06274509803921569, 1.0, 1.0, 1.0, 0.06666666666666667, 1.0, 1.0, 1.0,
+ 0.07058823529411765, 1.0, 1.0, 1.0, 0.07450980392156863, 1.0, 1.0, 1.0, 0.0784313725490196,
+ 1.0, 1.0, 1.0, 0.08235294117647059, 1.0, 1.0, 1.0, 0.08627450980392157, 1.0, 1.0, 1.0,
+ 0.09019607843137255, 1.0, 1.0, 1.0, 0.09411764705882353, 1.0, 1.0, 1.0, 0.09803921568627451,
+ 1.0, 1.0, 1.0, 0.10196078431372549, 0.737254902, 0.737254902, 0.737254902,
+ 0.10588235294117647, 0.737254902, 0.737254902, 0.737254902, 0.10980392156862745, 0.737254902,
+ 0.737254902, 0.737254902, 0.11372549019607843, 0.737254902, 0.737254902, 0.737254902,
+ 0.11764705882352942, 0.737254902, 0.737254902, 0.737254902, 0.12156862745098039, 0.737254902,
+ 0.737254902, 0.737254902, 0.12549019607843137, 0.737254902, 0.737254902, 0.737254902,
+ 0.12941176470588237, 0.737254902, 0.737254902, 0.737254902, 0.13333333333333333, 0.737254902,
+ 0.737254902, 0.737254902, 0.13725490196078433, 0.737254902, 0.737254902, 0.737254902,
+ 0.1411764705882353, 0.737254902, 0.737254902, 0.737254902, 0.1450980392156863, 0.737254902,
+ 0.737254902, 0.737254902, 0.14901960784313725, 0.737254902, 0.737254902, 0.737254902,
+ 0.15294117647058825, 0.737254902, 0.737254902, 0.737254902, 0.1568627450980392, 0.737254902,
+ 0.737254902, 0.737254902, 0.1607843137254902, 0.737254902, 0.737254902, 0.737254902,
+ 0.16470588235294117, 0.737254902, 0.737254902, 0.737254902, 0.16862745098039217, 0.737254902,
+ 0.737254902, 0.737254902, 0.17254901960784313, 0.737254902, 0.737254902, 0.737254902,
+ 0.17647058823529413, 0.737254902, 0.737254902, 0.737254902, 0.1803921568627451, 0.737254902,
+ 0.737254902, 0.737254902, 0.1843137254901961, 0.737254902, 0.737254902, 0.737254902,
+ 0.18823529411764706, 0.737254902, 0.737254902, 0.737254902, 0.19215686274509805, 0.737254902,
+ 0.737254902, 0.737254902, 0.19607843137254902, 0.737254902, 0.737254902, 0.737254902, 0.2,
+ 0.737254902, 0.737254902, 0.737254902, 0.20392156862745098, 0.431372549, 0.0, 0.568627451,
+ 0.20784313725490197, 0.431372549, 0.0, 0.568627451, 0.21176470588235294, 0.431372549, 0.0,
+ 0.568627451, 0.21568627450980393, 0.431372549, 0.0, 0.568627451, 0.2196078431372549,
+ 0.431372549, 0.0, 0.568627451, 0.2235294117647059, 0.431372549, 0.0, 0.568627451,
+ 0.22745098039215686, 0.431372549, 0.0, 0.568627451, 0.23137254901960785, 0.431372549, 0.0,
+ 0.568627451, 0.23529411764705885, 0.431372549, 0.0, 0.568627451, 0.23921568627450984,
+ 0.431372549, 0.0, 0.568627451, 0.24313725490196078, 0.431372549, 0.0, 0.568627451,
+ 0.24705882352941178, 0.431372549, 0.0, 0.568627451, 0.25098039215686274, 0.431372549, 0.0,
+ 0.568627451, 0.2549019607843137, 0.431372549, 0.0, 0.568627451, 0.25882352941176473,
+ 0.431372549, 0.0, 0.568627451, 0.2627450980392157, 0.431372549, 0.0, 0.568627451,
+ 0.26666666666666666, 0.431372549, 0.0, 0.568627451, 0.27058823529411763, 0.431372549, 0.0,
+ 0.568627451, 0.27450980392156865, 0.431372549, 0.0, 0.568627451, 0.2784313725490196,
+ 0.431372549, 0.0, 0.568627451, 0.2823529411764706, 0.431372549, 0.0, 0.568627451,
+ 0.28627450980392155, 0.431372549, 0.0, 0.568627451, 0.2901960784313726, 0.431372549, 0.0,
+ 0.568627451, 0.29411764705882354, 0.431372549, 0.0, 0.568627451, 0.2980392156862745,
+ 0.431372549, 0.0, 0.568627451, 0.30196078431372547, 0.431372549, 0.0, 0.568627451,
+ 0.3058823529411765, 0.2509803922, 0.3333333333, 0.6509803922, 0.30980392156862746,
+ 0.2509803922, 0.3333333333, 0.6509803922, 0.3137254901960784, 0.2509803922, 0.3333333333,
+ 0.6509803922, 0.3176470588235294, 0.2509803922, 0.3333333333, 0.6509803922,
+ 0.3215686274509804, 0.2509803922, 0.3333333333, 0.6509803922, 0.3254901960784314,
+ 0.2509803922, 0.3333333333, 0.6509803922, 0.32941176470588235, 0.2509803922, 0.3333333333,
+ 0.6509803922, 0.3333333333333333, 0.2509803922, 0.3333333333, 0.6509803922,
+ 0.33725490196078434, 0.2509803922, 0.3333333333, 0.6509803922, 0.3411764705882353,
+ 0.2509803922, 0.3333333333, 0.6509803922, 0.34509803921568627, 0.2509803922, 0.3333333333,
+ 0.6509803922, 0.34901960784313724, 0.2509803922, 0.3333333333, 0.6509803922,
+ 0.35294117647058826, 0.2509803922, 0.3333333333, 0.6509803922, 0.3568627450980392,
+ 0.2509803922, 0.3333333333, 0.6509803922, 0.3607843137254902, 0.2509803922, 0.3333333333,
+ 0.6509803922, 0.36470588235294116, 0.2509803922, 0.3333333333, 0.6509803922,
+ 0.3686274509803922, 0.2509803922, 0.3333333333, 0.6509803922, 0.37254901960784315,
+ 0.2509803922, 0.3333333333, 0.6509803922, 0.3764705882352941, 0.2509803922, 0.3333333333,
+ 0.6509803922, 0.3803921568627451, 0.2509803922, 0.3333333333, 0.6509803922,
+ 0.3843137254901961, 0.2509803922, 0.3333333333, 0.6509803922, 0.38823529411764707,
+ 0.2509803922, 0.3333333333, 0.6509803922, 0.39215686274509803, 0.2509803922, 0.3333333333,
+ 0.6509803922, 0.396078431372549, 0.2509803922, 0.3333333333, 0.6509803922, 0.4, 0.2509803922,
+ 0.3333333333, 0.6509803922, 0.403921568627451, 0.2509803922, 0.3333333333, 0.6509803922,
+ 0.40784313725490196, 0.0, 0.8, 1.0, 0.4117647058823529, 0.0, 0.8, 1.0, 0.41568627450980394,
+ 0.0, 0.8, 1.0, 0.4196078431372549, 0.0, 0.8, 1.0, 0.4235294117647059, 0.0, 0.8, 1.0,
+ 0.42745098039215684, 0.0, 0.8, 1.0, 0.43137254901960786, 0.0, 0.8, 1.0, 0.43529411764705883,
+ 0.0, 0.8, 1.0, 0.4392156862745098, 0.0, 0.8, 1.0, 0.44313725490196076, 0.0, 0.8, 1.0,
+ 0.4470588235294118, 0.0, 0.8, 1.0, 0.45098039215686275, 0.0, 0.8, 1.0, 0.4549019607843137,
+ 0.0, 0.8, 1.0, 0.4588235294117647, 0.0, 0.8, 1.0, 0.4627450980392157, 0.0, 0.8, 1.0,
+ 0.4666666666666667, 0.0, 0.8, 1.0, 0.4705882352941177, 0.0, 0.8, 1.0, 0.4745098039215686, 0.0,
+ 0.8, 1.0, 0.4784313725490197, 0.0, 0.8, 1.0, 0.48235294117647065, 0.0, 0.8, 1.0,
+ 0.48627450980392156, 0.0, 0.8, 1.0, 0.49019607843137253, 0.0, 0.8, 1.0, 0.49411764705882355,
+ 0.0, 0.8, 1.0, 0.4980392156862745, 0.0, 0.8, 1.0, 0.5019607843137255, 0.0, 0.8, 1.0,
+ 0.5058823529411764, 0.0, 0.6666666667, 0.5333333333, 0.5098039215686274, 0.0, 0.6666666667,
+ 0.5333333333, 0.5137254901960784, 0.0, 0.6666666667, 0.5333333333, 0.5176470588235295, 0.0,
+ 0.6666666667, 0.5333333333, 0.5215686274509804, 0.0, 0.6666666667, 0.5333333333,
+ 0.5254901960784314, 0.0, 0.6666666667, 0.5333333333, 0.5294117647058824, 0.0, 0.6666666667,
+ 0.5333333333, 0.5333333333333333, 0.0, 0.6666666667, 0.5333333333, 0.5372549019607843, 0.0,
+ 0.6666666667, 0.5333333333, 0.5411764705882353, 0.0, 0.6666666667, 0.5333333333,
+ 0.5450980392156862, 0.0, 0.6666666667, 0.5333333333, 0.5490196078431373, 0.0, 0.6666666667,
+ 0.5333333333, 0.5529411764705883, 0.0, 0.6666666667, 0.5333333333, 0.5568627450980392, 0.0,
+ 0.6666666667, 0.5333333333, 0.5607843137254902, 0.0, 0.6666666667, 0.5333333333,
+ 0.5647058823529412, 0.0, 0.6666666667, 0.5333333333, 0.5686274509803921, 0.0, 0.6666666667,
+ 0.5333333333, 0.5725490196078431, 0.0, 0.6666666667, 0.5333333333, 0.5764705882352941, 0.0,
+ 0.6666666667, 0.5333333333, 0.5803921568627451, 0.0, 0.6666666667, 0.5333333333,
+ 0.5843137254901961, 0.0, 0.6666666667, 0.5333333333, 0.5882352941176471, 0.0, 0.6666666667,
+ 0.5333333333, 0.592156862745098, 0.0, 0.6666666667, 0.5333333333, 0.596078431372549, 0.0,
+ 0.6666666667, 0.5333333333, 0.6, 0.0, 0.6666666667, 0.5333333333, 0.6039215686274509, 0.0,
+ 0.6666666667, 0.5333333333, 0.6078431372549019, 0.4, 1.0, 0.4, 0.611764705882353, 0.4, 1.0,
+ 0.4, 0.615686274509804, 0.4, 1.0, 0.4, 0.6196078431372549, 0.4, 1.0, 0.4, 0.6235294117647059,
+ 0.4, 1.0, 0.4, 0.6274509803921569, 0.4, 1.0, 0.4, 0.6313725490196078, 0.4, 1.0, 0.4,
+ 0.6352941176470588, 0.4, 1.0, 0.4, 0.6392156862745098, 0.4, 1.0, 0.4, 0.6431372549019608, 0.4,
+ 1.0, 0.4, 0.6470588235294118, 0.4, 1.0, 0.4, 0.6509803921568628, 0.4, 1.0, 0.4,
+ 0.6549019607843137, 0.4, 1.0, 0.4, 0.6588235294117647, 0.4, 1.0, 0.4, 0.6627450980392157, 0.4,
+ 1.0, 0.4, 0.6666666666666666, 0.4, 1.0, 0.4, 0.6705882352941176, 0.4, 1.0, 0.4,
+ 0.6745098039215687, 0.4, 1.0, 0.4, 0.6784313725490196, 0.4, 1.0, 0.4, 0.6823529411764706, 0.4,
+ 1.0, 0.4, 0.6862745098039216, 0.4, 1.0, 0.4, 0.6901960784313725, 0.4, 1.0, 0.4,
+ 0.6941176470588235, 0.4, 1.0, 0.4, 0.6980392156862745, 0.4, 1.0, 0.4, 0.7019607843137254, 0.4,
+ 1.0, 0.4, 0.7058823529411765, 1.0, 0.9490196078, 0.0, 0.7098039215686275, 1.0, 0.9490196078,
+ 0.0, 0.7137254901960784, 1.0, 0.9490196078, 0.0, 0.7176470588235294, 1.0, 0.9490196078, 0.0,
+ 0.7215686274509804, 1.0, 0.9490196078, 0.0, 0.7254901960784313, 1.0, 0.9490196078, 0.0,
+ 0.7294117647058823, 1.0, 0.9490196078, 0.0, 0.7333333333333333, 1.0, 0.9490196078, 0.0,
+ 0.7372549019607844, 1.0, 0.9490196078, 0.0, 0.7411764705882353, 1.0, 0.9490196078, 0.0,
+ 0.7450980392156863, 1.0, 0.9490196078, 0.0, 0.7490196078431373, 1.0, 0.9490196078, 0.0,
+ 0.7529411764705882, 1.0, 0.9490196078, 0.0, 0.7568627450980392, 1.0, 0.9490196078, 0.0,
+ 0.7607843137254902, 1.0, 0.9490196078, 0.0, 0.7647058823529411, 1.0, 0.9490196078, 0.0,
+ 0.7686274509803922, 1.0, 0.9490196078, 0.0, 0.7725490196078432, 1.0, 0.9490196078, 0.0,
+ 0.7764705882352941, 1.0, 0.9490196078, 0.0, 0.7803921568627451, 1.0, 0.9490196078, 0.0,
+ 0.7843137254901961, 1.0, 0.9490196078, 0.0, 0.788235294117647, 1.0, 0.9490196078, 0.0,
+ 0.792156862745098, 1.0, 0.9490196078, 0.0, 0.796078431372549, 1.0, 0.9490196078, 0.0, 0.8,
+ 1.0, 0.9490196078, 0.0, 0.803921568627451, 1.0, 0.9490196078, 0.0, 0.807843137254902,
+ 0.9490196078, 0.6509803922, 0.2509803922, 0.8117647058823529, 0.9490196078, 0.6509803922,
+ 0.2509803922, 0.8156862745098039, 0.9490196078, 0.6509803922, 0.2509803922,
+ 0.8196078431372549, 0.9490196078, 0.6509803922, 0.2509803922, 0.8235294117647058,
+ 0.9490196078, 0.6509803922, 0.2509803922, 0.8274509803921568, 0.9490196078, 0.6509803922,
+ 0.2509803922, 0.8313725490196079, 0.9490196078, 0.6509803922, 0.2509803922,
+ 0.8352941176470589, 0.9490196078, 0.6509803922, 0.2509803922, 0.8392156862745098,
+ 0.9490196078, 0.6509803922, 0.2509803922, 0.8431372549019608, 0.9490196078, 0.6509803922,
+ 0.2509803922, 0.8470588235294118, 0.9490196078, 0.6509803922, 0.2509803922,
+ 0.8509803921568627, 0.9490196078, 0.6509803922, 0.2509803922, 0.8549019607843137,
+ 0.9490196078, 0.6509803922, 0.2509803922, 0.8588235294117647, 0.9490196078, 0.6509803922,
+ 0.2509803922, 0.8627450980392157, 0.9490196078, 0.6509803922, 0.2509803922,
+ 0.8666666666666667, 0.9490196078, 0.6509803922, 0.2509803922, 0.8705882352941177,
+ 0.9490196078, 0.6509803922, 0.2509803922, 0.8745098039215686, 0.9490196078, 0.6509803922,
+ 0.2509803922, 0.8784313725490196, 0.9490196078, 0.6509803922, 0.2509803922,
+ 0.8823529411764706, 0.9490196078, 0.6509803922, 0.2509803922, 0.8862745098039215,
+ 0.9490196078, 0.6509803922, 0.2509803922, 0.8901960784313725, 0.9490196078, 0.6509803922,
+ 0.2509803922, 0.8941176470588236, 0.9490196078, 0.6509803922, 0.2509803922,
+ 0.8980392156862745, 0.9490196078, 0.6509803922, 0.2509803922, 0.9019607843137255,
+ 0.9490196078, 0.6509803922, 0.2509803922, 0.9058823529411765, 0.9490196078, 0.6509803922,
+ 0.2509803922, 0.9098039215686274, 1.0, 0.0, 0.0, 0.9137254901960784, 1.0, 0.0, 0.0,
+ 0.9176470588235294, 1.0, 0.0, 0.0, 0.9215686274509803, 1.0, 0.0, 0.0, 0.9254901960784314, 1.0,
+ 0.0, 0.0, 0.9294117647058824, 1.0, 0.0, 0.0, 0.9333333333333333, 1.0, 0.0, 0.0,
+ 0.9372549019607843, 1.0, 0.0, 0.0, 0.9411764705882354, 1.0, 0.0, 0.0, 0.9450980392156864, 1.0,
+ 0.0, 0.0, 0.9490196078431372, 1.0, 0.0, 0.0, 0.9529411764705882, 1.0, 0.0, 0.0,
+ 0.9568627450980394, 1.0, 0.0, 0.0, 0.9607843137254903, 1.0, 0.0, 0.0, 0.9647058823529413, 1.0,
+ 0.0, 0.0, 0.9686274509803922, 1.0, 0.0, 0.0, 0.9725490196078431, 1.0, 0.0, 0.0,
+ 0.9764705882352941, 1.0, 0.0, 0.0, 0.9803921568627451, 1.0, 0.0, 0.0, 0.984313725490196, 1.0,
+ 0.0, 0.0, 0.9882352941176471, 1.0, 0.0, 0.0, 0.9921568627450981, 1.0, 0.0, 0.0,
+ 0.996078431372549, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0,
],
},
{
ColorSpace: 'RGB',
Name: 'ge_256',
RGBPoints: [
- 0.0,
- 0.0039215686,
- 0.0078431373,
- 0.0078431373,
- 0.00392156862745098,
- 0.0039215686,
- 0.0078431373,
- 0.0078431373,
- 0.00784313725490196,
- 0.0039215686,
- 0.0078431373,
- 0.0117647059,
- 0.011764705882352941,
- 0.0039215686,
- 0.0117647059,
- 0.0156862745,
- 0.01568627450980392,
- 0.0039215686,
- 0.0117647059,
- 0.0196078431,
- 0.0196078431372549,
- 0.0039215686,
- 0.0156862745,
- 0.0235294118,
- 0.023529411764705882,
- 0.0039215686,
- 0.0156862745,
- 0.0274509804,
- 0.027450980392156862,
- 0.0039215686,
- 0.0196078431,
- 0.031372549,
- 0.03137254901960784,
- 0.0039215686,
- 0.0196078431,
- 0.0352941176,
- 0.03529411764705882,
- 0.0039215686,
- 0.0235294118,
- 0.0392156863,
- 0.0392156862745098,
- 0.0039215686,
- 0.0235294118,
- 0.0431372549,
- 0.043137254901960784,
- 0.0039215686,
- 0.0274509804,
- 0.0470588235,
- 0.047058823529411764,
- 0.0039215686,
- 0.0274509804,
- 0.0509803922,
- 0.050980392156862744,
- 0.0039215686,
- 0.031372549,
- 0.0549019608,
- 0.054901960784313725,
- 0.0039215686,
- 0.031372549,
- 0.0588235294,
- 0.05882352941176471,
- 0.0039215686,
- 0.0352941176,
- 0.062745098,
- 0.06274509803921569,
- 0.0039215686,
- 0.0352941176,
- 0.0666666667,
- 0.06666666666666667,
- 0.0039215686,
- 0.0392156863,
- 0.0705882353,
- 0.07058823529411765,
- 0.0039215686,
- 0.0392156863,
- 0.0745098039,
- 0.07450980392156863,
- 0.0039215686,
- 0.0431372549,
- 0.0784313725,
- 0.0784313725490196,
- 0.0039215686,
- 0.0431372549,
- 0.0823529412,
- 0.08235294117647059,
- 0.0039215686,
- 0.0470588235,
- 0.0862745098,
- 0.08627450980392157,
- 0.0039215686,
- 0.0470588235,
- 0.0901960784,
- 0.09019607843137255,
- 0.0039215686,
- 0.0509803922,
- 0.0941176471,
- 0.09411764705882353,
- 0.0039215686,
- 0.0509803922,
- 0.0980392157,
- 0.09803921568627451,
- 0.0039215686,
- 0.0549019608,
- 0.1019607843,
- 0.10196078431372549,
- 0.0039215686,
- 0.0549019608,
- 0.1058823529,
- 0.10588235294117647,
- 0.0039215686,
- 0.0588235294,
- 0.1098039216,
- 0.10980392156862745,
- 0.0039215686,
- 0.0588235294,
- 0.1137254902,
- 0.11372549019607843,
- 0.0039215686,
- 0.062745098,
- 0.1176470588,
- 0.11764705882352942,
- 0.0039215686,
- 0.062745098,
- 0.1215686275,
- 0.12156862745098039,
- 0.0039215686,
- 0.0666666667,
- 0.1254901961,
- 0.12549019607843137,
- 0.0039215686,
- 0.0666666667,
- 0.1294117647,
- 0.12941176470588237,
- 0.0039215686,
- 0.0705882353,
- 0.1333333333,
- 0.13333333333333333,
- 0.0039215686,
- 0.0705882353,
- 0.137254902,
- 0.13725490196078433,
- 0.0039215686,
- 0.0745098039,
- 0.1411764706,
- 0.1411764705882353,
- 0.0039215686,
- 0.0745098039,
- 0.1450980392,
- 0.1450980392156863,
- 0.0039215686,
- 0.0784313725,
- 0.1490196078,
- 0.14901960784313725,
- 0.0039215686,
- 0.0784313725,
- 0.1529411765,
- 0.15294117647058825,
- 0.0039215686,
- 0.0823529412,
- 0.1568627451,
- 0.1568627450980392,
- 0.0039215686,
- 0.0823529412,
- 0.1607843137,
- 0.1607843137254902,
- 0.0039215686,
- 0.0862745098,
- 0.1647058824,
- 0.16470588235294117,
- 0.0039215686,
- 0.0862745098,
- 0.168627451,
- 0.16862745098039217,
- 0.0039215686,
- 0.0901960784,
- 0.1725490196,
- 0.17254901960784313,
- 0.0039215686,
- 0.0901960784,
- 0.1764705882,
- 0.17647058823529413,
- 0.0039215686,
- 0.0941176471,
- 0.1803921569,
- 0.1803921568627451,
- 0.0039215686,
- 0.0941176471,
- 0.1843137255,
- 0.1843137254901961,
- 0.0039215686,
- 0.0980392157,
- 0.1882352941,
- 0.18823529411764706,
- 0.0039215686,
- 0.0980392157,
- 0.1921568627,
- 0.19215686274509805,
- 0.0039215686,
- 0.1019607843,
- 0.1960784314,
- 0.19607843137254902,
- 0.0039215686,
- 0.1019607843,
- 0.2,
- 0.2,
- 0.0039215686,
- 0.1058823529,
- 0.2039215686,
- 0.20392156862745098,
- 0.0039215686,
- 0.1058823529,
- 0.2078431373,
- 0.20784313725490197,
- 0.0039215686,
- 0.1098039216,
- 0.2117647059,
- 0.21176470588235294,
- 0.0039215686,
- 0.1098039216,
- 0.2156862745,
- 0.21568627450980393,
- 0.0039215686,
- 0.1137254902,
- 0.2196078431,
- 0.2196078431372549,
- 0.0039215686,
- 0.1137254902,
- 0.2235294118,
- 0.2235294117647059,
- 0.0039215686,
- 0.1176470588,
- 0.2274509804,
- 0.22745098039215686,
- 0.0039215686,
- 0.1176470588,
- 0.231372549,
- 0.23137254901960785,
- 0.0039215686,
- 0.1215686275,
- 0.2352941176,
- 0.23529411764705885,
- 0.0039215686,
- 0.1215686275,
- 0.2392156863,
- 0.23921568627450984,
- 0.0039215686,
- 0.1254901961,
- 0.2431372549,
- 0.24313725490196078,
- 0.0039215686,
- 0.1254901961,
- 0.2470588235,
- 0.24705882352941178,
- 0.0039215686,
- 0.1294117647,
- 0.2509803922,
- 0.25098039215686274,
- 0.0039215686,
- 0.1294117647,
- 0.2509803922,
- 0.2549019607843137,
- 0.0078431373,
- 0.1254901961,
- 0.2549019608,
- 0.25882352941176473,
- 0.0156862745,
- 0.1254901961,
- 0.2588235294,
- 0.2627450980392157,
- 0.0235294118,
- 0.1215686275,
- 0.262745098,
- 0.26666666666666666,
- 0.031372549,
- 0.1215686275,
- 0.2666666667,
- 0.27058823529411763,
- 0.0392156863,
- 0.1176470588,
- 0.2705882353,
- 0.27450980392156865,
- 0.0470588235,
- 0.1176470588,
- 0.2745098039,
- 0.2784313725490196,
- 0.0549019608,
- 0.1137254902,
- 0.2784313725,
- 0.2823529411764706,
- 0.062745098,
- 0.1137254902,
- 0.2823529412,
- 0.28627450980392155,
- 0.0705882353,
- 0.1098039216,
- 0.2862745098,
- 0.2901960784313726,
- 0.0784313725,
- 0.1098039216,
- 0.2901960784,
- 0.29411764705882354,
- 0.0862745098,
- 0.1058823529,
- 0.2941176471,
- 0.2980392156862745,
- 0.0941176471,
- 0.1058823529,
- 0.2980392157,
- 0.30196078431372547,
- 0.1019607843,
- 0.1019607843,
- 0.3019607843,
- 0.3058823529411765,
- 0.1098039216,
- 0.1019607843,
- 0.3058823529,
- 0.30980392156862746,
- 0.1176470588,
- 0.0980392157,
- 0.3098039216,
- 0.3137254901960784,
- 0.1254901961,
- 0.0980392157,
- 0.3137254902,
- 0.3176470588235294,
- 0.1333333333,
- 0.0941176471,
- 0.3176470588,
- 0.3215686274509804,
- 0.1411764706,
- 0.0941176471,
- 0.3215686275,
- 0.3254901960784314,
- 0.1490196078,
- 0.0901960784,
- 0.3254901961,
- 0.32941176470588235,
- 0.1568627451,
- 0.0901960784,
- 0.3294117647,
- 0.3333333333333333,
- 0.1647058824,
- 0.0862745098,
- 0.3333333333,
- 0.33725490196078434,
- 0.1725490196,
- 0.0862745098,
- 0.337254902,
- 0.3411764705882353,
- 0.1803921569,
- 0.0823529412,
- 0.3411764706,
- 0.34509803921568627,
- 0.1882352941,
- 0.0823529412,
- 0.3450980392,
- 0.34901960784313724,
- 0.1960784314,
- 0.0784313725,
- 0.3490196078,
- 0.35294117647058826,
- 0.2039215686,
- 0.0784313725,
- 0.3529411765,
- 0.3568627450980392,
- 0.2117647059,
- 0.0745098039,
- 0.3568627451,
- 0.3607843137254902,
- 0.2196078431,
- 0.0745098039,
- 0.3607843137,
- 0.36470588235294116,
- 0.2274509804,
- 0.0705882353,
- 0.3647058824,
- 0.3686274509803922,
- 0.2352941176,
- 0.0705882353,
- 0.368627451,
- 0.37254901960784315,
- 0.2431372549,
- 0.0666666667,
- 0.3725490196,
- 0.3764705882352941,
- 0.2509803922,
- 0.0666666667,
- 0.3764705882,
- 0.3803921568627451,
- 0.2549019608,
- 0.062745098,
- 0.3803921569,
- 0.3843137254901961,
- 0.262745098,
- 0.062745098,
- 0.3843137255,
- 0.38823529411764707,
- 0.2705882353,
- 0.0588235294,
- 0.3882352941,
- 0.39215686274509803,
- 0.2784313725,
- 0.0588235294,
- 0.3921568627,
- 0.396078431372549,
- 0.2862745098,
- 0.0549019608,
- 0.3960784314,
- 0.4,
- 0.2941176471,
- 0.0549019608,
- 0.4,
- 0.403921568627451,
- 0.3019607843,
- 0.0509803922,
- 0.4039215686,
- 0.40784313725490196,
- 0.3098039216,
- 0.0509803922,
- 0.4078431373,
- 0.4117647058823529,
- 0.3176470588,
- 0.0470588235,
- 0.4117647059,
- 0.41568627450980394,
- 0.3254901961,
- 0.0470588235,
- 0.4156862745,
- 0.4196078431372549,
- 0.3333333333,
- 0.0431372549,
- 0.4196078431,
- 0.4235294117647059,
- 0.3411764706,
- 0.0431372549,
- 0.4235294118,
- 0.42745098039215684,
- 0.3490196078,
- 0.0392156863,
- 0.4274509804,
- 0.43137254901960786,
- 0.3568627451,
- 0.0392156863,
- 0.431372549,
- 0.43529411764705883,
- 0.3647058824,
- 0.0352941176,
- 0.4352941176,
- 0.4392156862745098,
- 0.3725490196,
- 0.0352941176,
- 0.4392156863,
- 0.44313725490196076,
- 0.3803921569,
- 0.031372549,
- 0.4431372549,
- 0.4470588235294118,
- 0.3882352941,
- 0.031372549,
- 0.4470588235,
- 0.45098039215686275,
- 0.3960784314,
- 0.0274509804,
- 0.4509803922,
- 0.4549019607843137,
- 0.4039215686,
- 0.0274509804,
- 0.4549019608,
- 0.4588235294117647,
- 0.4117647059,
- 0.0235294118,
- 0.4588235294,
- 0.4627450980392157,
- 0.4196078431,
- 0.0235294118,
- 0.462745098,
- 0.4666666666666667,
- 0.4274509804,
- 0.0196078431,
- 0.4666666667,
- 0.4705882352941177,
- 0.4352941176,
- 0.0196078431,
- 0.4705882353,
- 0.4745098039215686,
- 0.4431372549,
- 0.0156862745,
- 0.4745098039,
- 0.4784313725490197,
- 0.4509803922,
- 0.0156862745,
- 0.4784313725,
- 0.48235294117647065,
- 0.4588235294,
- 0.0117647059,
- 0.4823529412,
- 0.48627450980392156,
- 0.4666666667,
- 0.0117647059,
- 0.4862745098,
- 0.49019607843137253,
- 0.4745098039,
- 0.0078431373,
- 0.4901960784,
- 0.49411764705882355,
- 0.4823529412,
- 0.0078431373,
- 0.4941176471,
- 0.4980392156862745,
- 0.4901960784,
- 0.0039215686,
- 0.4980392157,
- 0.5019607843137255,
- 0.4980392157,
- 0.0117647059,
- 0.4980392157,
- 0.5058823529411764,
- 0.5058823529,
- 0.0156862745,
- 0.4901960784,
- 0.5098039215686274,
- 0.5137254902,
- 0.0235294118,
- 0.4823529412,
- 0.5137254901960784,
- 0.5215686275,
- 0.0274509804,
- 0.4745098039,
- 0.5176470588235295,
- 0.5294117647,
- 0.0352941176,
- 0.4666666667,
- 0.5215686274509804,
- 0.537254902,
- 0.0392156863,
- 0.4588235294,
- 0.5254901960784314,
- 0.5450980392,
- 0.0470588235,
- 0.4509803922,
- 0.5294117647058824,
- 0.5529411765,
- 0.0509803922,
- 0.4431372549,
- 0.5333333333333333,
- 0.5607843137,
- 0.0588235294,
- 0.4352941176,
- 0.5372549019607843,
- 0.568627451,
- 0.062745098,
- 0.4274509804,
- 0.5411764705882353,
- 0.5764705882,
- 0.0705882353,
- 0.4196078431,
- 0.5450980392156862,
- 0.5843137255,
- 0.0745098039,
- 0.4117647059,
- 0.5490196078431373,
- 0.5921568627,
- 0.0823529412,
- 0.4039215686,
- 0.5529411764705883,
- 0.6,
- 0.0862745098,
- 0.3960784314,
- 0.5568627450980392,
- 0.6078431373,
- 0.0941176471,
- 0.3882352941,
- 0.5607843137254902,
- 0.6156862745,
- 0.0980392157,
- 0.3803921569,
- 0.5647058823529412,
- 0.6235294118,
- 0.1058823529,
- 0.3725490196,
- 0.5686274509803921,
- 0.631372549,
- 0.1098039216,
- 0.3647058824,
- 0.5725490196078431,
- 0.6392156863,
- 0.1176470588,
- 0.3568627451,
- 0.5764705882352941,
- 0.6470588235,
- 0.1215686275,
- 0.3490196078,
- 0.5803921568627451,
- 0.6549019608,
- 0.1294117647,
- 0.3411764706,
- 0.5843137254901961,
- 0.662745098,
- 0.1333333333,
- 0.3333333333,
- 0.5882352941176471,
- 0.6705882353,
- 0.1411764706,
- 0.3254901961,
- 0.592156862745098,
- 0.6784313725,
- 0.1450980392,
- 0.3176470588,
- 0.596078431372549,
- 0.6862745098,
- 0.1529411765,
- 0.3098039216,
- 0.6,
- 0.6941176471,
- 0.1568627451,
- 0.3019607843,
- 0.6039215686274509,
- 0.7019607843,
- 0.1647058824,
- 0.2941176471,
- 0.6078431372549019,
- 0.7098039216,
- 0.168627451,
- 0.2862745098,
- 0.611764705882353,
- 0.7176470588,
- 0.1764705882,
- 0.2784313725,
- 0.615686274509804,
- 0.7254901961,
- 0.1803921569,
- 0.2705882353,
- 0.6196078431372549,
- 0.7333333333,
- 0.1882352941,
- 0.262745098,
- 0.6235294117647059,
- 0.7411764706,
- 0.1921568627,
- 0.2549019608,
- 0.6274509803921569,
- 0.7490196078,
- 0.2,
- 0.2509803922,
- 0.6313725490196078,
- 0.7529411765,
- 0.2039215686,
- 0.2431372549,
- 0.6352941176470588,
- 0.7607843137,
- 0.2117647059,
- 0.2352941176,
- 0.6392156862745098,
- 0.768627451,
- 0.2156862745,
- 0.2274509804,
- 0.6431372549019608,
- 0.7764705882,
- 0.2235294118,
- 0.2196078431,
- 0.6470588235294118,
- 0.7843137255,
- 0.2274509804,
- 0.2117647059,
- 0.6509803921568628,
- 0.7921568627,
- 0.2352941176,
- 0.2039215686,
- 0.6549019607843137,
- 0.8,
- 0.2392156863,
- 0.1960784314,
- 0.6588235294117647,
- 0.8078431373,
- 0.2470588235,
- 0.1882352941,
- 0.6627450980392157,
- 0.8156862745,
- 0.2509803922,
- 0.1803921569,
- 0.6666666666666666,
- 0.8235294118,
- 0.2549019608,
- 0.1725490196,
- 0.6705882352941176,
- 0.831372549,
- 0.2588235294,
- 0.1647058824,
- 0.6745098039215687,
- 0.8392156863,
- 0.2666666667,
- 0.1568627451,
- 0.6784313725490196,
- 0.8470588235,
- 0.2705882353,
- 0.1490196078,
- 0.6823529411764706,
- 0.8549019608,
- 0.2784313725,
- 0.1411764706,
- 0.6862745098039216,
- 0.862745098,
- 0.2823529412,
- 0.1333333333,
- 0.6901960784313725,
- 0.8705882353,
- 0.2901960784,
- 0.1254901961,
- 0.6941176470588235,
- 0.8784313725,
- 0.2941176471,
- 0.1176470588,
- 0.6980392156862745,
- 0.8862745098,
- 0.3019607843,
- 0.1098039216,
- 0.7019607843137254,
- 0.8941176471,
- 0.3058823529,
- 0.1019607843,
- 0.7058823529411765,
- 0.9019607843,
- 0.3137254902,
- 0.0941176471,
- 0.7098039215686275,
- 0.9098039216,
- 0.3176470588,
- 0.0862745098,
- 0.7137254901960784,
- 0.9176470588,
- 0.3254901961,
- 0.0784313725,
- 0.7176470588235294,
- 0.9254901961,
- 0.3294117647,
- 0.0705882353,
- 0.7215686274509804,
- 0.9333333333,
- 0.337254902,
- 0.062745098,
- 0.7254901960784313,
- 0.9411764706,
- 0.3411764706,
- 0.0549019608,
- 0.7294117647058823,
- 0.9490196078,
- 0.3490196078,
- 0.0470588235,
- 0.7333333333333333,
- 0.9568627451,
- 0.3529411765,
- 0.0392156863,
- 0.7372549019607844,
- 0.9647058824,
- 0.3607843137,
- 0.031372549,
- 0.7411764705882353,
- 0.9725490196,
- 0.3647058824,
- 0.0235294118,
- 0.7450980392156863,
- 0.9803921569,
- 0.3725490196,
- 0.0156862745,
- 0.7490196078431373,
- 0.9882352941,
- 0.3725490196,
- 0.0039215686,
- 0.7529411764705882,
- 0.9960784314,
- 0.3843137255,
- 0.0156862745,
- 0.7568627450980392,
- 0.9960784314,
- 0.3921568627,
- 0.031372549,
- 0.7607843137254902,
- 0.9960784314,
- 0.4039215686,
- 0.0470588235,
- 0.7647058823529411,
- 0.9960784314,
- 0.4117647059,
- 0.062745098,
- 0.7686274509803922,
- 0.9960784314,
- 0.4235294118,
- 0.0784313725,
- 0.7725490196078432,
- 0.9960784314,
- 0.431372549,
- 0.0941176471,
- 0.7764705882352941,
- 0.9960784314,
- 0.4431372549,
- 0.1098039216,
- 0.7803921568627451,
- 0.9960784314,
- 0.4509803922,
- 0.1254901961,
- 0.7843137254901961,
- 0.9960784314,
- 0.462745098,
- 0.1411764706,
- 0.788235294117647,
- 0.9960784314,
- 0.4705882353,
- 0.1568627451,
- 0.792156862745098,
- 0.9960784314,
- 0.4823529412,
- 0.1725490196,
- 0.796078431372549,
- 0.9960784314,
- 0.4901960784,
- 0.1882352941,
- 0.8,
- 0.9960784314,
- 0.5019607843,
- 0.2039215686,
- 0.803921568627451,
- 0.9960784314,
- 0.5098039216,
- 0.2196078431,
- 0.807843137254902,
- 0.9960784314,
- 0.5215686275,
- 0.2352941176,
- 0.8117647058823529,
- 0.9960784314,
- 0.5294117647,
- 0.2509803922,
- 0.8156862745098039,
- 0.9960784314,
- 0.5411764706,
- 0.262745098,
- 0.8196078431372549,
- 0.9960784314,
- 0.5490196078,
- 0.2784313725,
- 0.8235294117647058,
- 0.9960784314,
- 0.5607843137,
- 0.2941176471,
- 0.8274509803921568,
- 0.9960784314,
- 0.568627451,
- 0.3098039216,
- 0.8313725490196079,
- 0.9960784314,
- 0.5803921569,
- 0.3254901961,
- 0.8352941176470589,
- 0.9960784314,
- 0.5882352941,
- 0.3411764706,
- 0.8392156862745098,
- 0.9960784314,
- 0.6,
- 0.3568627451,
- 0.8431372549019608,
- 0.9960784314,
- 0.6078431373,
- 0.3725490196,
- 0.8470588235294118,
- 0.9960784314,
- 0.6196078431,
- 0.3882352941,
- 0.8509803921568627,
- 0.9960784314,
- 0.6274509804,
- 0.4039215686,
- 0.8549019607843137,
- 0.9960784314,
- 0.6392156863,
- 0.4196078431,
- 0.8588235294117647,
- 0.9960784314,
- 0.6470588235,
- 0.4352941176,
- 0.8627450980392157,
- 0.9960784314,
- 0.6588235294,
- 0.4509803922,
- 0.8666666666666667,
- 0.9960784314,
- 0.6666666667,
- 0.4666666667,
- 0.8705882352941177,
- 0.9960784314,
- 0.6784313725,
- 0.4823529412,
- 0.8745098039215686,
- 0.9960784314,
- 0.6862745098,
- 0.4980392157,
- 0.8784313725490196,
- 0.9960784314,
- 0.6980392157,
- 0.5137254902,
- 0.8823529411764706,
- 0.9960784314,
- 0.7058823529,
- 0.5294117647,
- 0.8862745098039215,
- 0.9960784314,
- 0.7176470588,
- 0.5450980392,
- 0.8901960784313725,
- 0.9960784314,
- 0.7254901961,
- 0.5607843137,
- 0.8941176470588236,
- 0.9960784314,
- 0.737254902,
- 0.5764705882,
- 0.8980392156862745,
- 0.9960784314,
- 0.7450980392,
- 0.5921568627,
- 0.9019607843137255,
- 0.9960784314,
- 0.7529411765,
- 0.6078431373,
- 0.9058823529411765,
- 0.9960784314,
- 0.7607843137,
- 0.6235294118,
- 0.9098039215686274,
- 0.9960784314,
- 0.7725490196,
- 0.6392156863,
- 0.9137254901960784,
- 0.9960784314,
- 0.7803921569,
- 0.6549019608,
- 0.9176470588235294,
- 0.9960784314,
- 0.7921568627,
- 0.6705882353,
- 0.9215686274509803,
- 0.9960784314,
- 0.8,
- 0.6862745098,
- 0.9254901960784314,
- 0.9960784314,
- 0.8117647059,
- 0.7019607843,
- 0.9294117647058824,
- 0.9960784314,
- 0.8196078431,
- 0.7176470588,
- 0.9333333333333333,
- 0.9960784314,
- 0.831372549,
- 0.7333333333,
- 0.9372549019607843,
- 0.9960784314,
- 0.8392156863,
- 0.7490196078,
- 0.9411764705882354,
- 0.9960784314,
- 0.8509803922,
- 0.7607843137,
- 0.9450980392156864,
- 0.9960784314,
- 0.8588235294,
- 0.7764705882,
- 0.9490196078431372,
- 0.9960784314,
- 0.8705882353,
- 0.7921568627,
- 0.9529411764705882,
- 0.9960784314,
- 0.8784313725,
- 0.8078431373,
- 0.9568627450980394,
- 0.9960784314,
- 0.8901960784,
- 0.8235294118,
- 0.9607843137254903,
- 0.9960784314,
- 0.8980392157,
- 0.8392156863,
- 0.9647058823529413,
- 0.9960784314,
- 0.9098039216,
- 0.8549019608,
- 0.9686274509803922,
- 0.9960784314,
- 0.9176470588,
- 0.8705882353,
- 0.9725490196078431,
- 0.9960784314,
- 0.9294117647,
- 0.8862745098,
- 0.9764705882352941,
- 0.9960784314,
- 0.937254902,
- 0.9019607843,
- 0.9803921568627451,
- 0.9960784314,
- 0.9490196078,
- 0.9176470588,
- 0.984313725490196,
- 0.9960784314,
- 0.9568627451,
- 0.9333333333,
- 0.9882352941176471,
- 0.9960784314,
- 0.968627451,
- 0.9490196078,
- 0.9921568627450981,
- 0.9960784314,
- 0.9764705882,
- 0.9647058824,
- 0.996078431372549,
- 0.9960784314,
- 0.9882352941,
- 0.9803921569,
- 1.0,
- 0.9960784314,
- 0.9882352941,
- 0.9803921569,
+ 0.0, 0.0039215686, 0.0078431373, 0.0078431373, 0.00392156862745098, 0.0039215686,
+ 0.0078431373, 0.0078431373, 0.00784313725490196, 0.0039215686, 0.0078431373, 0.0117647059,
+ 0.011764705882352941, 0.0039215686, 0.0117647059, 0.0156862745, 0.01568627450980392,
+ 0.0039215686, 0.0117647059, 0.0196078431, 0.0196078431372549, 0.0039215686, 0.0156862745,
+ 0.0235294118, 0.023529411764705882, 0.0039215686, 0.0156862745, 0.0274509804,
+ 0.027450980392156862, 0.0039215686, 0.0196078431, 0.031372549, 0.03137254901960784,
+ 0.0039215686, 0.0196078431, 0.0352941176, 0.03529411764705882, 0.0039215686, 0.0235294118,
+ 0.0392156863, 0.0392156862745098, 0.0039215686, 0.0235294118, 0.0431372549,
+ 0.043137254901960784, 0.0039215686, 0.0274509804, 0.0470588235, 0.047058823529411764,
+ 0.0039215686, 0.0274509804, 0.0509803922, 0.050980392156862744, 0.0039215686, 0.031372549,
+ 0.0549019608, 0.054901960784313725, 0.0039215686, 0.031372549, 0.0588235294,
+ 0.05882352941176471, 0.0039215686, 0.0352941176, 0.062745098, 0.06274509803921569,
+ 0.0039215686, 0.0352941176, 0.0666666667, 0.06666666666666667, 0.0039215686, 0.0392156863,
+ 0.0705882353, 0.07058823529411765, 0.0039215686, 0.0392156863, 0.0745098039,
+ 0.07450980392156863, 0.0039215686, 0.0431372549, 0.0784313725, 0.0784313725490196,
+ 0.0039215686, 0.0431372549, 0.0823529412, 0.08235294117647059, 0.0039215686, 0.0470588235,
+ 0.0862745098, 0.08627450980392157, 0.0039215686, 0.0470588235, 0.0901960784,
+ 0.09019607843137255, 0.0039215686, 0.0509803922, 0.0941176471, 0.09411764705882353,
+ 0.0039215686, 0.0509803922, 0.0980392157, 0.09803921568627451, 0.0039215686, 0.0549019608,
+ 0.1019607843, 0.10196078431372549, 0.0039215686, 0.0549019608, 0.1058823529,
+ 0.10588235294117647, 0.0039215686, 0.0588235294, 0.1098039216, 0.10980392156862745,
+ 0.0039215686, 0.0588235294, 0.1137254902, 0.11372549019607843, 0.0039215686, 0.062745098,
+ 0.1176470588, 0.11764705882352942, 0.0039215686, 0.062745098, 0.1215686275,
+ 0.12156862745098039, 0.0039215686, 0.0666666667, 0.1254901961, 0.12549019607843137,
+ 0.0039215686, 0.0666666667, 0.1294117647, 0.12941176470588237, 0.0039215686, 0.0705882353,
+ 0.1333333333, 0.13333333333333333, 0.0039215686, 0.0705882353, 0.137254902,
+ 0.13725490196078433, 0.0039215686, 0.0745098039, 0.1411764706, 0.1411764705882353,
+ 0.0039215686, 0.0745098039, 0.1450980392, 0.1450980392156863, 0.0039215686, 0.0784313725,
+ 0.1490196078, 0.14901960784313725, 0.0039215686, 0.0784313725, 0.1529411765,
+ 0.15294117647058825, 0.0039215686, 0.0823529412, 0.1568627451, 0.1568627450980392,
+ 0.0039215686, 0.0823529412, 0.1607843137, 0.1607843137254902, 0.0039215686, 0.0862745098,
+ 0.1647058824, 0.16470588235294117, 0.0039215686, 0.0862745098, 0.168627451,
+ 0.16862745098039217, 0.0039215686, 0.0901960784, 0.1725490196, 0.17254901960784313,
+ 0.0039215686, 0.0901960784, 0.1764705882, 0.17647058823529413, 0.0039215686, 0.0941176471,
+ 0.1803921569, 0.1803921568627451, 0.0039215686, 0.0941176471, 0.1843137255,
+ 0.1843137254901961, 0.0039215686, 0.0980392157, 0.1882352941, 0.18823529411764706,
+ 0.0039215686, 0.0980392157, 0.1921568627, 0.19215686274509805, 0.0039215686, 0.1019607843,
+ 0.1960784314, 0.19607843137254902, 0.0039215686, 0.1019607843, 0.2, 0.2, 0.0039215686,
+ 0.1058823529, 0.2039215686, 0.20392156862745098, 0.0039215686, 0.1058823529, 0.2078431373,
+ 0.20784313725490197, 0.0039215686, 0.1098039216, 0.2117647059, 0.21176470588235294,
+ 0.0039215686, 0.1098039216, 0.2156862745, 0.21568627450980393, 0.0039215686, 0.1137254902,
+ 0.2196078431, 0.2196078431372549, 0.0039215686, 0.1137254902, 0.2235294118,
+ 0.2235294117647059, 0.0039215686, 0.1176470588, 0.2274509804, 0.22745098039215686,
+ 0.0039215686, 0.1176470588, 0.231372549, 0.23137254901960785, 0.0039215686, 0.1215686275,
+ 0.2352941176, 0.23529411764705885, 0.0039215686, 0.1215686275, 0.2392156863,
+ 0.23921568627450984, 0.0039215686, 0.1254901961, 0.2431372549, 0.24313725490196078,
+ 0.0039215686, 0.1254901961, 0.2470588235, 0.24705882352941178, 0.0039215686, 0.1294117647,
+ 0.2509803922, 0.25098039215686274, 0.0039215686, 0.1294117647, 0.2509803922,
+ 0.2549019607843137, 0.0078431373, 0.1254901961, 0.2549019608, 0.25882352941176473,
+ 0.0156862745, 0.1254901961, 0.2588235294, 0.2627450980392157, 0.0235294118, 0.1215686275,
+ 0.262745098, 0.26666666666666666, 0.031372549, 0.1215686275, 0.2666666667,
+ 0.27058823529411763, 0.0392156863, 0.1176470588, 0.2705882353, 0.27450980392156865,
+ 0.0470588235, 0.1176470588, 0.2745098039, 0.2784313725490196, 0.0549019608, 0.1137254902,
+ 0.2784313725, 0.2823529411764706, 0.062745098, 0.1137254902, 0.2823529412,
+ 0.28627450980392155, 0.0705882353, 0.1098039216, 0.2862745098, 0.2901960784313726,
+ 0.0784313725, 0.1098039216, 0.2901960784, 0.29411764705882354, 0.0862745098, 0.1058823529,
+ 0.2941176471, 0.2980392156862745, 0.0941176471, 0.1058823529, 0.2980392157,
+ 0.30196078431372547, 0.1019607843, 0.1019607843, 0.3019607843, 0.3058823529411765,
+ 0.1098039216, 0.1019607843, 0.3058823529, 0.30980392156862746, 0.1176470588, 0.0980392157,
+ 0.3098039216, 0.3137254901960784, 0.1254901961, 0.0980392157, 0.3137254902,
+ 0.3176470588235294, 0.1333333333, 0.0941176471, 0.3176470588, 0.3215686274509804,
+ 0.1411764706, 0.0941176471, 0.3215686275, 0.3254901960784314, 0.1490196078, 0.0901960784,
+ 0.3254901961, 0.32941176470588235, 0.1568627451, 0.0901960784, 0.3294117647,
+ 0.3333333333333333, 0.1647058824, 0.0862745098, 0.3333333333, 0.33725490196078434,
+ 0.1725490196, 0.0862745098, 0.337254902, 0.3411764705882353, 0.1803921569, 0.0823529412,
+ 0.3411764706, 0.34509803921568627, 0.1882352941, 0.0823529412, 0.3450980392,
+ 0.34901960784313724, 0.1960784314, 0.0784313725, 0.3490196078, 0.35294117647058826,
+ 0.2039215686, 0.0784313725, 0.3529411765, 0.3568627450980392, 0.2117647059, 0.0745098039,
+ 0.3568627451, 0.3607843137254902, 0.2196078431, 0.0745098039, 0.3607843137,
+ 0.36470588235294116, 0.2274509804, 0.0705882353, 0.3647058824, 0.3686274509803922,
+ 0.2352941176, 0.0705882353, 0.368627451, 0.37254901960784315, 0.2431372549, 0.0666666667,
+ 0.3725490196, 0.3764705882352941, 0.2509803922, 0.0666666667, 0.3764705882,
+ 0.3803921568627451, 0.2549019608, 0.062745098, 0.3803921569, 0.3843137254901961, 0.262745098,
+ 0.062745098, 0.3843137255, 0.38823529411764707, 0.2705882353, 0.0588235294, 0.3882352941,
+ 0.39215686274509803, 0.2784313725, 0.0588235294, 0.3921568627, 0.396078431372549,
+ 0.2862745098, 0.0549019608, 0.3960784314, 0.4, 0.2941176471, 0.0549019608, 0.4,
+ 0.403921568627451, 0.3019607843, 0.0509803922, 0.4039215686, 0.40784313725490196,
+ 0.3098039216, 0.0509803922, 0.4078431373, 0.4117647058823529, 0.3176470588, 0.0470588235,
+ 0.4117647059, 0.41568627450980394, 0.3254901961, 0.0470588235, 0.4156862745,
+ 0.4196078431372549, 0.3333333333, 0.0431372549, 0.4196078431, 0.4235294117647059,
+ 0.3411764706, 0.0431372549, 0.4235294118, 0.42745098039215684, 0.3490196078, 0.0392156863,
+ 0.4274509804, 0.43137254901960786, 0.3568627451, 0.0392156863, 0.431372549,
+ 0.43529411764705883, 0.3647058824, 0.0352941176, 0.4352941176, 0.4392156862745098,
+ 0.3725490196, 0.0352941176, 0.4392156863, 0.44313725490196076, 0.3803921569, 0.031372549,
+ 0.4431372549, 0.4470588235294118, 0.3882352941, 0.031372549, 0.4470588235,
+ 0.45098039215686275, 0.3960784314, 0.0274509804, 0.4509803922, 0.4549019607843137,
+ 0.4039215686, 0.0274509804, 0.4549019608, 0.4588235294117647, 0.4117647059, 0.0235294118,
+ 0.4588235294, 0.4627450980392157, 0.4196078431, 0.0235294118, 0.462745098, 0.4666666666666667,
+ 0.4274509804, 0.0196078431, 0.4666666667, 0.4705882352941177, 0.4352941176, 0.0196078431,
+ 0.4705882353, 0.4745098039215686, 0.4431372549, 0.0156862745, 0.4745098039,
+ 0.4784313725490197, 0.4509803922, 0.0156862745, 0.4784313725, 0.48235294117647065,
+ 0.4588235294, 0.0117647059, 0.4823529412, 0.48627450980392156, 0.4666666667, 0.0117647059,
+ 0.4862745098, 0.49019607843137253, 0.4745098039, 0.0078431373, 0.4901960784,
+ 0.49411764705882355, 0.4823529412, 0.0078431373, 0.4941176471, 0.4980392156862745,
+ 0.4901960784, 0.0039215686, 0.4980392157, 0.5019607843137255, 0.4980392157, 0.0117647059,
+ 0.4980392157, 0.5058823529411764, 0.5058823529, 0.0156862745, 0.4901960784,
+ 0.5098039215686274, 0.5137254902, 0.0235294118, 0.4823529412, 0.5137254901960784,
+ 0.5215686275, 0.0274509804, 0.4745098039, 0.5176470588235295, 0.5294117647, 0.0352941176,
+ 0.4666666667, 0.5215686274509804, 0.537254902, 0.0392156863, 0.4588235294, 0.5254901960784314,
+ 0.5450980392, 0.0470588235, 0.4509803922, 0.5294117647058824, 0.5529411765, 0.0509803922,
+ 0.4431372549, 0.5333333333333333, 0.5607843137, 0.0588235294, 0.4352941176,
+ 0.5372549019607843, 0.568627451, 0.062745098, 0.4274509804, 0.5411764705882353, 0.5764705882,
+ 0.0705882353, 0.4196078431, 0.5450980392156862, 0.5843137255, 0.0745098039, 0.4117647059,
+ 0.5490196078431373, 0.5921568627, 0.0823529412, 0.4039215686, 0.5529411764705883, 0.6,
+ 0.0862745098, 0.3960784314, 0.5568627450980392, 0.6078431373, 0.0941176471, 0.3882352941,
+ 0.5607843137254902, 0.6156862745, 0.0980392157, 0.3803921569, 0.5647058823529412,
+ 0.6235294118, 0.1058823529, 0.3725490196, 0.5686274509803921, 0.631372549, 0.1098039216,
+ 0.3647058824, 0.5725490196078431, 0.6392156863, 0.1176470588, 0.3568627451,
+ 0.5764705882352941, 0.6470588235, 0.1215686275, 0.3490196078, 0.5803921568627451,
+ 0.6549019608, 0.1294117647, 0.3411764706, 0.5843137254901961, 0.662745098, 0.1333333333,
+ 0.3333333333, 0.5882352941176471, 0.6705882353, 0.1411764706, 0.3254901961, 0.592156862745098,
+ 0.6784313725, 0.1450980392, 0.3176470588, 0.596078431372549, 0.6862745098, 0.1529411765,
+ 0.3098039216, 0.6, 0.6941176471, 0.1568627451, 0.3019607843, 0.6039215686274509, 0.7019607843,
+ 0.1647058824, 0.2941176471, 0.6078431372549019, 0.7098039216, 0.168627451, 0.2862745098,
+ 0.611764705882353, 0.7176470588, 0.1764705882, 0.2784313725, 0.615686274509804, 0.7254901961,
+ 0.1803921569, 0.2705882353, 0.6196078431372549, 0.7333333333, 0.1882352941, 0.262745098,
+ 0.6235294117647059, 0.7411764706, 0.1921568627, 0.2549019608, 0.6274509803921569,
+ 0.7490196078, 0.2, 0.2509803922, 0.6313725490196078, 0.7529411765, 0.2039215686, 0.2431372549,
+ 0.6352941176470588, 0.7607843137, 0.2117647059, 0.2352941176, 0.6392156862745098, 0.768627451,
+ 0.2156862745, 0.2274509804, 0.6431372549019608, 0.7764705882, 0.2235294118, 0.2196078431,
+ 0.6470588235294118, 0.7843137255, 0.2274509804, 0.2117647059, 0.6509803921568628,
+ 0.7921568627, 0.2352941176, 0.2039215686, 0.6549019607843137, 0.8, 0.2392156863, 0.1960784314,
+ 0.6588235294117647, 0.8078431373, 0.2470588235, 0.1882352941, 0.6627450980392157,
+ 0.8156862745, 0.2509803922, 0.1803921569, 0.6666666666666666, 0.8235294118, 0.2549019608,
+ 0.1725490196, 0.6705882352941176, 0.831372549, 0.2588235294, 0.1647058824, 0.6745098039215687,
+ 0.8392156863, 0.2666666667, 0.1568627451, 0.6784313725490196, 0.8470588235, 0.2705882353,
+ 0.1490196078, 0.6823529411764706, 0.8549019608, 0.2784313725, 0.1411764706,
+ 0.6862745098039216, 0.862745098, 0.2823529412, 0.1333333333, 0.6901960784313725, 0.8705882353,
+ 0.2901960784, 0.1254901961, 0.6941176470588235, 0.8784313725, 0.2941176471, 0.1176470588,
+ 0.6980392156862745, 0.8862745098, 0.3019607843, 0.1098039216, 0.7019607843137254,
+ 0.8941176471, 0.3058823529, 0.1019607843, 0.7058823529411765, 0.9019607843, 0.3137254902,
+ 0.0941176471, 0.7098039215686275, 0.9098039216, 0.3176470588, 0.0862745098,
+ 0.7137254901960784, 0.9176470588, 0.3254901961, 0.0784313725, 0.7176470588235294,
+ 0.9254901961, 0.3294117647, 0.0705882353, 0.7215686274509804, 0.9333333333, 0.337254902,
+ 0.062745098, 0.7254901960784313, 0.9411764706, 0.3411764706, 0.0549019608, 0.7294117647058823,
+ 0.9490196078, 0.3490196078, 0.0470588235, 0.7333333333333333, 0.9568627451, 0.3529411765,
+ 0.0392156863, 0.7372549019607844, 0.9647058824, 0.3607843137, 0.031372549, 0.7411764705882353,
+ 0.9725490196, 0.3647058824, 0.0235294118, 0.7450980392156863, 0.9803921569, 0.3725490196,
+ 0.0156862745, 0.7490196078431373, 0.9882352941, 0.3725490196, 0.0039215686,
+ 0.7529411764705882, 0.9960784314, 0.3843137255, 0.0156862745, 0.7568627450980392,
+ 0.9960784314, 0.3921568627, 0.031372549, 0.7607843137254902, 0.9960784314, 0.4039215686,
+ 0.0470588235, 0.7647058823529411, 0.9960784314, 0.4117647059, 0.062745098, 0.7686274509803922,
+ 0.9960784314, 0.4235294118, 0.0784313725, 0.7725490196078432, 0.9960784314, 0.431372549,
+ 0.0941176471, 0.7764705882352941, 0.9960784314, 0.4431372549, 0.1098039216,
+ 0.7803921568627451, 0.9960784314, 0.4509803922, 0.1254901961, 0.7843137254901961,
+ 0.9960784314, 0.462745098, 0.1411764706, 0.788235294117647, 0.9960784314, 0.4705882353,
+ 0.1568627451, 0.792156862745098, 0.9960784314, 0.4823529412, 0.1725490196, 0.796078431372549,
+ 0.9960784314, 0.4901960784, 0.1882352941, 0.8, 0.9960784314, 0.5019607843, 0.2039215686,
+ 0.803921568627451, 0.9960784314, 0.5098039216, 0.2196078431, 0.807843137254902, 0.9960784314,
+ 0.5215686275, 0.2352941176, 0.8117647058823529, 0.9960784314, 0.5294117647, 0.2509803922,
+ 0.8156862745098039, 0.9960784314, 0.5411764706, 0.262745098, 0.8196078431372549, 0.9960784314,
+ 0.5490196078, 0.2784313725, 0.8235294117647058, 0.9960784314, 0.5607843137, 0.2941176471,
+ 0.8274509803921568, 0.9960784314, 0.568627451, 0.3098039216, 0.8313725490196079, 0.9960784314,
+ 0.5803921569, 0.3254901961, 0.8352941176470589, 0.9960784314, 0.5882352941, 0.3411764706,
+ 0.8392156862745098, 0.9960784314, 0.6, 0.3568627451, 0.8431372549019608, 0.9960784314,
+ 0.6078431373, 0.3725490196, 0.8470588235294118, 0.9960784314, 0.6196078431, 0.3882352941,
+ 0.8509803921568627, 0.9960784314, 0.6274509804, 0.4039215686, 0.8549019607843137,
+ 0.9960784314, 0.6392156863, 0.4196078431, 0.8588235294117647, 0.9960784314, 0.6470588235,
+ 0.4352941176, 0.8627450980392157, 0.9960784314, 0.6588235294, 0.4509803922,
+ 0.8666666666666667, 0.9960784314, 0.6666666667, 0.4666666667, 0.8705882352941177,
+ 0.9960784314, 0.6784313725, 0.4823529412, 0.8745098039215686, 0.9960784314, 0.6862745098,
+ 0.4980392157, 0.8784313725490196, 0.9960784314, 0.6980392157, 0.5137254902,
+ 0.8823529411764706, 0.9960784314, 0.7058823529, 0.5294117647, 0.8862745098039215,
+ 0.9960784314, 0.7176470588, 0.5450980392, 0.8901960784313725, 0.9960784314, 0.7254901961,
+ 0.5607843137, 0.8941176470588236, 0.9960784314, 0.737254902, 0.5764705882, 0.8980392156862745,
+ 0.9960784314, 0.7450980392, 0.5921568627, 0.9019607843137255, 0.9960784314, 0.7529411765,
+ 0.6078431373, 0.9058823529411765, 0.9960784314, 0.7607843137, 0.6235294118,
+ 0.9098039215686274, 0.9960784314, 0.7725490196, 0.6392156863, 0.9137254901960784,
+ 0.9960784314, 0.7803921569, 0.6549019608, 0.9176470588235294, 0.9960784314, 0.7921568627,
+ 0.6705882353, 0.9215686274509803, 0.9960784314, 0.8, 0.6862745098, 0.9254901960784314,
+ 0.9960784314, 0.8117647059, 0.7019607843, 0.9294117647058824, 0.9960784314, 0.8196078431,
+ 0.7176470588, 0.9333333333333333, 0.9960784314, 0.831372549, 0.7333333333, 0.9372549019607843,
+ 0.9960784314, 0.8392156863, 0.7490196078, 0.9411764705882354, 0.9960784314, 0.8509803922,
+ 0.7607843137, 0.9450980392156864, 0.9960784314, 0.8588235294, 0.7764705882,
+ 0.9490196078431372, 0.9960784314, 0.8705882353, 0.7921568627, 0.9529411764705882,
+ 0.9960784314, 0.8784313725, 0.8078431373, 0.9568627450980394, 0.9960784314, 0.8901960784,
+ 0.8235294118, 0.9607843137254903, 0.9960784314, 0.8980392157, 0.8392156863,
+ 0.9647058823529413, 0.9960784314, 0.9098039216, 0.8549019608, 0.9686274509803922,
+ 0.9960784314, 0.9176470588, 0.8705882353, 0.9725490196078431, 0.9960784314, 0.9294117647,
+ 0.8862745098, 0.9764705882352941, 0.9960784314, 0.937254902, 0.9019607843, 0.9803921568627451,
+ 0.9960784314, 0.9490196078, 0.9176470588, 0.984313725490196, 0.9960784314, 0.9568627451,
+ 0.9333333333, 0.9882352941176471, 0.9960784314, 0.968627451, 0.9490196078, 0.9921568627450981,
+ 0.9960784314, 0.9764705882, 0.9647058824, 0.996078431372549, 0.9960784314, 0.9882352941,
+ 0.9803921569, 1.0, 0.9960784314, 0.9882352941, 0.9803921569,
],
},
{
ColorSpace: 'RGB',
Name: 'ge',
RGBPoints: [
- 0.0,
- 0.0078431373,
- 0.0078431373,
- 0.0078431373,
- 0.00392156862745098,
- 0.0078431373,
- 0.0078431373,
- 0.0078431373,
- 0.00784313725490196,
- 0.0078431373,
- 0.0078431373,
- 0.0078431373,
- 0.011764705882352941,
- 0.0078431373,
- 0.0078431373,
- 0.0078431373,
- 0.01568627450980392,
- 0.0078431373,
- 0.0078431373,
- 0.0078431373,
- 0.0196078431372549,
- 0.0078431373,
- 0.0078431373,
- 0.0078431373,
- 0.023529411764705882,
- 0.0078431373,
- 0.0078431373,
- 0.0078431373,
- 0.027450980392156862,
- 0.0078431373,
- 0.0078431373,
- 0.0078431373,
- 0.03137254901960784,
- 0.0078431373,
- 0.0078431373,
- 0.0078431373,
- 0.03529411764705882,
- 0.0078431373,
- 0.0078431373,
- 0.0078431373,
- 0.0392156862745098,
- 0.0078431373,
- 0.0078431373,
- 0.0078431373,
- 0.043137254901960784,
- 0.0078431373,
- 0.0078431373,
- 0.0078431373,
- 0.047058823529411764,
- 0.0078431373,
- 0.0078431373,
- 0.0078431373,
- 0.050980392156862744,
- 0.0078431373,
- 0.0078431373,
- 0.0078431373,
- 0.054901960784313725,
- 0.0078431373,
- 0.0078431373,
- 0.0078431373,
- 0.05882352941176471,
- 0.0117647059,
- 0.0078431373,
- 0.0078431373,
- 0.06274509803921569,
- 0.0078431373,
- 0.0156862745,
- 0.0156862745,
- 0.06666666666666667,
- 0.0078431373,
- 0.0235294118,
- 0.0235294118,
- 0.07058823529411765,
- 0.0078431373,
- 0.031372549,
- 0.031372549,
- 0.07450980392156863,
- 0.0078431373,
- 0.0392156863,
- 0.0392156863,
- 0.0784313725490196,
- 0.0078431373,
- 0.0470588235,
- 0.0470588235,
- 0.08235294117647059,
- 0.0078431373,
- 0.0549019608,
- 0.0549019608,
- 0.08627450980392157,
- 0.0078431373,
- 0.062745098,
- 0.062745098,
- 0.09019607843137255,
- 0.0078431373,
- 0.0705882353,
- 0.0705882353,
- 0.09411764705882353,
- 0.0078431373,
- 0.0784313725,
- 0.0784313725,
- 0.09803921568627451,
- 0.0078431373,
- 0.0901960784,
- 0.0862745098,
- 0.10196078431372549,
- 0.0078431373,
- 0.0980392157,
- 0.0941176471,
- 0.10588235294117647,
- 0.0078431373,
- 0.1058823529,
- 0.1019607843,
- 0.10980392156862745,
- 0.0078431373,
- 0.1137254902,
- 0.1098039216,
- 0.11372549019607843,
- 0.0078431373,
- 0.1215686275,
- 0.1176470588,
- 0.11764705882352942,
- 0.0078431373,
- 0.1294117647,
- 0.1254901961,
- 0.12156862745098039,
- 0.0078431373,
- 0.137254902,
- 0.1333333333,
- 0.12549019607843137,
- 0.0078431373,
- 0.1450980392,
- 0.1411764706,
- 0.12941176470588237,
- 0.0078431373,
- 0.1529411765,
- 0.1490196078,
- 0.13333333333333333,
- 0.0078431373,
- 0.1647058824,
- 0.1568627451,
- 0.13725490196078433,
- 0.0078431373,
- 0.1725490196,
- 0.1647058824,
- 0.1411764705882353,
- 0.0078431373,
- 0.1803921569,
- 0.1725490196,
- 0.1450980392156863,
- 0.0078431373,
- 0.1882352941,
- 0.1803921569,
- 0.14901960784313725,
- 0.0078431373,
- 0.1960784314,
- 0.1882352941,
- 0.15294117647058825,
- 0.0078431373,
- 0.2039215686,
- 0.1960784314,
- 0.1568627450980392,
- 0.0078431373,
- 0.2117647059,
- 0.2039215686,
- 0.1607843137254902,
- 0.0078431373,
- 0.2196078431,
- 0.2117647059,
- 0.16470588235294117,
- 0.0078431373,
- 0.2274509804,
- 0.2196078431,
- 0.16862745098039217,
- 0.0078431373,
- 0.2352941176,
- 0.2274509804,
- 0.17254901960784313,
- 0.0078431373,
- 0.2470588235,
- 0.2352941176,
- 0.17647058823529413,
- 0.0078431373,
- 0.2509803922,
- 0.2431372549,
- 0.1803921568627451,
- 0.0078431373,
- 0.2549019608,
- 0.2509803922,
- 0.1843137254901961,
- 0.0078431373,
- 0.262745098,
- 0.2509803922,
- 0.18823529411764706,
- 0.0078431373,
- 0.2705882353,
- 0.2588235294,
- 0.19215686274509805,
- 0.0078431373,
- 0.2784313725,
- 0.2666666667,
- 0.19607843137254902,
- 0.0078431373,
- 0.2862745098,
- 0.2745098039,
- 0.2,
- 0.0078431373,
- 0.2941176471,
- 0.2823529412,
- 0.20392156862745098,
- 0.0078431373,
- 0.3019607843,
- 0.2901960784,
- 0.20784313725490197,
- 0.0078431373,
- 0.3137254902,
- 0.2980392157,
- 0.21176470588235294,
- 0.0078431373,
- 0.3215686275,
- 0.3058823529,
- 0.21568627450980393,
- 0.0078431373,
- 0.3294117647,
- 0.3137254902,
- 0.2196078431372549,
- 0.0078431373,
- 0.337254902,
- 0.3215686275,
- 0.2235294117647059,
- 0.0078431373,
- 0.3450980392,
- 0.3294117647,
- 0.22745098039215686,
- 0.0078431373,
- 0.3529411765,
- 0.337254902,
- 0.23137254901960785,
- 0.0078431373,
- 0.3607843137,
- 0.3450980392,
- 0.23529411764705885,
- 0.0078431373,
- 0.368627451,
- 0.3529411765,
- 0.23921568627450984,
- 0.0078431373,
- 0.3764705882,
- 0.3607843137,
- 0.24313725490196078,
- 0.0078431373,
- 0.3843137255,
- 0.368627451,
- 0.24705882352941178,
- 0.0078431373,
- 0.3960784314,
- 0.3764705882,
- 0.25098039215686274,
- 0.0078431373,
- 0.4039215686,
- 0.3843137255,
- 0.2549019607843137,
- 0.0078431373,
- 0.4117647059,
- 0.3921568627,
- 0.25882352941176473,
- 0.0078431373,
- 0.4196078431,
- 0.4,
- 0.2627450980392157,
- 0.0078431373,
- 0.4274509804,
- 0.4078431373,
- 0.26666666666666666,
- 0.0078431373,
- 0.4352941176,
- 0.4156862745,
- 0.27058823529411763,
- 0.0078431373,
- 0.4431372549,
- 0.4235294118,
- 0.27450980392156865,
- 0.0078431373,
- 0.4509803922,
- 0.431372549,
- 0.2784313725490196,
- 0.0078431373,
- 0.4588235294,
- 0.4392156863,
- 0.2823529411764706,
- 0.0078431373,
- 0.4705882353,
- 0.4470588235,
- 0.28627450980392155,
- 0.0078431373,
- 0.4784313725,
- 0.4549019608,
- 0.2901960784313726,
- 0.0078431373,
- 0.4862745098,
- 0.462745098,
- 0.29411764705882354,
- 0.0078431373,
- 0.4941176471,
- 0.4705882353,
- 0.2980392156862745,
- 0.0078431373,
- 0.5019607843,
- 0.4784313725,
- 0.30196078431372547,
- 0.0117647059,
- 0.5098039216,
- 0.4862745098,
- 0.3058823529411765,
- 0.0196078431,
- 0.5019607843,
- 0.4941176471,
- 0.30980392156862746,
- 0.0274509804,
- 0.4941176471,
- 0.5058823529,
- 0.3137254901960784,
- 0.0352941176,
- 0.4862745098,
- 0.5137254902,
- 0.3176470588235294,
- 0.0431372549,
- 0.4784313725,
- 0.5215686275,
- 0.3215686274509804,
- 0.0509803922,
- 0.4705882353,
- 0.5294117647,
- 0.3254901960784314,
- 0.0588235294,
- 0.462745098,
- 0.537254902,
- 0.32941176470588235,
- 0.0666666667,
- 0.4549019608,
- 0.5450980392,
- 0.3333333333333333,
- 0.0745098039,
- 0.4470588235,
- 0.5529411765,
- 0.33725490196078434,
- 0.0823529412,
- 0.4392156863,
- 0.5607843137,
- 0.3411764705882353,
- 0.0901960784,
- 0.431372549,
- 0.568627451,
- 0.34509803921568627,
- 0.0980392157,
- 0.4235294118,
- 0.5764705882,
- 0.34901960784313724,
- 0.1058823529,
- 0.4156862745,
- 0.5843137255,
- 0.35294117647058826,
- 0.1137254902,
- 0.4078431373,
- 0.5921568627,
- 0.3568627450980392,
- 0.1215686275,
- 0.4,
- 0.6,
- 0.3607843137254902,
- 0.1294117647,
- 0.3921568627,
- 0.6078431373,
- 0.36470588235294116,
- 0.137254902,
- 0.3843137255,
- 0.6156862745,
- 0.3686274509803922,
- 0.1450980392,
- 0.3764705882,
- 0.6235294118,
- 0.37254901960784315,
- 0.1529411765,
- 0.368627451,
- 0.631372549,
- 0.3764705882352941,
- 0.1607843137,
- 0.3607843137,
- 0.6392156863,
- 0.3803921568627451,
- 0.168627451,
- 0.3529411765,
- 0.6470588235,
- 0.3843137254901961,
- 0.1764705882,
- 0.3450980392,
- 0.6549019608,
- 0.38823529411764707,
- 0.1843137255,
- 0.337254902,
- 0.662745098,
- 0.39215686274509803,
- 0.1921568627,
- 0.3294117647,
- 0.6705882353,
- 0.396078431372549,
- 0.2,
- 0.3215686275,
- 0.6784313725,
- 0.4,
- 0.2078431373,
- 0.3137254902,
- 0.6862745098,
- 0.403921568627451,
- 0.2156862745,
- 0.3058823529,
- 0.6941176471,
- 0.40784313725490196,
- 0.2235294118,
- 0.2980392157,
- 0.7019607843,
- 0.4117647058823529,
- 0.231372549,
- 0.2901960784,
- 0.7098039216,
- 0.41568627450980394,
- 0.2392156863,
- 0.2823529412,
- 0.7176470588,
- 0.4196078431372549,
- 0.2470588235,
- 0.2745098039,
- 0.7254901961,
- 0.4235294117647059,
- 0.2509803922,
- 0.2666666667,
- 0.7333333333,
- 0.42745098039215684,
- 0.2509803922,
- 0.2588235294,
- 0.7411764706,
- 0.43137254901960786,
- 0.2588235294,
- 0.2509803922,
- 0.7490196078,
- 0.43529411764705883,
- 0.2666666667,
- 0.2509803922,
- 0.7490196078,
- 0.4392156862745098,
- 0.2745098039,
- 0.2431372549,
- 0.7568627451,
- 0.44313725490196076,
- 0.2823529412,
- 0.2352941176,
- 0.7647058824,
- 0.4470588235294118,
- 0.2901960784,
- 0.2274509804,
- 0.7725490196,
- 0.45098039215686275,
- 0.2980392157,
- 0.2196078431,
- 0.7803921569,
- 0.4549019607843137,
- 0.3058823529,
- 0.2117647059,
- 0.7882352941,
- 0.4588235294117647,
- 0.3137254902,
- 0.2039215686,
- 0.7960784314,
- 0.4627450980392157,
- 0.3215686275,
- 0.1960784314,
- 0.8039215686,
- 0.4666666666666667,
- 0.3294117647,
- 0.1882352941,
- 0.8117647059,
- 0.4705882352941177,
- 0.337254902,
- 0.1803921569,
- 0.8196078431,
- 0.4745098039215686,
- 0.3450980392,
- 0.1725490196,
- 0.8274509804,
- 0.4784313725490197,
- 0.3529411765,
- 0.1647058824,
- 0.8352941176,
- 0.48235294117647065,
- 0.3607843137,
- 0.1568627451,
- 0.8431372549,
- 0.48627450980392156,
- 0.368627451,
- 0.1490196078,
- 0.8509803922,
- 0.49019607843137253,
- 0.3764705882,
- 0.1411764706,
- 0.8588235294,
- 0.49411764705882355,
- 0.3843137255,
- 0.1333333333,
- 0.8666666667,
- 0.4980392156862745,
- 0.3921568627,
- 0.1254901961,
- 0.8745098039,
- 0.5019607843137255,
- 0.4,
- 0.1176470588,
- 0.8823529412,
- 0.5058823529411764,
- 0.4078431373,
- 0.1098039216,
- 0.8901960784,
- 0.5098039215686274,
- 0.4156862745,
- 0.1019607843,
- 0.8980392157,
- 0.5137254901960784,
- 0.4235294118,
- 0.0941176471,
- 0.9058823529,
- 0.5176470588235295,
- 0.431372549,
- 0.0862745098,
- 0.9137254902,
- 0.5215686274509804,
- 0.4392156863,
- 0.0784313725,
- 0.9215686275,
- 0.5254901960784314,
- 0.4470588235,
- 0.0705882353,
- 0.9294117647,
- 0.5294117647058824,
- 0.4549019608,
- 0.062745098,
- 0.937254902,
- 0.5333333333333333,
- 0.462745098,
- 0.0549019608,
- 0.9450980392,
- 0.5372549019607843,
- 0.4705882353,
- 0.0470588235,
- 0.9529411765,
- 0.5411764705882353,
- 0.4784313725,
- 0.0392156863,
- 0.9607843137,
- 0.5450980392156862,
- 0.4862745098,
- 0.031372549,
- 0.968627451,
- 0.5490196078431373,
- 0.4941176471,
- 0.0235294118,
- 0.9764705882,
- 0.5529411764705883,
- 0.4980392157,
- 0.0156862745,
- 0.9843137255,
- 0.5568627450980392,
- 0.5058823529,
- 0.0078431373,
- 0.9921568627,
- 0.5607843137254902,
- 0.5137254902,
- 0.0156862745,
- 0.9803921569,
- 0.5647058823529412,
- 0.5215686275,
- 0.0235294118,
- 0.9647058824,
- 0.5686274509803921,
- 0.5294117647,
- 0.0352941176,
- 0.9490196078,
- 0.5725490196078431,
- 0.537254902,
- 0.0431372549,
- 0.9333333333,
- 0.5764705882352941,
- 0.5450980392,
- 0.0509803922,
- 0.9176470588,
- 0.5803921568627451,
- 0.5529411765,
- 0.062745098,
- 0.9019607843,
- 0.5843137254901961,
- 0.5607843137,
- 0.0705882353,
- 0.8862745098,
- 0.5882352941176471,
- 0.568627451,
- 0.0784313725,
- 0.8705882353,
- 0.592156862745098,
- 0.5764705882,
- 0.0901960784,
- 0.8549019608,
- 0.596078431372549,
- 0.5843137255,
- 0.0980392157,
- 0.8392156863,
- 0.6,
- 0.5921568627,
- 0.1098039216,
- 0.8235294118,
- 0.6039215686274509,
- 0.6,
- 0.1176470588,
- 0.8078431373,
- 0.6078431372549019,
- 0.6078431373,
- 0.1254901961,
- 0.7921568627,
- 0.611764705882353,
- 0.6156862745,
- 0.137254902,
- 0.7764705882,
- 0.615686274509804,
- 0.6235294118,
- 0.1450980392,
- 0.7607843137,
- 0.6196078431372549,
- 0.631372549,
- 0.1529411765,
- 0.7490196078,
- 0.6235294117647059,
- 0.6392156863,
- 0.1647058824,
- 0.737254902,
- 0.6274509803921569,
- 0.6470588235,
- 0.1725490196,
- 0.7215686275,
- 0.6313725490196078,
- 0.6549019608,
- 0.1843137255,
- 0.7058823529,
- 0.6352941176470588,
- 0.662745098,
- 0.1921568627,
- 0.6901960784,
- 0.6392156862745098,
- 0.6705882353,
- 0.2,
- 0.6745098039,
- 0.6431372549019608,
- 0.6784313725,
- 0.2117647059,
- 0.6588235294,
- 0.6470588235294118,
- 0.6862745098,
- 0.2196078431,
- 0.6431372549,
- 0.6509803921568628,
- 0.6941176471,
- 0.2274509804,
- 0.6274509804,
- 0.6549019607843137,
- 0.7019607843,
- 0.2392156863,
- 0.6117647059,
- 0.6588235294117647,
- 0.7098039216,
- 0.2470588235,
- 0.5960784314,
- 0.6627450980392157,
- 0.7176470588,
- 0.2509803922,
- 0.5803921569,
- 0.6666666666666666,
- 0.7254901961,
- 0.2588235294,
- 0.5647058824,
- 0.6705882352941176,
- 0.7333333333,
- 0.2666666667,
- 0.5490196078,
- 0.6745098039215687,
- 0.7411764706,
- 0.2784313725,
- 0.5333333333,
- 0.6784313725490196,
- 0.7490196078,
- 0.2862745098,
- 0.5176470588,
- 0.6823529411764706,
- 0.7490196078,
- 0.2941176471,
- 0.5019607843,
- 0.6862745098039216,
- 0.7529411765,
- 0.3058823529,
- 0.4862745098,
- 0.6901960784313725,
- 0.7607843137,
- 0.3137254902,
- 0.4705882353,
- 0.6941176470588235,
- 0.768627451,
- 0.3215686275,
- 0.4549019608,
- 0.6980392156862745,
- 0.7764705882,
- 0.3333333333,
- 0.4392156863,
- 0.7019607843137254,
- 0.7843137255,
- 0.3411764706,
- 0.4235294118,
- 0.7058823529411765,
- 0.7921568627,
- 0.3529411765,
- 0.4078431373,
- 0.7098039215686275,
- 0.8,
- 0.3607843137,
- 0.3921568627,
- 0.7137254901960784,
- 0.8078431373,
- 0.368627451,
- 0.3764705882,
- 0.7176470588235294,
- 0.8156862745,
- 0.3803921569,
- 0.3607843137,
- 0.7215686274509804,
- 0.8235294118,
- 0.3882352941,
- 0.3450980392,
- 0.7254901960784313,
- 0.831372549,
- 0.3960784314,
- 0.3294117647,
- 0.7294117647058823,
- 0.8392156863,
- 0.4078431373,
- 0.3137254902,
- 0.7333333333333333,
- 0.8470588235,
- 0.4156862745,
- 0.2980392157,
- 0.7372549019607844,
- 0.8549019608,
- 0.4274509804,
- 0.2823529412,
- 0.7411764705882353,
- 0.862745098,
- 0.4352941176,
- 0.2666666667,
- 0.7450980392156863,
- 0.8705882353,
- 0.4431372549,
- 0.2509803922,
- 0.7490196078431373,
- 0.8784313725,
- 0.4549019608,
- 0.2431372549,
- 0.7529411764705882,
- 0.8862745098,
- 0.462745098,
- 0.2274509804,
- 0.7568627450980392,
- 0.8941176471,
- 0.4705882353,
- 0.2117647059,
- 0.7607843137254902,
- 0.9019607843,
- 0.4823529412,
- 0.1960784314,
- 0.7647058823529411,
- 0.9098039216,
- 0.4901960784,
- 0.1803921569,
- 0.7686274509803922,
- 0.9176470588,
- 0.4980392157,
- 0.1647058824,
- 0.7725490196078432,
- 0.9254901961,
- 0.5098039216,
- 0.1490196078,
- 0.7764705882352941,
- 0.9333333333,
- 0.5176470588,
- 0.1333333333,
- 0.7803921568627451,
- 0.9411764706,
- 0.5294117647,
- 0.1176470588,
- 0.7843137254901961,
- 0.9490196078,
- 0.537254902,
- 0.1019607843,
- 0.788235294117647,
- 0.9568627451,
- 0.5450980392,
- 0.0862745098,
- 0.792156862745098,
- 0.9647058824,
- 0.5568627451,
- 0.0705882353,
- 0.796078431372549,
- 0.9725490196,
- 0.5647058824,
- 0.0549019608,
- 0.8,
- 0.9803921569,
- 0.5725490196,
- 0.0392156863,
- 0.803921568627451,
- 0.9882352941,
- 0.5843137255,
- 0.0235294118,
- 0.807843137254902,
- 0.9921568627,
- 0.5921568627,
- 0.0078431373,
- 0.8117647058823529,
- 0.9921568627,
- 0.6039215686,
- 0.0274509804,
- 0.8156862745098039,
- 0.9921568627,
- 0.6117647059,
- 0.0509803922,
- 0.8196078431372549,
- 0.9921568627,
- 0.6196078431,
- 0.0745098039,
- 0.8235294117647058,
- 0.9921568627,
- 0.631372549,
- 0.0980392157,
- 0.8274509803921568,
- 0.9921568627,
- 0.6392156863,
- 0.1215686275,
- 0.8313725490196079,
- 0.9921568627,
- 0.6470588235,
- 0.1411764706,
- 0.8352941176470589,
- 0.9921568627,
- 0.6588235294,
- 0.1647058824,
- 0.8392156862745098,
- 0.9921568627,
- 0.6666666667,
- 0.1882352941,
- 0.8431372549019608,
- 0.9921568627,
- 0.6784313725,
- 0.2117647059,
- 0.8470588235294118,
- 0.9921568627,
- 0.6862745098,
- 0.2352941176,
- 0.8509803921568627,
- 0.9921568627,
- 0.6941176471,
- 0.2509803922,
- 0.8549019607843137,
- 0.9921568627,
- 0.7058823529,
- 0.2705882353,
- 0.8588235294117647,
- 0.9921568627,
- 0.7137254902,
- 0.2941176471,
- 0.8627450980392157,
- 0.9921568627,
- 0.7215686275,
- 0.3176470588,
- 0.8666666666666667,
- 0.9921568627,
- 0.7333333333,
- 0.3411764706,
- 0.8705882352941177,
- 0.9921568627,
- 0.7411764706,
- 0.3647058824,
- 0.8745098039215686,
- 0.9921568627,
- 0.7490196078,
- 0.3843137255,
- 0.8784313725490196,
- 0.9921568627,
- 0.7529411765,
- 0.4078431373,
- 0.8823529411764706,
- 0.9921568627,
- 0.7607843137,
- 0.431372549,
- 0.8862745098039215,
- 0.9921568627,
- 0.7725490196,
- 0.4549019608,
- 0.8901960784313725,
- 0.9921568627,
- 0.7803921569,
- 0.4784313725,
- 0.8941176470588236,
- 0.9921568627,
- 0.7882352941,
- 0.4980392157,
- 0.8980392156862745,
- 0.9921568627,
- 0.8,
- 0.5215686275,
- 0.9019607843137255,
- 0.9921568627,
- 0.8078431373,
- 0.5450980392,
- 0.9058823529411765,
- 0.9921568627,
- 0.8156862745,
- 0.568627451,
- 0.9098039215686274,
- 0.9921568627,
- 0.8274509804,
- 0.5921568627,
- 0.9137254901960784,
- 0.9921568627,
- 0.8352941176,
- 0.6156862745,
- 0.9176470588235294,
- 0.9921568627,
- 0.8470588235,
- 0.6352941176,
- 0.9215686274509803,
- 0.9921568627,
- 0.8549019608,
- 0.6588235294,
- 0.9254901960784314,
- 0.9921568627,
- 0.862745098,
- 0.6823529412,
- 0.9294117647058824,
- 0.9921568627,
- 0.8745098039,
- 0.7058823529,
- 0.9333333333333333,
- 0.9921568627,
- 0.8823529412,
- 0.7294117647,
- 0.9372549019607843,
- 0.9921568627,
- 0.8901960784,
- 0.7490196078,
- 0.9411764705882354,
- 0.9921568627,
- 0.9019607843,
- 0.7647058824,
- 0.9450980392156864,
- 0.9921568627,
- 0.9098039216,
- 0.7882352941,
- 0.9490196078431372,
- 0.9921568627,
- 0.9215686275,
- 0.8117647059,
- 0.9529411764705882,
- 0.9921568627,
- 0.9294117647,
- 0.8352941176,
- 0.9568627450980394,
- 0.9921568627,
- 0.937254902,
- 0.8588235294,
- 0.9607843137254903,
- 0.9921568627,
- 0.9490196078,
- 0.8784313725,
- 0.9647058823529413,
- 0.9921568627,
- 0.9568627451,
- 0.9019607843,
- 0.9686274509803922,
- 0.9921568627,
- 0.9647058824,
- 0.9254901961,
- 0.9725490196078431,
- 0.9921568627,
- 0.9764705882,
- 0.9490196078,
- 0.9764705882352941,
- 0.9921568627,
- 0.9843137255,
- 0.9725490196,
- 0.9803921568627451,
- 0.9921568627,
- 0.9921568627,
- 0.9921568627,
- 0.984313725490196,
- 0.9921568627,
- 0.9921568627,
- 0.9921568627,
- 0.9882352941176471,
- 0.9921568627,
- 0.9921568627,
- 0.9921568627,
- 0.9921568627450981,
- 0.9921568627,
- 0.9921568627,
- 0.9921568627,
- 0.996078431372549,
- 0.9921568627,
- 0.9921568627,
- 0.9921568627,
- 1.0,
- 0.9921568627,
- 0.9921568627,
- 0.9921568627,
+ 0.0, 0.0078431373, 0.0078431373, 0.0078431373, 0.00392156862745098, 0.0078431373,
+ 0.0078431373, 0.0078431373, 0.00784313725490196, 0.0078431373, 0.0078431373, 0.0078431373,
+ 0.011764705882352941, 0.0078431373, 0.0078431373, 0.0078431373, 0.01568627450980392,
+ 0.0078431373, 0.0078431373, 0.0078431373, 0.0196078431372549, 0.0078431373, 0.0078431373,
+ 0.0078431373, 0.023529411764705882, 0.0078431373, 0.0078431373, 0.0078431373,
+ 0.027450980392156862, 0.0078431373, 0.0078431373, 0.0078431373, 0.03137254901960784,
+ 0.0078431373, 0.0078431373, 0.0078431373, 0.03529411764705882, 0.0078431373, 0.0078431373,
+ 0.0078431373, 0.0392156862745098, 0.0078431373, 0.0078431373, 0.0078431373,
+ 0.043137254901960784, 0.0078431373, 0.0078431373, 0.0078431373, 0.047058823529411764,
+ 0.0078431373, 0.0078431373, 0.0078431373, 0.050980392156862744, 0.0078431373, 0.0078431373,
+ 0.0078431373, 0.054901960784313725, 0.0078431373, 0.0078431373, 0.0078431373,
+ 0.05882352941176471, 0.0117647059, 0.0078431373, 0.0078431373, 0.06274509803921569,
+ 0.0078431373, 0.0156862745, 0.0156862745, 0.06666666666666667, 0.0078431373, 0.0235294118,
+ 0.0235294118, 0.07058823529411765, 0.0078431373, 0.031372549, 0.031372549,
+ 0.07450980392156863, 0.0078431373, 0.0392156863, 0.0392156863, 0.0784313725490196,
+ 0.0078431373, 0.0470588235, 0.0470588235, 0.08235294117647059, 0.0078431373, 0.0549019608,
+ 0.0549019608, 0.08627450980392157, 0.0078431373, 0.062745098, 0.062745098,
+ 0.09019607843137255, 0.0078431373, 0.0705882353, 0.0705882353, 0.09411764705882353,
+ 0.0078431373, 0.0784313725, 0.0784313725, 0.09803921568627451, 0.0078431373, 0.0901960784,
+ 0.0862745098, 0.10196078431372549, 0.0078431373, 0.0980392157, 0.0941176471,
+ 0.10588235294117647, 0.0078431373, 0.1058823529, 0.1019607843, 0.10980392156862745,
+ 0.0078431373, 0.1137254902, 0.1098039216, 0.11372549019607843, 0.0078431373, 0.1215686275,
+ 0.1176470588, 0.11764705882352942, 0.0078431373, 0.1294117647, 0.1254901961,
+ 0.12156862745098039, 0.0078431373, 0.137254902, 0.1333333333, 0.12549019607843137,
+ 0.0078431373, 0.1450980392, 0.1411764706, 0.12941176470588237, 0.0078431373, 0.1529411765,
+ 0.1490196078, 0.13333333333333333, 0.0078431373, 0.1647058824, 0.1568627451,
+ 0.13725490196078433, 0.0078431373, 0.1725490196, 0.1647058824, 0.1411764705882353,
+ 0.0078431373, 0.1803921569, 0.1725490196, 0.1450980392156863, 0.0078431373, 0.1882352941,
+ 0.1803921569, 0.14901960784313725, 0.0078431373, 0.1960784314, 0.1882352941,
+ 0.15294117647058825, 0.0078431373, 0.2039215686, 0.1960784314, 0.1568627450980392,
+ 0.0078431373, 0.2117647059, 0.2039215686, 0.1607843137254902, 0.0078431373, 0.2196078431,
+ 0.2117647059, 0.16470588235294117, 0.0078431373, 0.2274509804, 0.2196078431,
+ 0.16862745098039217, 0.0078431373, 0.2352941176, 0.2274509804, 0.17254901960784313,
+ 0.0078431373, 0.2470588235, 0.2352941176, 0.17647058823529413, 0.0078431373, 0.2509803922,
+ 0.2431372549, 0.1803921568627451, 0.0078431373, 0.2549019608, 0.2509803922,
+ 0.1843137254901961, 0.0078431373, 0.262745098, 0.2509803922, 0.18823529411764706,
+ 0.0078431373, 0.2705882353, 0.2588235294, 0.19215686274509805, 0.0078431373, 0.2784313725,
+ 0.2666666667, 0.19607843137254902, 0.0078431373, 0.2862745098, 0.2745098039, 0.2,
+ 0.0078431373, 0.2941176471, 0.2823529412, 0.20392156862745098, 0.0078431373, 0.3019607843,
+ 0.2901960784, 0.20784313725490197, 0.0078431373, 0.3137254902, 0.2980392157,
+ 0.21176470588235294, 0.0078431373, 0.3215686275, 0.3058823529, 0.21568627450980393,
+ 0.0078431373, 0.3294117647, 0.3137254902, 0.2196078431372549, 0.0078431373, 0.337254902,
+ 0.3215686275, 0.2235294117647059, 0.0078431373, 0.3450980392, 0.3294117647,
+ 0.22745098039215686, 0.0078431373, 0.3529411765, 0.337254902, 0.23137254901960785,
+ 0.0078431373, 0.3607843137, 0.3450980392, 0.23529411764705885, 0.0078431373, 0.368627451,
+ 0.3529411765, 0.23921568627450984, 0.0078431373, 0.3764705882, 0.3607843137,
+ 0.24313725490196078, 0.0078431373, 0.3843137255, 0.368627451, 0.24705882352941178,
+ 0.0078431373, 0.3960784314, 0.3764705882, 0.25098039215686274, 0.0078431373, 0.4039215686,
+ 0.3843137255, 0.2549019607843137, 0.0078431373, 0.4117647059, 0.3921568627,
+ 0.25882352941176473, 0.0078431373, 0.4196078431, 0.4, 0.2627450980392157, 0.0078431373,
+ 0.4274509804, 0.4078431373, 0.26666666666666666, 0.0078431373, 0.4352941176, 0.4156862745,
+ 0.27058823529411763, 0.0078431373, 0.4431372549, 0.4235294118, 0.27450980392156865,
+ 0.0078431373, 0.4509803922, 0.431372549, 0.2784313725490196, 0.0078431373, 0.4588235294,
+ 0.4392156863, 0.2823529411764706, 0.0078431373, 0.4705882353, 0.4470588235,
+ 0.28627450980392155, 0.0078431373, 0.4784313725, 0.4549019608, 0.2901960784313726,
+ 0.0078431373, 0.4862745098, 0.462745098, 0.29411764705882354, 0.0078431373, 0.4941176471,
+ 0.4705882353, 0.2980392156862745, 0.0078431373, 0.5019607843, 0.4784313725,
+ 0.30196078431372547, 0.0117647059, 0.5098039216, 0.4862745098, 0.3058823529411765,
+ 0.0196078431, 0.5019607843, 0.4941176471, 0.30980392156862746, 0.0274509804, 0.4941176471,
+ 0.5058823529, 0.3137254901960784, 0.0352941176, 0.4862745098, 0.5137254902,
+ 0.3176470588235294, 0.0431372549, 0.4784313725, 0.5215686275, 0.3215686274509804,
+ 0.0509803922, 0.4705882353, 0.5294117647, 0.3254901960784314, 0.0588235294, 0.462745098,
+ 0.537254902, 0.32941176470588235, 0.0666666667, 0.4549019608, 0.5450980392,
+ 0.3333333333333333, 0.0745098039, 0.4470588235, 0.5529411765, 0.33725490196078434,
+ 0.0823529412, 0.4392156863, 0.5607843137, 0.3411764705882353, 0.0901960784, 0.431372549,
+ 0.568627451, 0.34509803921568627, 0.0980392157, 0.4235294118, 0.5764705882,
+ 0.34901960784313724, 0.1058823529, 0.4156862745, 0.5843137255, 0.35294117647058826,
+ 0.1137254902, 0.4078431373, 0.5921568627, 0.3568627450980392, 0.1215686275, 0.4, 0.6,
+ 0.3607843137254902, 0.1294117647, 0.3921568627, 0.6078431373, 0.36470588235294116,
+ 0.137254902, 0.3843137255, 0.6156862745, 0.3686274509803922, 0.1450980392, 0.3764705882,
+ 0.6235294118, 0.37254901960784315, 0.1529411765, 0.368627451, 0.631372549, 0.3764705882352941,
+ 0.1607843137, 0.3607843137, 0.6392156863, 0.3803921568627451, 0.168627451, 0.3529411765,
+ 0.6470588235, 0.3843137254901961, 0.1764705882, 0.3450980392, 0.6549019608,
+ 0.38823529411764707, 0.1843137255, 0.337254902, 0.662745098, 0.39215686274509803,
+ 0.1921568627, 0.3294117647, 0.6705882353, 0.396078431372549, 0.2, 0.3215686275, 0.6784313725,
+ 0.4, 0.2078431373, 0.3137254902, 0.6862745098, 0.403921568627451, 0.2156862745, 0.3058823529,
+ 0.6941176471, 0.40784313725490196, 0.2235294118, 0.2980392157, 0.7019607843,
+ 0.4117647058823529, 0.231372549, 0.2901960784, 0.7098039216, 0.41568627450980394,
+ 0.2392156863, 0.2823529412, 0.7176470588, 0.4196078431372549, 0.2470588235, 0.2745098039,
+ 0.7254901961, 0.4235294117647059, 0.2509803922, 0.2666666667, 0.7333333333,
+ 0.42745098039215684, 0.2509803922, 0.2588235294, 0.7411764706, 0.43137254901960786,
+ 0.2588235294, 0.2509803922, 0.7490196078, 0.43529411764705883, 0.2666666667, 0.2509803922,
+ 0.7490196078, 0.4392156862745098, 0.2745098039, 0.2431372549, 0.7568627451,
+ 0.44313725490196076, 0.2823529412, 0.2352941176, 0.7647058824, 0.4470588235294118,
+ 0.2901960784, 0.2274509804, 0.7725490196, 0.45098039215686275, 0.2980392157, 0.2196078431,
+ 0.7803921569, 0.4549019607843137, 0.3058823529, 0.2117647059, 0.7882352941,
+ 0.4588235294117647, 0.3137254902, 0.2039215686, 0.7960784314, 0.4627450980392157,
+ 0.3215686275, 0.1960784314, 0.8039215686, 0.4666666666666667, 0.3294117647, 0.1882352941,
+ 0.8117647059, 0.4705882352941177, 0.337254902, 0.1803921569, 0.8196078431, 0.4745098039215686,
+ 0.3450980392, 0.1725490196, 0.8274509804, 0.4784313725490197, 0.3529411765, 0.1647058824,
+ 0.8352941176, 0.48235294117647065, 0.3607843137, 0.1568627451, 0.8431372549,
+ 0.48627450980392156, 0.368627451, 0.1490196078, 0.8509803922, 0.49019607843137253,
+ 0.3764705882, 0.1411764706, 0.8588235294, 0.49411764705882355, 0.3843137255, 0.1333333333,
+ 0.8666666667, 0.4980392156862745, 0.3921568627, 0.1254901961, 0.8745098039,
+ 0.5019607843137255, 0.4, 0.1176470588, 0.8823529412, 0.5058823529411764, 0.4078431373,
+ 0.1098039216, 0.8901960784, 0.5098039215686274, 0.4156862745, 0.1019607843, 0.8980392157,
+ 0.5137254901960784, 0.4235294118, 0.0941176471, 0.9058823529, 0.5176470588235295, 0.431372549,
+ 0.0862745098, 0.9137254902, 0.5215686274509804, 0.4392156863, 0.0784313725, 0.9215686275,
+ 0.5254901960784314, 0.4470588235, 0.0705882353, 0.9294117647, 0.5294117647058824,
+ 0.4549019608, 0.062745098, 0.937254902, 0.5333333333333333, 0.462745098, 0.0549019608,
+ 0.9450980392, 0.5372549019607843, 0.4705882353, 0.0470588235, 0.9529411765,
+ 0.5411764705882353, 0.4784313725, 0.0392156863, 0.9607843137, 0.5450980392156862,
+ 0.4862745098, 0.031372549, 0.968627451, 0.5490196078431373, 0.4941176471, 0.0235294118,
+ 0.9764705882, 0.5529411764705883, 0.4980392157, 0.0156862745, 0.9843137255,
+ 0.5568627450980392, 0.5058823529, 0.0078431373, 0.9921568627, 0.5607843137254902,
+ 0.5137254902, 0.0156862745, 0.9803921569, 0.5647058823529412, 0.5215686275, 0.0235294118,
+ 0.9647058824, 0.5686274509803921, 0.5294117647, 0.0352941176, 0.9490196078,
+ 0.5725490196078431, 0.537254902, 0.0431372549, 0.9333333333, 0.5764705882352941, 0.5450980392,
+ 0.0509803922, 0.9176470588, 0.5803921568627451, 0.5529411765, 0.062745098, 0.9019607843,
+ 0.5843137254901961, 0.5607843137, 0.0705882353, 0.8862745098, 0.5882352941176471, 0.568627451,
+ 0.0784313725, 0.8705882353, 0.592156862745098, 0.5764705882, 0.0901960784, 0.8549019608,
+ 0.596078431372549, 0.5843137255, 0.0980392157, 0.8392156863, 0.6, 0.5921568627, 0.1098039216,
+ 0.8235294118, 0.6039215686274509, 0.6, 0.1176470588, 0.8078431373, 0.6078431372549019,
+ 0.6078431373, 0.1254901961, 0.7921568627, 0.611764705882353, 0.6156862745, 0.137254902,
+ 0.7764705882, 0.615686274509804, 0.6235294118, 0.1450980392, 0.7607843137, 0.6196078431372549,
+ 0.631372549, 0.1529411765, 0.7490196078, 0.6235294117647059, 0.6392156863, 0.1647058824,
+ 0.737254902, 0.6274509803921569, 0.6470588235, 0.1725490196, 0.7215686275, 0.6313725490196078,
+ 0.6549019608, 0.1843137255, 0.7058823529, 0.6352941176470588, 0.662745098, 0.1921568627,
+ 0.6901960784, 0.6392156862745098, 0.6705882353, 0.2, 0.6745098039, 0.6431372549019608,
+ 0.6784313725, 0.2117647059, 0.6588235294, 0.6470588235294118, 0.6862745098, 0.2196078431,
+ 0.6431372549, 0.6509803921568628, 0.6941176471, 0.2274509804, 0.6274509804,
+ 0.6549019607843137, 0.7019607843, 0.2392156863, 0.6117647059, 0.6588235294117647,
+ 0.7098039216, 0.2470588235, 0.5960784314, 0.6627450980392157, 0.7176470588, 0.2509803922,
+ 0.5803921569, 0.6666666666666666, 0.7254901961, 0.2588235294, 0.5647058824,
+ 0.6705882352941176, 0.7333333333, 0.2666666667, 0.5490196078, 0.6745098039215687,
+ 0.7411764706, 0.2784313725, 0.5333333333, 0.6784313725490196, 0.7490196078, 0.2862745098,
+ 0.5176470588, 0.6823529411764706, 0.7490196078, 0.2941176471, 0.5019607843,
+ 0.6862745098039216, 0.7529411765, 0.3058823529, 0.4862745098, 0.6901960784313725,
+ 0.7607843137, 0.3137254902, 0.4705882353, 0.6941176470588235, 0.768627451, 0.3215686275,
+ 0.4549019608, 0.6980392156862745, 0.7764705882, 0.3333333333, 0.4392156863,
+ 0.7019607843137254, 0.7843137255, 0.3411764706, 0.4235294118, 0.7058823529411765,
+ 0.7921568627, 0.3529411765, 0.4078431373, 0.7098039215686275, 0.8, 0.3607843137, 0.3921568627,
+ 0.7137254901960784, 0.8078431373, 0.368627451, 0.3764705882, 0.7176470588235294, 0.8156862745,
+ 0.3803921569, 0.3607843137, 0.7215686274509804, 0.8235294118, 0.3882352941, 0.3450980392,
+ 0.7254901960784313, 0.831372549, 0.3960784314, 0.3294117647, 0.7294117647058823, 0.8392156863,
+ 0.4078431373, 0.3137254902, 0.7333333333333333, 0.8470588235, 0.4156862745, 0.2980392157,
+ 0.7372549019607844, 0.8549019608, 0.4274509804, 0.2823529412, 0.7411764705882353, 0.862745098,
+ 0.4352941176, 0.2666666667, 0.7450980392156863, 0.8705882353, 0.4431372549, 0.2509803922,
+ 0.7490196078431373, 0.8784313725, 0.4549019608, 0.2431372549, 0.7529411764705882,
+ 0.8862745098, 0.462745098, 0.2274509804, 0.7568627450980392, 0.8941176471, 0.4705882353,
+ 0.2117647059, 0.7607843137254902, 0.9019607843, 0.4823529412, 0.1960784314,
+ 0.7647058823529411, 0.9098039216, 0.4901960784, 0.1803921569, 0.7686274509803922,
+ 0.9176470588, 0.4980392157, 0.1647058824, 0.7725490196078432, 0.9254901961, 0.5098039216,
+ 0.1490196078, 0.7764705882352941, 0.9333333333, 0.5176470588, 0.1333333333,
+ 0.7803921568627451, 0.9411764706, 0.5294117647, 0.1176470588, 0.7843137254901961,
+ 0.9490196078, 0.537254902, 0.1019607843, 0.788235294117647, 0.9568627451, 0.5450980392,
+ 0.0862745098, 0.792156862745098, 0.9647058824, 0.5568627451, 0.0705882353, 0.796078431372549,
+ 0.9725490196, 0.5647058824, 0.0549019608, 0.8, 0.9803921569, 0.5725490196, 0.0392156863,
+ 0.803921568627451, 0.9882352941, 0.5843137255, 0.0235294118, 0.807843137254902, 0.9921568627,
+ 0.5921568627, 0.0078431373, 0.8117647058823529, 0.9921568627, 0.6039215686, 0.0274509804,
+ 0.8156862745098039, 0.9921568627, 0.6117647059, 0.0509803922, 0.8196078431372549,
+ 0.9921568627, 0.6196078431, 0.0745098039, 0.8235294117647058, 0.9921568627, 0.631372549,
+ 0.0980392157, 0.8274509803921568, 0.9921568627, 0.6392156863, 0.1215686275,
+ 0.8313725490196079, 0.9921568627, 0.6470588235, 0.1411764706, 0.8352941176470589,
+ 0.9921568627, 0.6588235294, 0.1647058824, 0.8392156862745098, 0.9921568627, 0.6666666667,
+ 0.1882352941, 0.8431372549019608, 0.9921568627, 0.6784313725, 0.2117647059,
+ 0.8470588235294118, 0.9921568627, 0.6862745098, 0.2352941176, 0.8509803921568627,
+ 0.9921568627, 0.6941176471, 0.2509803922, 0.8549019607843137, 0.9921568627, 0.7058823529,
+ 0.2705882353, 0.8588235294117647, 0.9921568627, 0.7137254902, 0.2941176471,
+ 0.8627450980392157, 0.9921568627, 0.7215686275, 0.3176470588, 0.8666666666666667,
+ 0.9921568627, 0.7333333333, 0.3411764706, 0.8705882352941177, 0.9921568627, 0.7411764706,
+ 0.3647058824, 0.8745098039215686, 0.9921568627, 0.7490196078, 0.3843137255,
+ 0.8784313725490196, 0.9921568627, 0.7529411765, 0.4078431373, 0.8823529411764706,
+ 0.9921568627, 0.7607843137, 0.431372549, 0.8862745098039215, 0.9921568627, 0.7725490196,
+ 0.4549019608, 0.8901960784313725, 0.9921568627, 0.7803921569, 0.4784313725,
+ 0.8941176470588236, 0.9921568627, 0.7882352941, 0.4980392157, 0.8980392156862745,
+ 0.9921568627, 0.8, 0.5215686275, 0.9019607843137255, 0.9921568627, 0.8078431373, 0.5450980392,
+ 0.9058823529411765, 0.9921568627, 0.8156862745, 0.568627451, 0.9098039215686274, 0.9921568627,
+ 0.8274509804, 0.5921568627, 0.9137254901960784, 0.9921568627, 0.8352941176, 0.6156862745,
+ 0.9176470588235294, 0.9921568627, 0.8470588235, 0.6352941176, 0.9215686274509803,
+ 0.9921568627, 0.8549019608, 0.6588235294, 0.9254901960784314, 0.9921568627, 0.862745098,
+ 0.6823529412, 0.9294117647058824, 0.9921568627, 0.8745098039, 0.7058823529,
+ 0.9333333333333333, 0.9921568627, 0.8823529412, 0.7294117647, 0.9372549019607843,
+ 0.9921568627, 0.8901960784, 0.7490196078, 0.9411764705882354, 0.9921568627, 0.9019607843,
+ 0.7647058824, 0.9450980392156864, 0.9921568627, 0.9098039216, 0.7882352941,
+ 0.9490196078431372, 0.9921568627, 0.9215686275, 0.8117647059, 0.9529411764705882,
+ 0.9921568627, 0.9294117647, 0.8352941176, 0.9568627450980394, 0.9921568627, 0.937254902,
+ 0.8588235294, 0.9607843137254903, 0.9921568627, 0.9490196078, 0.8784313725,
+ 0.9647058823529413, 0.9921568627, 0.9568627451, 0.9019607843, 0.9686274509803922,
+ 0.9921568627, 0.9647058824, 0.9254901961, 0.9725490196078431, 0.9921568627, 0.9764705882,
+ 0.9490196078, 0.9764705882352941, 0.9921568627, 0.9843137255, 0.9725490196,
+ 0.9803921568627451, 0.9921568627, 0.9921568627, 0.9921568627, 0.984313725490196, 0.9921568627,
+ 0.9921568627, 0.9921568627, 0.9882352941176471, 0.9921568627, 0.9921568627, 0.9921568627,
+ 0.9921568627450981, 0.9921568627, 0.9921568627, 0.9921568627, 0.996078431372549, 0.9921568627,
+ 0.9921568627, 0.9921568627, 1.0, 0.9921568627, 0.9921568627, 0.9921568627,
],
},
{
ColorSpace: 'RGB',
Name: 'siemens',
RGBPoints: [
- 0.0,
- 0.0078431373,
- 0.0039215686,
- 0.1254901961,
- 0.00392156862745098,
- 0.0078431373,
- 0.0039215686,
- 0.1254901961,
- 0.00784313725490196,
- 0.0078431373,
- 0.0039215686,
- 0.1882352941,
- 0.011764705882352941,
- 0.0117647059,
- 0.0039215686,
- 0.2509803922,
- 0.01568627450980392,
- 0.0117647059,
- 0.0039215686,
- 0.3098039216,
- 0.0196078431372549,
- 0.0156862745,
- 0.0039215686,
- 0.3725490196,
- 0.023529411764705882,
- 0.0156862745,
- 0.0039215686,
- 0.3725490196,
- 0.027450980392156862,
- 0.0156862745,
- 0.0039215686,
- 0.3725490196,
- 0.03137254901960784,
- 0.0156862745,
- 0.0039215686,
- 0.3725490196,
- 0.03529411764705882,
- 0.0156862745,
- 0.0039215686,
- 0.3725490196,
- 0.0392156862745098,
- 0.0156862745,
- 0.0039215686,
- 0.3725490196,
- 0.043137254901960784,
- 0.0156862745,
- 0.0039215686,
- 0.3725490196,
- 0.047058823529411764,
- 0.0156862745,
- 0.0039215686,
- 0.3725490196,
- 0.050980392156862744,
- 0.0156862745,
- 0.0039215686,
- 0.3725490196,
- 0.054901960784313725,
- 0.0156862745,
- 0.0039215686,
- 0.3725490196,
- 0.05882352941176471,
- 0.0156862745,
- 0.0039215686,
- 0.3725490196,
- 0.06274509803921569,
- 0.0156862745,
- 0.0039215686,
- 0.3882352941,
- 0.06666666666666667,
- 0.0156862745,
- 0.0039215686,
- 0.4078431373,
- 0.07058823529411765,
- 0.0156862745,
- 0.0039215686,
- 0.4235294118,
- 0.07450980392156863,
- 0.0156862745,
- 0.0039215686,
- 0.4431372549,
- 0.0784313725490196,
- 0.0156862745,
- 0.0039215686,
- 0.462745098,
- 0.08235294117647059,
- 0.0156862745,
- 0.0039215686,
- 0.4784313725,
- 0.08627450980392157,
- 0.0156862745,
- 0.0039215686,
- 0.4980392157,
- 0.09019607843137255,
- 0.0196078431,
- 0.0039215686,
- 0.5137254902,
- 0.09411764705882353,
- 0.0196078431,
- 0.0039215686,
- 0.5333333333,
- 0.09803921568627451,
- 0.0196078431,
- 0.0039215686,
- 0.5529411765,
- 0.10196078431372549,
- 0.0196078431,
- 0.0039215686,
- 0.568627451,
- 0.10588235294117647,
- 0.0196078431,
- 0.0039215686,
- 0.5882352941,
- 0.10980392156862745,
- 0.0196078431,
- 0.0039215686,
- 0.6039215686,
- 0.11372549019607843,
- 0.0196078431,
- 0.0039215686,
- 0.6235294118,
- 0.11764705882352942,
- 0.0196078431,
- 0.0039215686,
- 0.6431372549,
- 0.12156862745098039,
- 0.0235294118,
- 0.0039215686,
- 0.6588235294,
- 0.12549019607843137,
- 0.0235294118,
- 0.0039215686,
- 0.6784313725,
- 0.12941176470588237,
- 0.0235294118,
- 0.0039215686,
- 0.6980392157,
- 0.13333333333333333,
- 0.0235294118,
- 0.0039215686,
- 0.7137254902,
- 0.13725490196078433,
- 0.0235294118,
- 0.0039215686,
- 0.7333333333,
- 0.1411764705882353,
- 0.0235294118,
- 0.0039215686,
- 0.7490196078,
- 0.1450980392156863,
- 0.0235294118,
- 0.0039215686,
- 0.7647058824,
- 0.14901960784313725,
- 0.0235294118,
- 0.0039215686,
- 0.7843137255,
- 0.15294117647058825,
- 0.0274509804,
- 0.0039215686,
- 0.8,
- 0.1568627450980392,
- 0.0274509804,
- 0.0039215686,
- 0.8196078431,
- 0.1607843137254902,
- 0.0274509804,
- 0.0039215686,
- 0.8352941176,
- 0.16470588235294117,
- 0.0274509804,
- 0.0039215686,
- 0.8549019608,
- 0.16862745098039217,
- 0.0274509804,
- 0.0039215686,
- 0.8745098039,
- 0.17254901960784313,
- 0.0274509804,
- 0.0039215686,
- 0.8901960784,
- 0.17647058823529413,
- 0.0274509804,
- 0.0039215686,
- 0.9098039216,
- 0.1803921568627451,
- 0.031372549,
- 0.0039215686,
- 0.9294117647,
- 0.1843137254901961,
- 0.031372549,
- 0.0039215686,
- 0.9254901961,
- 0.18823529411764706,
- 0.0509803922,
- 0.0039215686,
- 0.9098039216,
- 0.19215686274509805,
- 0.0705882353,
- 0.0039215686,
- 0.8901960784,
- 0.19607843137254902,
- 0.0901960784,
- 0.0039215686,
- 0.8705882353,
- 0.2,
- 0.1137254902,
- 0.0039215686,
- 0.8509803922,
- 0.20392156862745098,
- 0.1333333333,
- 0.0039215686,
- 0.831372549,
- 0.20784313725490197,
- 0.1529411765,
- 0.0039215686,
- 0.8117647059,
- 0.21176470588235294,
- 0.1725490196,
- 0.0039215686,
- 0.7921568627,
- 0.21568627450980393,
- 0.1960784314,
- 0.0039215686,
- 0.7725490196,
- 0.2196078431372549,
- 0.2156862745,
- 0.0039215686,
- 0.7529411765,
- 0.2235294117647059,
- 0.2352941176,
- 0.0039215686,
- 0.737254902,
- 0.22745098039215686,
- 0.2509803922,
- 0.0039215686,
- 0.7176470588,
- 0.23137254901960785,
- 0.2745098039,
- 0.0039215686,
- 0.6980392157,
- 0.23529411764705885,
- 0.2941176471,
- 0.0039215686,
- 0.6784313725,
- 0.23921568627450984,
- 0.3137254902,
- 0.0039215686,
- 0.6588235294,
- 0.24313725490196078,
- 0.3333333333,
- 0.0039215686,
- 0.6392156863,
- 0.24705882352941178,
- 0.3568627451,
- 0.0039215686,
- 0.6196078431,
- 0.25098039215686274,
- 0.3764705882,
- 0.0039215686,
- 0.6,
- 0.2549019607843137,
- 0.3960784314,
- 0.0039215686,
- 0.5803921569,
- 0.25882352941176473,
- 0.4156862745,
- 0.0039215686,
- 0.5607843137,
- 0.2627450980392157,
- 0.4392156863,
- 0.0039215686,
- 0.5411764706,
- 0.26666666666666666,
- 0.4588235294,
- 0.0039215686,
- 0.5215686275,
- 0.27058823529411763,
- 0.4784313725,
- 0.0039215686,
- 0.5019607843,
- 0.27450980392156865,
- 0.4980392157,
- 0.0039215686,
- 0.4823529412,
- 0.2784313725490196,
- 0.5215686275,
- 0.0039215686,
- 0.4666666667,
- 0.2823529411764706,
- 0.5411764706,
- 0.0039215686,
- 0.4470588235,
- 0.28627450980392155,
- 0.5607843137,
- 0.0039215686,
- 0.4274509804,
- 0.2901960784313726,
- 0.5803921569,
- 0.0039215686,
- 0.4078431373,
- 0.29411764705882354,
- 0.6039215686,
- 0.0039215686,
- 0.3882352941,
- 0.2980392156862745,
- 0.6235294118,
- 0.0039215686,
- 0.368627451,
- 0.30196078431372547,
- 0.6431372549,
- 0.0039215686,
- 0.3490196078,
- 0.3058823529411765,
- 0.662745098,
- 0.0039215686,
- 0.3294117647,
- 0.30980392156862746,
- 0.6862745098,
- 0.0039215686,
- 0.3098039216,
- 0.3137254901960784,
- 0.7058823529,
- 0.0039215686,
- 0.2901960784,
- 0.3176470588235294,
- 0.7254901961,
- 0.0039215686,
- 0.2705882353,
- 0.3215686274509804,
- 0.7450980392,
- 0.0039215686,
- 0.2509803922,
- 0.3254901960784314,
- 0.7647058824,
- 0.0039215686,
- 0.2352941176,
- 0.32941176470588235,
- 0.7843137255,
- 0.0039215686,
- 0.2156862745,
- 0.3333333333333333,
- 0.8039215686,
- 0.0039215686,
- 0.1960784314,
- 0.33725490196078434,
- 0.8235294118,
- 0.0039215686,
- 0.1764705882,
- 0.3411764705882353,
- 0.8470588235,
- 0.0039215686,
- 0.1568627451,
- 0.34509803921568627,
- 0.8666666667,
- 0.0039215686,
- 0.137254902,
- 0.34901960784313724,
- 0.8862745098,
- 0.0039215686,
- 0.1176470588,
- 0.35294117647058826,
- 0.9058823529,
- 0.0039215686,
- 0.0980392157,
- 0.3568627450980392,
- 0.9294117647,
- 0.0039215686,
- 0.0784313725,
- 0.3607843137254902,
- 0.9490196078,
- 0.0039215686,
- 0.0588235294,
- 0.36470588235294116,
- 0.968627451,
- 0.0039215686,
- 0.0392156863,
- 0.3686274509803922,
- 0.9921568627,
- 0.0039215686,
- 0.0235294118,
- 0.37254901960784315,
- 0.9529411765,
- 0.0039215686,
- 0.0588235294,
- 0.3764705882352941,
- 0.9529411765,
- 0.0078431373,
- 0.0549019608,
- 0.3803921568627451,
- 0.9529411765,
- 0.0156862745,
- 0.0549019608,
- 0.3843137254901961,
- 0.9529411765,
- 0.0235294118,
- 0.0549019608,
- 0.38823529411764707,
- 0.9529411765,
- 0.031372549,
- 0.0549019608,
- 0.39215686274509803,
- 0.9529411765,
- 0.0352941176,
- 0.0549019608,
- 0.396078431372549,
- 0.9529411765,
- 0.0431372549,
- 0.0549019608,
- 0.4,
- 0.9529411765,
- 0.0509803922,
- 0.0549019608,
- 0.403921568627451,
- 0.9529411765,
- 0.0588235294,
- 0.0549019608,
- 0.40784313725490196,
- 0.9529411765,
- 0.062745098,
- 0.0549019608,
- 0.4117647058823529,
- 0.9529411765,
- 0.0705882353,
- 0.0549019608,
- 0.41568627450980394,
- 0.9529411765,
- 0.0784313725,
- 0.0509803922,
- 0.4196078431372549,
- 0.9529411765,
- 0.0862745098,
- 0.0509803922,
- 0.4235294117647059,
- 0.9568627451,
- 0.0941176471,
- 0.0509803922,
- 0.42745098039215684,
- 0.9568627451,
- 0.0980392157,
- 0.0509803922,
- 0.43137254901960786,
- 0.9568627451,
- 0.1058823529,
- 0.0509803922,
- 0.43529411764705883,
- 0.9568627451,
- 0.1137254902,
- 0.0509803922,
- 0.4392156862745098,
- 0.9568627451,
- 0.1215686275,
- 0.0509803922,
- 0.44313725490196076,
- 0.9568627451,
- 0.1254901961,
- 0.0509803922,
- 0.4470588235294118,
- 0.9568627451,
- 0.1333333333,
- 0.0509803922,
- 0.45098039215686275,
- 0.9568627451,
- 0.1411764706,
- 0.0509803922,
- 0.4549019607843137,
- 0.9568627451,
- 0.1490196078,
- 0.0470588235,
- 0.4588235294117647,
- 0.9568627451,
- 0.1568627451,
- 0.0470588235,
- 0.4627450980392157,
- 0.9568627451,
- 0.1607843137,
- 0.0470588235,
- 0.4666666666666667,
- 0.9568627451,
- 0.168627451,
- 0.0470588235,
- 0.4705882352941177,
- 0.9607843137,
- 0.1764705882,
- 0.0470588235,
- 0.4745098039215686,
- 0.9607843137,
- 0.1843137255,
- 0.0470588235,
- 0.4784313725490197,
- 0.9607843137,
- 0.1882352941,
- 0.0470588235,
- 0.48235294117647065,
- 0.9607843137,
- 0.1960784314,
- 0.0470588235,
- 0.48627450980392156,
- 0.9607843137,
- 0.2039215686,
- 0.0470588235,
- 0.49019607843137253,
- 0.9607843137,
- 0.2117647059,
- 0.0470588235,
- 0.49411764705882355,
- 0.9607843137,
- 0.2196078431,
- 0.0431372549,
- 0.4980392156862745,
- 0.9607843137,
- 0.2235294118,
- 0.0431372549,
- 0.5019607843137255,
- 0.9607843137,
- 0.231372549,
- 0.0431372549,
- 0.5058823529411764,
- 0.9607843137,
- 0.2392156863,
- 0.0431372549,
- 0.5098039215686274,
- 0.9607843137,
- 0.2470588235,
- 0.0431372549,
- 0.5137254901960784,
- 0.9607843137,
- 0.2509803922,
- 0.0431372549,
- 0.5176470588235295,
- 0.9647058824,
- 0.2549019608,
- 0.0431372549,
- 0.5215686274509804,
- 0.9647058824,
- 0.262745098,
- 0.0431372549,
- 0.5254901960784314,
- 0.9647058824,
- 0.2705882353,
- 0.0431372549,
- 0.5294117647058824,
- 0.9647058824,
- 0.2745098039,
- 0.0431372549,
- 0.5333333333333333,
- 0.9647058824,
- 0.2823529412,
- 0.0392156863,
- 0.5372549019607843,
- 0.9647058824,
- 0.2901960784,
- 0.0392156863,
- 0.5411764705882353,
- 0.9647058824,
- 0.2980392157,
- 0.0392156863,
- 0.5450980392156862,
- 0.9647058824,
- 0.3058823529,
- 0.0392156863,
- 0.5490196078431373,
- 0.9647058824,
- 0.3098039216,
- 0.0392156863,
- 0.5529411764705883,
- 0.9647058824,
- 0.3176470588,
- 0.0392156863,
- 0.5568627450980392,
- 0.9647058824,
- 0.3254901961,
- 0.0392156863,
- 0.5607843137254902,
- 0.9647058824,
- 0.3333333333,
- 0.0392156863,
- 0.5647058823529412,
- 0.9647058824,
- 0.337254902,
- 0.0392156863,
- 0.5686274509803921,
- 0.968627451,
- 0.3450980392,
- 0.0392156863,
- 0.5725490196078431,
- 0.968627451,
- 0.3529411765,
- 0.0352941176,
- 0.5764705882352941,
- 0.968627451,
- 0.3607843137,
- 0.0352941176,
- 0.5803921568627451,
- 0.968627451,
- 0.368627451,
- 0.0352941176,
- 0.5843137254901961,
- 0.968627451,
- 0.3725490196,
- 0.0352941176,
- 0.5882352941176471,
- 0.968627451,
- 0.3803921569,
- 0.0352941176,
- 0.592156862745098,
- 0.968627451,
- 0.3882352941,
- 0.0352941176,
- 0.596078431372549,
- 0.968627451,
- 0.3960784314,
- 0.0352941176,
- 0.6,
- 0.968627451,
- 0.4,
- 0.0352941176,
- 0.6039215686274509,
- 0.968627451,
- 0.4078431373,
- 0.0352941176,
- 0.6078431372549019,
- 0.968627451,
- 0.4156862745,
- 0.0352941176,
- 0.611764705882353,
- 0.968627451,
- 0.4235294118,
- 0.031372549,
- 0.615686274509804,
- 0.9725490196,
- 0.431372549,
- 0.031372549,
- 0.6196078431372549,
- 0.9725490196,
- 0.4352941176,
- 0.031372549,
- 0.6235294117647059,
- 0.9725490196,
- 0.4431372549,
- 0.031372549,
- 0.6274509803921569,
- 0.9725490196,
- 0.4509803922,
- 0.031372549,
- 0.6313725490196078,
- 0.9725490196,
- 0.4588235294,
- 0.031372549,
- 0.6352941176470588,
- 0.9725490196,
- 0.462745098,
- 0.031372549,
- 0.6392156862745098,
- 0.9725490196,
- 0.4705882353,
- 0.031372549,
- 0.6431372549019608,
- 0.9725490196,
- 0.4784313725,
- 0.031372549,
- 0.6470588235294118,
- 0.9725490196,
- 0.4862745098,
- 0.031372549,
- 0.6509803921568628,
- 0.9725490196,
- 0.4941176471,
- 0.0274509804,
- 0.6549019607843137,
- 0.9725490196,
- 0.4980392157,
- 0.0274509804,
- 0.6588235294117647,
- 0.9725490196,
- 0.5058823529,
- 0.0274509804,
- 0.6627450980392157,
- 0.9764705882,
- 0.5137254902,
- 0.0274509804,
- 0.6666666666666666,
- 0.9764705882,
- 0.5215686275,
- 0.0274509804,
- 0.6705882352941176,
- 0.9764705882,
- 0.5254901961,
- 0.0274509804,
- 0.6745098039215687,
- 0.9764705882,
- 0.5333333333,
- 0.0274509804,
- 0.6784313725490196,
- 0.9764705882,
- 0.5411764706,
- 0.0274509804,
- 0.6823529411764706,
- 0.9764705882,
- 0.5490196078,
- 0.0274509804,
- 0.6862745098039216,
- 0.9764705882,
- 0.5529411765,
- 0.0274509804,
- 0.6901960784313725,
- 0.9764705882,
- 0.5607843137,
- 0.0235294118,
- 0.6941176470588235,
- 0.9764705882,
- 0.568627451,
- 0.0235294118,
- 0.6980392156862745,
- 0.9764705882,
- 0.5764705882,
- 0.0235294118,
- 0.7019607843137254,
- 0.9764705882,
- 0.5843137255,
- 0.0235294118,
- 0.7058823529411765,
- 0.9764705882,
- 0.5882352941,
- 0.0235294118,
- 0.7098039215686275,
- 0.9764705882,
- 0.5960784314,
- 0.0235294118,
- 0.7137254901960784,
- 0.9803921569,
- 0.6039215686,
- 0.0235294118,
- 0.7176470588235294,
- 0.9803921569,
- 0.6117647059,
- 0.0235294118,
- 0.7215686274509804,
- 0.9803921569,
- 0.6156862745,
- 0.0235294118,
- 0.7254901960784313,
- 0.9803921569,
- 0.6235294118,
- 0.0235294118,
- 0.7294117647058823,
- 0.9803921569,
- 0.631372549,
- 0.0196078431,
- 0.7333333333333333,
- 0.9803921569,
- 0.6392156863,
- 0.0196078431,
- 0.7372549019607844,
- 0.9803921569,
- 0.6470588235,
- 0.0196078431,
- 0.7411764705882353,
- 0.9803921569,
- 0.6509803922,
- 0.0196078431,
- 0.7450980392156863,
- 0.9803921569,
- 0.6588235294,
- 0.0196078431,
- 0.7490196078431373,
- 0.9803921569,
- 0.6666666667,
- 0.0196078431,
- 0.7529411764705882,
- 0.9803921569,
- 0.6745098039,
- 0.0196078431,
- 0.7568627450980392,
- 0.9803921569,
- 0.6784313725,
- 0.0196078431,
- 0.7607843137254902,
- 0.9843137255,
- 0.6862745098,
- 0.0196078431,
- 0.7647058823529411,
- 0.9843137255,
- 0.6941176471,
- 0.0196078431,
- 0.7686274509803922,
- 0.9843137255,
- 0.7019607843,
- 0.0156862745,
- 0.7725490196078432,
- 0.9843137255,
- 0.7098039216,
- 0.0156862745,
- 0.7764705882352941,
- 0.9843137255,
- 0.7137254902,
- 0.0156862745,
- 0.7803921568627451,
- 0.9843137255,
- 0.7215686275,
- 0.0156862745,
- 0.7843137254901961,
- 0.9843137255,
- 0.7294117647,
- 0.0156862745,
- 0.788235294117647,
- 0.9843137255,
- 0.737254902,
- 0.0156862745,
- 0.792156862745098,
- 0.9843137255,
- 0.7411764706,
- 0.0156862745,
- 0.796078431372549,
- 0.9843137255,
- 0.7490196078,
- 0.0156862745,
- 0.8,
- 0.9843137255,
- 0.7529411765,
- 0.0156862745,
- 0.803921568627451,
- 0.9843137255,
- 0.7607843137,
- 0.0156862745,
- 0.807843137254902,
- 0.9882352941,
- 0.768627451,
- 0.0156862745,
- 0.8117647058823529,
- 0.9882352941,
- 0.768627451,
- 0.0156862745,
- 0.8156862745098039,
- 0.9843137255,
- 0.7843137255,
- 0.0117647059,
- 0.8196078431372549,
- 0.9843137255,
- 0.8,
- 0.0117647059,
- 0.8235294117647058,
- 0.9843137255,
- 0.8156862745,
- 0.0117647059,
- 0.8274509803921568,
- 0.9803921569,
- 0.831372549,
- 0.0117647059,
- 0.8313725490196079,
- 0.9803921569,
- 0.8431372549,
- 0.0117647059,
- 0.8352941176470589,
- 0.9803921569,
- 0.8588235294,
- 0.0078431373,
- 0.8392156862745098,
- 0.9803921569,
- 0.8745098039,
- 0.0078431373,
- 0.8431372549019608,
- 0.9764705882,
- 0.8901960784,
- 0.0078431373,
- 0.8470588235294118,
- 0.9764705882,
- 0.9058823529,
- 0.0078431373,
- 0.8509803921568627,
- 0.9764705882,
- 0.9176470588,
- 0.0078431373,
- 0.8549019607843137,
- 0.9764705882,
- 0.9333333333,
- 0.0039215686,
- 0.8588235294117647,
- 0.9725490196,
- 0.9490196078,
- 0.0039215686,
- 0.8627450980392157,
- 0.9725490196,
- 0.9647058824,
- 0.0039215686,
- 0.8666666666666667,
- 0.9725490196,
- 0.9803921569,
- 0.0039215686,
- 0.8705882352941177,
- 0.9725490196,
- 0.9960784314,
- 0.0039215686,
- 0.8745098039215686,
- 0.9725490196,
- 0.9960784314,
- 0.0039215686,
- 0.8784313725490196,
- 0.9725490196,
- 0.9960784314,
- 0.0352941176,
- 0.8823529411764706,
- 0.9725490196,
- 0.9960784314,
- 0.0666666667,
- 0.8862745098039215,
- 0.9725490196,
- 0.9960784314,
- 0.0980392157,
- 0.8901960784313725,
- 0.9725490196,
- 0.9960784314,
- 0.1294117647,
- 0.8941176470588236,
- 0.9725490196,
- 0.9960784314,
- 0.1647058824,
- 0.8980392156862745,
- 0.9764705882,
- 0.9960784314,
- 0.1960784314,
- 0.9019607843137255,
- 0.9764705882,
- 0.9960784314,
- 0.2274509804,
- 0.9058823529411765,
- 0.9764705882,
- 0.9960784314,
- 0.2549019608,
- 0.9098039215686274,
- 0.9764705882,
- 0.9960784314,
- 0.2901960784,
- 0.9137254901960784,
- 0.9764705882,
- 0.9960784314,
- 0.3215686275,
- 0.9176470588235294,
- 0.9803921569,
- 0.9960784314,
- 0.3529411765,
- 0.9215686274509803,
- 0.9803921569,
- 0.9960784314,
- 0.3843137255,
- 0.9254901960784314,
- 0.9803921569,
- 0.9960784314,
- 0.4156862745,
- 0.9294117647058824,
- 0.9803921569,
- 0.9960784314,
- 0.4509803922,
- 0.9333333333333333,
- 0.9803921569,
- 0.9960784314,
- 0.4823529412,
- 0.9372549019607843,
- 0.9843137255,
- 0.9960784314,
- 0.5137254902,
- 0.9411764705882354,
- 0.9843137255,
- 0.9960784314,
- 0.5450980392,
- 0.9450980392156864,
- 0.9843137255,
- 0.9960784314,
- 0.5803921569,
- 0.9490196078431372,
- 0.9843137255,
- 0.9960784314,
- 0.6117647059,
- 0.9529411764705882,
- 0.9843137255,
- 0.9960784314,
- 0.6431372549,
- 0.9568627450980394,
- 0.9882352941,
- 0.9960784314,
- 0.6745098039,
- 0.9607843137254903,
- 0.9882352941,
- 0.9960784314,
- 0.7058823529,
- 0.9647058823529413,
- 0.9882352941,
- 0.9960784314,
- 0.7411764706,
- 0.9686274509803922,
- 0.9882352941,
- 0.9960784314,
- 0.768627451,
- 0.9725490196078431,
- 0.9882352941,
- 0.9960784314,
- 0.8,
- 0.9764705882352941,
- 0.9921568627,
- 0.9960784314,
- 0.831372549,
- 0.9803921568627451,
- 0.9921568627,
- 0.9960784314,
- 0.8666666667,
- 0.984313725490196,
- 0.9921568627,
- 0.9960784314,
- 0.8980392157,
- 0.9882352941176471,
- 0.9921568627,
- 0.9960784314,
- 0.9294117647,
- 0.9921568627450981,
- 0.9921568627,
- 0.9960784314,
- 0.9607843137,
- 0.996078431372549,
- 0.9960784314,
- 0.9960784314,
- 0.9607843137,
- 1.0,
- 0.9960784314,
- 0.9960784314,
- 0.9607843137,
+ 0.0, 0.0078431373, 0.0039215686, 0.1254901961, 0.00392156862745098, 0.0078431373,
+ 0.0039215686, 0.1254901961, 0.00784313725490196, 0.0078431373, 0.0039215686, 0.1882352941,
+ 0.011764705882352941, 0.0117647059, 0.0039215686, 0.2509803922, 0.01568627450980392,
+ 0.0117647059, 0.0039215686, 0.3098039216, 0.0196078431372549, 0.0156862745, 0.0039215686,
+ 0.3725490196, 0.023529411764705882, 0.0156862745, 0.0039215686, 0.3725490196,
+ 0.027450980392156862, 0.0156862745, 0.0039215686, 0.3725490196, 0.03137254901960784,
+ 0.0156862745, 0.0039215686, 0.3725490196, 0.03529411764705882, 0.0156862745, 0.0039215686,
+ 0.3725490196, 0.0392156862745098, 0.0156862745, 0.0039215686, 0.3725490196,
+ 0.043137254901960784, 0.0156862745, 0.0039215686, 0.3725490196, 0.047058823529411764,
+ 0.0156862745, 0.0039215686, 0.3725490196, 0.050980392156862744, 0.0156862745, 0.0039215686,
+ 0.3725490196, 0.054901960784313725, 0.0156862745, 0.0039215686, 0.3725490196,
+ 0.05882352941176471, 0.0156862745, 0.0039215686, 0.3725490196, 0.06274509803921569,
+ 0.0156862745, 0.0039215686, 0.3882352941, 0.06666666666666667, 0.0156862745, 0.0039215686,
+ 0.4078431373, 0.07058823529411765, 0.0156862745, 0.0039215686, 0.4235294118,
+ 0.07450980392156863, 0.0156862745, 0.0039215686, 0.4431372549, 0.0784313725490196,
+ 0.0156862745, 0.0039215686, 0.462745098, 0.08235294117647059, 0.0156862745, 0.0039215686,
+ 0.4784313725, 0.08627450980392157, 0.0156862745, 0.0039215686, 0.4980392157,
+ 0.09019607843137255, 0.0196078431, 0.0039215686, 0.5137254902, 0.09411764705882353,
+ 0.0196078431, 0.0039215686, 0.5333333333, 0.09803921568627451, 0.0196078431, 0.0039215686,
+ 0.5529411765, 0.10196078431372549, 0.0196078431, 0.0039215686, 0.568627451,
+ 0.10588235294117647, 0.0196078431, 0.0039215686, 0.5882352941, 0.10980392156862745,
+ 0.0196078431, 0.0039215686, 0.6039215686, 0.11372549019607843, 0.0196078431, 0.0039215686,
+ 0.6235294118, 0.11764705882352942, 0.0196078431, 0.0039215686, 0.6431372549,
+ 0.12156862745098039, 0.0235294118, 0.0039215686, 0.6588235294, 0.12549019607843137,
+ 0.0235294118, 0.0039215686, 0.6784313725, 0.12941176470588237, 0.0235294118, 0.0039215686,
+ 0.6980392157, 0.13333333333333333, 0.0235294118, 0.0039215686, 0.7137254902,
+ 0.13725490196078433, 0.0235294118, 0.0039215686, 0.7333333333, 0.1411764705882353,
+ 0.0235294118, 0.0039215686, 0.7490196078, 0.1450980392156863, 0.0235294118, 0.0039215686,
+ 0.7647058824, 0.14901960784313725, 0.0235294118, 0.0039215686, 0.7843137255,
+ 0.15294117647058825, 0.0274509804, 0.0039215686, 0.8, 0.1568627450980392, 0.0274509804,
+ 0.0039215686, 0.8196078431, 0.1607843137254902, 0.0274509804, 0.0039215686, 0.8352941176,
+ 0.16470588235294117, 0.0274509804, 0.0039215686, 0.8549019608, 0.16862745098039217,
+ 0.0274509804, 0.0039215686, 0.8745098039, 0.17254901960784313, 0.0274509804, 0.0039215686,
+ 0.8901960784, 0.17647058823529413, 0.0274509804, 0.0039215686, 0.9098039216,
+ 0.1803921568627451, 0.031372549, 0.0039215686, 0.9294117647, 0.1843137254901961, 0.031372549,
+ 0.0039215686, 0.9254901961, 0.18823529411764706, 0.0509803922, 0.0039215686, 0.9098039216,
+ 0.19215686274509805, 0.0705882353, 0.0039215686, 0.8901960784, 0.19607843137254902,
+ 0.0901960784, 0.0039215686, 0.8705882353, 0.2, 0.1137254902, 0.0039215686, 0.8509803922,
+ 0.20392156862745098, 0.1333333333, 0.0039215686, 0.831372549, 0.20784313725490197,
+ 0.1529411765, 0.0039215686, 0.8117647059, 0.21176470588235294, 0.1725490196, 0.0039215686,
+ 0.7921568627, 0.21568627450980393, 0.1960784314, 0.0039215686, 0.7725490196,
+ 0.2196078431372549, 0.2156862745, 0.0039215686, 0.7529411765, 0.2235294117647059,
+ 0.2352941176, 0.0039215686, 0.737254902, 0.22745098039215686, 0.2509803922, 0.0039215686,
+ 0.7176470588, 0.23137254901960785, 0.2745098039, 0.0039215686, 0.6980392157,
+ 0.23529411764705885, 0.2941176471, 0.0039215686, 0.6784313725, 0.23921568627450984,
+ 0.3137254902, 0.0039215686, 0.6588235294, 0.24313725490196078, 0.3333333333, 0.0039215686,
+ 0.6392156863, 0.24705882352941178, 0.3568627451, 0.0039215686, 0.6196078431,
+ 0.25098039215686274, 0.3764705882, 0.0039215686, 0.6, 0.2549019607843137, 0.3960784314,
+ 0.0039215686, 0.5803921569, 0.25882352941176473, 0.4156862745, 0.0039215686, 0.5607843137,
+ 0.2627450980392157, 0.4392156863, 0.0039215686, 0.5411764706, 0.26666666666666666,
+ 0.4588235294, 0.0039215686, 0.5215686275, 0.27058823529411763, 0.4784313725, 0.0039215686,
+ 0.5019607843, 0.27450980392156865, 0.4980392157, 0.0039215686, 0.4823529412,
+ 0.2784313725490196, 0.5215686275, 0.0039215686, 0.4666666667, 0.2823529411764706,
+ 0.5411764706, 0.0039215686, 0.4470588235, 0.28627450980392155, 0.5607843137, 0.0039215686,
+ 0.4274509804, 0.2901960784313726, 0.5803921569, 0.0039215686, 0.4078431373,
+ 0.29411764705882354, 0.6039215686, 0.0039215686, 0.3882352941, 0.2980392156862745,
+ 0.6235294118, 0.0039215686, 0.368627451, 0.30196078431372547, 0.6431372549, 0.0039215686,
+ 0.3490196078, 0.3058823529411765, 0.662745098, 0.0039215686, 0.3294117647,
+ 0.30980392156862746, 0.6862745098, 0.0039215686, 0.3098039216, 0.3137254901960784,
+ 0.7058823529, 0.0039215686, 0.2901960784, 0.3176470588235294, 0.7254901961, 0.0039215686,
+ 0.2705882353, 0.3215686274509804, 0.7450980392, 0.0039215686, 0.2509803922,
+ 0.3254901960784314, 0.7647058824, 0.0039215686, 0.2352941176, 0.32941176470588235,
+ 0.7843137255, 0.0039215686, 0.2156862745, 0.3333333333333333, 0.8039215686, 0.0039215686,
+ 0.1960784314, 0.33725490196078434, 0.8235294118, 0.0039215686, 0.1764705882,
+ 0.3411764705882353, 0.8470588235, 0.0039215686, 0.1568627451, 0.34509803921568627,
+ 0.8666666667, 0.0039215686, 0.137254902, 0.34901960784313724, 0.8862745098, 0.0039215686,
+ 0.1176470588, 0.35294117647058826, 0.9058823529, 0.0039215686, 0.0980392157,
+ 0.3568627450980392, 0.9294117647, 0.0039215686, 0.0784313725, 0.3607843137254902,
+ 0.9490196078, 0.0039215686, 0.0588235294, 0.36470588235294116, 0.968627451, 0.0039215686,
+ 0.0392156863, 0.3686274509803922, 0.9921568627, 0.0039215686, 0.0235294118,
+ 0.37254901960784315, 0.9529411765, 0.0039215686, 0.0588235294, 0.3764705882352941,
+ 0.9529411765, 0.0078431373, 0.0549019608, 0.3803921568627451, 0.9529411765, 0.0156862745,
+ 0.0549019608, 0.3843137254901961, 0.9529411765, 0.0235294118, 0.0549019608,
+ 0.38823529411764707, 0.9529411765, 0.031372549, 0.0549019608, 0.39215686274509803,
+ 0.9529411765, 0.0352941176, 0.0549019608, 0.396078431372549, 0.9529411765, 0.0431372549,
+ 0.0549019608, 0.4, 0.9529411765, 0.0509803922, 0.0549019608, 0.403921568627451, 0.9529411765,
+ 0.0588235294, 0.0549019608, 0.40784313725490196, 0.9529411765, 0.062745098, 0.0549019608,
+ 0.4117647058823529, 0.9529411765, 0.0705882353, 0.0549019608, 0.41568627450980394,
+ 0.9529411765, 0.0784313725, 0.0509803922, 0.4196078431372549, 0.9529411765, 0.0862745098,
+ 0.0509803922, 0.4235294117647059, 0.9568627451, 0.0941176471, 0.0509803922,
+ 0.42745098039215684, 0.9568627451, 0.0980392157, 0.0509803922, 0.43137254901960786,
+ 0.9568627451, 0.1058823529, 0.0509803922, 0.43529411764705883, 0.9568627451, 0.1137254902,
+ 0.0509803922, 0.4392156862745098, 0.9568627451, 0.1215686275, 0.0509803922,
+ 0.44313725490196076, 0.9568627451, 0.1254901961, 0.0509803922, 0.4470588235294118,
+ 0.9568627451, 0.1333333333, 0.0509803922, 0.45098039215686275, 0.9568627451, 0.1411764706,
+ 0.0509803922, 0.4549019607843137, 0.9568627451, 0.1490196078, 0.0470588235,
+ 0.4588235294117647, 0.9568627451, 0.1568627451, 0.0470588235, 0.4627450980392157,
+ 0.9568627451, 0.1607843137, 0.0470588235, 0.4666666666666667, 0.9568627451, 0.168627451,
+ 0.0470588235, 0.4705882352941177, 0.9607843137, 0.1764705882, 0.0470588235,
+ 0.4745098039215686, 0.9607843137, 0.1843137255, 0.0470588235, 0.4784313725490197,
+ 0.9607843137, 0.1882352941, 0.0470588235, 0.48235294117647065, 0.9607843137, 0.1960784314,
+ 0.0470588235, 0.48627450980392156, 0.9607843137, 0.2039215686, 0.0470588235,
+ 0.49019607843137253, 0.9607843137, 0.2117647059, 0.0470588235, 0.49411764705882355,
+ 0.9607843137, 0.2196078431, 0.0431372549, 0.4980392156862745, 0.9607843137, 0.2235294118,
+ 0.0431372549, 0.5019607843137255, 0.9607843137, 0.231372549, 0.0431372549, 0.5058823529411764,
+ 0.9607843137, 0.2392156863, 0.0431372549, 0.5098039215686274, 0.9607843137, 0.2470588235,
+ 0.0431372549, 0.5137254901960784, 0.9607843137, 0.2509803922, 0.0431372549,
+ 0.5176470588235295, 0.9647058824, 0.2549019608, 0.0431372549, 0.5215686274509804,
+ 0.9647058824, 0.262745098, 0.0431372549, 0.5254901960784314, 0.9647058824, 0.2705882353,
+ 0.0431372549, 0.5294117647058824, 0.9647058824, 0.2745098039, 0.0431372549,
+ 0.5333333333333333, 0.9647058824, 0.2823529412, 0.0392156863, 0.5372549019607843,
+ 0.9647058824, 0.2901960784, 0.0392156863, 0.5411764705882353, 0.9647058824, 0.2980392157,
+ 0.0392156863, 0.5450980392156862, 0.9647058824, 0.3058823529, 0.0392156863,
+ 0.5490196078431373, 0.9647058824, 0.3098039216, 0.0392156863, 0.5529411764705883,
+ 0.9647058824, 0.3176470588, 0.0392156863, 0.5568627450980392, 0.9647058824, 0.3254901961,
+ 0.0392156863, 0.5607843137254902, 0.9647058824, 0.3333333333, 0.0392156863,
+ 0.5647058823529412, 0.9647058824, 0.337254902, 0.0392156863, 0.5686274509803921, 0.968627451,
+ 0.3450980392, 0.0392156863, 0.5725490196078431, 0.968627451, 0.3529411765, 0.0352941176,
+ 0.5764705882352941, 0.968627451, 0.3607843137, 0.0352941176, 0.5803921568627451, 0.968627451,
+ 0.368627451, 0.0352941176, 0.5843137254901961, 0.968627451, 0.3725490196, 0.0352941176,
+ 0.5882352941176471, 0.968627451, 0.3803921569, 0.0352941176, 0.592156862745098, 0.968627451,
+ 0.3882352941, 0.0352941176, 0.596078431372549, 0.968627451, 0.3960784314, 0.0352941176, 0.6,
+ 0.968627451, 0.4, 0.0352941176, 0.6039215686274509, 0.968627451, 0.4078431373, 0.0352941176,
+ 0.6078431372549019, 0.968627451, 0.4156862745, 0.0352941176, 0.611764705882353, 0.968627451,
+ 0.4235294118, 0.031372549, 0.615686274509804, 0.9725490196, 0.431372549, 0.031372549,
+ 0.6196078431372549, 0.9725490196, 0.4352941176, 0.031372549, 0.6235294117647059, 0.9725490196,
+ 0.4431372549, 0.031372549, 0.6274509803921569, 0.9725490196, 0.4509803922, 0.031372549,
+ 0.6313725490196078, 0.9725490196, 0.4588235294, 0.031372549, 0.6352941176470588, 0.9725490196,
+ 0.462745098, 0.031372549, 0.6392156862745098, 0.9725490196, 0.4705882353, 0.031372549,
+ 0.6431372549019608, 0.9725490196, 0.4784313725, 0.031372549, 0.6470588235294118, 0.9725490196,
+ 0.4862745098, 0.031372549, 0.6509803921568628, 0.9725490196, 0.4941176471, 0.0274509804,
+ 0.6549019607843137, 0.9725490196, 0.4980392157, 0.0274509804, 0.6588235294117647,
+ 0.9725490196, 0.5058823529, 0.0274509804, 0.6627450980392157, 0.9764705882, 0.5137254902,
+ 0.0274509804, 0.6666666666666666, 0.9764705882, 0.5215686275, 0.0274509804,
+ 0.6705882352941176, 0.9764705882, 0.5254901961, 0.0274509804, 0.6745098039215687,
+ 0.9764705882, 0.5333333333, 0.0274509804, 0.6784313725490196, 0.9764705882, 0.5411764706,
+ 0.0274509804, 0.6823529411764706, 0.9764705882, 0.5490196078, 0.0274509804,
+ 0.6862745098039216, 0.9764705882, 0.5529411765, 0.0274509804, 0.6901960784313725,
+ 0.9764705882, 0.5607843137, 0.0235294118, 0.6941176470588235, 0.9764705882, 0.568627451,
+ 0.0235294118, 0.6980392156862745, 0.9764705882, 0.5764705882, 0.0235294118,
+ 0.7019607843137254, 0.9764705882, 0.5843137255, 0.0235294118, 0.7058823529411765,
+ 0.9764705882, 0.5882352941, 0.0235294118, 0.7098039215686275, 0.9764705882, 0.5960784314,
+ 0.0235294118, 0.7137254901960784, 0.9803921569, 0.6039215686, 0.0235294118,
+ 0.7176470588235294, 0.9803921569, 0.6117647059, 0.0235294118, 0.7215686274509804,
+ 0.9803921569, 0.6156862745, 0.0235294118, 0.7254901960784313, 0.9803921569, 0.6235294118,
+ 0.0235294118, 0.7294117647058823, 0.9803921569, 0.631372549, 0.0196078431, 0.7333333333333333,
+ 0.9803921569, 0.6392156863, 0.0196078431, 0.7372549019607844, 0.9803921569, 0.6470588235,
+ 0.0196078431, 0.7411764705882353, 0.9803921569, 0.6509803922, 0.0196078431,
+ 0.7450980392156863, 0.9803921569, 0.6588235294, 0.0196078431, 0.7490196078431373,
+ 0.9803921569, 0.6666666667, 0.0196078431, 0.7529411764705882, 0.9803921569, 0.6745098039,
+ 0.0196078431, 0.7568627450980392, 0.9803921569, 0.6784313725, 0.0196078431,
+ 0.7607843137254902, 0.9843137255, 0.6862745098, 0.0196078431, 0.7647058823529411,
+ 0.9843137255, 0.6941176471, 0.0196078431, 0.7686274509803922, 0.9843137255, 0.7019607843,
+ 0.0156862745, 0.7725490196078432, 0.9843137255, 0.7098039216, 0.0156862745,
+ 0.7764705882352941, 0.9843137255, 0.7137254902, 0.0156862745, 0.7803921568627451,
+ 0.9843137255, 0.7215686275, 0.0156862745, 0.7843137254901961, 0.9843137255, 0.7294117647,
+ 0.0156862745, 0.788235294117647, 0.9843137255, 0.737254902, 0.0156862745, 0.792156862745098,
+ 0.9843137255, 0.7411764706, 0.0156862745, 0.796078431372549, 0.9843137255, 0.7490196078,
+ 0.0156862745, 0.8, 0.9843137255, 0.7529411765, 0.0156862745, 0.803921568627451, 0.9843137255,
+ 0.7607843137, 0.0156862745, 0.807843137254902, 0.9882352941, 0.768627451, 0.0156862745,
+ 0.8117647058823529, 0.9882352941, 0.768627451, 0.0156862745, 0.8156862745098039, 0.9843137255,
+ 0.7843137255, 0.0117647059, 0.8196078431372549, 0.9843137255, 0.8, 0.0117647059,
+ 0.8235294117647058, 0.9843137255, 0.8156862745, 0.0117647059, 0.8274509803921568,
+ 0.9803921569, 0.831372549, 0.0117647059, 0.8313725490196079, 0.9803921569, 0.8431372549,
+ 0.0117647059, 0.8352941176470589, 0.9803921569, 0.8588235294, 0.0078431373,
+ 0.8392156862745098, 0.9803921569, 0.8745098039, 0.0078431373, 0.8431372549019608,
+ 0.9764705882, 0.8901960784, 0.0078431373, 0.8470588235294118, 0.9764705882, 0.9058823529,
+ 0.0078431373, 0.8509803921568627, 0.9764705882, 0.9176470588, 0.0078431373,
+ 0.8549019607843137, 0.9764705882, 0.9333333333, 0.0039215686, 0.8588235294117647,
+ 0.9725490196, 0.9490196078, 0.0039215686, 0.8627450980392157, 0.9725490196, 0.9647058824,
+ 0.0039215686, 0.8666666666666667, 0.9725490196, 0.9803921569, 0.0039215686,
+ 0.8705882352941177, 0.9725490196, 0.9960784314, 0.0039215686, 0.8745098039215686,
+ 0.9725490196, 0.9960784314, 0.0039215686, 0.8784313725490196, 0.9725490196, 0.9960784314,
+ 0.0352941176, 0.8823529411764706, 0.9725490196, 0.9960784314, 0.0666666667,
+ 0.8862745098039215, 0.9725490196, 0.9960784314, 0.0980392157, 0.8901960784313725,
+ 0.9725490196, 0.9960784314, 0.1294117647, 0.8941176470588236, 0.9725490196, 0.9960784314,
+ 0.1647058824, 0.8980392156862745, 0.9764705882, 0.9960784314, 0.1960784314,
+ 0.9019607843137255, 0.9764705882, 0.9960784314, 0.2274509804, 0.9058823529411765,
+ 0.9764705882, 0.9960784314, 0.2549019608, 0.9098039215686274, 0.9764705882, 0.9960784314,
+ 0.2901960784, 0.9137254901960784, 0.9764705882, 0.9960784314, 0.3215686275,
+ 0.9176470588235294, 0.9803921569, 0.9960784314, 0.3529411765, 0.9215686274509803,
+ 0.9803921569, 0.9960784314, 0.3843137255, 0.9254901960784314, 0.9803921569, 0.9960784314,
+ 0.4156862745, 0.9294117647058824, 0.9803921569, 0.9960784314, 0.4509803922,
+ 0.9333333333333333, 0.9803921569, 0.9960784314, 0.4823529412, 0.9372549019607843,
+ 0.9843137255, 0.9960784314, 0.5137254902, 0.9411764705882354, 0.9843137255, 0.9960784314,
+ 0.5450980392, 0.9450980392156864, 0.9843137255, 0.9960784314, 0.5803921569,
+ 0.9490196078431372, 0.9843137255, 0.9960784314, 0.6117647059, 0.9529411764705882,
+ 0.9843137255, 0.9960784314, 0.6431372549, 0.9568627450980394, 0.9882352941, 0.9960784314,
+ 0.6745098039, 0.9607843137254903, 0.9882352941, 0.9960784314, 0.7058823529,
+ 0.9647058823529413, 0.9882352941, 0.9960784314, 0.7411764706, 0.9686274509803922,
+ 0.9882352941, 0.9960784314, 0.768627451, 0.9725490196078431, 0.9882352941, 0.9960784314, 0.8,
+ 0.9764705882352941, 0.9921568627, 0.9960784314, 0.831372549, 0.9803921568627451, 0.9921568627,
+ 0.9960784314, 0.8666666667, 0.984313725490196, 0.9921568627, 0.9960784314, 0.8980392157,
+ 0.9882352941176471, 0.9921568627, 0.9960784314, 0.9294117647, 0.9921568627450981,
+ 0.9921568627, 0.9960784314, 0.9607843137, 0.996078431372549, 0.9960784314, 0.9960784314,
+ 0.9607843137, 1.0, 0.9960784314, 0.9960784314, 0.9607843137,
],
},
];
diff --git a/extensions/tmtv/src/utils/createAndDownloadTMTVReport.js b/extensions/tmtv/src/utils/createAndDownloadTMTVReport.js
index 996ebd0f50..b367872931 100644
--- a/extensions/tmtv/src/utils/createAndDownloadTMTVReport.js
+++ b/extensions/tmtv/src/utils/createAndDownloadTMTVReport.js
@@ -1,7 +1,4 @@
-export default function createAndDownloadTMTVReport(
- segReport,
- additionalReportRows
-) {
+export default function createAndDownloadTMTVReport(segReport, additionalReportRows) {
const firstReport = segReport[Object.keys(segReport)[0]];
const columns = Object.keys(firstReport);
const csv = [columns.join(',')];
@@ -11,9 +8,7 @@ export default function createAndDownloadTMTVReport(
columns.forEach(column => {
// if it is array then we need to replace , with space to avoid csv parsing error
row.push(
- Array.isArray(segmentation[column])
- ? segmentation[column].join(' ')
- : segmentation[column]
+ Array.isArray(segmentation[column]) ? segmentation[column].join(' ') : segmentation[column]
);
});
csv.push(row.join(','));
diff --git a/extensions/tmtv/src/utils/dicomRTAnnotationExport/RTStructureSet/RTSSReport.js b/extensions/tmtv/src/utils/dicomRTAnnotationExport/RTStructureSet/RTSSReport.js
index 147b0cbf60..afcab5604a 100644
--- a/extensions/tmtv/src/utils/dicomRTAnnotationExport/RTStructureSet/RTSSReport.js
+++ b/extensions/tmtv/src/utils/dicomRTAnnotationExport/RTStructureSet/RTSSReport.js
@@ -98,15 +98,9 @@ function initializeDataset(annotations, metadataProvider) {
const rtSOPInstanceUID = DicomMetaDictionary.uid();
// get the first annotation data
- const {
- referencedImageId: imageId,
- FrameOfReferenceUID,
- } = annotations[0].metadata;
+ const { referencedImageId: imageId, FrameOfReferenceUID } = annotations[0].metadata;
- const { studyInstanceUID } = metadataProvider.get(
- 'generalSeriesModule',
- imageId
- );
+ const { studyInstanceUID } = metadataProvider.get('generalSeriesModule', imageId);
const patientModule = getPatientModule(imageId, metadataProvider);
const rtSeriesModule = getRTSeriesModule(imageId, metadataProvider);
@@ -136,23 +130,11 @@ function initializeDataset(annotations, metadataProvider) {
}
function getPatientModule(imageId, metadataProvider) {
- const generalSeriesModule = metadataProvider.get(
- 'generalSeriesModule',
- imageId
- );
- const generalStudyModule = metadataProvider.get(
- 'generalStudyModule',
- imageId
- );
- const patientStudyModule = metadataProvider.get(
- 'patientStudyModule',
- imageId
- );
+ const generalSeriesModule = metadataProvider.get('generalSeriesModule', imageId);
+ const generalStudyModule = metadataProvider.get('generalStudyModule', imageId);
+ const patientStudyModule = metadataProvider.get('patientStudyModule', imageId);
const patientModule = metadataProvider.get('patientModule', imageId);
- const patientDemographicModule = metadataProvider.get(
- 'patientDemographicModule',
- imageId
- );
+ const patientDemographicModule = metadataProvider.get('patientDemographicModule', imageId);
return {
Modality: generalSeriesModule.modality,
@@ -169,11 +151,7 @@ function getPatientModule(imageId, metadataProvider) {
};
}
-function getReferencedFrameOfReferenceSequence(
- toolData,
- metadataProvider,
- dataset
-) {
+function getReferencedFrameOfReferenceSequence(toolData, metadataProvider, dataset) {
const { referencedImageId: imageId, FrameOfReferenceUID } = toolData.metadata;
const instance = metadataProvider.get('instance', imageId);
const { SeriesInstanceUID } = instance;
@@ -190,9 +168,7 @@ function getReferencedFrameOfReferenceSequence(
RTReferencedSeriesSequence: [
{
SeriesInstanceUID,
- ContourImageSequence: [
- ...ReferencedSeriesSequence[0].ReferencedInstanceSequence,
- ],
+ ContourImageSequence: [...ReferencedSeriesSequence[0].ReferencedInstanceSequence],
},
],
},
@@ -209,10 +185,7 @@ function getReferencedSeriesSequence(toolData, index, metadataProvider) {
const ReferencedSeriesSequence = [];
if (SeriesInstanceUID) {
- const series = DicomMetadataStore.getSeries(
- StudyInstanceUID,
- SeriesInstanceUID
- );
+ const series = DicomMetadataStore.getSeries(StudyInstanceUID, SeriesInstanceUID);
const ReferencedSeries = {
SeriesInstanceUID,
diff --git a/extensions/tmtv/src/utils/dicomRTAnnotationExport/RTStructureSet/measurements/AnnotationToPointData.js b/extensions/tmtv/src/utils/dicomRTAnnotationExport/RTStructureSet/measurements/AnnotationToPointData.js
index f74fdc72ae..d1d67cebf8 100644
--- a/extensions/tmtv/src/utils/dicomRTAnnotationExport/RTStructureSet/measurements/AnnotationToPointData.js
+++ b/extensions/tmtv/src/utils/dicomRTAnnotationExport/RTStructureSet/measurements/AnnotationToPointData.js
@@ -20,18 +20,13 @@ class AnnotationToPointData {
const toolClass = AnnotationToPointData.TOOL_NAMES[toolName];
if (!toolClass) {
- throw new Error(
- `Unknown tool type: ${toolName}, cannot convert to RTSSReport`
- );
+ throw new Error(`Unknown tool type: ${toolName}, cannot convert to RTSSReport`);
}
// Each toolData should become a list of contours, ContourSequence
// contains a list of contours with their pointData, their geometry
// type and their length.
- const ContourSequence = toolClass.getContourSequence(
- annotation,
- metadataProvider
- );
+ const ContourSequence = toolClass.getContourSequence(annotation, metadataProvider);
// Todo: random rgb color for now, options should be passed in
const color = [
diff --git a/extensions/tmtv/src/utils/dicomRTAnnotationExport/RTStructureSet/measurements/RectangleROIStartEndThreshold.js b/extensions/tmtv/src/utils/dicomRTAnnotationExport/RTStructureSet/measurements/RectangleROIStartEndThreshold.js
index 803bef365d..c3b86a627a 100644
--- a/extensions/tmtv/src/utils/dicomRTAnnotationExport/RTStructureSet/measurements/RectangleROIStartEndThreshold.js
+++ b/extensions/tmtv/src/utils/dicomRTAnnotationExport/RTStructureSet/measurements/RectangleROIStartEndThreshold.js
@@ -29,12 +29,7 @@ function getPointData(points) {
// Since this is a closed contour, the order of the points is important.
// re-order the points to be in the correct order clockwise
// Spread to make sure Float32Arrays are converted to arrays
- const orderedPoints = [
- ...points[0],
- ...points[1],
- ...points[3],
- ...points[2],
- ];
+ const orderedPoints = [...points[0], ...points[1], ...points[3], ...points[2]];
const pointsArray = orderedPoints.flat();
// reduce the precision of the points to 2 decimal places
diff --git a/extensions/tmtv/src/utils/getThresholdValue.ts b/extensions/tmtv/src/utils/getThresholdValue.ts
index d11872dd0f..137b5b9a6d 100644
--- a/extensions/tmtv/src/utils/getThresholdValue.ts
+++ b/extensions/tmtv/src/utils/getThresholdValue.ts
@@ -3,10 +3,7 @@ import * as csTools from '@cornerstonejs/tools';
function getRoiStats(referencedVolume, annotations) {
// roiStats
const { imageData } = referencedVolume;
- const values = imageData
- .getPointData()
- .getScalars()
- .getData();
+ const values = imageData.getPointData().getScalars().getData();
// Todo: add support for other strategies
const { fn, baseValue } = _getStrategyFn('max');
@@ -59,9 +56,10 @@ function getThresholdValues(
};
}
-function _getStrategyFn(
- statistic
-): { fn: (a: number, b: number) => number; baseValue: number } {
+function _getStrategyFn(statistic): {
+ fn: (a: number, b: number) => number;
+ baseValue: number;
+} {
const baseValue = -Infinity;
const fn = (number, maxValue) => {
if (number > maxValue) {
diff --git a/extensions/tmtv/src/utils/hpViewports.ts b/extensions/tmtv/src/utils/hpViewports.ts
index af2b760d43..b716a9ef10 100644
--- a/extensions/tmtv/src/utils/hpViewports.ts
+++ b/extensions/tmtv/src/utils/hpViewports.ts
@@ -114,6 +114,9 @@ const ptAXIAL = {
id: 'ptFusionWLSync',
source: true,
target: false,
+ options: {
+ syncInvertState: false,
+ },
},
],
},
@@ -155,6 +158,9 @@ const ptSAGITTAL = {
id: 'ptFusionWLSync',
source: true,
target: false,
+ options: {
+ syncInvertState: false,
+ },
},
],
},
@@ -196,6 +202,9 @@ const ptCORONAL = {
id: 'ptFusionWLSync',
source: true,
target: false,
+ options: {
+ syncInvertState: false,
+ },
},
],
},
@@ -246,6 +255,9 @@ const fusionAXIAL = {
id: 'ptFusionWLSync',
source: false,
target: true,
+ options: {
+ syncInvertState: false,
+ },
},
],
},
@@ -254,16 +266,20 @@ const fusionAXIAL = {
id: 'ctDisplaySet',
},
{
+ id: 'ptDisplaySet',
options: {
colormap: {
name: 'hsv',
- opacityMapping: [{ value: 0.1, opacity: 0.9 }],
+ opacity: [
+ { value: 0, opacity: 0 },
+ { value: 0.1, opacity: 0.9 },
+ { value: 1, opacity: 0.95 },
+ ],
},
voi: {
custom: 'getPTVOIRange',
},
},
- id: 'ptDisplaySet',
},
],
};
@@ -302,6 +318,9 @@ const fusionSAGITTAL = {
id: 'ptFusionWLSync',
source: false,
target: true,
+ options: {
+ syncInvertState: false,
+ },
},
],
},
@@ -310,16 +329,20 @@ const fusionSAGITTAL = {
id: 'ctDisplaySet',
},
{
+ id: 'ptDisplaySet',
options: {
colormap: {
name: 'hsv',
- opacityMapping: [{ value: 0.1, opacity: 0.9 }],
+ opacity: [
+ { value: 0, opacity: 0 },
+ { value: 0.1, opacity: 0.9 },
+ { value: 1, opacity: 0.95 },
+ ],
},
voi: {
custom: 'getPTVOIRange',
},
},
- id: 'ptDisplaySet',
},
],
};
@@ -358,6 +381,9 @@ const fusionCORONAL = {
id: 'ptFusionWLSync',
source: false,
target: true,
+ options: {
+ syncInvertState: false,
+ },
},
],
},
@@ -366,16 +392,20 @@ const fusionCORONAL = {
id: 'ctDisplaySet',
},
{
+ id: 'ptDisplaySet',
options: {
colormap: {
name: 'hsv',
- opacityMapping: [{ value: 0.1, opacity: 0.9 }],
+ opacity: [
+ { value: 0, opacity: 0 },
+ { value: 0.1, opacity: 0.9 },
+ { value: 1, opacity: 0.95 },
+ ],
},
voi: {
custom: 'getPTVOIRange',
},
},
- id: 'ptDisplaySet',
},
],
};
@@ -399,6 +429,9 @@ const mipSAGITTAL = {
id: 'ptFusionWLSync',
source: true,
target: false,
+ options: {
+ syncInvertState: false,
+ },
},
],
diff --git a/extensions/tmtv/src/utils/measurementServiceMappings/RectangleROIStartEndThreshold.js b/extensions/tmtv/src/utils/measurementServiceMappings/RectangleROIStartEndThreshold.js
index 5d2100aff8..a6131e2ac5 100644
--- a/extensions/tmtv/src/utils/measurementServiceMappings/RectangleROIStartEndThreshold.js
+++ b/extensions/tmtv/src/utils/measurementServiceMappings/RectangleROIStartEndThreshold.js
@@ -10,11 +10,7 @@ const RectangleROIStartEndThreshold = {
* @param {Object} cornerstone Cornerstone event data
* @return {Measurement} Measurement instance
*/
- toMeasurement: (
- csToolsEventDetail,
- displaySetService,
- cornerstoneViewportService
- ) => {
+ toMeasurement: (csToolsEventDetail, displaySetService, cornerstoneViewportService) => {
const { annotation, viewportId } = csToolsEventDetail;
const { metadata, data, annotationUID } = annotation;
@@ -30,11 +26,7 @@ const RectangleROIStartEndThreshold = {
throw new Error('Tool not supported');
}
- const {
- SOPInstanceUID,
- SeriesInstanceUID,
- StudyInstanceUID,
- } = getSOPInstanceAttributes(
+ const { SOPInstanceUID, SeriesInstanceUID, StudyInstanceUID } = getSOPInstanceAttributes(
referencedImageId,
cornerstoneViewportService,
viewportId
diff --git a/jest.config.js b/jest.config.js
index 22b0ac8f1e..c19684dbde 100644
--- a/jest.config.js
+++ b/jest.config.js
@@ -13,5 +13,5 @@ module.exports = {
'/extensions/*/jest.config.js',
//'/modes/*/jest.config.js' // Enable if any mode definitions start including tests
],
- coverageDirectory: "/coverage/"
+ coverageDirectory: '/coverage/',
};
diff --git a/lerna.json b/lerna.json
index 09786c5715..b343d95db2 100644
--- a/lerna.json
+++ b/lerna.json
@@ -1,6 +1,5 @@
{
- "version": "3.6.0",
+ "version": "3.7.0-beta.85",
"packages": ["extensions/*", "platform/*", "modes/*"],
- "npmClient": "yarn",
- "useWorkspaces": true
+ "npmClient": "yarn"
}
diff --git a/modes/basic-dev-mode/.webpack/webpack.dev.js b/modes/basic-dev-mode/.webpack/webpack.dev.js
index 2bc3ced0b9..4bf848b6c5 100644
--- a/modes/basic-dev-mode/.webpack/webpack.dev.js
+++ b/modes/basic-dev-mode/.webpack/webpack.dev.js
@@ -7,7 +7,6 @@ const ENTRY = {
app: `${SRC_DIR}/index.js`,
};
-
module.exports = (env, argv) => {
return webpackCommon(env, argv, { SRC_DIR, DIST_DIR, ENTRY });
};
diff --git a/modes/basic-dev-mode/.webpack/webpack.prod.js b/modes/basic-dev-mode/.webpack/webpack.prod.js
index 7147d3b06d..26c62c7d4a 100644
--- a/modes/basic-dev-mode/.webpack/webpack.prod.js
+++ b/modes/basic-dev-mode/.webpack/webpack.prod.js
@@ -12,7 +12,6 @@ const ENTRY = {
app: `${SRC_DIR}/index.js`,
};
-
module.exports = (env, argv) => {
const commonConfig = webpackCommon(env, argv, { SRC_DIR, DIST_DIR, ENTRY });
@@ -38,13 +37,7 @@ module.exports = (env, argv) => {
libraryTarget: 'umd',
filename: pkg.main,
},
- externals: [
- /\b(vtk.js)/,
- /\b(dcmjs)/,
- /\b(gl-matrix)/,
- /^@ohif/,
- /^@cornerstonejs/,
- ],
+ externals: [/\b(vtk.js)/, /\b(dcmjs)/, /\b(gl-matrix)/, /^@ohif/, /^@cornerstonejs/],
plugins: [
new webpack.optimize.LimitChunkCountPlugin({
maxChunks: 1,
diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md
new file mode 100644
index 0000000000..5aee83658a
--- /dev/null
+++ b/modes/basic-dev-mode/CHANGELOG.md
@@ -0,0 +1,238 @@
+# Change Log
+
+All notable changes to this project will be documented in this file.
+See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+
+# [3.7.0-beta.85](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.84...v3.7.0-beta.85) (2023-09-26)
+
+**Note:** Version bump only for package @ohif/mode-basic-dev-mode
+
+
+
+
+
+# [3.7.0-beta.84](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.83...v3.7.0-beta.84) (2023-09-26)
+
+**Note:** Version bump only for package @ohif/mode-basic-dev-mode
+
+
+
+
+
+# [3.7.0-beta.83](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.82...v3.7.0-beta.83) (2023-09-26)
+
+**Note:** Version bump only for package @ohif/mode-basic-dev-mode
+
+
+
+
+
+# [3.7.0-beta.82](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.81...v3.7.0-beta.82) (2023-09-26)
+
+**Note:** Version bump only for package @ohif/mode-basic-dev-mode
+
+
+
+
+
+# [3.7.0-beta.81](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.80...v3.7.0-beta.81) (2023-09-26)
+
+**Note:** Version bump only for package @ohif/mode-basic-dev-mode
+
+
+
+
+
+# [3.7.0-beta.80](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.79...v3.7.0-beta.80) (2023-09-22)
+
+
+### Features
+
+* **segmentation mode:** Add create, and export SEG with Brushes ([#3632](https://github.com/OHIF/Viewers/issues/3632)) ([48bbd62](https://github.com/OHIF/Viewers/commit/48bbd6281a497ea68670239f5426a10ee6c56dc1))
+
+
+
+
+
+# [3.7.0-beta.79](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.78...v3.7.0-beta.79) (2023-09-22)
+
+**Note:** Version bump only for package @ohif/mode-basic-dev-mode
+
+
+
+
+
+# [3.7.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.77...v3.7.0-beta.78) (2023-09-21)
+
+**Note:** Version bump only for package @ohif/mode-basic-dev-mode
+
+
+
+
+
+# [3.7.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.76...v3.7.0-beta.77) (2023-09-21)
+
+**Note:** Version bump only for package @ohif/mode-basic-dev-mode
+
+
+
+
+
+# [3.7.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.75...v3.7.0-beta.76) (2023-09-19)
+
+**Note:** Version bump only for package @ohif/mode-basic-dev-mode
+
+
+
+
+
+# [3.7.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.74...v3.7.0-beta.75) (2023-09-18)
+
+**Note:** Version bump only for package @ohif/mode-basic-dev-mode
+
+
+
+
+
+# [3.7.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.73...v3.7.0-beta.74) (2023-09-15)
+
+**Note:** Version bump only for package @ohif/mode-basic-dev-mode
+
+
+
+
+
+# [3.7.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.72...v3.7.0-beta.73) (2023-09-12)
+
+**Note:** Version bump only for package @ohif/mode-basic-dev-mode
+
+
+
+
+
+# [3.7.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.71...v3.7.0-beta.72) (2023-09-12)
+
+**Note:** Version bump only for package @ohif/mode-basic-dev-mode
+
+
+
+
+
+# [3.7.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.70...v3.7.0-beta.71) (2023-09-12)
+
+**Note:** Version bump only for package @ohif/mode-basic-dev-mode
+
+
+
+
+
+# [3.7.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.69...v3.7.0-beta.70) (2023-09-12)
+
+**Note:** Version bump only for package @ohif/mode-basic-dev-mode
+
+
+
+
+
+# [3.7.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.68...v3.7.0-beta.69) (2023-09-11)
+
+**Note:** Version bump only for package @ohif/mode-basic-dev-mode
+
+
+
+
+
+# [3.7.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.67...v3.7.0-beta.68) (2023-09-11)
+
+**Note:** Version bump only for package @ohif/mode-basic-dev-mode
+
+
+
+
+
+# [3.7.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.66...v3.7.0-beta.67) (2023-09-06)
+
+**Note:** Version bump only for package @ohif/mode-basic-dev-mode
+
+
+
+
+
+# [3.7.0-beta.66](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.65...v3.7.0-beta.66) (2023-09-06)
+
+**Note:** Version bump only for package @ohif/mode-basic-dev-mode
+
+
+
+
+
+# [3.7.0-beta.65](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.64...v3.7.0-beta.65) (2023-09-06)
+
+
+### Features
+
+* **ImageOverlayViewerTool:** add ImageOverlayViewer tool that can render image overlay (pixel overlay) of the DICOM images ([#3163](https://github.com/OHIF/Viewers/issues/3163)) ([69115da](https://github.com/OHIF/Viewers/commit/69115da06d2d437b57e66608b435bb0bc919a90f))
+
+
+
+
+
+# [3.7.0-beta.64](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.63...v3.7.0-beta.64) (2023-09-05)
+
+**Note:** Version bump only for package @ohif/mode-basic-dev-mode
+
+
+
+
+
+# [3.7.0-beta.63](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.62...v3.7.0-beta.63) (2023-09-01)
+
+**Note:** Version bump only for package @ohif/mode-basic-dev-mode
+
+
+
+
+
+# [3.7.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.61...v3.7.0-beta.62) (2023-08-30)
+
+**Note:** Version bump only for package @ohif/mode-basic-dev-mode
+
+
+
+
+
+# [3.7.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.60...v3.7.0-beta.61) (2023-08-29)
+
+**Note:** Version bump only for package @ohif/mode-basic-dev-mode
+
+
+
+
+
+# [3.7.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.59...v3.7.0-beta.60) (2023-08-29)
+
+**Note:** Version bump only for package @ohif/mode-basic-dev-mode
+
+
+
+
+
+# [3.7.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.58...v3.7.0-beta.59) (2023-08-29)
+
+**Note:** Version bump only for package @ohif/mode-basic-dev-mode
+
+
+
+
+
+# [3.7.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.57...v3.7.0-beta.58) (2023-08-25)
+
+**Note:** Version bump only for package @ohif/mode-basic-dev-mode
+
+
+
+
+
+# [3.7.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.56...v3.7.0-beta.57) (2023-08-23)
+
+**Note:** Version bump only for package @ohif/mode-basic-dev-mode
diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json
index 6c6b1504c2..ef62f3e7ae 100644
--- a/modes/basic-dev-mode/package.json
+++ b/modes/basic-dev-mode/package.json
@@ -1,6 +1,6 @@
{
"name": "@ohif/mode-basic-dev-mode",
- "version": "3.6.0",
+ "version": "3.7.0-beta.85",
"description": "Basic OHIF Viewer Using Cornerstone",
"author": "OHIF",
"license": "MIT",
@@ -29,12 +29,12 @@
"test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests"
},
"peerDependencies": {
- "@ohif/core": "3.6.0",
- "@ohif/extension-cornerstone": "3.6.0",
- "@ohif/extension-cornerstone-dicom-sr": "3.6.0",
- "@ohif/extension-default": "3.6.0",
- "@ohif/extension-dicom-pdf": "3.6.0",
- "@ohif/extension-dicom-video": "3.6.0"
+ "@ohif/core": "3.7.0-beta.85",
+ "@ohif/extension-cornerstone": "3.7.0-beta.85",
+ "@ohif/extension-cornerstone-dicom-sr": "3.7.0-beta.85",
+ "@ohif/extension-default": "3.7.0-beta.85",
+ "@ohif/extension-dicom-pdf": "3.7.0-beta.85",
+ "@ohif/extension-dicom-video": "3.7.0-beta.85"
},
"dependencies": {
"@babel/runtime": "^7.20.13"
diff --git a/modes/basic-dev-mode/src/index.js b/modes/basic-dev-mode/src/index.js
index 0f769854ec..411409e1f4 100644
--- a/modes/basic-dev-mode/src/index.js
+++ b/modes/basic-dev-mode/src/index.js
@@ -19,14 +19,12 @@ const cs3d = {
};
const dicomsr = {
- sopClassHandler:
- '@ohif/extension-cornerstone-dicom-sr.sopClassHandlerModule.dicom-sr',
+ sopClassHandler: '@ohif/extension-cornerstone-dicom-sr.sopClassHandlerModule.dicom-sr',
viewport: '@ohif/extension-cornerstone-dicom-sr.viewportModule.dicom-sr',
};
const dicomvideo = {
- sopClassHandler:
- '@ohif/extension-dicom-video.sopClassHandlerModule.dicom-video',
+ sopClassHandler: '@ohif/extension-dicom-video.sopClassHandlerModule.dicom-video',
viewport: '@ohif/extension-dicom-video.viewportModule.dicom-video',
};
@@ -86,18 +84,18 @@ function modeFactory({ modeConfiguration }) {
{ toolName: toolNames.CalibrationLine },
],
// enabled
+ enabled: [{ toolName: toolNames.ImageOverlayViewer }],
// disabled
};
const toolGroupId = 'default';
- toolGroupService.createToolGroupAndAddTools(toolGroupId, tools, configs);
+ toolGroupService.createToolGroupAndAddTools(toolGroupId, tools);
let unsubscribe;
const activateTool = () => {
toolbarService.recordInteraction({
groupId: 'WindowLevel',
- itemId: 'WindowLevel',
interactionType: 'tool',
commands: [
{
@@ -134,11 +132,7 @@ function modeFactory({ modeConfiguration }) {
]);
},
onModeExit: ({ servicesManager }) => {
- const {
- toolGroupService,
- measurementService,
- toolbarService,
- } = servicesManager.services;
+ const { toolGroupService, measurementService, toolbarService } = servicesManager.services;
toolGroupService.destroy();
},
diff --git a/modes/basic-test-mode/.webpack/webpack.dev.js b/modes/basic-test-mode/.webpack/webpack.dev.js
index 2bc3ced0b9..4bf848b6c5 100644
--- a/modes/basic-test-mode/.webpack/webpack.dev.js
+++ b/modes/basic-test-mode/.webpack/webpack.dev.js
@@ -7,7 +7,6 @@ const ENTRY = {
app: `${SRC_DIR}/index.js`,
};
-
module.exports = (env, argv) => {
return webpackCommon(env, argv, { SRC_DIR, DIST_DIR, ENTRY });
};
diff --git a/modes/basic-test-mode/.webpack/webpack.prod.js b/modes/basic-test-mode/.webpack/webpack.prod.js
index 677f478813..25e5a75dd2 100644
--- a/modes/basic-test-mode/.webpack/webpack.prod.js
+++ b/modes/basic-test-mode/.webpack/webpack.prod.js
@@ -40,13 +40,7 @@ module.exports = (env, argv) => {
libraryExport: 'default',
filename: pkg.main,
},
- externals: [
- /\b(vtk.js)/,
- /\b(dcmjs)/,
- /\b(gl-matrix)/,
- /^@ohif/,
- /^@cornerstonejs/,
- ],
+ externals: [/\b(vtk.js)/, /\b(dcmjs)/, /\b(gl-matrix)/, /^@ohif/, /^@cornerstonejs/],
plugins: [
new webpack.optimize.LimitChunkCountPlugin({
maxChunks: 1,
diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md
new file mode 100644
index 0000000000..b18342f042
--- /dev/null
+++ b/modes/basic-test-mode/CHANGELOG.md
@@ -0,0 +1,235 @@
+# Change Log
+
+All notable changes to this project will be documented in this file.
+See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+
+# [3.7.0-beta.85](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.84...v3.7.0-beta.85) (2023-09-26)
+
+**Note:** Version bump only for package @ohif/mode-test
+
+
+
+
+
+# [3.7.0-beta.84](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.83...v3.7.0-beta.84) (2023-09-26)
+
+**Note:** Version bump only for package @ohif/mode-test
+
+
+
+
+
+# [3.7.0-beta.83](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.82...v3.7.0-beta.83) (2023-09-26)
+
+**Note:** Version bump only for package @ohif/mode-test
+
+
+
+
+
+# [3.7.0-beta.82](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.81...v3.7.0-beta.82) (2023-09-26)
+
+**Note:** Version bump only for package @ohif/mode-test
+
+
+
+
+
+# [3.7.0-beta.81](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.80...v3.7.0-beta.81) (2023-09-26)
+
+**Note:** Version bump only for package @ohif/mode-test
+
+
+
+
+
+# [3.7.0-beta.80](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.79...v3.7.0-beta.80) (2023-09-22)
+
+
+### Features
+
+* **segmentation mode:** Add create, and export SEG with Brushes ([#3632](https://github.com/OHIF/Viewers/issues/3632)) ([48bbd62](https://github.com/OHIF/Viewers/commit/48bbd6281a497ea68670239f5426a10ee6c56dc1))
+
+
+
+
+
+# [3.7.0-beta.79](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.78...v3.7.0-beta.79) (2023-09-22)
+
+**Note:** Version bump only for package @ohif/mode-test
+
+
+
+
+
+# [3.7.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.77...v3.7.0-beta.78) (2023-09-21)
+
+**Note:** Version bump only for package @ohif/mode-test
+
+
+
+
+
+# [3.7.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.76...v3.7.0-beta.77) (2023-09-21)
+
+**Note:** Version bump only for package @ohif/mode-test
+
+
+
+
+
+# [3.7.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.75...v3.7.0-beta.76) (2023-09-19)
+
+**Note:** Version bump only for package @ohif/mode-test
+
+
+
+
+
+# [3.7.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.74...v3.7.0-beta.75) (2023-09-18)
+
+**Note:** Version bump only for package @ohif/mode-test
+
+
+
+
+
+# [3.7.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.73...v3.7.0-beta.74) (2023-09-15)
+
+**Note:** Version bump only for package @ohif/mode-test
+
+
+
+
+
+# [3.7.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.72...v3.7.0-beta.73) (2023-09-12)
+
+**Note:** Version bump only for package @ohif/mode-test
+
+
+
+
+
+# [3.7.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.71...v3.7.0-beta.72) (2023-09-12)
+
+**Note:** Version bump only for package @ohif/mode-test
+
+
+
+
+
+# [3.7.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.70...v3.7.0-beta.71) (2023-09-12)
+
+**Note:** Version bump only for package @ohif/mode-test
+
+
+
+
+
+# [3.7.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.69...v3.7.0-beta.70) (2023-09-12)
+
+**Note:** Version bump only for package @ohif/mode-test
+
+
+
+
+
+# [3.7.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.68...v3.7.0-beta.69) (2023-09-11)
+
+**Note:** Version bump only for package @ohif/mode-test
+
+
+
+
+
+# [3.7.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.67...v3.7.0-beta.68) (2023-09-11)
+
+**Note:** Version bump only for package @ohif/mode-test
+
+
+
+
+
+# [3.7.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.66...v3.7.0-beta.67) (2023-09-06)
+
+**Note:** Version bump only for package @ohif/mode-test
+
+
+
+
+
+# [3.7.0-beta.66](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.65...v3.7.0-beta.66) (2023-09-06)
+
+**Note:** Version bump only for package @ohif/mode-test
+
+
+
+
+
+# [3.7.0-beta.65](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.64...v3.7.0-beta.65) (2023-09-06)
+
+**Note:** Version bump only for package @ohif/mode-test
+
+
+
+
+
+# [3.7.0-beta.64](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.63...v3.7.0-beta.64) (2023-09-05)
+
+**Note:** Version bump only for package @ohif/mode-test
+
+
+
+
+
+# [3.7.0-beta.63](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.62...v3.7.0-beta.63) (2023-09-01)
+
+**Note:** Version bump only for package @ohif/mode-test
+
+
+
+
+
+# [3.7.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.61...v3.7.0-beta.62) (2023-08-30)
+
+**Note:** Version bump only for package @ohif/mode-test
+
+
+
+
+
+# [3.7.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.60...v3.7.0-beta.61) (2023-08-29)
+
+**Note:** Version bump only for package @ohif/mode-test
+
+
+
+
+
+# [3.7.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.59...v3.7.0-beta.60) (2023-08-29)
+
+**Note:** Version bump only for package @ohif/mode-test
+
+
+
+
+
+# [3.7.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.58...v3.7.0-beta.59) (2023-08-29)
+
+**Note:** Version bump only for package @ohif/mode-test
+
+
+
+
+
+# [3.7.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.57...v3.7.0-beta.58) (2023-08-25)
+
+**Note:** Version bump only for package @ohif/mode-test
+
+
+
+
+
+# [3.7.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.56...v3.7.0-beta.57) (2023-08-23)
+
+**Note:** Version bump only for package @ohif/mode-test
diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json
index c832649cfd..008bfee2cb 100644
--- a/modes/basic-test-mode/package.json
+++ b/modes/basic-test-mode/package.json
@@ -1,6 +1,6 @@
{
"name": "@ohif/mode-test",
- "version": "3.6.0",
+ "version": "3.7.0-beta.85",
"description": "Basic mode for testing",
"author": "OHIF",
"license": "MIT",
@@ -32,14 +32,14 @@
"test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests"
},
"peerDependencies": {
- "@ohif/core": "3.6.0",
- "@ohif/extension-cornerstone": "3.6.0",
- "@ohif/extension-cornerstone-dicom-sr": "3.6.0",
- "@ohif/extension-default": "3.6.0",
- "@ohif/extension-dicom-pdf": "3.6.0",
- "@ohif/extension-dicom-video": "3.6.0",
- "@ohif/extension-measurement-tracking": "3.6.0",
- "@ohif/extension-test": "3.6.0"
+ "@ohif/core": "3.7.0-beta.85",
+ "@ohif/extension-cornerstone": "3.7.0-beta.85",
+ "@ohif/extension-cornerstone-dicom-sr": "3.7.0-beta.85",
+ "@ohif/extension-default": "3.7.0-beta.85",
+ "@ohif/extension-dicom-pdf": "3.7.0-beta.85",
+ "@ohif/extension-dicom-video": "3.7.0-beta.85",
+ "@ohif/extension-measurement-tracking": "3.7.0-beta.85",
+ "@ohif/extension-test": "3.7.0-beta.85"
},
"dependencies": {
"@babel/runtime": "^7.20.13"
diff --git a/modes/basic-test-mode/src/index.js b/modes/basic-test-mode/src/index.js
index d465b7e099..ab68c94699 100644
--- a/modes/basic-test-mode/src/index.js
+++ b/modes/basic-test-mode/src/index.js
@@ -14,22 +14,18 @@ const ohif = {
};
const tracked = {
- measurements:
- '@ohif/extension-measurement-tracking.panelModule.trackedMeasurements',
+ measurements: '@ohif/extension-measurement-tracking.panelModule.trackedMeasurements',
thumbnailList: '@ohif/extension-measurement-tracking.panelModule.seriesList',
- viewport:
- '@ohif/extension-measurement-tracking.viewportModule.cornerstone-tracked',
+ viewport: '@ohif/extension-measurement-tracking.viewportModule.cornerstone-tracked',
};
const dicomsr = {
- sopClassHandler:
- '@ohif/extension-cornerstone-dicom-sr.sopClassHandlerModule.dicom-sr',
+ sopClassHandler: '@ohif/extension-cornerstone-dicom-sr.sopClassHandlerModule.dicom-sr',
viewport: '@ohif/extension-cornerstone-dicom-sr.viewportModule.dicom-sr',
};
const dicomvideo = {
- sopClassHandler:
- '@ohif/extension-dicom-video.sopClassHandlerModule.dicom-video',
+ sopClassHandler: '@ohif/extension-dicom-video.sopClassHandlerModule.dicom-video',
viewport: '@ohif/extension-dicom-video.viewportModule.dicom-video',
};
@@ -39,8 +35,7 @@ const dicompdf = {
};
const dicomSeg = {
- sopClassHandler:
- '@ohif/extension-cornerstone-dicom-seg.sopClassHandlerModule.dicom-seg',
+ sopClassHandler: '@ohif/extension-cornerstone-dicom-seg.sopClassHandlerModule.dicom-seg',
viewport: '@ohif/extension-cornerstone-dicom-seg.viewportModule.dicom-seg',
panel: '@ohif/extension-cornerstone-dicom-seg.panelModule.panelSegmentation',
};
@@ -68,12 +63,8 @@ function modeFactory() {
* Lifecycle hooks
*/
onModeEnter: ({ servicesManager, extensionManager, commandsManager }) => {
- const {
- measurementService,
- toolbarService,
- toolGroupService,
- customizationService,
- } = servicesManager.services;
+ const { measurementService, toolbarService, toolGroupService, customizationService } =
+ servicesManager.services;
measurementService.clearMeasurements();
@@ -90,7 +81,6 @@ function modeFactory() {
const activateTool = () => {
toolbarService.recordInteraction({
groupId: 'WindowLevel',
- itemId: 'WindowLevel',
interactionType: 'tool',
commands: [
{
@@ -147,13 +137,12 @@ function modeFactory() {
series: [],
},
- isValidMode: function({ modalities }) {
+ isValidMode: function ({ modalities }) {
const modalities_list = modalities.split('\\');
// Exclude non-image modalities
- return !!modalities_list.filter(
- modality => NON_IMAGE_MODALITIES.indexOf(modality) === -1
- ).length;
+ return !!modalities_list.filter(modality => NON_IMAGE_MODALITIES.indexOf(modality) === -1)
+ .length;
},
routes: [
{
diff --git a/modes/basic-test-mode/src/initToolGroups.js b/modes/basic-test-mode/src/initToolGroups.js
index ccc5c1a6df..3110f24f88 100644
--- a/modes/basic-test-mode/src/initToolGroups.js
+++ b/modes/basic-test-mode/src/initToolGroups.js
@@ -1,9 +1,4 @@
-function initDefaultToolGroup(
- extensionManager,
- toolGroupService,
- commandsManager,
- toolGroupId
-) {
+function initDefaultToolGroup(extensionManager, toolGroupService, commandsManager, toolGroupId) {
const utilityModule = extensionManager.getModuleEntry(
'@ohif/extension-cornerstone.utilityModule.tools'
);
@@ -28,7 +23,23 @@ function initDefaultToolGroup(
],
passive: [
{ toolName: toolNames.Length },
- { toolName: toolNames.ArrowAnnotate },
+ {
+ toolName: toolNames.ArrowAnnotate,
+ configuration: {
+ getTextCallback: (callback, eventDetails) =>
+ commandsManager.runCommand('arrowTextCallback', {
+ callback,
+ eventDetails,
+ }),
+
+ changeTextCallback: (data, eventDetails, callback) =>
+ commandsManager.runCommand('arrowTextCallback', {
+ callback,
+ data,
+ eventDetails,
+ }),
+ },
+ },
{ toolName: toolNames.Bidirectional },
{ toolName: toolNames.DragProbe },
{ toolName: toolNames.EllipticalROI },
@@ -44,24 +55,7 @@ function initDefaultToolGroup(
disabled: [{ toolName: toolNames.ReferenceLines }],
};
- const toolsConfig = {
- [toolNames.ArrowAnnotate]: {
- getTextCallback: (callback, eventDetails) =>
- commandsManager.runCommand('arrowTextCallback', {
- callback,
- eventDetails,
- }),
-
- changeTextCallback: (data, eventDetails, callback) =>
- commandsManager.runCommand('arrowTextCallback', {
- callback,
- data,
- eventDetails,
- }),
- },
- };
-
- toolGroupService.createToolGroupAndAddTools(toolGroupId, tools, toolsConfig);
+ toolGroupService.createToolGroupAndAddTools(toolGroupId, tools);
}
function initSRToolGroup(extensionManager, toolGroupService, commandsManager) {
@@ -122,25 +116,8 @@ function initSRToolGroup(extensionManager, toolGroupService, commandsManager) {
// disabled
};
- const toolsConfig = {
- [toolNames.ArrowAnnotate]: {
- getTextCallback: (callback, eventDetails) =>
- commandsManager.runCommand('arrowTextCallback', {
- callback,
- eventDetails,
- }),
-
- changeTextCallback: (data, eventDetails, callback) =>
- commandsManager.runCommand('arrowTextCallback', {
- callback,
- data,
- eventDetails,
- }),
- },
- };
-
const toolGroupId = 'SRToolGroup';
- toolGroupService.createToolGroupAndAddTools(toolGroupId, tools, toolsConfig);
+ toolGroupService.createToolGroupAndAddTools(toolGroupId, tools);
}
function initMPRToolGroup(extensionManager, toolGroupService, commandsManager) {
@@ -168,7 +145,23 @@ function initMPRToolGroup(extensionManager, toolGroupService, commandsManager) {
],
passive: [
{ toolName: toolNames.Length },
- { toolName: toolNames.ArrowAnnotate },
+ {
+ toolName: toolNames.ArrowAnnotate,
+ configuration: {
+ getTextCallback: (callback, eventDetails) =>
+ commandsManager.runCommand('arrowTextCallback', {
+ callback,
+ eventDetails,
+ }),
+
+ changeTextCallback: (data, eventDetails, callback) =>
+ commandsManager.runCommand('arrowTextCallback', {
+ callback,
+ data,
+ eventDetails,
+ }),
+ },
+ },
{ toolName: toolNames.Bidirectional },
{ toolName: toolNames.DragProbe },
{ toolName: toolNames.EllipticalROI },
@@ -179,7 +172,16 @@ function initMPRToolGroup(extensionManager, toolGroupService, commandsManager) {
{ toolName: toolNames.SegmentationDisplay },
],
disabled: [
- { toolName: toolNames.Crosshairs },
+ {
+ toolName: toolNames.Crosshairs,
+ configuration: {
+ viewportIndicators: false,
+ autoPan: {
+ enabled: false,
+ panSize: 10,
+ },
+ },
+ },
{ toolName: toolNames.ReferenceLines },
],
@@ -187,40 +189,11 @@ function initMPRToolGroup(extensionManager, toolGroupService, commandsManager) {
// disabled
};
- const toolsConfig = {
- [toolNames.Crosshairs]: {
- viewportIndicators: false,
- autoPan: {
- enabled: false,
- panSize: 10,
- },
- },
- [toolNames.ArrowAnnotate]: {
- getTextCallback: (callback, eventDetails) =>
- commandsManager.runCommand('arrowTextCallback', {
- callback,
- eventDetails,
- }),
-
- changeTextCallback: (data, eventDetails, callback) =>
- commandsManager.runCommand('arrowTextCallback', {
- callback,
- data,
- eventDetails,
- }),
- },
- };
-
- toolGroupService.createToolGroupAndAddTools('mpr', tools, toolsConfig);
+ toolGroupService.createToolGroupAndAddTools('mpr', tools);
}
function initToolGroups(extensionManager, toolGroupService, commandsManager) {
- initDefaultToolGroup(
- extensionManager,
- toolGroupService,
- commandsManager,
- 'default'
- );
+ initDefaultToolGroup(extensionManager, toolGroupService, commandsManager, 'default');
initSRToolGroup(extensionManager, toolGroupService, commandsManager);
initMPRToolGroup(extensionManager, toolGroupService, commandsManager);
}
diff --git a/modes/longitudinal/.webpack/webpack.dev.js b/modes/longitudinal/.webpack/webpack.dev.js
index 2bc3ced0b9..4bf848b6c5 100644
--- a/modes/longitudinal/.webpack/webpack.dev.js
+++ b/modes/longitudinal/.webpack/webpack.dev.js
@@ -7,7 +7,6 @@ const ENTRY = {
app: `${SRC_DIR}/index.js`,
};
-
module.exports = (env, argv) => {
return webpackCommon(env, argv, { SRC_DIR, DIST_DIR, ENTRY });
};
diff --git a/modes/longitudinal/.webpack/webpack.prod.js b/modes/longitudinal/.webpack/webpack.prod.js
index 98ab53e924..6b84361f24 100644
--- a/modes/longitudinal/.webpack/webpack.prod.js
+++ b/modes/longitudinal/.webpack/webpack.prod.js
@@ -39,13 +39,7 @@ module.exports = (env, argv) => {
libraryExport: 'default',
filename: pkg.main,
},
- externals: [
- /\b(vtk.js)/,
- /\b(dcmjs)/,
- /\b(gl-matrix)/,
- /^@ohif/,
- /^@cornerstonejs/,
- ],
+ externals: [/\b(vtk.js)/, /\b(dcmjs)/, /\b(gl-matrix)/, /^@ohif/, /^@cornerstonejs/],
plugins: [
new webpack.optimize.LimitChunkCountPlugin({
maxChunks: 1,
diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md
new file mode 100644
index 0000000000..304c05e44c
--- /dev/null
+++ b/modes/longitudinal/CHANGELOG.md
@@ -0,0 +1,238 @@
+# Change Log
+
+All notable changes to this project will be documented in this file.
+See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+
+# [3.7.0-beta.85](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.84...v3.7.0-beta.85) (2023-09-26)
+
+**Note:** Version bump only for package @ohif/mode-longitudinal
+
+
+
+
+
+# [3.7.0-beta.84](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.83...v3.7.0-beta.84) (2023-09-26)
+
+**Note:** Version bump only for package @ohif/mode-longitudinal
+
+
+
+
+
+# [3.7.0-beta.83](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.82...v3.7.0-beta.83) (2023-09-26)
+
+**Note:** Version bump only for package @ohif/mode-longitudinal
+
+
+
+
+
+# [3.7.0-beta.82](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.81...v3.7.0-beta.82) (2023-09-26)
+
+**Note:** Version bump only for package @ohif/mode-longitudinal
+
+
+
+
+
+# [3.7.0-beta.81](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.80...v3.7.0-beta.81) (2023-09-26)
+
+**Note:** Version bump only for package @ohif/mode-longitudinal
+
+
+
+
+
+# [3.7.0-beta.80](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.79...v3.7.0-beta.80) (2023-09-22)
+
+
+### Features
+
+* **segmentation mode:** Add create, and export SEG with Brushes ([#3632](https://github.com/OHIF/Viewers/issues/3632)) ([48bbd62](https://github.com/OHIF/Viewers/commit/48bbd6281a497ea68670239f5426a10ee6c56dc1))
+
+
+
+
+
+# [3.7.0-beta.79](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.78...v3.7.0-beta.79) (2023-09-22)
+
+**Note:** Version bump only for package @ohif/mode-longitudinal
+
+
+
+
+
+# [3.7.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.77...v3.7.0-beta.78) (2023-09-21)
+
+**Note:** Version bump only for package @ohif/mode-longitudinal
+
+
+
+
+
+# [3.7.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.76...v3.7.0-beta.77) (2023-09-21)
+
+**Note:** Version bump only for package @ohif/mode-longitudinal
+
+
+
+
+
+# [3.7.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.75...v3.7.0-beta.76) (2023-09-19)
+
+**Note:** Version bump only for package @ohif/mode-longitudinal
+
+
+
+
+
+# [3.7.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.74...v3.7.0-beta.75) (2023-09-18)
+
+**Note:** Version bump only for package @ohif/mode-longitudinal
+
+
+
+
+
+# [3.7.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.73...v3.7.0-beta.74) (2023-09-15)
+
+**Note:** Version bump only for package @ohif/mode-longitudinal
+
+
+
+
+
+# [3.7.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.72...v3.7.0-beta.73) (2023-09-12)
+
+**Note:** Version bump only for package @ohif/mode-longitudinal
+
+
+
+
+
+# [3.7.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.71...v3.7.0-beta.72) (2023-09-12)
+
+**Note:** Version bump only for package @ohif/mode-longitudinal
+
+
+
+
+
+# [3.7.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.70...v3.7.0-beta.71) (2023-09-12)
+
+**Note:** Version bump only for package @ohif/mode-longitudinal
+
+
+
+
+
+# [3.7.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.69...v3.7.0-beta.70) (2023-09-12)
+
+**Note:** Version bump only for package @ohif/mode-longitudinal
+
+
+
+
+
+# [3.7.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.68...v3.7.0-beta.69) (2023-09-11)
+
+**Note:** Version bump only for package @ohif/mode-longitudinal
+
+
+
+
+
+# [3.7.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.67...v3.7.0-beta.68) (2023-09-11)
+
+**Note:** Version bump only for package @ohif/mode-longitudinal
+
+
+
+
+
+# [3.7.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.66...v3.7.0-beta.67) (2023-09-06)
+
+**Note:** Version bump only for package @ohif/mode-longitudinal
+
+
+
+
+
+# [3.7.0-beta.66](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.65...v3.7.0-beta.66) (2023-09-06)
+
+**Note:** Version bump only for package @ohif/mode-longitudinal
+
+
+
+
+
+# [3.7.0-beta.65](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.64...v3.7.0-beta.65) (2023-09-06)
+
+
+### Features
+
+* **ImageOverlayViewerTool:** add ImageOverlayViewer tool that can render image overlay (pixel overlay) of the DICOM images ([#3163](https://github.com/OHIF/Viewers/issues/3163)) ([69115da](https://github.com/OHIF/Viewers/commit/69115da06d2d437b57e66608b435bb0bc919a90f))
+
+
+
+
+
+# [3.7.0-beta.64](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.63...v3.7.0-beta.64) (2023-09-05)
+
+**Note:** Version bump only for package @ohif/mode-longitudinal
+
+
+
+
+
+# [3.7.0-beta.63](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.62...v3.7.0-beta.63) (2023-09-01)
+
+**Note:** Version bump only for package @ohif/mode-longitudinal
+
+
+
+
+
+# [3.7.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.61...v3.7.0-beta.62) (2023-08-30)
+
+**Note:** Version bump only for package @ohif/mode-longitudinal
+
+
+
+
+
+# [3.7.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.60...v3.7.0-beta.61) (2023-08-29)
+
+**Note:** Version bump only for package @ohif/mode-longitudinal
+
+
+
+
+
+# [3.7.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.59...v3.7.0-beta.60) (2023-08-29)
+
+**Note:** Version bump only for package @ohif/mode-longitudinal
+
+
+
+
+
+# [3.7.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.58...v3.7.0-beta.59) (2023-08-29)
+
+**Note:** Version bump only for package @ohif/mode-longitudinal
+
+
+
+
+
+# [3.7.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.57...v3.7.0-beta.58) (2023-08-25)
+
+**Note:** Version bump only for package @ohif/mode-longitudinal
+
+
+
+
+
+# [3.7.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.56...v3.7.0-beta.57) (2023-08-23)
+
+**Note:** Version bump only for package @ohif/mode-longitudinal
diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json
index ca4c55779b..8c481a9e20 100644
--- a/modes/longitudinal/package.json
+++ b/modes/longitudinal/package.json
@@ -1,6 +1,6 @@
{
"name": "@ohif/mode-longitudinal",
- "version": "3.6.0",
+ "version": "3.7.0-beta.85",
"description": "Longitudinal Workflow",
"author": "OHIF",
"license": "MIT",
@@ -32,15 +32,15 @@
"test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests"
},
"peerDependencies": {
- "@ohif/core": "3.6.0",
- "@ohif/extension-cornerstone": "3.6.0",
- "@ohif/extension-cornerstone-dicom-rt": "3.6.0",
- "@ohif/extension-cornerstone-dicom-seg": "3.6.0",
- "@ohif/extension-cornerstone-dicom-sr": "3.6.0",
- "@ohif/extension-default": "3.6.0",
- "@ohif/extension-dicom-pdf": "3.6.0",
- "@ohif/extension-dicom-video": "3.6.0",
- "@ohif/extension-measurement-tracking": "3.6.0"
+ "@ohif/core": "3.7.0-beta.85",
+ "@ohif/extension-cornerstone": "3.7.0-beta.85",
+ "@ohif/extension-cornerstone-dicom-rt": "3.7.0-beta.85",
+ "@ohif/extension-cornerstone-dicom-seg": "3.7.0-beta.85",
+ "@ohif/extension-cornerstone-dicom-sr": "3.7.0-beta.85",
+ "@ohif/extension-default": "3.7.0-beta.85",
+ "@ohif/extension-dicom-pdf": "3.7.0-beta.85",
+ "@ohif/extension-dicom-video": "3.7.0-beta.85",
+ "@ohif/extension-measurement-tracking": "3.7.0-beta.85"
},
"dependencies": {
"@babel/runtime": "^7.20.13"
diff --git a/modes/longitudinal/src/index.js b/modes/longitudinal/src/index.js
index 0c3e3d4d42..288d0787c0 100644
--- a/modes/longitudinal/src/index.js
+++ b/modes/longitudinal/src/index.js
@@ -14,22 +14,18 @@ const ohif = {
};
const tracked = {
- measurements:
- '@ohif/extension-measurement-tracking.panelModule.trackedMeasurements',
+ measurements: '@ohif/extension-measurement-tracking.panelModule.trackedMeasurements',
thumbnailList: '@ohif/extension-measurement-tracking.panelModule.seriesList',
- viewport:
- '@ohif/extension-measurement-tracking.viewportModule.cornerstone-tracked',
+ viewport: '@ohif/extension-measurement-tracking.viewportModule.cornerstone-tracked',
};
const dicomsr = {
- sopClassHandler:
- '@ohif/extension-cornerstone-dicom-sr.sopClassHandlerModule.dicom-sr',
+ sopClassHandler: '@ohif/extension-cornerstone-dicom-sr.sopClassHandlerModule.dicom-sr',
viewport: '@ohif/extension-cornerstone-dicom-sr.viewportModule.dicom-sr',
};
const dicomvideo = {
- sopClassHandler:
- '@ohif/extension-dicom-video.sopClassHandlerModule.dicom-video',
+ sopClassHandler: '@ohif/extension-dicom-video.sopClassHandlerModule.dicom-video',
viewport: '@ohif/extension-dicom-video.viewportModule.dicom-video',
};
@@ -39,16 +35,14 @@ const dicompdf = {
};
const dicomSeg = {
- sopClassHandler:
- '@ohif/extension-cornerstone-dicom-seg.sopClassHandlerModule.dicom-seg',
+ sopClassHandler: '@ohif/extension-cornerstone-dicom-seg.sopClassHandlerModule.dicom-seg',
viewport: '@ohif/extension-cornerstone-dicom-seg.viewportModule.dicom-seg',
panel: '@ohif/extension-cornerstone-dicom-seg.panelModule.panelSegmentation',
};
const dicomRt = {
viewport: '@ohif/extension-cornerstone-dicom-rt.viewportModule.dicom-rt',
- sopClassHandler:
- '@ohif/extension-cornerstone-dicom-rt.sopClassHandlerModule.dicom-rt',
+ sopClassHandler: '@ohif/extension-cornerstone-dicom-rt.sopClassHandlerModule.dicom-rt',
};
const extensionDependencies = {
@@ -63,7 +57,7 @@ const extensionDependencies = {
'@ohif/extension-dicom-video': '^3.0.1',
};
-function modeFactory() {
+function modeFactory({ modeConfiguration }) {
let _activatePanelTriggersSubscriptions = [];
return {
// TODO: We're using this as a route segment
@@ -80,7 +74,7 @@ function modeFactory() {
toolbarService,
toolGroupService,
panelService,
- segmentationService,
+ customizationService,
} = servicesManager.services;
measurementService.clearMeasurements();
@@ -93,7 +87,6 @@ function modeFactory() {
const activateTool = () => {
toolbarService.recordInteraction({
groupId: 'WindowLevel',
- itemId: 'WindowLevel',
interactionType: 'tool',
commands: [
{
@@ -132,6 +125,13 @@ function modeFactory() {
'MoreTools',
]);
+ customizationService.addModeCustomizations([
+ {
+ id: 'segmentation.disableEditing',
+ value: true,
+ },
+ ]);
+
// // ActivatePanel event trigger for when a segmentation or measurement is added.
// // Do not force activation so as to respect the state the user may have left the UI in.
// _activatePanelTriggersSubscriptions = [
@@ -176,13 +176,12 @@ function modeFactory() {
series: [],
},
- isValidMode: function({ modalities }) {
+ isValidMode: function ({ modalities }) {
const modalities_list = modalities.split('\\');
// Exclude non-image modalities
- return !!modalities_list.filter(
- modality => NON_IMAGE_MODALITIES.indexOf(modality) === -1
- ).length;
+ return !!modalities_list.filter(modality => NON_IMAGE_MODALITIES.indexOf(modality) === -1)
+ .length;
},
routes: [
{
@@ -244,6 +243,7 @@ function modeFactory() {
dicomRt.sopClassHandler,
],
hotkeys: [...hotkeys.defaults.hotkeyBindings],
+ ...modeConfiguration,
};
}
diff --git a/modes/longitudinal/src/initToolGroups.js b/modes/longitudinal/src/initToolGroups.js
index b8e88db909..e7ea816db3 100644
--- a/modes/longitudinal/src/initToolGroups.js
+++ b/modes/longitudinal/src/initToolGroups.js
@@ -1,9 +1,4 @@
-function initDefaultToolGroup(
- extensionManager,
- toolGroupService,
- commandsManager,
- toolGroupId
-) {
+function initDefaultToolGroup(extensionManager, toolGroupService, commandsManager, toolGroupId) {
const utilityModule = extensionManager.getModuleEntry(
'@ohif/extension-cornerstone.utilityModule.tools'
);
@@ -28,7 +23,23 @@ function initDefaultToolGroup(
],
passive: [
{ toolName: toolNames.Length },
- { toolName: toolNames.ArrowAnnotate },
+ {
+ toolName: toolNames.ArrowAnnotate,
+ configuration: {
+ getTextCallback: (callback, eventDetails) =>
+ commandsManager.runCommand('arrowTextCallback', {
+ callback,
+ eventDetails,
+ }),
+
+ changeTextCallback: (data, eventDetails, callback) =>
+ commandsManager.runCommand('arrowTextCallback', {
+ callback,
+ data,
+ eventDetails,
+ }),
+ },
+ },
{ toolName: toolNames.Bidirectional },
{ toolName: toolNames.DragProbe },
{ toolName: toolNames.EllipticalROI },
@@ -43,28 +54,12 @@ function initDefaultToolGroup(
{ toolName: toolNames.CalibrationLine },
],
// enabled
+ enabled: [{ toolName: toolNames.ImageOverlayViewer }],
// disabled
disabled: [{ toolName: toolNames.ReferenceLines }],
};
- const toolsConfig = {
- [toolNames.ArrowAnnotate]: {
- getTextCallback: (callback, eventDetails) =>
- commandsManager.runCommand('arrowTextCallback', {
- callback,
- eventDetails,
- }),
-
- changeTextCallback: (data, eventDetails, callback) =>
- commandsManager.runCommand('arrowTextCallback', {
- callback,
- data,
- eventDetails,
- }),
- },
- };
-
- toolGroupService.createToolGroupAndAddTools(toolGroupId, tools, toolsConfig);
+ toolGroupService.createToolGroupAndAddTools(toolGroupId, tools);
}
function initSRToolGroup(extensionManager, toolGroupService, commandsManager) {
@@ -72,6 +67,10 @@ function initSRToolGroup(extensionManager, toolGroupService, commandsManager) {
'@ohif/extension-cornerstone-dicom-sr.utilityModule.tools'
);
+ if (!SRUtilityModule) {
+ return;
+ }
+
const CS3DUtilityModule = extensionManager.getModuleEntry(
'@ohif/extension-cornerstone.utilityModule.tools'
);
@@ -125,25 +124,8 @@ function initSRToolGroup(extensionManager, toolGroupService, commandsManager) {
// disabled
};
- const toolsConfig = {
- [toolNames.ArrowAnnotate]: {
- getTextCallback: (callback, eventDetails) =>
- commandsManager.runCommand('arrowTextCallback', {
- callback,
- eventDetails,
- }),
-
- changeTextCallback: (data, eventDetails, callback) =>
- commandsManager.runCommand('arrowTextCallback', {
- callback,
- data,
- eventDetails,
- }),
- },
- };
-
const toolGroupId = 'SRToolGroup';
- toolGroupService.createToolGroupAndAddTools(toolGroupId, tools, toolsConfig);
+ toolGroupService.createToolGroupAndAddTools(toolGroupId, tools);
}
function initMPRToolGroup(extensionManager, toolGroupService, commandsManager) {
@@ -171,7 +153,23 @@ function initMPRToolGroup(extensionManager, toolGroupService, commandsManager) {
],
passive: [
{ toolName: toolNames.Length },
- { toolName: toolNames.ArrowAnnotate },
+ {
+ toolName: toolNames.ArrowAnnotate,
+ configuration: {
+ getTextCallback: (callback, eventDetails) =>
+ commandsManager.runCommand('arrowTextCallback', {
+ callback,
+ eventDetails,
+ }),
+
+ changeTextCallback: (data, eventDetails, callback) =>
+ commandsManager.runCommand('arrowTextCallback', {
+ callback,
+ data,
+ eventDetails,
+ }),
+ },
+ },
{ toolName: toolNames.Bidirectional },
{ toolName: toolNames.DragProbe },
{ toolName: toolNames.EllipticalROI },
@@ -184,7 +182,16 @@ function initMPRToolGroup(extensionManager, toolGroupService, commandsManager) {
{ toolName: toolNames.SegmentationDisplay },
],
disabled: [
- { toolName: toolNames.Crosshairs },
+ {
+ toolName: toolNames.Crosshairs,
+ configuration: {
+ viewportIndicators: false,
+ autoPan: {
+ enabled: false,
+ panSize: 10,
+ },
+ },
+ },
{ toolName: toolNames.ReferenceLines },
],
@@ -192,31 +199,7 @@ function initMPRToolGroup(extensionManager, toolGroupService, commandsManager) {
// disabled
};
- const toolsConfig = {
- [toolNames.Crosshairs]: {
- viewportIndicators: false,
- autoPan: {
- enabled: false,
- panSize: 10,
- },
- },
- [toolNames.ArrowAnnotate]: {
- getTextCallback: (callback, eventDetails) =>
- commandsManager.runCommand('arrowTextCallback', {
- callback,
- eventDetails,
- }),
-
- changeTextCallback: (data, eventDetails, callback) =>
- commandsManager.runCommand('arrowTextCallback', {
- callback,
- data,
- eventDetails,
- }),
- },
- };
-
- toolGroupService.createToolGroupAndAddTools('mpr', tools, toolsConfig);
+ toolGroupService.createToolGroupAndAddTools('mpr', tools);
}
function initVolume3DToolGroup(extensionManager, toolGroupService) {
const utilityModule = extensionManager.getModuleEntry(
@@ -246,12 +229,7 @@ function initVolume3DToolGroup(extensionManager, toolGroupService) {
}
function initToolGroups(extensionManager, toolGroupService, commandsManager) {
- initDefaultToolGroup(
- extensionManager,
- toolGroupService,
- commandsManager,
- 'default'
- );
+ initDefaultToolGroup(extensionManager, toolGroupService, commandsManager, 'default');
initSRToolGroup(extensionManager, toolGroupService, commandsManager);
initMPRToolGroup(extensionManager, toolGroupService, commandsManager);
initVolume3DToolGroup(extensionManager, toolGroupService);
diff --git a/modes/longitudinal/src/toolbarButtons.js b/modes/longitudinal/src/toolbarButtons.js
index 92de37e89d..821d59c6bd 100644
--- a/modes/longitudinal/src/toolbarButtons.js
+++ b/modes/longitudinal/src/toolbarButtons.js
@@ -15,7 +15,7 @@ const { windowLevelPresets } = defaults;
* @param {*} icon
* @param {*} label
*/
-function _createButton(type, id, icon, label, commands, tooltip, uiType) {
+function _createButton(type, id, icon, label, commands, tooltip, uiType, isActive) {
return {
id,
icon,
@@ -24,6 +24,7 @@ function _createButton(type, id, icon, label, commands, tooltip, uiType) {
commands,
tooltip,
uiType,
+ isActive,
};
}
@@ -432,14 +433,41 @@ const toolbarButtons = [
'ReferenceLines',
'tool-referenceLines', // change this with the new icon
'Reference Lines',
+ // two commands for the reference lines tool:
+ // - the first to set the source viewport for the tool when it is enabled
+ // - the second to toggle the tool
[
{
- commandName: 'toggleReferenceLines',
+ commandName: 'setSourceViewportForReferenceLinesTool',
commandOptions: {},
context: 'CORNERSTONE',
},
+ {
+ commandName: 'setToolActive',
+ commandOptions: {
+ toolName: 'ReferenceLines',
+ },
+ context: 'CORNERSTONE',
+ },
]
),
+ _createToggleButton(
+ 'ImageOverlayViewer',
+ 'toggle-dicom-overlay',
+ 'Image Overlay',
+ [
+ {
+ commandName: 'setToolActive',
+ commandOptions: {
+ toolName: 'ImageOverlayViewer',
+ },
+ context: 'CORNERSTONE',
+ },
+ ],
+ 'Image Overlay',
+ null,
+ true
+ ),
_createToolButton(
'StackScroll',
'tool-stack-scroll',
diff --git a/modes/microscopy/.prettierrc b/modes/microscopy/.prettierrc
index b80ec6b347..914020ac70 100644
--- a/modes/microscopy/.prettierrc
+++ b/modes/microscopy/.prettierrc
@@ -1,8 +1,10 @@
{
+ "plugins": ["prettier-plugin-tailwindcss"],
"trailingComma": "es5",
- "printWidth": 80,
+ "printWidth": 100,
"proseWrap": "always",
"tabWidth": 2,
"semi": true,
- "singleQuote": true
+ "singleQuote": true,
+ "arrowParens": "avoid"
}
diff --git a/modes/microscopy/.webpack/webpack.dev.js b/modes/microscopy/.webpack/webpack.dev.js
index cf62de6516..4bf848b6c5 100644
--- a/modes/microscopy/.webpack/webpack.dev.js
+++ b/modes/microscopy/.webpack/webpack.dev.js
@@ -3,13 +3,10 @@ const webpackCommon = require('./../../../.webpack/webpack.base.js');
const SRC_DIR = path.join(__dirname, '../src');
const DIST_DIR = path.join(__dirname, '../dist');
-
const ENTRY = {
app: `${SRC_DIR}/index.js`,
};
-
-
module.exports = (env, argv) => {
return webpackCommon(env, argv, { SRC_DIR, DIST_DIR, ENTRY });
};
diff --git a/modes/microscopy/.webpack/webpack.prod.js b/modes/microscopy/.webpack/webpack.prod.js
index 6379fa8e53..f578122945 100644
--- a/modes/microscopy/.webpack/webpack.prod.js
+++ b/modes/microscopy/.webpack/webpack.prod.js
@@ -39,13 +39,7 @@ module.exports = (env, argv) => {
libraryExport: 'default',
filename: pkg.main,
},
- externals: [
- /\b(vtk.js)/,
- /\b(dcmjs)/,
- /\b(gl-matrix)/,
- /^@ohif/,
- /^@cornerstonejs/,
- ],
+ externals: [/\b(vtk.js)/, /\b(dcmjs)/, /\b(gl-matrix)/, /^@ohif/, /^@cornerstonejs/],
plugins: [
new webpack.optimize.LimitChunkCountPlugin({
maxChunks: 1,
diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md
new file mode 100644
index 0000000000..b2f0f3c36b
--- /dev/null
+++ b/modes/microscopy/CHANGELOG.md
@@ -0,0 +1,232 @@
+# Change Log
+
+All notable changes to this project will be documented in this file.
+See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+
+# [3.7.0-beta.85](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.84...v3.7.0-beta.85) (2023-09-26)
+
+**Note:** Version bump only for package @ohif/mode-microscopy
+
+
+
+
+
+# [3.7.0-beta.84](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.83...v3.7.0-beta.84) (2023-09-26)
+
+**Note:** Version bump only for package @ohif/mode-microscopy
+
+
+
+
+
+# [3.7.0-beta.83](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.82...v3.7.0-beta.83) (2023-09-26)
+
+**Note:** Version bump only for package @ohif/mode-microscopy
+
+
+
+
+
+# [3.7.0-beta.82](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.81...v3.7.0-beta.82) (2023-09-26)
+
+**Note:** Version bump only for package @ohif/mode-microscopy
+
+
+
+
+
+# [3.7.0-beta.81](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.80...v3.7.0-beta.81) (2023-09-26)
+
+**Note:** Version bump only for package @ohif/mode-microscopy
+
+
+
+
+
+# [3.7.0-beta.80](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.79...v3.7.0-beta.80) (2023-09-22)
+
+**Note:** Version bump only for package @ohif/mode-microscopy
+
+
+
+
+
+# [3.7.0-beta.79](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.78...v3.7.0-beta.79) (2023-09-22)
+
+**Note:** Version bump only for package @ohif/mode-microscopy
+
+
+
+
+
+# [3.7.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.77...v3.7.0-beta.78) (2023-09-21)
+
+**Note:** Version bump only for package @ohif/mode-microscopy
+
+
+
+
+
+# [3.7.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.76...v3.7.0-beta.77) (2023-09-21)
+
+**Note:** Version bump only for package @ohif/mode-microscopy
+
+
+
+
+
+# [3.7.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.75...v3.7.0-beta.76) (2023-09-19)
+
+**Note:** Version bump only for package @ohif/mode-microscopy
+
+
+
+
+
+# [3.7.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.74...v3.7.0-beta.75) (2023-09-18)
+
+**Note:** Version bump only for package @ohif/mode-microscopy
+
+
+
+
+
+# [3.7.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.73...v3.7.0-beta.74) (2023-09-15)
+
+**Note:** Version bump only for package @ohif/mode-microscopy
+
+
+
+
+
+# [3.7.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.72...v3.7.0-beta.73) (2023-09-12)
+
+**Note:** Version bump only for package @ohif/mode-microscopy
+
+
+
+
+
+# [3.7.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.71...v3.7.0-beta.72) (2023-09-12)
+
+**Note:** Version bump only for package @ohif/mode-microscopy
+
+
+
+
+
+# [3.7.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.70...v3.7.0-beta.71) (2023-09-12)
+
+**Note:** Version bump only for package @ohif/mode-microscopy
+
+
+
+
+
+# [3.7.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.69...v3.7.0-beta.70) (2023-09-12)
+
+**Note:** Version bump only for package @ohif/mode-microscopy
+
+
+
+
+
+# [3.7.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.68...v3.7.0-beta.69) (2023-09-11)
+
+**Note:** Version bump only for package @ohif/mode-microscopy
+
+
+
+
+
+# [3.7.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.67...v3.7.0-beta.68) (2023-09-11)
+
+**Note:** Version bump only for package @ohif/mode-microscopy
+
+
+
+
+
+# [3.7.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.66...v3.7.0-beta.67) (2023-09-06)
+
+**Note:** Version bump only for package @ohif/mode-microscopy
+
+
+
+
+
+# [3.7.0-beta.66](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.65...v3.7.0-beta.66) (2023-09-06)
+
+**Note:** Version bump only for package @ohif/mode-microscopy
+
+
+
+
+
+# [3.7.0-beta.65](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.64...v3.7.0-beta.65) (2023-09-06)
+
+**Note:** Version bump only for package @ohif/mode-microscopy
+
+
+
+
+
+# [3.7.0-beta.64](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.63...v3.7.0-beta.64) (2023-09-05)
+
+**Note:** Version bump only for package @ohif/mode-microscopy
+
+
+
+
+
+# [3.7.0-beta.63](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.62...v3.7.0-beta.63) (2023-09-01)
+
+**Note:** Version bump only for package @ohif/mode-microscopy
+
+
+
+
+
+# [3.7.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.61...v3.7.0-beta.62) (2023-08-30)
+
+**Note:** Version bump only for package @ohif/mode-microscopy
+
+
+
+
+
+# [3.7.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.60...v3.7.0-beta.61) (2023-08-29)
+
+**Note:** Version bump only for package @ohif/mode-microscopy
+
+
+
+
+
+# [3.7.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.59...v3.7.0-beta.60) (2023-08-29)
+
+**Note:** Version bump only for package @ohif/mode-microscopy
+
+
+
+
+
+# [3.7.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.58...v3.7.0-beta.59) (2023-08-29)
+
+**Note:** Version bump only for package @ohif/mode-microscopy
+
+
+
+
+
+# [3.7.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.57...v3.7.0-beta.58) (2023-08-25)
+
+**Note:** Version bump only for package @ohif/mode-microscopy
+
+
+
+
+
+# [3.7.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.56...v3.7.0-beta.57) (2023-08-23)
+
+**Note:** Version bump only for package @ohif/mode-microscopy
diff --git a/modes/microscopy/babel.config.js b/modes/microscopy/babel.config.js
index 92fbbdeaf9..a38ddda212 100644
--- a/modes/microscopy/babel.config.js
+++ b/modes/microscopy/babel.config.js
@@ -10,7 +10,7 @@ module.exports = {
modules: 'commonjs',
debug: false,
},
- "@babel/preset-typescript",
+ '@babel/preset-typescript',
],
'@babel/preset-react',
],
@@ -26,7 +26,7 @@ module.exports = {
// WebPack handles ES6 --> Target Syntax
['@babel/preset-env', { modules: false }],
'@babel/preset-react',
- "@babel/preset-typescript",
+ '@babel/preset-typescript',
],
ignore: ['**/*.test.jsx', '**/*.test.js', '__snapshots__', '__tests__'],
},
@@ -35,7 +35,7 @@ module.exports = {
// WebPack handles ES6 --> Target Syntax
['@babel/preset-env', { modules: false }],
'@babel/preset-react',
- "@babel/preset-typescript",
+ '@babel/preset-typescript',
],
plugins: ['react-hot-loader/babel'],
ignore: ['**/*.test.jsx', '**/*.test.js', '__snapshots__', '__tests__'],
diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json
index 654f0b88be..37d5bd94e5 100644
--- a/modes/microscopy/package.json
+++ b/modes/microscopy/package.json
@@ -1,6 +1,6 @@
{
"name": "@ohif/mode-microscopy",
- "version": "3.6.0",
+ "version": "3.7.0-beta.85",
"description": "OHIF mode for DICOM microscopy",
"author": "OHIF",
"license": "MIT",
@@ -33,8 +33,8 @@
"test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests"
},
"peerDependencies": {
- "@ohif/core": "3.6.0",
- "@ohif/extension-dicom-microscopy": "3.6.0"
+ "@ohif/core": "3.7.0-beta.85",
+ "@ohif/extension-dicom-microscopy": "3.7.0-beta.85"
},
"dependencies": {
"@babel/runtime": "^7.20.13"
diff --git a/modes/microscopy/src/index.tsx b/modes/microscopy/src/index.tsx
index 9044ad6eb3..5f170ca265 100644
--- a/modes/microscopy/src/index.tsx
+++ b/modes/microscopy/src/index.tsx
@@ -16,8 +16,7 @@ export const cornerstone = {
};
const dicomvideo = {
- sopClassHandler:
- '@ohif/extension-dicom-video.sopClassHandlerModule.dicom-video',
+ sopClassHandler: '@ohif/extension-dicom-video.sopClassHandlerModule.dicom-video',
viewport: '@ohif/extension-dicom-video.viewportModule.dicom-video',
};
@@ -36,7 +35,7 @@ const extensionDependencies = {
'@ohif/extension-dicom-microscopy': '^3.0.0',
};
-function modeFactory() {
+function modeFactory({ modeConfiguration }) {
return {
// TODO: We're using this as a route segment
// We should not be.
@@ -52,10 +51,7 @@ function modeFactory() {
toolbarService.init(extensionManager);
toolbarService.addButtons(toolbarButtons);
- toolbarService.createButtonSection('primary', [
- 'MeasurementTools',
- 'dragPan',
- ]);
+ toolbarService.createButtonSection('primary', ['MeasurementTools', 'dragPan']);
},
onModeExit: ({ servicesManager }) => {
@@ -89,13 +85,10 @@ function modeFactory() {
leftPanels: [ohif.leftPanel],
leftPanelDefaultClosed: true, // we have problem with rendering thumbnails for microscopy images
rightPanelDefaultClosed: true, // we do not have the save microscopy measurements yet
- rightPanels: [
- '@ohif/extension-dicom-microscopy.panelModule.measure',
- ],
+ rightPanels: ['@ohif/extension-dicom-microscopy.panelModule.measure'],
viewports: [
{
- namespace:
- '@ohif/extension-dicom-microscopy.viewportModule.microscopy-dicom',
+ namespace: '@ohif/extension-dicom-microscopy.viewportModule.microscopy-dicom',
displaySetsToDisplay: [
'@ohif/extension-dicom-microscopy.sopClassHandlerModule.DicomMicroscopySopClassHandler',
'@ohif/extension-dicom-microscopy.sopClassHandlerModule.DicomMicroscopySRSopClassHandler',
@@ -130,6 +123,7 @@ function modeFactory() {
dicompdf.sopClassHandler,
],
hotkeys: [...hotkeys.defaults.hotkeyBindings],
+ ...modeConfiguration,
};
}
diff --git a/modes/segmentation/.gitignore b/modes/segmentation/.gitignore
new file mode 100644
index 0000000000..67045665db
--- /dev/null
+++ b/modes/segmentation/.gitignore
@@ -0,0 +1,104 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+lerna-debug.log*
+
+# Diagnostic reports (https://nodejs.org/api/report.html)
+report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
+
+# Runtime data
+pids
+*.pid
+*.seed
+*.pid.lock
+
+# Directory for instrumented libs generated by jscoverage/JSCover
+lib-cov
+
+# Coverage directory used by tools like istanbul
+coverage
+*.lcov
+
+# nyc test coverage
+.nyc_output
+
+# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
+.grunt
+
+# Bower dependency directory (https://bower.io/)
+bower_components
+
+# node-waf configuration
+.lock-wscript
+
+# Compiled binary addons (https://nodejs.org/api/addons.html)
+build/Release
+
+# Dependency directories
+node_modules/
+jspm_packages/
+
+# TypeScript v1 declaration files
+typings/
+
+# TypeScript cache
+*.tsbuildinfo
+
+# Optional npm cache directory
+.npm
+
+# Optional eslint cache
+.eslintcache
+
+# Microbundle cache
+.rpt2_cache/
+.rts2_cache_cjs/
+.rts2_cache_es/
+.rts2_cache_umd/
+
+# Optional REPL history
+.node_repl_history
+
+# Output of 'npm pack'
+*.tgz
+
+# Yarn Integrity file
+.yarn-integrity
+
+# dotenv environment variables file
+.env
+.env.test
+
+# parcel-bundler cache (https://parceljs.org/)
+.cache
+
+# Next.js build output
+.next
+
+# Nuxt.js build / generate output
+.nuxt
+dist
+
+# Gatsby files
+.cache/
+# Comment in the public line in if your project uses Gatsby and *not* Next.js
+# https://nextjs.org/blog/next-9-1#public-directory-support
+# public
+
+# vuepress build output
+.vuepress/dist
+
+# Serverless directories
+.serverless/
+
+# FuseBox cache
+.fusebox/
+
+# DynamoDB Local files
+.dynamodb/
+
+# TernJS port file
+.tern-port
diff --git a/modes/segmentation/.webpack/webpack.prod.js b/modes/segmentation/.webpack/webpack.prod.js
new file mode 100644
index 0000000000..163392a699
--- /dev/null
+++ b/modes/segmentation/.webpack/webpack.prod.js
@@ -0,0 +1,62 @@
+const path = require('path');
+const pkg = require('../package.json');
+
+const outputFile = 'index.umd.js';
+const rootDir = path.resolve(__dirname, '../');
+const outputFolder = path.join(__dirname, `../dist/umd/${pkg.name}/`);
+
+// Todo: add ESM build for the mode in addition to umd build
+const config = {
+ mode: 'production',
+ entry: rootDir + '/' + pkg.module,
+ devtool: 'source-map',
+ output: {
+ path: outputFolder,
+ filename: outputFile,
+ library: pkg.name,
+ libraryTarget: 'umd',
+ chunkFilename: '[name].chunk.js',
+ umdNamedDefine: true,
+ globalObject: "typeof self !== 'undefined' ? self : this",
+ },
+ externals: [
+ {
+ react: {
+ root: 'React',
+ commonjs2: 'react',
+ commonjs: 'react',
+ amd: 'react',
+ },
+ '@ohif/core': {
+ commonjs2: '@ohif/core',
+ commonjs: '@ohif/core',
+ amd: '@ohif/core',
+ root: '@ohif/core',
+ },
+ '@ohif/ui': {
+ commonjs2: '@ohif/ui',
+ commonjs: '@ohif/ui',
+ amd: '@ohif/ui',
+ root: '@ohif/ui',
+ },
+ },
+ ],
+ module: {
+ rules: [
+ {
+ test: /(\.jsx|\.js|\.tsx|\.ts)$/,
+ loader: 'babel-loader',
+ exclude: /(node_modules|bower_components)/,
+ resolve: {
+ extensions: ['.js', '.jsx', '.ts', '.tsx'],
+ },
+ },
+ ],
+ },
+ resolve: {
+ modules: [path.resolve('./node_modules'), path.resolve('./src')],
+ extensions: ['.json', '.js', '.jsx', '.tsx', '.ts'],
+ },
+};
+
+module.exports = config;
diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md
new file mode 100644
index 0000000000..32fd291704
--- /dev/null
+++ b/modes/segmentation/CHANGELOG.md
@@ -0,0 +1,51 @@
+# Change Log
+
+All notable changes to this project will be documented in this file.
+See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+
+# [3.7.0-beta.85](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.84...v3.7.0-beta.85) (2023-09-26)
+
+**Note:** Version bump only for package @ohif/mode-segmentation
+
+
+
+
+
+# [3.7.0-beta.84](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.83...v3.7.0-beta.84) (2023-09-26)
+
+**Note:** Version bump only for package @ohif/mode-segmentation
+
+
+
+
+
+# [3.7.0-beta.83](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.82...v3.7.0-beta.83) (2023-09-26)
+
+**Note:** Version bump only for package @ohif/mode-segmentation
+
+
+
+
+
+# [3.7.0-beta.82](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.81...v3.7.0-beta.82) (2023-09-26)
+
+**Note:** Version bump only for package @ohif/mode-segmentation
+
+
+
+
+
+# [3.7.0-beta.81](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.80...v3.7.0-beta.81) (2023-09-26)
+
+**Note:** Version bump only for package @ohif/mode-segmentation
+
+
+
+
+
+# [3.7.0-beta.80](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.79...v3.7.0-beta.80) (2023-09-22)
+
+
+### Features
+
+* **segmentation mode:** Add create, and export SEG with Brushes ([#3632](https://github.com/OHIF/Viewers/issues/3632)) ([48bbd62](https://github.com/OHIF/Viewers/commit/48bbd6281a497ea68670239f5426a10ee6c56dc1))
diff --git a/modes/segmentation/LICENSE b/modes/segmentation/LICENSE
new file mode 100644
index 0000000000..c58f05915f
--- /dev/null
+++ b/modes/segmentation/LICENSE
@@ -0,0 +1,9 @@
+MIT License
+
+Copyright (c) 2023 @ohif-segmentation-mode (contact@ohif.org)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/modes/segmentation/README.md b/modes/segmentation/README.md
new file mode 100644
index 0000000000..5bf905d927
--- /dev/null
+++ b/modes/segmentation/README.md
@@ -0,0 +1,7 @@
+# @ohif-segmentation-mode
+## Description
+OHIF segmentation mode which enables labelmap segmentation read/edit/export
+## Author
+@ohif
+## License
+MIT
\ No newline at end of file
diff --git a/modes/segmentation/babel.config.js b/modes/segmentation/babel.config.js
new file mode 100644
index 0000000000..a38ddda212
--- /dev/null
+++ b/modes/segmentation/babel.config.js
@@ -0,0 +1,44 @@
+module.exports = {
+ plugins: ['inline-react-svg', '@babel/plugin-proposal-class-properties'],
+ env: {
+ test: {
+ presets: [
+ [
+ // TODO: https://babeljs.io/blog/2019/03/19/7.4.0#migration-from-core-js-2
+ '@babel/preset-env',
+ {
+ modules: 'commonjs',
+ debug: false,
+ },
+ '@babel/preset-typescript',
+ ],
+ '@babel/preset-react',
+ ],
+ plugins: [
+ '@babel/plugin-proposal-object-rest-spread',
+ '@babel/plugin-syntax-dynamic-import',
+ '@babel/plugin-transform-regenerator',
+ '@babel/plugin-transform-runtime',
+ ],
+ },
+ production: {
+ presets: [
+ // WebPack handles ES6 --> Target Syntax
+ ['@babel/preset-env', { modules: false }],
+ '@babel/preset-react',
+ '@babel/preset-typescript',
+ ],
+ ignore: ['**/*.test.jsx', '**/*.test.js', '__snapshots__', '__tests__'],
+ },
+ development: {
+ presets: [
+ // WebPack handles ES6 --> Target Syntax
+ ['@babel/preset-env', { modules: false }],
+ '@babel/preset-react',
+ '@babel/preset-typescript',
+ ],
+ plugins: ['react-hot-loader/babel'],
+ ignore: ['**/*.test.jsx', '**/*.test.js', '__snapshots__', '__tests__'],
+ },
+ },
+};
diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json
new file mode 100644
index 0000000000..add1e6d6ce
--- /dev/null
+++ b/modes/segmentation/package.json
@@ -0,0 +1,67 @@
+{
+ "name": "@ohif/mode-segmentation",
+ "version": "3.7.0-beta.85",
+ "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export",
+ "author": "@ohif",
+ "license": "MIT",
+ "main": "dist/umd/@ohif/mode-segmentation/index.umd.js",
+ "files": [
+ "dist/**",
+ "public/**",
+ "README.md"
+ ],
+ "repository": "OHIF/Viewers",
+ "keywords": [
+ "ohif-mode"
+ ],
+ "publishConfig": {
+ "access": "public"
+ },
+ "module": "src/index.tsx",
+ "engines": {
+ "node": ">=14",
+ "npm": ">=7",
+ "yarn": ">=1.16.0"
+ },
+ "scripts": {
+ "dev": "cross-env NODE_ENV=development webpack --config .webpack/webpack.dev.js --watch --output-pathinfo",
+ "dev:cornerstone": "yarn run dev",
+ "build": "cross-env NODE_ENV=production webpack --config .webpack/webpack.prod.js",
+ "build:package": "yarn run build",
+ "start": "yarn run dev",
+ "test:unit": "jest --watchAll",
+ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests"
+ },
+ "peerDependencies": {
+ "@ohif/core": "3.7.0-beta.85"
+ },
+ "dependencies": {
+ "@babel/runtime": "^7.20.13"
+ },
+ "devDependencies": {
+ "@babel/core": "^7.21.4",
+ "@babel/plugin-proposal-class-properties": "^7.16.7",
+ "@babel/plugin-proposal-object-rest-spread": "^7.17.3",
+ "@babel/plugin-proposal-private-methods": "^7.18.6",
+ "@babel/plugin-syntax-dynamic-import": "^7.8.3",
+ "@babel/plugin-transform-arrow-functions": "^7.16.7",
+ "@babel/plugin-transform-regenerator": "^7.16.7",
+ "@babel/plugin-transform-runtime": "^7.17.0",
+ "@babel/plugin-transform-typescript": "^7.13.0",
+ "@babel/preset-env": "^7.16.11",
+ "@babel/preset-react": "^7.16.7",
+ "@babel/preset-typescript": "^7.13.0",
+ "babel-eslint": "^8.0.3",
+ "babel-loader": "^8.0.0-beta.4",
+ "babel-plugin-inline-react-svg": "^2.0.1",
+ "clean-webpack-plugin": "^4.0.0",
+ "copy-webpack-plugin": "^10.2.0",
+ "cross-env": "^7.0.3",
+ "dotenv": "^14.1.0",
+ "eslint": "^5.0.1",
+ "eslint-loader": "^2.0.0",
+ "webpack": "^5.50.0",
+ "webpack-cli": "^4.7.2",
+ "webpack-merge": "^5.7.3"
+ }
+}
diff --git a/modes/segmentation/src/id.js b/modes/segmentation/src/id.js
new file mode 100644
index 0000000000..ebe5acd98a
--- /dev/null
+++ b/modes/segmentation/src/id.js
@@ -0,0 +1,5 @@
+import packageJson from '../package.json';
+
+const id = packageJson.name;
+
+export { id };
diff --git a/modes/segmentation/src/index.tsx b/modes/segmentation/src/index.tsx
new file mode 100644
index 0000000000..a6f552c5ae
--- /dev/null
+++ b/modes/segmentation/src/index.tsx
@@ -0,0 +1,179 @@
+import { hotkeys } from '@ohif/core';
+import { id } from './id';
+import toolbarButtons from './toolbarButtons';
+import initToolGroups from './initToolGroups';
+
+const ohif = {
+ layout: '@ohif/extension-default.layoutTemplateModule.viewerLayout',
+ sopClassHandler: '@ohif/extension-default.sopClassHandlerModule.stack',
+ hangingProtocol: '@ohif/extension-default.hangingProtocolModule.default',
+ leftPanel: '@ohif/extension-default.panelModule.seriesList',
+ rightPanel: '@ohif/extension-default.panelModule.measure',
+};
+
+const cornerstone = {
+ viewport: '@ohif/extension-cornerstone.viewportModule.cornerstone',
+};
+
+const segmentation = {
+ panel: '@ohif/extension-cornerstone-dicom-seg.panelModule.panelSegmentation',
+ panelTool: '@ohif/extension-cornerstone-dicom-seg.panelModule.panelSegmentationWithTools',
+ sopClassHandler: '@ohif/extension-cornerstone-dicom-seg.sopClassHandlerModule.dicom-seg',
+ viewport: '@ohif/extension-cornerstone-dicom-seg.viewportModule.dicom-seg',
+};
+
+/**
+ * Just two dependencies to be able to render a viewport with panels in order
+ * to make sure that the mode is working.
+ */
+const extensionDependencies = {
+ '@ohif/extension-default': '^3.0.0',
+ '@ohif/extension-cornerstone': '^3.0.0',
+ '@ohif/extension-cornerstone-dicom-seg': '^3.0.0',
+};
+
+function modeFactory({ modeConfiguration }) {
+ return {
+ /**
+ * Mode ID, which should be unique among modes used by the viewer. This ID
+ * is used to identify the mode in the viewer's state.
+ */
+ id,
+ routeName: 'segmentation',
+ /**
+ * Mode name, which is displayed in the viewer's UI in the workList, for the
+ * user to select the mode.
+ */
+ displayName: 'Segmentation',
+ /**
+ * Runs when the Mode Route is mounted to the DOM. Usually used to initialize
+ * Services and other resources.
+ */
+ onModeEnter: ({ servicesManager, extensionManager, commandsManager }) => {
+ const { measurementService, toolbarService, toolGroupService } = servicesManager.services;
+
+ measurementService.clearMeasurements();
+
+ // Init Default and SR ToolGroups
+ initToolGroups(extensionManager, toolGroupService, commandsManager);
+
+ let unsubscribe;
+
+ const activateTool = () => {
+ toolbarService.recordInteraction({
+ groupId: 'WindowLevel',
+ interactionType: 'tool',
+ commands: [
+ {
+ commandName: 'setToolActive',
+ commandOptions: {
+ toolName: 'WindowLevel',
+ },
+ context: 'CORNERSTONE',
+ },
+ ],
+ });
+
+ // We don't need to reset the active tool whenever a viewport is getting
+ // added to the toolGroup.
+ unsubscribe();
+ };
+
+ // Since we only have one viewport for the basic cs3d mode and it has
+ // only one hanging protocol, we can just use the first viewport
+ ({ unsubscribe } = toolGroupService.subscribe(
+ toolGroupService.EVENTS.VIEWPORT_ADDED,
+ activateTool
+ ));
+
+ toolbarService.init(extensionManager);
+ toolbarService.addButtons(toolbarButtons);
+ toolbarService.createButtonSection('primary', [
+ 'Zoom',
+ 'WindowLevel',
+ 'Pan',
+ 'Capture',
+ 'Layout',
+ 'MPR',
+ 'Crosshairs',
+ 'MoreTools',
+ ]);
+ },
+ onModeExit: ({ servicesManager }) => {
+ const {
+ toolGroupService,
+ syncGroupService,
+ toolbarService,
+ segmentationService,
+ cornerstoneViewportService,
+ } = servicesManager.services;
+
+ toolGroupService.destroy();
+ syncGroupService.destroy();
+ segmentationService.destroy();
+ cornerstoneViewportService.destroy();
+ },
+ /** */
+ validationTags: {
+ study: [],
+ series: [],
+ },
+ /**
+ * A boolean return value that indicates whether the mode is valid for the
+ * modalities of the selected studies. For instance a PET/CT mode should be
+ */
+ isValidMode: ({ modalities }) => true,
+ /**
+ * Mode Routes are used to define the mode's behavior. A list of Mode Route
+ * that includes the mode's path and the layout to be used. The layout will
+ * include the components that are used in the layout. For instance, if the
+ * default layoutTemplate is used (id: '@ohif/extension-default.layoutTemplateModule.viewerLayout')
+ * it will include the leftPanels, rightPanels, and viewports. However, if
+ * you define another layoutTemplate that includes a Footer for instance,
+ * you should provide the Footer component here too. Note: We use Strings
+ * to reference the component's ID as they are registered in the internal
+ * ExtensionManager. The template for the string is:
+ * `${extensionId}.{moduleType}.${componentId}`.
+ */
+ routes: [
+ {
+ path: 'template',
+ layoutTemplate: ({ location, servicesManager }) => {
+ return {
+ id: ohif.layout,
+ props: {
+ leftPanels: [ohif.leftPanel],
+ rightPanels: [segmentation.panelTool],
+ viewports: [
+ {
+ namespace: cornerstone.viewport,
+ displaySetsToDisplay: [ohif.sopClassHandler],
+ },
+ {
+ namespace: segmentation.viewport,
+ displaySetsToDisplay: [segmentation.sopClassHandler],
+ },
+ ],
+ },
+ };
+ },
+ },
+ ],
+ /** List of extensions that are used by the mode */
+ extensions: extensionDependencies,
+ /** HangingProtocol used by the mode */
+ // hangingProtocol: [''],
+ /** SopClassHandlers used by the mode */
+ sopClassHandlers: [ohif.sopClassHandler, segmentation.sopClassHandler],
+ /** hotkeys for mode */
+ hotkeys: [...hotkeys.defaults.hotkeyBindings],
+ };
+}
+
+const mode = {
+ id,
+ modeFactory,
+ extensionDependencies,
+};
+
+export default mode;
diff --git a/modes/segmentation/src/initToolGroups.ts b/modes/segmentation/src/initToolGroups.ts
new file mode 100644
index 0000000000..58204839ee
--- /dev/null
+++ b/modes/segmentation/src/initToolGroups.ts
@@ -0,0 +1,82 @@
+const brushInstanceNames = {
+ CircularBrush: 'CircularBrush',
+ CircularEraser: 'CircularEraser',
+ SphereBrush: 'SphereBrush',
+ SphereEraser: 'SphereEraser',
+ ThresholdCircularBrush: 'ThresholdCircularBrush',
+ ThresholdSphereBrush: 'ThresholdSphereBrush',
+};
+
+const brushStrategies = {
+ CircularBrush: 'FILL_INSIDE_CIRCLE',
+ CircularEraser: 'ERASE_INSIDE_CIRCLE',
+ SphereBrush: 'FILL_INSIDE_SPHERE',
+ SphereEraser: 'ERASE_INSIDE_SPHERE',
+ ThresholdCircularBrush: 'THRESHOLD_INSIDE_CIRCLE',
+ ThresholdSphereBrush: 'THRESHOLD_INSIDE_SPHERE',
+};
+
+function createTools(utilityModule) {
+ const { toolNames, Enums } = utilityModule.exports;
+ return {
+ active: [
+ { toolName: toolNames.WindowLevel, bindings: [{ mouseButton: Enums.MouseBindings.Primary }] },
+ { toolName: toolNames.Pan, bindings: [{ mouseButton: Enums.MouseBindings.Auxiliary }] },
+ { toolName: toolNames.Zoom, bindings: [{ mouseButton: Enums.MouseBindings.Secondary }] },
+ { toolName: toolNames.StackScrollMouseWheel, bindings: [] },
+ ],
+ passive: Object.keys(brushInstanceNames)
+ .map(brushName => ({
+ toolName: brushName,
+ parentTool: 'Brush',
+ configuration: {
+ activeStrategy: brushStrategies[brushName],
+ },
+ }))
+ .concat([
+ { toolName: toolNames.CircleScissors },
+ { toolName: toolNames.RectangleScissors },
+ { toolName: toolNames.SphereScissors },
+ { toolName: toolNames.StackScroll },
+ { toolName: toolNames.Magnify },
+ { toolName: toolNames.SegmentationDisplay },
+ ]),
+ disabled: [{ toolName: toolNames.ReferenceLines }],
+ };
+}
+
+function initDefaultToolGroup(extensionManager, toolGroupService, commandsManager, toolGroupId) {
+ const utilityModule = extensionManager.getModuleEntry(
+ '@ohif/extension-cornerstone.utilityModule.tools'
+ );
+ const tools = createTools(utilityModule);
+ toolGroupService.createToolGroupAndAddTools(toolGroupId, tools);
+}
+
+function initMPRToolGroup(extensionManager, toolGroupService, commandsManager) {
+ const utilityModule = extensionManager.getModuleEntry(
+ '@ohif/extension-cornerstone.utilityModule.tools'
+ );
+ const tools = createTools(utilityModule);
+ tools.disabled.push(
+ {
+ toolName: utilityModule.exports.toolNames.Crosshairs,
+ configuration: {
+ viewportIndicators: false,
+ autoPan: {
+ enabled: false,
+ panSize: 10,
+ },
+ },
+ },
+ { toolName: utilityModule.exports.toolNames.ReferenceLines }
+ );
+ toolGroupService.createToolGroupAndAddTools('mpr', tools);
+}
+
+function initToolGroups(extensionManager, toolGroupService, commandsManager) {
+ initDefaultToolGroup(extensionManager, toolGroupService, commandsManager, 'default');
+ initMPRToolGroup(extensionManager, toolGroupService, commandsManager);
+}
+
+export default initToolGroups;
diff --git a/modes/segmentation/src/toolbarButtons.ts b/modes/segmentation/src/toolbarButtons.ts
new file mode 100644
index 0000000000..b17a33deae
--- /dev/null
+++ b/modes/segmentation/src/toolbarButtons.ts
@@ -0,0 +1,356 @@
+import {
+ // ExpandableToolbarButton,
+ // ListMenu,
+ WindowLevelMenuItem,
+} from '@ohif/ui';
+import { defaults } from '@ohif/core';
+
+const { windowLevelPresets } = defaults;
+/**
+ *
+ * @param {*} type - 'tool' | 'action' | 'toggle'
+ * @param {*} id
+ * @param {*} icon
+ * @param {*} label
+ */
+function _createButton(type, id, icon, label, commands, tooltip, uiType) {
+ return {
+ id,
+ icon,
+ label,
+ type,
+ commands,
+ tooltip,
+ uiType,
+ };
+}
+
+const _createActionButton = _createButton.bind(null, 'action');
+const _createToggleButton = _createButton.bind(null, 'toggle');
+const _createToolButton = _createButton.bind(null, 'tool');
+
+/**
+ *
+ * @param {*} preset - preset number (from above import)
+ * @param {*} title
+ * @param {*} subtitle
+ */
+function _createWwwcPreset(preset, title, subtitle) {
+ return {
+ id: preset.toString(),
+ title,
+ subtitle,
+ type: 'action',
+ commands: [
+ {
+ commandName: 'setWindowLevel',
+ commandOptions: {
+ ...windowLevelPresets[preset],
+ },
+ context: 'CORNERSTONE',
+ },
+ ],
+ };
+}
+
+const toolGroupIds = ['default', 'mpr', 'SRToolGroup'];
+
+/**
+ * Creates an array of 'setToolActive' commands for the given toolName - one for
+ * each toolGroupId specified in toolGroupIds.
+ * @param {string} toolName
+ * @returns {Array} an array of 'setToolActive' commands
+ */
+function _createSetToolActiveCommands(toolName) {
+ const temp = toolGroupIds.map(toolGroupId => ({
+ commandName: 'setToolActive',
+ commandOptions: {
+ toolGroupId,
+ toolName,
+ },
+ context: 'CORNERSTONE',
+ }));
+ return temp;
+}
+
+const toolbarButtons = [
+ // Zoom..
+ {
+ id: 'Zoom',
+ type: 'ohif.radioGroup',
+ props: {
+ type: 'tool',
+ icon: 'tool-zoom',
+ label: 'Zoom',
+ commands: _createSetToolActiveCommands('Zoom'),
+ },
+ },
+ // Window Level + Presets...
+ {
+ id: 'WindowLevel',
+ type: 'ohif.splitButton',
+ props: {
+ groupId: 'WindowLevel',
+ primary: _createToolButton(
+ 'WindowLevel',
+ 'tool-window-level',
+ 'Window Level',
+ [
+ {
+ commandName: 'setToolActive',
+ commandOptions: {
+ toolName: 'WindowLevel',
+ },
+ context: 'CORNERSTONE',
+ },
+ ],
+ 'Window Level'
+ ),
+ secondary: {
+ icon: 'chevron-down',
+ label: 'W/L Manual',
+ isActive: true,
+ tooltip: 'W/L Presets',
+ },
+ isAction: true, // ?
+ renderer: WindowLevelMenuItem,
+ items: [
+ _createWwwcPreset(1, 'Soft tissue', '400 / 40'),
+ _createWwwcPreset(2, 'Lung', '1500 / -600'),
+ _createWwwcPreset(3, 'Liver', '150 / 90'),
+ _createWwwcPreset(4, 'Bone', '2500 / 480'),
+ _createWwwcPreset(5, 'Brain', '80 / 40'),
+ ],
+ },
+ },
+ // Pan...
+ {
+ id: 'Pan',
+ type: 'ohif.radioGroup',
+ props: {
+ type: 'tool',
+ icon: 'tool-move',
+ label: 'Pan',
+ commands: _createSetToolActiveCommands('Pan'),
+ },
+ },
+ {
+ id: 'Capture',
+ type: 'ohif.action',
+ props: {
+ icon: 'tool-capture',
+ label: 'Capture',
+ type: 'action',
+ commands: [
+ {
+ commandName: 'showDownloadViewportModal',
+ commandOptions: {},
+ context: 'CORNERSTONE',
+ },
+ ],
+ },
+ },
+ {
+ id: 'Layout',
+ type: 'ohif.layoutSelector',
+ props: {
+ rows: 3,
+ columns: 3,
+ },
+ },
+ {
+ id: 'MPR',
+ type: 'ohif.action',
+ props: {
+ type: 'toggle',
+ icon: 'icon-mpr',
+ label: 'MPR',
+ commands: [
+ {
+ commandName: 'toggleHangingProtocol',
+ commandOptions: {
+ protocolId: 'mpr',
+ },
+ context: 'DEFAULT',
+ },
+ ],
+ },
+ },
+ {
+ id: 'Crosshairs',
+ type: 'ohif.radioGroup',
+ props: {
+ type: 'tool',
+ icon: 'tool-crosshair',
+ label: 'Crosshairs',
+ commands: [
+ {
+ commandName: 'setToolActive',
+ commandOptions: {
+ toolName: 'Crosshairs',
+ toolGroupId: 'mpr',
+ },
+ context: 'CORNERSTONE',
+ },
+ ],
+ },
+ },
+ // More...
+ {
+ id: 'MoreTools',
+ type: 'ohif.splitButton',
+ props: {
+ isRadio: true, // ?
+ groupId: 'MoreTools',
+ primary: _createActionButton(
+ 'Reset',
+ 'tool-reset',
+ 'Reset View',
+ [
+ {
+ commandName: 'resetViewport',
+ commandOptions: {},
+ context: 'CORNERSTONE',
+ },
+ ],
+ 'Reset'
+ ),
+ secondary: {
+ icon: 'chevron-down',
+ label: '',
+ isActive: true,
+ tooltip: 'More Tools',
+ },
+ items: [
+ _createActionButton(
+ 'Reset',
+ 'tool-reset',
+ 'Reset View',
+ [
+ {
+ commandName: 'resetViewport',
+ commandOptions: {},
+ context: 'CORNERSTONE',
+ },
+ ],
+ 'Reset'
+ ),
+ _createActionButton(
+ 'rotate-right',
+ 'tool-rotate-right',
+ 'Rotate Right',
+ [
+ {
+ commandName: 'rotateViewportCW',
+ commandOptions: {},
+ context: 'CORNERSTONE',
+ },
+ ],
+ 'Rotate +90'
+ ),
+ _createActionButton(
+ 'flip-horizontal',
+ 'tool-flip-horizontal',
+ 'Flip Horizontally',
+ [
+ {
+ commandName: 'flipViewportHorizontal',
+ commandOptions: {},
+ context: 'CORNERSTONE',
+ },
+ ],
+ 'Flip Horizontal'
+ ),
+ _createToggleButton('StackImageSync', 'link', 'Stack Image Sync', [
+ {
+ commandName: 'toggleStackImageSync',
+ commandOptions: {},
+ context: 'CORNERSTONE',
+ },
+ ]),
+ _createToggleButton(
+ 'ReferenceLines',
+ 'tool-referenceLines', // change this with the new icon
+ 'Reference Lines',
+ [
+ {
+ commandName: 'toggleReferenceLines',
+ commandOptions: {},
+ context: 'CORNERSTONE',
+ },
+ ]
+ ),
+ _createToolButton(
+ 'StackScroll',
+ 'tool-stack-scroll',
+ 'Stack Scroll',
+ [
+ {
+ commandName: 'setToolActive',
+ commandOptions: {
+ toolName: 'StackScroll',
+ },
+ context: 'CORNERSTONE',
+ },
+ ],
+ 'Stack Scroll'
+ ),
+ _createActionButton(
+ 'invert',
+ 'tool-invert',
+ 'Invert',
+ [
+ {
+ commandName: 'invertViewport',
+ commandOptions: {},
+ context: 'CORNERSTONE',
+ },
+ ],
+ 'Invert Colors'
+ ),
+ _createToggleButton(
+ 'cine',
+ 'tool-cine',
+ 'Cine',
+ [
+ {
+ commandName: 'toggleCine',
+ context: 'CORNERSTONE',
+ },
+ ],
+ 'Cine'
+ ),
+ _createToolButton(
+ 'Magnify',
+ 'tool-magnify',
+ 'Magnify',
+ [
+ {
+ commandName: 'setToolActive',
+ commandOptions: {
+ toolName: 'Magnify',
+ },
+ context: 'CORNERSTONE',
+ },
+ ],
+ 'Magnify'
+ ),
+ _createActionButton(
+ 'TagBrowser',
+ 'list-bullets',
+ 'Dicom Tag Browser',
+ [
+ {
+ commandName: 'openDICOMTagViewer',
+ commandOptions: {},
+ context: 'DEFAULT',
+ },
+ ],
+ 'Dicom Tag Browser'
+ ),
+ ],
+ },
+ },
+];
+
+export default toolbarButtons;
diff --git a/modes/tmtv/.webpack/webpack.dev.js b/modes/tmtv/.webpack/webpack.dev.js
index 2bc3ced0b9..4bf848b6c5 100644
--- a/modes/tmtv/.webpack/webpack.dev.js
+++ b/modes/tmtv/.webpack/webpack.dev.js
@@ -7,7 +7,6 @@ const ENTRY = {
app: `${SRC_DIR}/index.js`,
};
-
module.exports = (env, argv) => {
return webpackCommon(env, argv, { SRC_DIR, DIST_DIR, ENTRY });
};
diff --git a/modes/tmtv/.webpack/webpack.prod.js b/modes/tmtv/.webpack/webpack.prod.js
index 385ed85ced..018db058d3 100644
--- a/modes/tmtv/.webpack/webpack.prod.js
+++ b/modes/tmtv/.webpack/webpack.prod.js
@@ -14,7 +14,6 @@ const ENTRY = {
app: `${SRC_DIR}/index.js`,
};
-
module.exports = (env, argv) => {
const commonConfig = webpackCommon(env, argv, { SRC_DIR, DIST_DIR, ENTRY });
@@ -41,13 +40,7 @@ module.exports = (env, argv) => {
libraryExport: 'default',
filename: pkg.main,
},
- externals: [
- /\b(vtk.js)/,
- /\b(dcmjs)/,
- /\b(gl-matrix)/,
- /^@ohif/,
- /^@cornerstonejs/,
- ],
+ externals: [/\b(vtk.js)/, /\b(dcmjs)/, /\b(gl-matrix)/, /^@ohif/, /^@cornerstonejs/],
plugins: [
new webpack.optimize.LimitChunkCountPlugin({
maxChunks: 1,
diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md
new file mode 100644
index 0000000000..960d37295c
--- /dev/null
+++ b/modes/tmtv/CHANGELOG.md
@@ -0,0 +1,235 @@
+# Change Log
+
+All notable changes to this project will be documented in this file.
+See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+
+# [3.7.0-beta.85](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.84...v3.7.0-beta.85) (2023-09-26)
+
+**Note:** Version bump only for package @ohif/mode-tmtv
+
+
+
+
+
+# [3.7.0-beta.84](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.83...v3.7.0-beta.84) (2023-09-26)
+
+**Note:** Version bump only for package @ohif/mode-tmtv
+
+
+
+
+
+# [3.7.0-beta.83](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.82...v3.7.0-beta.83) (2023-09-26)
+
+**Note:** Version bump only for package @ohif/mode-tmtv
+
+
+
+
+
+# [3.7.0-beta.82](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.81...v3.7.0-beta.82) (2023-09-26)
+
+**Note:** Version bump only for package @ohif/mode-tmtv
+
+
+
+
+
+# [3.7.0-beta.81](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.80...v3.7.0-beta.81) (2023-09-26)
+
+**Note:** Version bump only for package @ohif/mode-tmtv
+
+
+
+
+
+# [3.7.0-beta.80](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.79...v3.7.0-beta.80) (2023-09-22)
+
+
+### Features
+
+* **segmentation mode:** Add create, and export SEG with Brushes ([#3632](https://github.com/OHIF/Viewers/issues/3632)) ([48bbd62](https://github.com/OHIF/Viewers/commit/48bbd6281a497ea68670239f5426a10ee6c56dc1))
+
+
+
+
+
+# [3.7.0-beta.79](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.78...v3.7.0-beta.79) (2023-09-22)
+
+**Note:** Version bump only for package @ohif/mode-tmtv
+
+
+
+
+
+# [3.7.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.77...v3.7.0-beta.78) (2023-09-21)
+
+**Note:** Version bump only for package @ohif/mode-tmtv
+
+
+
+
+
+# [3.7.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.76...v3.7.0-beta.77) (2023-09-21)
+
+**Note:** Version bump only for package @ohif/mode-tmtv
+
+
+
+
+
+# [3.7.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.75...v3.7.0-beta.76) (2023-09-19)
+
+**Note:** Version bump only for package @ohif/mode-tmtv
+
+
+
+
+
+# [3.7.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.74...v3.7.0-beta.75) (2023-09-18)
+
+**Note:** Version bump only for package @ohif/mode-tmtv
+
+
+
+
+
+# [3.7.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.73...v3.7.0-beta.74) (2023-09-15)
+
+**Note:** Version bump only for package @ohif/mode-tmtv
+
+
+
+
+
+# [3.7.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.72...v3.7.0-beta.73) (2023-09-12)
+
+**Note:** Version bump only for package @ohif/mode-tmtv
+
+
+
+
+
+# [3.7.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.71...v3.7.0-beta.72) (2023-09-12)
+
+**Note:** Version bump only for package @ohif/mode-tmtv
+
+
+
+
+
+# [3.7.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.70...v3.7.0-beta.71) (2023-09-12)
+
+**Note:** Version bump only for package @ohif/mode-tmtv
+
+
+
+
+
+# [3.7.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.69...v3.7.0-beta.70) (2023-09-12)
+
+**Note:** Version bump only for package @ohif/mode-tmtv
+
+
+
+
+
+# [3.7.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.68...v3.7.0-beta.69) (2023-09-11)
+
+**Note:** Version bump only for package @ohif/mode-tmtv
+
+
+
+
+
+# [3.7.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.67...v3.7.0-beta.68) (2023-09-11)
+
+**Note:** Version bump only for package @ohif/mode-tmtv
+
+
+
+
+
+# [3.7.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.66...v3.7.0-beta.67) (2023-09-06)
+
+**Note:** Version bump only for package @ohif/mode-tmtv
+
+
+
+
+
+# [3.7.0-beta.66](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.65...v3.7.0-beta.66) (2023-09-06)
+
+**Note:** Version bump only for package @ohif/mode-tmtv
+
+
+
+
+
+# [3.7.0-beta.65](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.64...v3.7.0-beta.65) (2023-09-06)
+
+**Note:** Version bump only for package @ohif/mode-tmtv
+
+
+
+
+
+# [3.7.0-beta.64](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.63...v3.7.0-beta.64) (2023-09-05)
+
+**Note:** Version bump only for package @ohif/mode-tmtv
+
+
+
+
+
+# [3.7.0-beta.63](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.62...v3.7.0-beta.63) (2023-09-01)
+
+**Note:** Version bump only for package @ohif/mode-tmtv
+
+
+
+
+
+# [3.7.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.61...v3.7.0-beta.62) (2023-08-30)
+
+**Note:** Version bump only for package @ohif/mode-tmtv
+
+
+
+
+
+# [3.7.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.60...v3.7.0-beta.61) (2023-08-29)
+
+**Note:** Version bump only for package @ohif/mode-tmtv
+
+
+
+
+
+# [3.7.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.59...v3.7.0-beta.60) (2023-08-29)
+
+**Note:** Version bump only for package @ohif/mode-tmtv
+
+
+
+
+
+# [3.7.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.58...v3.7.0-beta.59) (2023-08-29)
+
+**Note:** Version bump only for package @ohif/mode-tmtv
+
+
+
+
+
+# [3.7.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.57...v3.7.0-beta.58) (2023-08-25)
+
+**Note:** Version bump only for package @ohif/mode-tmtv
+
+
+
+
+
+# [3.7.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.56...v3.7.0-beta.57) (2023-08-23)
+
+**Note:** Version bump only for package @ohif/mode-tmtv
diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json
index dcd6936744..9adbd25ccd 100644
--- a/modes/tmtv/package.json
+++ b/modes/tmtv/package.json
@@ -1,6 +1,6 @@
{
"name": "@ohif/mode-tmtv",
- "version": "3.6.0",
+ "version": "3.7.0-beta.85",
"description": "Total Metabolic Tumor Volume Workflow",
"author": "OHIF",
"license": "MIT",
@@ -32,13 +32,13 @@
"test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests"
},
"peerDependencies": {
- "@ohif/core": "3.6.0",
- "@ohif/extension-cornerstone": "3.6.0",
- "@ohif/extension-cornerstone-dicom-sr": "3.6.0",
- "@ohif/extension-default": "3.6.0",
- "@ohif/extension-dicom-pdf": "3.6.0",
- "@ohif/extension-dicom-video": "3.6.0",
- "@ohif/extension-measurement-tracking": "3.6.0"
+ "@ohif/core": "3.7.0-beta.85",
+ "@ohif/extension-cornerstone": "3.7.0-beta.85",
+ "@ohif/extension-cornerstone-dicom-sr": "3.7.0-beta.85",
+ "@ohif/extension-default": "3.7.0-beta.85",
+ "@ohif/extension-dicom-pdf": "3.7.0-beta.85",
+ "@ohif/extension-dicom-video": "3.7.0-beta.85",
+ "@ohif/extension-measurement-tracking": "3.7.0-beta.85"
},
"dependencies": {
"@babel/runtime": "^7.20.13"
diff --git a/modes/tmtv/src/index.js b/modes/tmtv/src/index.js
index aae993bbdc..110fb0fb75 100644
--- a/modes/tmtv/src/index.js
+++ b/modes/tmtv/src/index.js
@@ -43,12 +43,8 @@ function modeFactory({ modeConfiguration }) {
* Lifecycle hooks
*/
onModeEnter: ({ servicesManager, extensionManager, commandsManager }) => {
- const {
- toolbarService,
- toolGroupService,
- hangingProtocolService,
- displaySetService,
- } = servicesManager.services;
+ const { toolbarService, toolGroupService, hangingProtocolService, displaySetService } =
+ servicesManager.services;
const utilityModule = extensionManager.getModuleEntry(
'@ohif/extension-cornerstone.utilityModule.tools'
@@ -62,7 +58,6 @@ function modeFactory({ modeConfiguration }) {
const setWindowLevelActive = () => {
toolbarService.recordInteraction({
groupId: 'WindowLevel',
- itemId: 'WindowLevel',
interactionType: 'tool',
commands: [
{
@@ -99,9 +94,7 @@ function modeFactory({ modeConfiguration }) {
// For fusion toolGroup we need to add the volumeIds for the crosshairs
// since in the fusion viewport we don't want both PT and CT to render MIP
// when slabThickness is modified
- const {
- displaySetMatchDetails,
- } = hangingProtocolService.getMatchDetails();
+ const { displaySetMatchDetails } = hangingProtocolService.getMatchDetails();
setCrosshairsConfiguration(
displaySetMatchDetails,
@@ -143,22 +136,16 @@ function modeFactory({ modeConfiguration }) {
'getPTVOIRange',
'get PT VOI based on corrected or not',
props => {
- const ptDisplaySet = props.find(
- imageSet => imageSet.Modality === 'PT'
- );
+ const ptDisplaySet = props.find(imageSet => imageSet.Modality === 'PT');
if (!ptDisplaySet) {
return;
}
const { imageId } = ptDisplaySet.images[0];
- const imageIdScalingFactor = MetadataProvider.get(
- 'scalingModule',
- imageId
- );
+ const imageIdScalingFactor = MetadataProvider.get('scalingModule', imageId);
- const isSUVAvailable =
- imageIdScalingFactor && imageIdScalingFactor.suvbw;
+ const isSUVAvailable = imageIdScalingFactor && imageIdScalingFactor.suvbw;
if (isSUVAvailable) {
return {
@@ -196,16 +183,13 @@ function modeFactory({ modeConfiguration }) {
const isValid =
modalities_list.includes('CT') &&
modalities_list.includes('PT') &&
- !invalidModalities.some(modality =>
- modalities_list.includes(modality)
- ) &&
+ !invalidModalities.some(modality => modalities_list.includes(modality)) &&
// This is study is a 4D study with PT and CT and not a 3D study for the tmtv
// mode, until we have a better way to identify 4D studies we will use the
// StudyInstanceUID to identify the study
// Todo: when we add the 4D mode which comes with a mechanism to identify
// 4D studies we can use that
- study.studyInstanceUid !==
- '1.3.6.1.4.1.12842.1.1.14.3.20220915.105557.468.2963630849';
+ study.studyInstanceUid !== '1.3.6.1.4.1.12842.1.1.14.3.20220915.105557.468.2963630849';
// there should be both CT and PT modalities and the modality should not be SM
return isValid;
@@ -220,7 +204,8 @@ function modeFactory({ modeConfiguration }) {
return {
id: ohif.layout,
props: {
- // leftPanels: [ohif.thumbnailList],
+ leftPanels: [ohif.thumbnailList],
+ leftPanelDefaultClosed: true,
rightPanels: [tmtv.ROIThresholdPanel, tmtv.petSUV],
viewports: [
{
@@ -237,6 +222,7 @@ function modeFactory({ modeConfiguration }) {
hangingProtocol: tmtv.hangingProtocol,
sopClassHandlers: [ohif.sopClassHandler],
hotkeys: [...hotkeys.defaults.hotkeyBindings],
+ ...modeConfiguration,
};
}
diff --git a/modes/tmtv/src/initToolGroups.js b/modes/tmtv/src/initToolGroups.js
index 990b70058a..a8f4fcf31b 100644
--- a/modes/tmtv/src/initToolGroups.js
+++ b/modes/tmtv/src/initToolGroups.js
@@ -26,7 +26,24 @@ function _initToolGroups(toolNames, Enums, toolGroupService, commandsManager) {
],
passive: [
{ toolName: toolNames.Length },
- { toolName: toolNames.ArrowAnnotate },
+ {
+ toolName: toolNames.ArrowAnnotate,
+ configuration: {
+ getTextCallback: (callback, eventDetails) => {
+ commandsManager.runCommand('arrowTextCallback', {
+ callback,
+ eventDetails,
+ });
+ },
+
+ changeTextCallback: (data, eventDetails, callback) =>
+ commandsManager.runCommand('arrowTextCallback', {
+ callback,
+ data,
+ eventDetails,
+ }),
+ },
+ },
{ toolName: toolNames.Bidirectional },
{ toolName: toolNames.DragProbe },
{ toolName: toolNames.Probe },
@@ -38,157 +55,54 @@ function _initToolGroups(toolNames, Enums, toolGroupService, commandsManager) {
{ toolName: toolNames.Magnify },
],
enabled: [{ toolName: toolNames.SegmentationDisplay }],
- disabled: [{ toolName: toolNames.Crosshairs }],
- };
-
- const toolsConfig = {
- [toolNames.Crosshairs]: {
- viewportIndicators: false,
- autoPan: {
- enabled: false,
- panSize: 10,
- },
- },
- [toolNames.ArrowAnnotate]: {
- getTextCallback: (callback, eventDetails) => {
- commandsManager.runCommand('arrowTextCallback', {
- callback,
- eventDetails,
- });
+ disabled: [
+ {
+ toolName: toolNames.Crosshairs,
+ configuration: {
+ viewportIndicators: false,
+ autoPan: {
+ enabled: false,
+ panSize: 10,
+ },
+ },
},
-
- changeTextCallback: (data, eventDetails, callback) =>
- commandsManager.runCommand('arrowTextCallback', {
- callback,
- data,
- eventDetails,
- }),
- },
+ ],
};
- toolGroupService.createToolGroupAndAddTools(
- toolGroupIds.CT,
- tools,
- toolsConfig
- );
- toolGroupService.createToolGroupAndAddTools(
- toolGroupIds.PT,
- {
- active: tools.active,
- passive: [
- ...tools.passive,
- { toolName: 'RectangleROIStartEndThreshold' },
- ],
- enabled: tools.enabled,
- disabled: tools.disabled,
- },
- toolsConfig
- );
- toolGroupService.createToolGroupAndAddTools(
- toolGroupIds.Fusion,
- tools,
- toolsConfig
- );
- toolGroupService.createToolGroupAndAddTools(
- toolGroupIds.default,
- tools,
- toolsConfig
- );
+ toolGroupService.createToolGroupAndAddTools(toolGroupIds.CT, tools);
+ toolGroupService.createToolGroupAndAddTools(toolGroupIds.PT, {
+ active: tools.active,
+ passive: [...tools.passive, { toolName: 'RectangleROIStartEndThreshold' }],
+ enabled: tools.enabled,
+ disabled: tools.disabled,
+ });
+ toolGroupService.createToolGroupAndAddTools(toolGroupIds.Fusion, tools);
+ toolGroupService.createToolGroupAndAddTools(toolGroupIds.default, tools);
const mipTools = {
active: [
{
toolName: toolNames.VolumeRotateMouseWheel,
+ configuration: {
+ rotateIncrementDegrees: 0.1,
+ },
},
{
toolName: toolNames.MipJumpToClick,
+ configuration: {
+ toolGroupId: toolGroupIds.PT,
+ },
bindings: [{ mouseButton: Enums.MouseBindings.Primary }],
},
],
enabled: [{ toolName: toolNames.SegmentationDisplay }],
};
- const mipToolsConfig = {
- [toolNames.VolumeRotateMouseWheel]: {
- rotateIncrementDegrees: 0.1,
- },
- [toolNames.MipJumpToClick]: {
- targetViewportIds: ['ptAXIAL', 'ptCORONAL', 'ptSAGITTAL'],
- },
- };
-
- toolGroupService.createToolGroupAndAddTools(
- toolGroupIds.MIP,
- mipTools,
- mipToolsConfig
- );
-}
-
-function initMPRToolGroup(toolNames, Enums, toolGroupService, commandsManager) {
- const tools = {
- active: [
- {
- toolName: toolNames.WindowLevel,
- bindings: [{ mouseButton: Enums.MouseBindings.Primary }],
- },
- {
- toolName: toolNames.Pan,
- bindings: [{ mouseButton: Enums.MouseBindings.Auxiliary }],
- },
- {
- toolName: toolNames.Zoom,
- bindings: [{ mouseButton: Enums.MouseBindings.Secondary }],
- },
- { toolName: toolNames.StackScrollMouseWheel, bindings: [] },
- ],
- passive: [
- { toolName: toolNames.Length },
- { toolName: toolNames.ArrowAnnotate },
- { toolName: toolNames.Bidirectional },
- { toolName: toolNames.DragProbe },
- { toolName: toolNames.EllipticalROI },
- { toolName: toolNames.RectangleROI },
- { toolName: toolNames.StackScroll },
- { toolName: toolNames.Angle },
- { toolName: toolNames.CobbAngle },
- { toolName: toolNames.SegmentationDisplay },
- ],
- disabled: [{ toolName: toolNames.Crosshairs }],
-
- // enabled
- // disabled
- };
-
- const toolsConfig = {
- [toolNames.Crosshairs]: {
- viewportIndicators: false,
- autoPan: {
- enabled: false,
- panSize: 10,
- },
- },
- [toolNames.ArrowAnnotate]: {
- getTextCallback: (callback, eventDetails) =>
- commandsManager.runCommand('arrowTextCallback', {
- callback,
- eventDetails,
- }),
-
- changeTextCallback: (data, eventDetails, callback) =>
- commandsManager.runCommand('arrowTextCallback', {
- callback,
- data,
- eventDetails,
- }),
- },
- };
-
- toolGroupService.createToolGroupAndAddTools('mpr', tools, toolsConfig);
+ toolGroupService.createToolGroupAndAddTools(toolGroupIds.MIP, mipTools);
}
function initToolGroups(toolNames, Enums, toolGroupService, commandsManager) {
_initToolGroups(toolNames, Enums, toolGroupService, commandsManager);
- // initMPRToolGroup(toolNames, Enums, toolGroupService, commandsManager);
}
export default initToolGroups;
diff --git a/modes/tmtv/src/toolbarButtons.js b/modes/tmtv/src/toolbarButtons.js
index f6f7072213..6e336d4f83 100644
--- a/modes/tmtv/src/toolbarButtons.js
+++ b/modes/tmtv/src/toolbarButtons.js
@@ -24,9 +24,8 @@ function _createButton(type, id, icon, label, commands, tooltip) {
function _createColormap(label, colormap) {
return {
- id: label.toString(),
- title: label,
- subtitle: label,
+ id: label,
+ label,
type: 'action',
commands: [
{
@@ -36,13 +35,6 @@ function _createColormap(label, colormap) {
colormap,
},
},
- {
- commandName: 'setFusionPTColormap',
- commandOptions: {
- toolGroupId: toolGroupIds.Fusion,
- colormap,
- },
- },
],
};
}
@@ -306,9 +298,7 @@ const toolbarButtons = [
icon: 'tool-create-threshold',
label: 'Rectangle ROI Threshold',
commands: [
- ..._createCommands('setToolActive', 'RectangleROIStartEndThreshold', [
- toolGroupIds.PT,
- ]),
+ ..._createCommands('setToolActive', 'RectangleROIStartEndThreshold', [toolGroupIds.PT]),
{
commandName: 'displayNotification',
commandOptions: {
@@ -345,7 +335,6 @@ const toolbarButtons = [
tooltip: 'PET Image Colormap',
},
isAction: true, // ?
- renderer: WindowLevelMenuItem,
items: [
_createColormap('HSV', 'hsv'),
_createColormap('Hot Iron', 'hot_iron'),
diff --git a/modes/tmtv/src/utils/setCrosshairsConfiguration.js b/modes/tmtv/src/utils/setCrosshairsConfiguration.js
index cc6b4f57da..072d9443e5 100644
--- a/modes/tmtv/src/utils/setCrosshairsConfiguration.js
+++ b/modes/tmtv/src/utils/setCrosshairsConfiguration.js
@@ -13,9 +13,7 @@ export default function setCrosshairsConfiguration(
}
const { SeriesInstanceUID } = matchDetails;
- const displaySets = displaySetService.getDisplaySetsForSeries(
- SeriesInstanceUID
- );
+ const displaySets = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID);
const toolConfig = toolGroupService.getToolConfiguration(
toolGroupIds.Fusion,
diff --git a/modes/tmtv/src/utils/setFusionActiveVolume.js b/modes/tmtv/src/utils/setFusionActiveVolume.js
index ed7b1f6a98..30d42455c7 100644
--- a/modes/tmtv/src/utils/setFusionActiveVolume.js
+++ b/modes/tmtv/src/utils/setFusionActiveVolume.js
@@ -14,9 +14,7 @@ export default function setFusionActiveVolume(
const { SeriesInstanceUID } = matchDetails;
- const displaySets = displaySetService.getDisplaySetsForSeries(
- SeriesInstanceUID
- );
+ const displaySets = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID);
if (!displaySets || displaySets.length === 0) {
return;
diff --git a/package.json b/package.json
index 3d663c75a3..910a458211 100644
--- a/package.json
+++ b/package.json
@@ -12,7 +12,7 @@
]
},
"engines": {
- "node": ">=14",
+ "node": ">=16",
"npm": ">=6",
"yarn": ">=1.16.0"
},
@@ -32,7 +32,7 @@
"dev:orthanc": "lerna run dev:orthanc --stream",
"dev:dcm4chee": "lerna run dev:dcm4chee --stream",
"dev:static": "lerna run dev:static --stream",
- "orthanc:up": "docker-compose -f .docker/Nginx-Orthanc/docker-compose.yml up",
+ "orthanc:up": "docker-compose -f platform/app/.recipes/Nginx-Orthanc/docker-compose.yml up",
"preinstall": "node preinstall.js",
"start": "yarn run dev",
"test": "yarn run test:unit",
@@ -74,11 +74,12 @@
"@babel/plugin-transform-runtime": "^7.17.0",
"@babel/plugin-transform-typescript": "^7.13.0",
"@babel/preset-env": "^7.16.11",
+ "@babel/plugin-proposal-private-property-in-object": "^7.21.11",
"@babel/preset-react": "^7.16.7",
"@babel/preset-typescript": "^7.13.0",
"@types/jest": "^27.5.0",
- "@typescript-eslint/eslint-plugin": "^4.19.0",
- "@typescript-eslint/parser": "^4.19.0",
+ "@typescript-eslint/eslint-plugin": "^6.3.0",
+ "@typescript-eslint/parser": "^6.3.0",
"autoprefixer": "^10.4.4",
"babel-eslint": "9.x",
"babel-loader": "^8.2.4",
@@ -97,13 +98,13 @@
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-jsx-a11y": "^6.5.1",
"eslint-plugin-node": "^11.1.0",
- "eslint-plugin-prettier": "^4.0.0",
+ "eslint-plugin-prettier": "^5.0.0",
"eslint-plugin-promise": "^5.2.0",
"eslint-plugin-react": "^7.29.4",
"eslint-plugin-react-hooks": "^4.4.0",
"eslint-plugin-tsdoc": "^0.2.11",
"eslint-webpack-plugin": "^2.5.3",
- "execa": "^7.1.1",
+ "execa": "^8.0.1",
"extract-css-chunks-webpack-plugin": "^4.5.4",
"html-webpack-plugin": "^5.3.2",
"husky": "^3.0.0",
@@ -111,7 +112,7 @@
"jest-environment-jsdom": "^29.5.0",
"jest-canvas-mock": "^2.1.0",
"jest-junit": "^6.4.0",
- "lerna": "^6.6.1",
+ "lerna": "^7.2.0",
"lint-staged": "^9.0.2",
"mini-css-extract-plugin": "^2.1.0",
"optimize-css-assets-webpack-plugin": "^6.0.1",
@@ -119,11 +120,13 @@
"postcss-import": "^14.0.2",
"postcss-loader": "^6.1.1",
"postcss-preset-env": "^7.4.3",
- "prettier": "^1.18.2",
+ "prettier": "^3.0.3",
+ "prettier-plugin-tailwindcss": "^0.5.4",
"react-hot-loader": "^4.13.0",
"semver": "^7.5.1",
"serve": "^14.2.0",
"shader-loader": "^1.3.1",
+ "source-map-loader": "^4.0.1",
"start-server-and-test": "^1.10.0",
"style-loader": "^1.0.0",
"terser-webpack-plugin": "^5.1.4",
@@ -149,7 +152,6 @@
]
},
"resolutions": {
- "@cornerstonejs/core": "^1.1.0",
"**/@babel/runtime": "^7.20.13",
"commander": "8.3.0",
"nth-check": "^2.1.1",
diff --git a/platform/app/.all-contributorsrc b/platform/app/.all-contributorsrc
index ea8f6c9fdc..b12263a8c7 100644
--- a/platform/app/.all-contributorsrc
+++ b/platform/app/.all-contributorsrc
@@ -1,7 +1,5 @@
{
- "files": [
- "README.md"
- ],
+ "files": ["README.md"],
"imageSize": 100,
"commit": false,
"contributors": [
@@ -10,92 +8,70 @@
"name": "Erik Ziegler",
"avatar_url": "https://avatars3.githubusercontent.com/u/607793?v=4",
"profile": "https://github.com/swederik",
- "contributions": [
- "code",
- "infra"
- ]
+ "contributions": ["code", "infra"]
},
{
"login": "evren217",
"name": "Evren Ozkan",
"avatar_url": "https://avatars1.githubusercontent.com/u/4920551?v=4",
"profile": "https://github.com/evren217",
- "contributions": [
- "code"
- ]
+ "contributions": ["code"]
},
{
"login": "galelis",
"name": "Gustavo André Lelis",
"avatar_url": "https://avatars3.githubusercontent.com/u/2378326?v=4",
"profile": "https://github.com/galelis",
- "contributions": [
- "code"
- ]
+ "contributions": ["code"]
},
{
"login": "dannyrb",
"name": "Danny Brown",
"avatar_url": "https://avatars1.githubusercontent.com/u/5797588?v=4",
"profile": "http://dannyrb.com/",
- "contributions": [
- "code",
- "infra"
- ]
+ "contributions": ["code", "infra"]
},
{
"login": "allcontributors",
"name": "allcontributors[bot]",
"avatar_url": "https://avatars3.githubusercontent.com/u/46843839?v=4",
"profile": "https://github.com/all-contributors/all-contributors-bot",
- "contributions": [
- "doc"
- ]
+ "contributions": ["doc"]
},
{
"login": "EsrefDurna",
"name": "Esref Durna",
"avatar_url": "https://avatars0.githubusercontent.com/u/1230575?v=4",
"profile": "https://www.linkedin.com/in/siliconvalleynextgeneration/",
- "contributions": [
- "question"
- ]
+ "contributions": ["question"]
},
{
"login": "diego0020",
"name": "diego0020",
"avatar_url": "https://avatars3.githubusercontent.com/u/7297450?v=4",
"profile": "https://github.com/diego0020",
- "contributions": [
- "code"
- ]
+ "contributions": ["code"]
},
{
"login": "dlwire",
"name": "David Wire",
"avatar_url": "https://avatars3.githubusercontent.com/u/1167291?v=4",
"profile": "https://github.com/dlwire",
- "contributions": [
- "code"
- ]
+ "contributions": ["code"]
},
{
"login": "jfmedeiros1820",
"name": "João Felipe de Medeiros Moreira",
"avatar_url": "https://avatars1.githubusercontent.com/u/2211708?v=4",
"profile": "https://github.com/jfmedeiros1820",
- "contributions": [
- "test"
- ]
+ "contributions": ["test"]
},
{
"login": "pavertomato",
"name": "Egor Lezhnin",
"avatar_url": "https://avatars0.githubusercontent.com/u/878990?v=4",
"profile": "http://egor.lezhn.in",
- "contributions": [
- "code"
- ]
+ "contributions": ["code"]
}
],
"contributorsPerLine": 7,
diff --git a/platform/app/.gitignore b/platform/app/.gitignore
new file mode 100644
index 0000000000..e985853ed8
--- /dev/null
+++ b/platform/app/.gitignore
@@ -0,0 +1 @@
+.vercel
diff --git a/platform/app/.recipes/Nginx-Dcm4che/docker-compose-dcm4che.env b/platform/app/.recipes/Nginx-Dcm4chee/docker-compose-dcm4che.env
similarity index 100%
rename from platform/app/.recipes/Nginx-Dcm4che/docker-compose-dcm4che.env
rename to platform/app/.recipes/Nginx-Dcm4chee/docker-compose-dcm4che.env
diff --git a/platform/app/.recipes/Nginx-Dcm4che/docker-compose.yml b/platform/app/.recipes/Nginx-Dcm4chee/docker-compose.yml
similarity index 100%
rename from platform/app/.recipes/Nginx-Dcm4che/docker-compose.yml
rename to platform/app/.recipes/Nginx-Dcm4chee/docker-compose.yml
diff --git a/platform/app/.recipes/Nginx-Dcm4che/etc/localtime b/platform/app/.recipes/Nginx-Dcm4chee/etc/localtime
similarity index 100%
rename from platform/app/.recipes/Nginx-Dcm4che/etc/localtime
rename to platform/app/.recipes/Nginx-Dcm4chee/etc/localtime
diff --git a/platform/app/.recipes/Nginx-Dcm4che/etc/timezone b/platform/app/.recipes/Nginx-Dcm4chee/etc/timezone
similarity index 100%
rename from platform/app/.recipes/Nginx-Dcm4che/etc/timezone
rename to platform/app/.recipes/Nginx-Dcm4chee/etc/timezone
diff --git a/platform/app/.recipes/Nginx-Dcm4che/nginx-proxy/conf/nginx.conf b/platform/app/.recipes/Nginx-Dcm4chee/nginx-proxy/conf/nginx.conf
similarity index 100%
rename from platform/app/.recipes/Nginx-Dcm4che/nginx-proxy/conf/nginx.conf
rename to platform/app/.recipes/Nginx-Dcm4chee/nginx-proxy/conf/nginx.conf
diff --git a/platform/app/.recipes/OpenResty-Orthanc-Keycloak/.dockerignore b/platform/app/.recipes/OpenResty-Orthanc-Keycloak/.dockerignore
deleted file mode 100644
index 67f1b2e985..0000000000
--- a/platform/app/.recipes/OpenResty-Orthanc-Keycloak/.dockerignore
+++ /dev/null
@@ -1,16 +0,0 @@
-# Output
-dist/
-
-# Dependencies
-node_modules/
-
-# Root
-README.md
-Dockerfile
-
-# Misc. Config
-.git
-.DS_Store
-.gitignore
-.vscode
-.circleci
diff --git a/platform/app/.recipes/OpenResty-Orthanc-Keycloak/config/nginx.conf b/platform/app/.recipes/OpenResty-Orthanc-Keycloak/config/nginx.conf
index 7360c33610..9e496b79d9 100644
--- a/platform/app/.recipes/OpenResty-Orthanc-Keycloak/config/nginx.conf
+++ b/platform/app/.recipes/OpenResty-Orthanc-Keycloak/config/nginx.conf
@@ -22,7 +22,7 @@ http {
# lua_ settings
#
- lua_package_path '/usr/local/openresty/lualib/?.lua;;';
+ lua_package_path '/usr/local/openresty/lualib/?.lua;;/usr/local/share/lua/5.4/?.lua;;';
lua_shared_dict discovery 1m; # cache for discovery metadata documents
lua_shared_dict jwks 1m; # cache for JWKs
# lua_ssl_trusted_certificate /etc/ssl/certs/ca-certificates.crt;
@@ -182,6 +182,8 @@ http {
index index.html;
try_files $uri $uri/ /index.html;
add_header Cache-Control "no-store, no-cache, must-revalidate";
+ add_header 'Cross-Origin-Opener-Policy' 'same-origin' always;
+ add_header 'Cross-Origin-Embedder-Policy' 'require-corp' always;
}
# EXAMPLE: Reverse Proxy, no auth
diff --git a/platform/app/.recipes/OpenResty-Orthanc-Keycloak/config/ohif-keycloak-realm.json b/platform/app/.recipes/OpenResty-Orthanc-Keycloak/config/ohif-keycloak-realm.json
index 3f0e6118a6..4716e1592c 100644
--- a/platform/app/.recipes/OpenResty-Orthanc-Keycloak/config/ohif-keycloak-realm.json
+++ b/platform/app/.recipes/OpenResty-Orthanc-Keycloak/config/ohif-keycloak-realm.json
@@ -368,19 +368,8 @@
"authenticationFlowBindingOverrides": {},
"fullScopeAllowed": false,
"nodeReRegistrationTimeout": 0,
- "defaultClientScopes": [
- "web-origins",
- "role_list",
- "profile",
- "roles",
- "email"
- ],
- "optionalClientScopes": [
- "address",
- "phone",
- "offline_access",
- "microprofile-jwt"
- ]
+ "defaultClientScopes": ["web-origins", "role_list", "profile", "roles", "email"],
+ "optionalClientScopes": ["address", "phone", "offline_access", "microprofile-jwt"]
},
{
"id": "84e7b84d-ab74-452e-8a24-a0e657f100ea",
@@ -406,19 +395,8 @@
"authenticationFlowBindingOverrides": {},
"fullScopeAllowed": false,
"nodeReRegistrationTimeout": 0,
- "defaultClientScopes": [
- "web-origins",
- "role_list",
- "profile",
- "roles",
- "email"
- ],
- "optionalClientScopes": [
- "address",
- "phone",
- "offline_access",
- "microprofile-jwt"
- ]
+ "defaultClientScopes": ["web-origins", "role_list", "profile", "roles", "email"],
+ "optionalClientScopes": ["address", "phone", "offline_access", "microprofile-jwt"]
},
{
"id": "f7dd8587-4035-4590-a1c0-ebf576c4dfe3",
@@ -462,19 +440,8 @@
}
}
],
- "defaultClientScopes": [
- "web-origins",
- "role_list",
- "profile",
- "roles",
- "email"
- ],
- "optionalClientScopes": [
- "address",
- "phone",
- "offline_access",
- "microprofile-jwt"
- ]
+ "defaultClientScopes": ["web-origins", "role_list", "profile", "roles", "email"],
+ "optionalClientScopes": ["address", "phone", "offline_access", "microprofile-jwt"]
},
{
"id": "f7f76add-411b-420d-9be1-bd120ed99918",
@@ -500,19 +467,8 @@
"authenticationFlowBindingOverrides": {},
"fullScopeAllowed": false,
"nodeReRegistrationTimeout": 0,
- "defaultClientScopes": [
- "web-origins",
- "role_list",
- "profile",
- "roles",
- "email"
- ],
- "optionalClientScopes": [
- "address",
- "phone",
- "offline_access",
- "microprofile-jwt"
- ]
+ "defaultClientScopes": ["web-origins", "role_list", "profile", "roles", "email"],
+ "optionalClientScopes": ["address", "phone", "offline_access", "microprofile-jwt"]
},
{
"id": "3785434d-2af8-478c-b135-f0b11d1d3205",
@@ -598,19 +554,8 @@
}
}
],
- "defaultClientScopes": [
- "web-origins",
- "role_list",
- "profile",
- "roles",
- "email"
- ],
- "optionalClientScopes": [
- "address",
- "phone",
- "offline_access",
- "microprofile-jwt"
- ],
+ "defaultClientScopes": ["web-origins", "role_list", "profile", "roles", "email"],
+ "optionalClientScopes": ["address", "phone", "offline_access", "microprofile-jwt"],
"authorizationSettings": {
"allowRemoteResourceManagement": true,
"policyEnforcementMode": "ENFORCING",
@@ -678,19 +623,8 @@
"authenticationFlowBindingOverrides": {},
"fullScopeAllowed": false,
"nodeReRegistrationTimeout": 0,
- "defaultClientScopes": [
- "web-origins",
- "role_list",
- "profile",
- "roles",
- "email"
- ],
- "optionalClientScopes": [
- "address",
- "phone",
- "offline_access",
- "microprofile-jwt"
- ]
+ "defaultClientScopes": ["web-origins", "role_list", "profile", "roles", "email"],
+ "optionalClientScopes": ["address", "phone", "offline_access", "microprofile-jwt"]
},
{
"id": "53d51818-e1bf-4fc2-aa20-5541f2646f12",
@@ -733,19 +667,8 @@
"authenticationFlowBindingOverrides": {},
"fullScopeAllowed": true,
"nodeReRegistrationTimeout": -1,
- "defaultClientScopes": [
- "web-origins",
- "role_list",
- "profile",
- "roles",
- "email"
- ],
- "optionalClientScopes": [
- "address",
- "phone",
- "offline_access",
- "microprofile-jwt"
- ]
+ "defaultClientScopes": ["web-origins", "role_list", "profile", "roles", "email"],
+ "optionalClientScopes": ["address", "phone", "offline_access", "microprofile-jwt"]
}
],
"clientScopes": [
@@ -1233,19 +1156,8 @@
}
}
],
- "defaultDefaultClientScopes": [
- "role_list",
- "profile",
- "email",
- "roles",
- "web-origins"
- ],
- "defaultOptionalClientScopes": [
- "offline_access",
- "address",
- "phone",
- "microprofile-jwt"
- ],
+ "defaultDefaultClientScopes": ["role_list", "profile", "email", "roles", "web-origins"],
+ "defaultOptionalClientScopes": ["offline_access", "address", "phone", "microprofile-jwt"],
"browserSecurityHeaders": {
"contentSecurityPolicyReportOnly": "",
"xContentTypeOptions": "nosniff",
diff --git a/platform/app/.recipes/OpenResty-Orthanc-Keycloak/docker-compose.yml b/platform/app/.recipes/OpenResty-Orthanc-Keycloak/docker-compose.yml
index 771737f3cf..f3c0da2652 100644
--- a/platform/app/.recipes/OpenResty-Orthanc-Keycloak/docker-compose.yml
+++ b/platform/app/.recipes/OpenResty-Orthanc-Keycloak/docker-compose.yml
@@ -10,9 +10,9 @@ services:
ohif_viewer:
build:
# Project root
- context: ./../../
+ context: ./../../../../
# Relative to context
- dockerfile: ./docker/OpenResty-Orthanc-Keycloak/dockerfile
+ dockerfile: ./platform/app/.recipes/OpenResty-Orthanc-Keycloak/dockerfile
image: webapp:latest
container_name: webapp
volumes:
@@ -35,7 +35,7 @@ services:
# TODO: Update to use Postgres
# https://github.com/mrts/docker-postgresql-multiple-databases
orthanc:
- image: jodogne/orthanc-plugins:1.5.6
+ image: jodogne/orthanc-plugins
hostname: orthanc
container_name: orthanc
volumes:
diff --git a/platform/app/.recipes/OpenResty-Orthanc-Keycloak/dockerfile b/platform/app/.recipes/OpenResty-Orthanc-Keycloak/dockerfile
index 73090e8ae1..fa066291e3 100644
--- a/platform/app/.recipes/OpenResty-Orthanc-Keycloak/dockerfile
+++ b/platform/app/.recipes/OpenResty-Orthanc-Keycloak/dockerfile
@@ -23,43 +23,63 @@
# Stage 1: Build the application
-FROM node:11.2.0-slim as builder
+FROM node:18.16.1-slim as builder
RUN mkdir /usr/src/app
WORKDIR /usr/src/app
+RUN apt-get update && apt-get install -y build-essential python3
+
ENV APP_CONFIG=config/docker_openresty-orthanc-keycloak.js
ENV PATH /usr/src/app/node_modules/.bin:$PATH
-COPY package.json /usr/src/app/package.json
-COPY yarn.lock /usr/src/app/yarn.lock
+# Copy all files from the root of the OHIF source and note
+# that the Docker ignore file at the root (i.e. ./dockerignore) will filter
+# out files and directories that are not needed.
+COPY ./ /usr/src/app/
ADD . /usr/src/app/
+RUN yarn config set workspaces-experimental true
RUN yarn install
-RUN yarn run build:web
+RUN yarn run build
# Stage 2: Bundle the built application into a Docker container
# which runs openresty (nginx) using Alpine Linux
# LINK: https://hub.docker.com/r/openresty/openresty
-FROM openresty/openresty:1.15.8.1rc1-0-alpine-fat
+FROM openresty/openresty:1.21.4.2-0-bullseye-fat
RUN mkdir /var/log/nginx
-RUN apk add --no-cache openssl
-RUN apk add --no-cache openssl-dev
-RUN apk add --no-cache git
-RUN apk add --no-cache gcc
+RUN apt-get update && \
+ apt-get install -y openssl libssl-dev git gcc wget unzip make&& \
+ apt-get clean
+
+RUN apt-get install --assume-yes lua5.4 libzmq3-dev lua5.4-dev
+RUN cd /tmp && \
+ wget http://luarocks.org/releases/luarocks-3.9.2.tar.gz && \
+ tar zxpf luarocks-3.9.2.tar.gz && \
+ cd luarocks-3.9.2 && \
+ ./configure && \
+ make && \
+ make install
+
# !!!
+RUN luarocks install lua-resty-http
+# RUN luarocks install lua-nginx-module
+RUN luarocks install lua-cjson
+RUN luarocks install lua-resty-string
+RUN luarocks install lua-resty-session
+RUN luarocks install lua-resty-jwt
RUN luarocks install lua-resty-openidc
+RUN apt-get clean && rm -rf /var/lib/apt/lists/*
+
#
-RUN luarocks install lua-resty-jwt
-RUN luarocks install lua-resty-session
RUN luarocks install lua-resty-http
# !!!
-RUN luarocks install lua-resty-openidc
-RUN luarocks install luacrypto
+RUN luarocks install lua-resty-auto-ssl
+
# Copy build output to image
-COPY --from=builder /usr/src/app/build /var/www/html
+COPY --from=builder /usr/src/app/platform/app/dist /var/www/html
ENTRYPOINT ["/usr/local/openresty/nginx/sbin/nginx", "-g", "daemon off;"]
diff --git a/platform/app/.recipes/OpenResty-Orthanc-Keycloak/volumes/keycloak-themes/ohif/login/resources/css/styles.css b/platform/app/.recipes/OpenResty-Orthanc-Keycloak/volumes/keycloak-themes/ohif/login/resources/css/styles.css
index 5b5f0b9bee..ed1423365c 100644
--- a/platform/app/.recipes/OpenResty-Orthanc-Keycloak/volumes/keycloak-themes/ohif/login/resources/css/styles.css
+++ b/platform/app/.recipes/OpenResty-Orthanc-Keycloak/volumes/keycloak-themes/ohif/login/resources/css/styles.css
@@ -71,26 +71,10 @@ input[type='password']:hover {
input[type='submit'] {
border: none;
- background: -webkit-linear-gradient(
- top,
- rgba(255, 255, 255, 0.8),
- rgba(255, 255, 255, 0.1)
- );
- background: -moz-linear-gradient(
- top,
- rgba(255, 255, 255, 0.8),
- rgba(255, 255, 255, 0.1)
- );
- background: -ms-linear-gradient(
- top,
- rgba(255, 255, 255, 0.8),
- rgba(255, 255, 255, 0.1)
- );
- background: -o-linear-gradient(
- top,
- rgba(255, 255, 255, 0.8),
- rgba(255, 255, 255, 0.1)
- );
+ background: -webkit-linear-gradient(top, rgba(255, 255, 255, 0.8), rgba(255, 255, 255, 0.1));
+ background: -moz-linear-gradient(top, rgba(255, 255, 255, 0.8), rgba(255, 255, 255, 0.1));
+ background: -ms-linear-gradient(top, rgba(255, 255, 255, 0.8), rgba(255, 255, 255, 0.1));
+ background: -o-linear-gradient(top, rgba(255, 255, 255, 0.8), rgba(255, 255, 255, 0.1));
box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.5);
diff --git a/platform/app/.recipes/OpenResty-Orthanc/.dockerignore b/platform/app/.recipes/OpenResty-Orthanc/.dockerignore
deleted file mode 100644
index 67f1b2e985..0000000000
--- a/platform/app/.recipes/OpenResty-Orthanc/.dockerignore
+++ /dev/null
@@ -1,16 +0,0 @@
-# Output
-dist/
-
-# Dependencies
-node_modules/
-
-# Root
-README.md
-Dockerfile
-
-# Misc. Config
-.git
-.DS_Store
-.gitignore
-.vscode
-.circleci
diff --git a/platform/app/.recipes/OpenResty-Orthanc/config/nginx.conf b/platform/app/.recipes/OpenResty-Orthanc/config/nginx.conf
index 777e497036..aff59a1302 100644
--- a/platform/app/.recipes/OpenResty-Orthanc/config/nginx.conf
+++ b/platform/app/.recipes/OpenResty-Orthanc/config/nginx.conf
@@ -118,6 +118,8 @@ http {
index index.html;
try_files $uri $uri/ /index.html;
add_header Cache-Control "no-store, no-cache, must-revalidate";
+ add_header 'Cross-Origin-Opener-Policy' 'same-origin' always;
+ add_header 'Cross-Origin-Embedder-Policy' 'require-corp' always;
}
# EXAMPLE: Redirect server error pages to the static page /40x.html
diff --git a/platform/app/.recipes/OpenResty-Orthanc/docker-compose.yml b/platform/app/.recipes/OpenResty-Orthanc/docker-compose.yml
index 824ae5a3e1..16ec1ada70 100644
--- a/platform/app/.recipes/OpenResty-Orthanc/docker-compose.yml
+++ b/platform/app/.recipes/OpenResty-Orthanc/docker-compose.yml
@@ -34,7 +34,7 @@ services:
# TODO: Update to use Postgres
# https://github.com/mrts/docker-postgresql-multiple-databases
orthanc:
- image: jodogne/orthanc-plugins:1.5.6
+ image: jodogne/orthanc-plugins
hostname: orthanc
container_name: orthanc
volumes:
diff --git a/platform/app/.recipes/OpenResty-Orthanc/dockerfile b/platform/app/.recipes/OpenResty-Orthanc/dockerfile
index 768cbc576e..643c52a57d 100644
--- a/platform/app/.recipes/OpenResty-Orthanc/dockerfile
+++ b/platform/app/.recipes/OpenResty-Orthanc/dockerfile
@@ -23,24 +23,19 @@
# Stage 1: Build the application
-FROM node:12.22.1-slim as builder
+FROM node:18.16.1-slim as builder
RUN mkdir /usr/src/app
WORKDIR /usr/src/app
-# Copy Files
-COPY .docker /usr/src/app/.docker
-COPY .webpack /usr/src/app/.webpack
-COPY extensions /usr/src/app/extensions
-COPY modes /usr/src/app/modes
-COPY platform /usr/src/app/platform
-COPY .browserslistrc /usr/src/app/.browserslistrc
-COPY aliases.config.js /usr/src/app/aliases.config.js
-COPY babel.config.js /usr/src/app/babel.config.js
-COPY lerna.json /usr/src/app/lerna.json
-COPY package.json /usr/src/app/package.json
-COPY postcss.config.js /usr/src/app/postcss.config.js
-COPY yarn.lock /usr/src/app/yarn.lock
+# Copy all files from the root of the OHIF source and note
+# that the Docker ignore file at the root (i.e. ./dockerignore) will filter
+# out files and directories that are not needed.
+COPY ./ /usr/src/app/
+
+# For arm builds since parcel doesn't have prebuilt binaries for arm yet
+RUN apt-get update && apt-get install -y build-essential python3
+
# ADD . /usr/src/app/
RUN yarn config set workspaces-experimental true
diff --git a/platform/app/.webpack/rules/extractStyleChunks.js b/platform/app/.webpack/rules/extractStyleChunks.js
index 10e790e676..94388a353d 100644
--- a/platform/app/.webpack/rules/extractStyleChunks.js
+++ b/platform/app/.webpack/rules/extractStyleChunks.js
@@ -12,7 +12,7 @@ function extractStyleChunks(isProdBuild) {
},
},
'css-loader',
- 'postcss-loader'
+ 'postcss-loader',
],
},
];
diff --git a/platform/app/.webpack/webpack.pwa.js b/platform/app/.webpack/webpack.pwa.js
index 0da6104f5e..167f44a6f8 100644
--- a/platform/app/.webpack/webpack.pwa.js
+++ b/platform/app/.webpack/webpack.pwa.js
@@ -54,7 +54,7 @@ module.exports = (env, argv) => {
path: DIST_DIR,
filename: isProdBuild ? '[name].bundle.[chunkhash].js' : '[name].js',
publicPath: PUBLIC_URL, // Used by HtmlWebPackPlugin for asset prefix
- devtoolModuleFilenameTemplate: function(info) {
+ devtoolModuleFilenameTemplate: function (info) {
if (isProdBuild) {
return `webpack:///${info.resourcePath}`;
} else {
@@ -102,8 +102,7 @@ module.exports = (env, argv) => {
},
// Copy Dicom Microscopy Viewer build files
{
- from:
- '../../../node_modules/dicom-microscopy-viewer/dist/dynamic-import',
+ from: '../../../node_modules/dicom-microscopy-viewer/dist/dynamic-import',
to: DIST_DIR,
globOptions: {
ignore: ['**/*.min.js.map'],
@@ -111,8 +110,7 @@ module.exports = (env, argv) => {
},
// Copy dicom-image-loader build files
{
- from:
- '../../../node_modules/@cornerstonejs/dicom-image-loader/dist/dynamic-import',
+ from: '../../../node_modules/@cornerstonejs/dicom-image-loader/dist/dynamic-import',
to: DIST_DIR,
},
],
@@ -186,8 +184,6 @@ module.exports = (env, argv) => {
chunkFilename: '[id].css',
})
);
- } else {
- mergedConfig.plugins.push(new webpack.HotModuleReplacementPlugin());
}
return mergedConfig;
diff --git a/platform/app/.webpack/writePluginImportsFile.js b/platform/app/.webpack/writePluginImportsFile.js
index 41caf84b61..b9151a32c4 100644
--- a/platform/app/.webpack/writePluginImportsFile.js
+++ b/platform/app/.webpack/writePluginImportsFile.js
@@ -7,7 +7,7 @@ const autogenerationDisclaimer = `
// THIS FILE IS AUTOGENERATED AS PART OF THE EXTENSION AND MODE PLUGIN PROCESS.
// IT SHOULD NOT BE MODIFIED MANUALLY \n`;
-const extractName = (val) => (typeof val === 'string') ? val : val.packageName;
+const extractName = val => (typeof val === 'string' ? val : val.packageName);
function constructLines(input, categoryName) {
let pluginCount = 0;
@@ -24,9 +24,7 @@ function constructLines(input, categoryName) {
const packageName = extractName(entry);
- lines.addToWindowLines.push(
- `${categoryName}.push("${packageName}");\n`
- );
+ lines.addToWindowLines.push(`${categoryName}.push("${packageName}");\n`);
pluginCount++;
});
@@ -64,7 +62,8 @@ function getRuntimeLoadModesExtensions(modules) {
dynamicLoad.push(
'\n\n// Add a dynamic runtime loader',
'async function loadModule(module) {',
- ' if (typeof module !== \'string\') return module;');
+ " if (typeof module !== 'string') return module;"
+ );
modules.forEach(module => {
const packageName = extractName(module);
dynamicLoad.push(
@@ -73,7 +72,7 @@ function getRuntimeLoadModesExtensions(modules) {
' return imported.default;',
' }'
);
- })
+ });
dynamicLoad.push(
' return (await import(module)).default;',
'}\n',
@@ -82,7 +81,8 @@ function getRuntimeLoadModesExtensions(modules) {
'export default function importItems(modules) {',
' return Promise.all(modules.map(loadModule));',
'}\n',
- 'export { loadModule, modes, extensions, importItems };\n\n');
+ 'export { loadModule, modes, extensions, importItems };\n\n'
+ );
return dynamicLoad.join('\n');
}
@@ -91,14 +91,9 @@ const fromDirectory = (srcDir, path) => {
if (path[0] === '.') return srcDir + '/../../..' + path.substring(1);
if (path[0] === '~') return os.homedir() + path.substring(1);
return path;
-}
+};
-const createCopyPluginToDistForLink = (
- srcDir,
- distDir,
- plugins,
- folderName
-) => {
+const createCopyPluginToDistForLink = (srcDir, distDir, plugins, folderName) => {
return plugins
.map(plugin => {
const fromDir = fromDirectory(srcDir, plugin.directory);
@@ -107,7 +102,7 @@ const createCopyPluginToDistForLink = (
return exists
? {
from,
- to: distDir,
+ to: distDir,
toType: 'dir',
}
: undefined;
@@ -115,12 +110,7 @@ const createCopyPluginToDistForLink = (
.filter(x => !!x);
};
-const createCopyPluginToDistForBuild = (
- SRC_DIR,
- DIST_DIR,
- plugins,
- folderName
-) => {
+const createCopyPluginToDistForBuild = (SRC_DIR, DIST_DIR, plugins, folderName) => {
return plugins
.map(plugin => {
const from = `${SRC_DIR}/../../../node_modules/${plugin.packageName}/${folderName}/`;
@@ -156,17 +146,12 @@ function writePluginImportsFile(SRC_DIR, DIST_DIR) {
...pluginConfig.modes,
]);
- fs.writeFileSync(
- `${SRC_DIR}/pluginImports.js`,
- pluginImportsJsContent,
- { flag: 'w+' },
- err => {
- if (err) {
- console.error(err);
- return;
- }
+ fs.writeFileSync(`${SRC_DIR}/pluginImports.js`, pluginImportsJsContent, { flag: 'w+' }, err => {
+ if (err) {
+ console.error(err);
+ return;
}
- );
+ });
// Build packages using cli add-mode and add-extension
// will get added to the root node_modules, but the linked packages
@@ -175,21 +160,14 @@ function writePluginImportsFile(SRC_DIR, DIST_DIR) {
const copyPluginPublicToDistBuild = createCopyPluginToDistForBuild(
SRC_DIR,
DIST_DIR,
- [
- ...pluginConfig.modes,
- ...pluginConfig.extensions,
- ],
+ [...pluginConfig.modes, ...pluginConfig.extensions],
'public'
);
const copyPluginPublicToDistLink = createCopyPluginToDistForLink(
SRC_DIR,
DIST_DIR,
- [
- ...pluginConfig.modes,
- ...pluginConfig.extensions,
- ...pluginConfig.public,
- ],
+ [...pluginConfig.modes, ...pluginConfig.extensions, ...pluginConfig.public],
'public'
);
@@ -198,20 +176,14 @@ function writePluginImportsFile(SRC_DIR, DIST_DIR) {
const copyPluginDistToDistBuild = createCopyPluginToDistForBuild(
SRC_DIR,
DIST_DIR,
- [
- ...pluginConfig.modes,
- ...pluginConfig.extensions,
- ],
+ [...pluginConfig.modes, ...pluginConfig.extensions],
'dist'
);
const copyPluginDistToDistLink = createCopyPluginToDistForLink(
SRC_DIR,
DIST_DIR,
- [
- ...pluginConfig.modes,
- ...pluginConfig.extensions,
- ],
+ [...pluginConfig.modes, ...pluginConfig.extensions],
'dist'
);
diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md
index ca7b98371d..e40fea3afa 100644
--- a/platform/app/CHANGELOG.md
+++ b/platform/app/CHANGELOG.md
@@ -3,6 +3,280 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+# [3.7.0-beta.85](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.84...v3.7.0-beta.85) (2023-09-26)
+
+**Note:** Version bump only for package @ohif/app
+
+
+
+
+
+# [3.7.0-beta.84](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.83...v3.7.0-beta.84) (2023-09-26)
+
+**Note:** Version bump only for package @ohif/app
+
+
+
+
+
+# [3.7.0-beta.83](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.82...v3.7.0-beta.83) (2023-09-26)
+
+**Note:** Version bump only for package @ohif/app
+
+
+
+
+
+# [3.7.0-beta.82](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.81...v3.7.0-beta.82) (2023-09-26)
+
+**Note:** Version bump only for package @ohif/app
+
+
+
+
+
+# [3.7.0-beta.81](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.80...v3.7.0-beta.81) (2023-09-26)
+
+**Note:** Version bump only for package @ohif/app
+
+
+
+
+
+# [3.7.0-beta.80](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.79...v3.7.0-beta.80) (2023-09-22)
+
+
+### Bug Fixes
+
+* **react-select:** update react select package ([#3622](https://github.com/OHIF/Viewers/issues/3622)) ([04ca10d](https://github.com/OHIF/Viewers/commit/04ca10d8779dd15454920002f3d48afa8830de8a))
+
+
+### Features
+
+* **segmentation mode:** Add create, and export SEG with Brushes ([#3632](https://github.com/OHIF/Viewers/issues/3632)) ([48bbd62](https://github.com/OHIF/Viewers/commit/48bbd6281a497ea68670239f5426a10ee6c56dc1))
+* **SidePanel:** new side panel tab look-and-feel ([#3657](https://github.com/OHIF/Viewers/issues/3657)) ([85c899b](https://github.com/OHIF/Viewers/commit/85c899b399e2521480724be145538993721b9378))
+
+
+
+
+
+# [3.7.0-beta.79](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.78...v3.7.0-beta.79) (2023-09-22)
+
+
+### Performance Improvements
+
+* **memory:** add 16 bit texture via configuration - reduces memory by half ([#3662](https://github.com/OHIF/Viewers/issues/3662)) ([2bd3b26](https://github.com/OHIF/Viewers/commit/2bd3b26a6aa54b211ef988f3ad64ef1fe5648bab))
+
+
+
+
+
+# [3.7.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.77...v3.7.0-beta.78) (2023-09-21)
+
+**Note:** Version bump only for package @ohif/app
+
+
+
+
+
+# [3.7.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.76...v3.7.0-beta.77) (2023-09-21)
+
+**Note:** Version bump only for package @ohif/app
+
+
+
+
+
+# [3.7.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.75...v3.7.0-beta.76) (2023-09-19)
+
+
+### Bug Fixes
+
+* **keyCloak:** fix openresty keycloak deployment recipe ([#3655](https://github.com/OHIF/Viewers/issues/3655)) ([2d7721c](https://github.com/OHIF/Viewers/commit/2d7721cb581f55dc49e3baeca2411b18dd78ad74))
+
+
+
+
+
+# [3.7.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.74...v3.7.0-beta.75) (2023-09-18)
+
+**Note:** Version bump only for package @ohif/app
+
+
+
+
+
+# [3.7.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.73...v3.7.0-beta.74) (2023-09-15)
+
+**Note:** Version bump only for package @ohif/app
+
+
+
+
+
+# [3.7.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.72...v3.7.0-beta.73) (2023-09-12)
+
+
+### Bug Fixes
+
+* **health imaging:** studies not loading from healthimaging if imagepositionpatient is missing ([#3646](https://github.com/OHIF/Viewers/issues/3646)) ([74e62a1](https://github.com/OHIF/Viewers/commit/74e62a176374f720080d4e777972f70e7f2d8b2b))
+
+
+
+
+
+# [3.7.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.71...v3.7.0-beta.72) (2023-09-12)
+
+**Note:** Version bump only for package @ohif/app
+
+
+
+
+
+# [3.7.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.70...v3.7.0-beta.71) (2023-09-12)
+
+**Note:** Version bump only for package @ohif/app
+
+
+
+
+
+# [3.7.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.69...v3.7.0-beta.70) (2023-09-12)
+
+**Note:** Version bump only for package @ohif/app
+
+
+
+
+
+# [3.7.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.68...v3.7.0-beta.69) (2023-09-11)
+
+**Note:** Version bump only for package @ohif/app
+
+
+
+
+
+# [3.7.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.67...v3.7.0-beta.68) (2023-09-11)
+
+**Note:** Version bump only for package @ohif/app
+
+
+
+
+
+# [3.7.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.66...v3.7.0-beta.67) (2023-09-06)
+
+
+### Bug Fixes
+
+* **hotkeys:** preserve hotkeys if changed, and reduce re-rendering ([#3635](https://github.com/OHIF/Viewers/issues/3635)) ([94f7cfb](https://github.com/OHIF/Viewers/commit/94f7cfb08e3490488394efc42ef089ebe55e86be))
+
+
+
+
+
+# [3.7.0-beta.66](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.65...v3.7.0-beta.66) (2023-09-06)
+
+**Note:** Version bump only for package @ohif/app
+
+
+
+
+
+# [3.7.0-beta.65](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.64...v3.7.0-beta.65) (2023-09-06)
+
+
+### Features
+
+* **ImageOverlayViewerTool:** add ImageOverlayViewer tool that can render image overlay (pixel overlay) of the DICOM images ([#3163](https://github.com/OHIF/Viewers/issues/3163)) ([69115da](https://github.com/OHIF/Viewers/commit/69115da06d2d437b57e66608b435bb0bc919a90f))
+
+
+
+
+
+# [3.7.0-beta.64](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.63...v3.7.0-beta.64) (2023-09-05)
+
+
+### Bug Fixes
+
+* **nginx archive recipe:** Fixes to various configuration files. ([#3624](https://github.com/OHIF/Viewers/issues/3624)) ([3ce7225](https://github.com/OHIF/Viewers/commit/3ce72254b390f32c9aa207a0589e688805e2659d))
+
+
+
+
+
+# [3.7.0-beta.63](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.62...v3.7.0-beta.63) (2023-09-01)
+
+
+### Features
+
+* **grid:** remove viewportIndex and only rely on viewportId ([#3591](https://github.com/OHIF/Viewers/issues/3591)) ([4c6ff87](https://github.com/OHIF/Viewers/commit/4c6ff873e887cc30ffc09223f5cb99e5f94c9cdd))
+
+
+
+
+
+# [3.7.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.61...v3.7.0-beta.62) (2023-08-30)
+
+
+### Features
+
+* **data source UI config:** Popup the configuration dialogue whenever a data source is not fully configured ([#3620](https://github.com/OHIF/Viewers/issues/3620)) ([adedc8c](https://github.com/OHIF/Viewers/commit/adedc8c382e18a2e86a569e3d023cc55a157363f))
+
+
+
+
+
+# [3.7.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.60...v3.7.0-beta.61) (2023-08-29)
+
+
+### Bug Fixes
+
+* **OpenIdConnectRoutes:** fix handleUnauthenticated ([#3617](https://github.com/OHIF/Viewers/issues/3617)) ([35fc30c](https://github.com/OHIF/Viewers/commit/35fc30c5359d8199cc38ffa670c08687d2672f11))
+
+
+
+
+
+# [3.7.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.59...v3.7.0-beta.60) (2023-08-29)
+
+**Note:** Version bump only for package @ohif/app
+
+
+
+
+
+# [3.7.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.58...v3.7.0-beta.59) (2023-08-29)
+
+**Note:** Version bump only for package @ohif/app
+
+
+
+
+
+# [3.7.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.57...v3.7.0-beta.58) (2023-08-25)
+
+
+### Features
+
+* **cloud data source config:** GUI and API for configuring a cloud data source with Google cloud healthcare implementation ([#3589](https://github.com/OHIF/Viewers/issues/3589)) ([a336992](https://github.com/OHIF/Viewers/commit/a336992971c07552c9dbb6e1de43169d37762ef1))
+
+
+
+
+
+# [3.7.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.56...v3.7.0-beta.57) (2023-08-23)
+
+
+### Bug Fixes
+
+* **memory leak:** array buffer was sticking around in volume viewports ([#3611](https://github.com/OHIF/Viewers/issues/3611)) ([65b49ae](https://github.com/OHIF/Viewers/commit/65b49aeb1b5f38224e4892bdf32453500ee351f8))
+
+
+
+
+
# [4.0.0](https://github.com/OHIF/Viewers/compare/@ohif/viewer@3.11.11...@ohif/viewer@4.0.0) (2020-05-14)
diff --git a/platform/app/babel.config.js b/platform/app/babel.config.js
index fed6f05fec..325ca2a8ee 100644
--- a/platform/app/babel.config.js
+++ b/platform/app/babel.config.js
@@ -1 +1 @@
-module.exports = require("../../babel.config.js");
+module.exports = require('../../babel.config.js');
diff --git a/platform/app/cypress.config.ts b/platform/app/cypress.config.ts
index 7cf5ff77f9..c575e7c56c 100644
--- a/platform/app/cypress.config.ts
+++ b/platform/app/cypress.config.ts
@@ -30,7 +30,7 @@ export default defineConfig({
responseTimeout: 10000,
specPattern: 'cypress/integration/**/*.spec.[jt]s',
projectId: '4oe38f',
- video: false,
+ video: true,
reporter: 'junit',
reporterOptions: {
mochaFile: 'cypress/results/test-output.xml',
diff --git a/platform/app/cypress/fixtures/example.json b/platform/app/cypress/fixtures/example.json
index da18d9352a..02e4254378 100644
--- a/platform/app/cypress/fixtures/example.json
+++ b/platform/app/cypress/fixtures/example.json
@@ -2,4 +2,4 @@
"name": "Using fixtures to represent data",
"email": "hello@cypress.io",
"body": "Fixtures are a great way to mock data for responses to routes"
-}
\ No newline at end of file
+}
diff --git a/platform/app/cypress/integration/MultiStudy.spec.js b/platform/app/cypress/integration/MultiStudy.spec.js
new file mode 100644
index 0000000000..1df0a98070
--- /dev/null
+++ b/platform/app/cypress/integration/MultiStudy.spec.js
@@ -0,0 +1,27 @@
+describe('OHIF Multi Study', () => {
+ const beforeSetup = () => {
+ cy.checkStudyRouteInViewer(
+ '1.3.6.1.4.1.25403.345050719074.3824.20170125113417.1,1.2.840.113619.2.5.1762583153.215519.978957063.78',
+ '&hangingProtocolId=@ohif/hpCompare'
+ );
+ cy.expectMinimumThumbnails(4);
+ cy.initCornerstoneToolsAliases();
+ cy.initCommonElementsAliases();
+ cy.waitDicomImage();
+ };
+
+ it('Should display 2 comparison up', () => {
+ beforeSetup();
+
+ cy.get('[data-cy="viewport-pane"]').as('viewportPane');
+ cy.get('@viewportPane').its('length').should('be.eq', 4);
+
+ cy.get('[data-cy="studyDate"]').as('studyDate');
+
+ cy.get('@studyDate').should(studyDate => {
+ expect(studyDate.length).to.be.eq(4);
+ expect(studyDate.text()).to.contain('2014').contain('2001');
+ expect(studyDate.text().indexOf('2014')).to.be.lessThan(studyDate.text().indexOf('2001'));
+ });
+ });
+});
diff --git a/platform/app/cypress/integration/OHIFPdfDisplay.spec.js b/platform/app/cypress/integration/OHIFPdfDisplay.spec.js
index 8027380f66..2ef2f020ef 100644
--- a/platform/app/cypress/integration/OHIFPdfDisplay.spec.js
+++ b/platform/app/cypress/integration/OHIFPdfDisplay.spec.js
@@ -1,13 +1,9 @@
-describe('OHIF PDF Display', function() {
- beforeEach(function() {
+describe('OHIF PDF Display', function () {
+ beforeEach(function () {
cy.openStudyInViewer('2.25.317377619501274872606137091638706705333');
-
- cy.resetViewport().wait(50);
});
- it('checks if series thumbnails are being displayed', function() {
- cy.get('[data-cy="study-browser-thumbnail-no-image"]')
- .its('length')
- .should('be.gt', 0);
+ it('checks if series thumbnails are being displayed', function () {
+ cy.get('[data-cy="study-browser-thumbnail-no-image"]').its('length').should('be.gt', 0);
});
});
diff --git a/platform/app/cypress/integration/OHIFVideoDisplay.spec.js b/platform/app/cypress/integration/OHIFVideoDisplay.spec.js
index e312144ee9..ff877034af 100644
--- a/platform/app/cypress/integration/OHIFVideoDisplay.spec.js
+++ b/platform/app/cypress/integration/OHIFVideoDisplay.spec.js
@@ -1,19 +1,14 @@
-describe('OHIF Video Display', function() {
- beforeEach(function() {
+describe('OHIF Video Display', function () {
+ beforeEach(function () {
cy.openStudyInViewer('2.25.96975534054447904995905761963464388233');
- cy.resetViewport().wait(50);
});
- it('checks if series thumbnails are being displayed', function() {
- cy.get('[data-cy="study-browser-thumbnail-no-image"]')
- .its('length')
- .should('be.gt', 1);
+ it('checks if series thumbnails are being displayed', function () {
+ cy.get('[data-cy="study-browser-thumbnail-no-image"]').its('length').should('be.gt', 1);
});
it('performs double-click to load thumbnail in active viewport', () => {
- cy.get(
- '[data-cy="study-browser-thumbnail-no-image"]:nth-child(2)'
- ).dblclick();
+ cy.get('[data-cy="study-browser-thumbnail-no-image"]:nth-child(2)').dblclick();
//const expectedText = 'Ser: 3';
//cy.get('@viewportInfoBottomLeft').should('contains.text', expectedText);
diff --git a/platform/app/cypress/integration/customization/HangingProtocol.spec.js b/platform/app/cypress/integration/customization/HangingProtocol.spec.js
index e57fd7d038..4f55e620b5 100644
--- a/platform/app/cypress/integration/customization/HangingProtocol.spec.js
+++ b/platform/app/cypress/integration/customization/HangingProtocol.spec.js
@@ -1,5 +1,5 @@
describe('OHIF HP', () => {
- const beforeSetup = () => {
+ beforeEach(() => {
cy.checkStudyRouteInViewer(
'1.3.6.1.4.1.25403.345050719074.3824.20170125113417.1',
'&hangingProtocolId=@ohif/mnGrid'
@@ -7,30 +7,21 @@ describe('OHIF HP', () => {
cy.expectMinimumThumbnails(3);
cy.initCornerstoneToolsAliases();
cy.initCommonElementsAliases();
- };
+ cy.waitDicomImage();
+ });
it('Should display 3 up', () => {
- beforeSetup();
-
- cy.get('[data-cy="viewport-pane"]')
- .its('length')
- .should('be.eq', 3);
+ cy.get('[data-cy="viewport-pane"]').its('length').should('be.eq', 3);
});
it('Should navigate next/previous stage', () => {
- beforeSetup();
-
cy.get('body').type(',');
cy.wait(250);
- cy.get('[data-cy="viewport-pane"]')
- .its('length')
- .should('be.eq', 4);
+ cy.get('[data-cy="viewport-pane"]').its('length').should('be.eq', 4);
cy.get('body').type('..');
cy.wait(250);
- cy.get('[data-cy="viewport-pane"]')
- .its('length')
- .should('be.eq', 2);
+ cy.get('[data-cy="viewport-pane"]').its('length').should('be.eq', 2);
});
it('Should navigate to display set specified', () => {
diff --git a/platform/app/cypress/integration/customization/OHIFDoubleClick.spec.js b/platform/app/cypress/integration/customization/OHIFDoubleClick.spec.js
index 7b46387faf..431ff8b4ec 100644
--- a/platform/app/cypress/integration/customization/OHIFDoubleClick.spec.js
+++ b/platform/app/cypress/integration/customization/OHIFDoubleClick.spec.js
@@ -11,17 +11,21 @@ describe('OHIF Double Click', () => {
it('Should double click each viewport to one up and back', () => {
const numExpectedViewports = 3;
- cy.get('[data-cy="viewport-pane"]')
- .its('length')
- .should('be.eq', numExpectedViewports);
+ cy.get('[data-cy="viewport-pane"]').its('length').should('be.eq', numExpectedViewports);
for (let i = 0; i < numExpectedViewports; i += 1) {
+ cy.wait(2000);
+
// For whatever reason, with Cypress tests, we have to activate the
// viewport we are double clicking first.
cy.get('[data-cy="viewport-pane"]')
.eq(i)
- .trigger('mousedown', 'center', { force: true })
- .trigger('mouseup', 'center', { force: true });
+ .trigger('mousedown', 'center', {
+ force: true,
+ })
+ .trigger('mouseup', 'center', {
+ force: true,
+ });
// Wait for the viewport to be 'active'.
// TODO Is there a better way to do this?
@@ -32,21 +36,19 @@ describe('OHIF Double Click', () => {
.not('.pointer-events-none');
// The actual double click.
- cy.get('[data-cy="viewport-pane"]')
- .eq(i)
- .trigger('dblclick', 'center');
+ cy.get('[data-cy="viewport-pane"]').eq(i).trigger('dblclick', 'center');
- cy.get('[data-cy="viewport-pane"]')
- .its('length')
- .should('be.eq', 1);
+ cy.get('[data-cy="viewport-pane"]').its('length').should('be.eq', 1);
cy.get('[data-cy="viewport-pane"]')
- .eq(0)
- .trigger('dblclick', 'center');
+ .trigger('mousedown', 'center', {
+ force: true,
+ })
+ .trigger('mouseup', 'center', {
+ force: true,
+ });
- cy.get('[data-cy="viewport-pane"]')
- .its('length')
- .should('be.eq', numExpectedViewports);
+ cy.get('[data-cy="viewport-pane"]').eq(0).trigger('dblclick', 'center');
}
});
});
diff --git a/platform/app/cypress/integration/measurement-tracking/OHIFContextMenuCustomization.spec.js b/platform/app/cypress/integration/measurement-tracking/OHIFContextMenuCustomization.spec.js
index e87f1bb80c..7e6806413f 100644
--- a/platform/app/cypress/integration/measurement-tracking/OHIFContextMenuCustomization.spec.js
+++ b/platform/app/cypress/integration/measurement-tracking/OHIFContextMenuCustomization.spec.js
@@ -1,20 +1,18 @@
describe('OHIF Context Menu', function () {
beforeEach(function () {
- cy.checkStudyRouteInViewer(
- '1.2.840.113619.2.5.1762583153.215519.978957063.78'
- );
+ cy.checkStudyRouteInViewer('1.2.840.113619.2.5.1762583153.215519.978957063.78');
cy.expectMinimumThumbnails(3);
cy.initCommonElementsAliases();
cy.initCornerstoneToolsAliases();
- cy.resetViewport().wait(50);
+ cy.waitDicomImage();
});
it('checks context menu customization', function () {
// Add length measurement
cy.addLengthMeasurement();
- cy.get('[data-cy="prompt-begin-tracking-yes"]').click();
- cy.get('[data-cy="measurement-item"]').click();
+ cy.get('[data-cy="prompt-begin-tracking-yes-btn"]').as('yesBtn').click();
+ cy.get('[data-cy="measurement-item"]').as('measurementItem').click();
const [x1, y1] = [150, 100];
cy.get('@viewport')
@@ -26,17 +24,12 @@ describe('OHIF Context Menu', function () {
});
// Contextmenu is visible
- cy.get('[data-cy="context-menu"]').should('be.visible');
-
+ cy.get('[data-cy="context-menu"]').as('contextMenu').should('be.visible');
// Click "Finding" subMenu
- cy.get('[data-cy="context-menu-item"]')
- .contains('Finding')
- .click();
+ cy.get('[data-cy="context-menu-item"]').as('item').contains('Finding').click();
// Click "Finding" subMenu
- cy.get('[data-cy="context-menu-item"]')
- .contains('Aortic insufficiency')
- .click();
- cy.get('[data-cy="measurement-item"]').contains('Aortic insufficiency');
+ cy.get('[data-cy="context-menu-item"]').as('item').contains('Aortic insufficiency').click();
+ cy.get('[data-cy="measurement-item"]').as('measure-item').contains('Aortic insufficiency');
});
});
diff --git a/platform/app/cypress/integration/measurement-tracking/OHIFCornerstoneHotkeys.spec.js b/platform/app/cypress/integration/measurement-tracking/OHIFCornerstoneHotkeys.spec.js
index ddee809cac..984b038bc0 100644
--- a/platform/app/cypress/integration/measurement-tracking/OHIFCornerstoneHotkeys.spec.js
+++ b/platform/app/cypress/integration/measurement-tracking/OHIFCornerstoneHotkeys.spec.js
@@ -1,26 +1,22 @@
describe('OHIF Cornerstone Hotkeys', () => {
beforeEach(() => {
- cy.checkStudyRouteInViewer(
- '1.2.840.113619.2.5.1762583153.215519.978957063.78'
- );
+ cy.checkStudyRouteInViewer('1.2.840.113619.2.5.1762583153.215519.978957063.78');
cy.window()
.its('cornerstone')
.then(cornerstone => {
// For debugging issues where tests pass locally but fail on CI
// - Sometimes Cypress orb seems to use CPU rendering pathway
- cy.log(
- `Cornerstone using CPU Rendering?: ${cornerstone.getShouldUseCPURendering()}`
- );
+ cy.log(`Cornerstone using CPU Rendering?: ${cornerstone.getShouldUseCPURendering()}`);
});
cy.expectMinimumThumbnails(3);
cy.initCornerstoneToolsAliases();
cy.initCommonElementsAliases();
+ cy.waitDicomImage();
});
it('checks if hotkeys "R" and "L" can rotate the image', () => {
- // Hotkey R
cy.get('body').type('R');
cy.get('@viewportInfoMidLeft').should('contains.text', 'P');
cy.get('@viewportInfoMidTop').should('contains.text', 'R');
diff --git a/platform/app/cypress/integration/measurement-tracking/OHIFCornerstoneToolbar.spec.js b/platform/app/cypress/integration/measurement-tracking/OHIFCornerstoneToolbar.spec.js
index c20aa75c63..117bdea388 100644
--- a/platform/app/cypress/integration/measurement-tracking/OHIFCornerstoneToolbar.spec.js
+++ b/platform/app/cypress/integration/measurement-tracking/OHIFCornerstoneToolbar.spec.js
@@ -1,18 +1,15 @@
describe('OHIF Cornerstone Toolbar', () => {
beforeEach(() => {
- cy.checkStudyRouteInViewer(
- '1.2.840.113619.2.5.1762583153.215519.978957063.78'
- );
+ cy.checkStudyRouteInViewer('1.2.840.113619.2.5.1762583153.215519.978957063.78');
cy.expectMinimumThumbnails(3);
cy.initCornerstoneToolsAliases();
cy.initCommonElementsAliases();
- cy.get('[data-cy="study-browser-thumbnail"]')
- .eq(1)
- .click();
+ cy.get('[data-cy="study-browser-thumbnail"]').eq(1).click();
//const expectedText = 'Ser: 1';
//cy.get('@viewportInfoBottomLeft').should('contains.text', expectedText);
+ cy.waitDicomImage();
});
it('checks if all primary buttons are being displayed', () => {
@@ -70,12 +67,12 @@ describe('OHIF Cornerstone Toolbar', () => {
// });
it('checks if Levels tool will change the window width and center of an image', () => {
- //Click on button and verify if icon is active on toolbar
- cy.get('@wwwcBtnPrimary')
- .click()
- .then($wwwcBtn => {
- cy.wrap($wwwcBtn).should('have.class', 'active');
- });
+ // Wait for the DICOM image to load
+
+ // Assign an alias to the button element
+ cy.get('@wwwcBtnPrimary').as('wwwcButton');
+ cy.get('@wwwcButton').click();
+ cy.get('@wwwcButton').should('have.class', 'active');
//drags the mouse inside the viewport to be able to interact with series
cy.get('@viewport')
@@ -88,20 +85,21 @@ describe('OHIF Cornerstone Toolbar', () => {
// The exact text is slightly dependent on the viewport resolution, so leave a range
cy.get('@viewportInfoTopLeft').should($txt => {
const text = $txt.text();
- expect(text)
- .to.include('W:193')
- .include('L:479');
+ expect(text).to.include('W:193').include('L:479');
});
});
it('checks if Pan tool will move the image inside the viewport', () => {
- //Click on button and verify if icon is active on toolbar
- cy.get('@panBtn')
- .click()
- .then($panBtn => {
- cy.wrap($panBtn).should('have.class', 'active');
- });
+ // Assign an alias to the button element
+ cy.get('@panBtn').as('panButton');
+
+ // Click on the button
+ cy.get('@panButton').click();
+ // Assert that the button has the 'active' class
+ cy.get('@panButton').should('have.class', 'active');
+
+ // Trigger the pan actions on the viewport
cy.get('@viewport')
.trigger('mousedown', 'center', { buttons: 1 })
.trigger('mousemove', 'bottom', { buttons: 1 })
@@ -111,16 +109,14 @@ describe('OHIF Cornerstone Toolbar', () => {
it('checks if Length annotation can be added to viewport and shows up in the measurements panel', () => {
//Click on button and verify if icon is active on toolbar
cy.addLengthMeasurement();
- cy.get('[data-cy="viewport-notification"]').should('exist');
- cy.get('[data-cy="viewport-notification"]').should('be.visible');
- cy.get('[data-cy="prompt-begin-tracking-yes"]').click();
+ cy.get('[data-cy="viewport-notification"]').as('notif').should('exist');
+ cy.get('[data-cy="viewport-notification"]').as('notif').should('be.visible');
+ cy.get('[data-cy="prompt-begin-tracking-yes-btn"]').as('yesBtn').click();
//Verify the measurement exists in the table
cy.get('@measurementsPanel').should('be.visible');
- cy.get('[data-cy="measurement-item"]')
- .its('length')
- .should('be.at.least', 1);
+ cy.get('[data-cy="measurement-item"]').as('measure').its('length').should('be.at.least', 1);
});
/*it('checks if angle annotation can be added on viewport without causing any errors', () => {
diff --git a/platform/app/cypress/integration/measurement-tracking/OHIFDownloadSnapshotFile.spec.js b/platform/app/cypress/integration/measurement-tracking/OHIFDownloadSnapshotFile.spec.js
index 9c3752e765..c8dc00d62c 100644
--- a/platform/app/cypress/integration/measurement-tracking/OHIFDownloadSnapshotFile.spec.js
+++ b/platform/app/cypress/integration/measurement-tracking/OHIFDownloadSnapshotFile.spec.js
@@ -1,13 +1,11 @@
describe('OHIF Download Snapshot File', () => {
beforeEach(() => {
- cy.checkStudyRouteInViewer(
- '1.2.840.113619.2.5.1762583153.215519.978957063.78'
- );
+ cy.checkStudyRouteInViewer('1.2.840.113619.2.5.1762583153.215519.978957063.78');
cy.expectMinimumThumbnails(3);
cy.openDownloadImageModal();
});
- it('checks displayed information for Desktop experience', function() {
+ it('checks displayed information for Desktop experience', function () {
// Set Desktop resolution
// cy.viewport(1750, 720);
// Visual comparison
@@ -36,12 +34,8 @@ describe('OHIF Download Snapshot File', () => {
// .and('include', 'data:image');
// Check buttons
- cy.get('[data-cy="cancel-btn"]')
- .scrollIntoView()
- .should('be.visible');
- cy.get('[data-cy="download-btn"]')
- .scrollIntoView()
- .should('be.visible');
+ cy.get('[data-cy="cancel-btn"]').scrollIntoView().should('be.visible');
+ cy.get('[data-cy="download-btn"]').scrollIntoView().should('be.visible');
});
/*it('cancel changes on download modal', function() {
diff --git a/platform/app/cypress/integration/measurement-tracking/OHIFGeneralViewer.spec.js b/platform/app/cypress/integration/measurement-tracking/OHIFGeneralViewer.spec.js
index 67c1597d90..0d01bd546e 100644
--- a/platform/app/cypress/integration/measurement-tracking/OHIFGeneralViewer.spec.js
+++ b/platform/app/cypress/integration/measurement-tracking/OHIFGeneralViewer.spec.js
@@ -1,21 +1,19 @@
-describe('OHIF Study Viewer Page', function() {
- beforeEach(function() {
- cy.checkStudyRouteInViewer(
- '1.2.840.113619.2.5.1762583153.215519.978957063.78'
- );
+describe('OHIF Study Viewer Page', function () {
+ beforeEach(function () {
+ cy.checkStudyRouteInViewer('1.2.840.113619.2.5.1762583153.215519.978957063.78');
cy.expectMinimumThumbnails(3);
cy.initCommonElementsAliases();
cy.initCornerstoneToolsAliases();
});
- it('scrolls series stack using scrollbar', function() {
+ it('scrolls series stack using scrollbar', function () {
cy.scrollToIndex(13);
cy.get('@viewportInfoTopRight').should('contains.text', '14');
});
- it('performs right click to zoom', function() {
+ it('performs right click to zoom', function () {
// This is not used to activate the tool, it is used to ensure the
// top left viewport info shows the zoom values (it only shows up
// when the zoom tool is active)
@@ -25,11 +23,9 @@ describe('OHIF Study Viewer Page', function() {
cy.wrap($zoomBtn).should('have.class', 'active');
});
- const zoomLevelInitial = cy
- .get('@viewportInfoTopLeft')
- .then($viewportInfo => {
- return $viewportInfo.text().substring(6, 9);
- });
+ const zoomLevelInitial = cy.get('@viewportInfoTopLeft').then($viewportInfo => {
+ return $viewportInfo.text().substring(6, 9);
+ });
//Right click on viewport
cy.get('@viewport')
diff --git a/platform/app/cypress/integration/measurement-tracking/OHIFMeasurementPanel.spec.js b/platform/app/cypress/integration/measurement-tracking/OHIFMeasurementPanel.spec.js
index c96d777010..9f0e8b0c8d 100644
--- a/platform/app/cypress/integration/measurement-tracking/OHIFMeasurementPanel.spec.js
+++ b/platform/app/cypress/integration/measurement-tracking/OHIFMeasurementPanel.spec.js
@@ -1,16 +1,14 @@
-describe('OHIF Measurement Panel', function() {
- beforeEach(function() {
- cy.checkStudyRouteInViewer(
- '1.2.840.113619.2.5.1762583153.215519.978957063.78'
- );
+describe('OHIF Measurement Panel', function () {
+ beforeEach(function () {
+ cy.checkStudyRouteInViewer('1.2.840.113619.2.5.1762583153.215519.978957063.78');
cy.expectMinimumThumbnails(3);
cy.initCommonElementsAliases();
cy.initCornerstoneToolsAliases();
- cy.resetViewport().wait(50);
+ cy.waitDicomImage();
});
- it('checks if Measurements right panel can be hidden/displayed', function() {
+ it('checks if Measurements right panel can be hidden/displayed', function () {
cy.get('@measurementsPanel').should('exist');
cy.get('@measurementsPanel').should('be.visible');
@@ -22,31 +20,31 @@ describe('OHIF Measurement Panel', function() {
cy.get('@measurementsPanel').should('be.visible');
});
- it('checks if measurement item can be Relabeled under Measurements panel', function() {
+ it('checks if measurement item can be Relabeled under Measurements panel', function () {
// Add length measurement
cy.addLengthMeasurement();
- cy.get('[data-cy="viewport-notification"]').should('exist');
- cy.get('[data-cy="viewport-notification"]').should('be.visible');
- cy.get('[data-cy="prompt-begin-tracking-yes"]').click();
- cy.get('[data-cy="measurement-item"]').click();
- cy.get('[data-cy="measurement-item"]')
- .find('svg')
- .click();
+ cy.get('[data-cy="viewport-notification"]').as('viewportNotification').should('exist');
+ cy.get('[data-cy="viewport-notification"]').as('viewportNotification').should('be.visible');
+
+ cy.get('[data-cy="prompt-begin-tracking-yes-btn"]').as('yesBtn').click();
+
+ cy.get('[data-cy="measurement-item"]').as('measurementItem').click();
+
+ cy.get('[data-cy="measurement-item"]').find('svg').as('measurementItemSvg').click();
// enter Bone label
cy.get('[data-cy="input-annotation"]').should('exist');
cy.get('[data-cy="input-annotation"]').should('be.visible');
cy.get('[data-cy="input-annotation"]').type('Bone{enter}');
- // Verify if 'Bone' label was added
- cy.get('[data-cy="measurement-item"]').should('contain.text', 'Bone');
+ cy.get('[data-cy="measurement-item"]').as('measurementItem').should('contain.text', 'Bone');
});
- it('checks if image would jump when clicked on a measurement item', function() {
+ it('checks if image would jump when clicked on a measurement item', function () {
// Add length measurement
- cy.addLengthMeasurement();
- cy.get('[data-cy="prompt-begin-tracking-yes"]').click();
+ cy.addLengthMeasurement().wait(250);
+ cy.get('[data-cy="prompt-begin-tracking-yes-btn"]').as('yesBtn').click();
cy.scrollToIndex(13);
@@ -55,9 +53,7 @@ describe('OHIF Measurement Panel', function() {
cy.get('@viewportInfoTopRight').should('contains.text', '(14/');
// Click on first measurement item
- cy.get('[data-cy="measurement-item"]')
- .eq(0)
- .click();
+ cy.get('[data-cy="measurement-item"]').eq(0).click();
cy.get('@viewportInfoTopRight').should('contains.text', '(1/');
cy.get('@viewportInfoTopRight').should('not.contains.text', '(14/');
diff --git a/platform/app/cypress/integration/measurement-tracking/OHIFStudyBrowser.spec.js b/platform/app/cypress/integration/measurement-tracking/OHIFStudyBrowser.spec.js
index e9c70f2eb3..e92e75e5c0 100644
--- a/platform/app/cypress/integration/measurement-tracking/OHIFStudyBrowser.spec.js
+++ b/platform/app/cypress/integration/measurement-tracking/OHIFStudyBrowser.spec.js
@@ -1,22 +1,17 @@
-describe('OHIF Study Viewer Page', function() {
- beforeEach(function() {
- cy.checkStudyRouteInViewer(
- '1.2.840.113619.2.5.1762583153.215519.978957063.78'
- );
+describe('OHIF Study Viewer Page', function () {
+ beforeEach(function () {
+ cy.checkStudyRouteInViewer('1.2.840.113619.2.5.1762583153.215519.978957063.78');
cy.expectMinimumThumbnails(3);
cy.initCommonElementsAliases();
cy.initCornerstoneToolsAliases();
- cy.resetViewport().wait(50);
});
- it('checks if series thumbnails are being displayed', function() {
- cy.get('[data-cy="study-browser-thumbnail"]')
- .its('length')
- .should('be.gt', 1);
+ it('checks if series thumbnails are being displayed', function () {
+ cy.get('[data-cy="study-browser-thumbnail"]').its('length').should('be.gt', 1);
});
- it('drags and drop a series thumbnail into viewport', function() {
+ it('drags and drop a series thumbnail into viewport', function () {
// Can't use the native drag version as the element should be rerendered
// cy.get('[data-cy="study-browser-thumbnail"]:nth-child(2)') //element to be dragged
// .drag('.cornerstone-canvas'); //dropzone element
@@ -38,7 +33,7 @@ describe('OHIF Study Viewer Page', function() {
//cy.get('@viewportInfoBottomLeft').should('contain.text', expectedText);
});
- it('checks if Series left panel can be hidden/displayed', function() {
+ it('checks if Series left panel can be hidden/displayed', function () {
cy.get('@seriesPanel').should('exist');
cy.get('@seriesPanel').should('be.visible');
diff --git a/platform/app/cypress/integration/study-list/OHIFStudyList.spec.js b/platform/app/cypress/integration/study-list/OHIFStudyList.spec.js
index 0d07b52a52..9809a1b7c5 100644
--- a/platform/app/cypress/integration/study-list/OHIFStudyList.spec.js
+++ b/platform/app/cypress/integration/study-list/OHIFStudyList.spec.js
@@ -1,8 +1,8 @@
//We are keeping the hardcoded results values for the study list tests
-//this is intended to be running in a controled docker environment with test data.
-describe('OHIF Study List', function() {
- context('Desktop resolution', function() {
- beforeEach(function() {
+//this is intended to be running in a controlled docker environment with test data.
+describe('OHIF Study List', function () {
+ context('Desktop resolution', function () {
+ beforeEach(function () {
cy.openStudyList();
cy.viewport(1750, 720);
@@ -14,7 +14,7 @@ describe('OHIF Study List', function() {
cy.get('@StudyDescription').clear();
});
- it('Displays several studies initially', function() {
+ it('Displays several studies initially', function () {
cy.waitStudyList();
cy.get('@searchResult2').should($list => {
expect($list.length).to.be.greaterThan(1);
@@ -23,7 +23,7 @@ describe('OHIF Study List', function() {
});
});
- it('searches Patient Name with exact string', function() {
+ it('searches Patient Name with exact string', function () {
cy.get('@PatientName').type('Juno');
//Wait result list to be displayed
cy.waitStudyList();
@@ -33,7 +33,7 @@ describe('OHIF Study List', function() {
});
});
- it('searches MRN with exact string', function() {
+ it('searches MRN with exact string', function () {
cy.get('@MRN').type('0000003');
//Wait result list to be displayed
cy.waitStudyList();
@@ -43,7 +43,7 @@ describe('OHIF Study List', function() {
});
});
- it('searches Accession with exact string', function() {
+ it('searches Accession with exact string', function () {
cy.get('@AccessionNumber').type('321');
//Wait result list to be displayed
cy.waitStudyList();
@@ -53,7 +53,7 @@ describe('OHIF Study List', function() {
});
});
- it('searches Description with exact string', function() {
+ it('searches Description with exact string', function () {
cy.get('@StudyDescription').type('PETCT');
//Wait result list to be displayed
cy.waitStudyList();
diff --git a/platform/app/cypress/integration/volume/MPR.spec.js b/platform/app/cypress/integration/volume/MPR.spec.js
index 080f8100a0..c2f8d94ccd 100644
--- a/platform/app/cypress/integration/volume/MPR.spec.js
+++ b/platform/app/cypress/integration/volume/MPR.spec.js
@@ -1,8 +1,6 @@
describe('OHIF MPR', () => {
beforeEach(() => {
- cy.checkStudyRouteInViewer(
- '1.3.6.1.4.1.25403.345050719074.3824.20170125113417.1'
- );
+ cy.checkStudyRouteInViewer('1.3.6.1.4.1.25403.345050719074.3824.20170125113417.1');
cy.expectMinimumThumbnails(3);
cy.initCornerstoneToolsAliases();
cy.initCommonElementsAliases();
@@ -66,19 +64,17 @@ describe('OHIF MPR', () => {
.then(cornerstone => {
const viewports = cornerstone.getRenderingEngines()[0].getViewports();
- const imageData1 = viewports[0].getImageData();
- const imageData2 = viewports[1].getImageData();
- const imageData3 = viewports[2].getImageData();
+ // The stack viewport still exists after the changes to viewportId and inde
+ const imageData1 = viewports[1].getImageData();
+ const imageData2 = viewports[2].getImageData();
+ const imageData3 = viewports[3].getImageData();
// for some reason map doesn't work here
cy.wrap(imageData1).should('not.be', undefined);
cy.wrap(imageData2).should('not.be', undefined);
cy.wrap(imageData3).should('not.be', undefined);
- cy.wrap(imageData1.dimensions).should(
- 'deep.equal',
- imageData2.dimensions
- );
+ cy.wrap(imageData1.dimensions).should('deep.equal', imageData2.dimensions);
cy.wrap(imageData1.origin).should('deep.equal', imageData2.origin);
});
@@ -88,10 +84,7 @@ describe('OHIF MPR', () => {
cy.get('.cornerstone-canvas').should('have.length', 1);
// should not have any div under it
- cy.get('[data-cy="thumbnail-viewport-labels"]')
- .eq(2)
- .find('div')
- .should('have.length', 0);
+ cy.get('[data-cy="thumbnail-viewport-labels"]').eq(2).find('div').should('have.length', 0);
});
it('should correctly render Crosshairs for MPR', () => {
diff --git a/platform/app/cypress/plugins/index.js b/platform/app/cypress/plugins/index.js
index aa9918d215..8dd144a6c1 100644
--- a/platform/app/cypress/plugins/index.js
+++ b/platform/app/cypress/plugins/index.js
@@ -18,4 +18,4 @@
module.exports = (on, config) => {
// `on` is used to hook into various events Cypress emits
// `config` is the resolved Cypress config
-}
+};
diff --git a/platform/app/cypress/support/DragSimulator.js b/platform/app/cypress/support/DragSimulator.js
index 673a4668f7..c6a8e5f943 100644
--- a/platform/app/cypress/support/DragSimulator.js
+++ b/platform/app/cypress/support/DragSimulator.js
@@ -6,18 +6,12 @@ export const DragSimulator = {
counter: 0,
rectsEqual(r1, r2) {
return (
- r1.top === r2.top &&
- r1.right === r2.right &&
- r1.bottom === r2.bottom &&
- r1.left === r2.left
+ r1.top === r2.top && r1.right === r2.right && r1.bottom === r2.bottom && r1.left === r2.left
);
},
get dropped() {
const currentSourcePosition = this.source.getBoundingClientRect();
- return !this.rectsEqual(
- this.initialSourcePosition,
- currentSourcePosition
- );
+ return !this.rectsEqual(this.initialSourcePosition, currentSourcePosition);
},
get hasTriesLeft() {
return this.counter < this.MAX_TRIES;
@@ -71,8 +65,6 @@ export const DragSimulator = {
simulate(sourceWrapper, targetSelector, position = 'center') {
return cy
.get(targetSelector)
- .then(targetWrapper =>
- this.init(sourceWrapper.get(0), targetWrapper.get(0), position)
- );
+ .then(targetWrapper => this.init(sourceWrapper.get(0), targetWrapper.get(0), position));
},
};
diff --git a/platform/app/cypress/support/aliases.js b/platform/app/cypress/support/aliases.js
index 52dac3ae52..1bda29b36a 100644
--- a/platform/app/cypress/support/aliases.js
+++ b/platform/app/cypress/support/aliases.js
@@ -3,16 +3,10 @@ export function initCornerstoneToolsAliases() {
cy.get('[data-cy="StackScroll"]').as('stackScrollBtn');
cy.get('[data-cy="Zoom"]').as('zoomBtn');
cy.get('[data-cy="WindowLevel-split-button-primary"]').as('wwwcBtnPrimary');
- cy.get('[data-cy="WindowLevel-split-button-secondary"]').as(
- 'wwwcBtnSecondary'
- );
+ cy.get('[data-cy="WindowLevel-split-button-secondary"]').as('wwwcBtnSecondary');
cy.get('[data-cy="Pan"]').as('panBtn');
- cy.get('[data-cy="MeasurementTools-split-button-primary"]').as(
- 'measurementToolsBtnPrimary'
- );
- cy.get('[data-cy="MeasurementTools-split-button-secondary"]').as(
- 'measurementToolsBtnSecondary'
- );
+ cy.get('[data-cy="MeasurementTools-split-button-primary"]').as('measurementToolsBtnPrimary');
+ cy.get('[data-cy="MeasurementTools-split-button-secondary"]').as('measurementToolsBtnSecondary');
// cy.get('[data-cy="Angle"]').as('angleBtn');
cy.get('[data-cy="MoreTools-split-button-primary"]').as('moreBtnPrimary');
cy.get('[data-cy="MoreTools-split-button-secondary"]').as('moreBtnSecondary');
@@ -37,12 +31,8 @@ export function initCommonElementsAliases() {
cy.get('[data-cy="studyBrowser-panel"]').as('seriesPanel');
cy.get('[data-cy="viewport-overlay-top-right"]').as('viewportInfoTopRight');
cy.get('[data-cy="viewport-overlay-top-left"]').as('viewportInfoTopLeft');
- cy.get('[data-cy="viewport-overlay-bottom-right"]').as(
- 'viewportInfoBottomRight'
- );
- cy.get('[data-cy="viewport-overlay-bottom-left"]').as(
- 'viewportInfoBottomLeft'
- );
+ cy.get('[data-cy="viewport-overlay-bottom-right"]').as('viewportInfoBottomRight');
+ cy.get('[data-cy="viewport-overlay-bottom-left"]').as('viewportInfoBottomLeft');
cy.get('.left-mid.orientation-marker').as('viewportInfoMidLeft');
cy.get('.top-mid.orientation-marker').as('viewportInfoMidTop');
@@ -50,9 +40,7 @@ export function initCommonElementsAliases() {
//Creating aliases for Routes
export function initRouteAliases() {
- cy.intercept('GET', '**/series**', { statusCode: 200, body: [] }).as(
- 'getStudySeries'
- );
+ cy.intercept('GET', '**/series**', { statusCode: 200, body: [] }).as('getStudySeries');
// Todo: for some reason cypress does not redirect to the correct url
// so we intercept the request and redirect it to the correct url
@@ -73,7 +61,7 @@ export function initStudyListAliasesOnDesktop() {
cy.get('[data-cy="study-list-results"] > tr').as('searchResult2');
// We can't use data attributes (e.g. data--cy) for these since
- // they are using third party libraires (i.e. react-dates, react-select)
+ // they are using third party libraries (i.e. react-dates, react-select)
cy.get('#date-range-studyDate-start-date').as('studyListStartDate');
cy.get('#date-range-studyDate-end-date').as('studyListEndDate');
cy.get('#input-modalities').as('modalities');
diff --git a/platform/app/cypress/support/commands.js b/platform/app/cypress/support/commands.js
index df760db103..70a5cfe814 100644
--- a/platform/app/cypress/support/commands.js
+++ b/platform/app/cypress/support/commands.js
@@ -46,7 +46,7 @@ Cypress.Commands.add('openStudy', PatientName => {
cy.openStudyList();
cy.get('#filter-patientNameOrId').type(PatientName);
// cy.get('@getStudies').then(() => {
- cy.wait(1000);
+ cy.waitQueryList();
cy.get('[data-cy="study-list-results"]', { timeout: 5000 })
.contains(PatientName)
@@ -56,16 +56,14 @@ Cypress.Commands.add('openStudy', PatientName => {
Cypress.Commands.add(
'checkStudyRouteInViewer',
- (StudyInstanceUID, otherParams = '') => {
+ (StudyInstanceUID, otherParams = '', mode = '/basic-test') => {
cy.location('pathname').then($url => {
cy.log($url);
- if (
- $url == 'blank' ||
- !$url.includes(`/basic-test/${StudyInstanceUID}${otherParams}`)
- ) {
- cy.openStudyInViewer(StudyInstanceUID, otherParams);
+ if ($url === 'blank' || !$url.includes(`${mode}/${StudyInstanceUID}${otherParams}`)) {
+ cy.openStudyInViewer(StudyInstanceUID, otherParams, mode);
cy.waitDicomImage();
- cy.wait(2000);
+ // Very short wait to ensure pending updates are handled
+ cy.wait(25);
}
});
}
@@ -73,11 +71,14 @@ Cypress.Commands.add(
Cypress.Commands.add(
'openStudyInViewer',
- (StudyInstanceUID, otherParams = '') => {
- cy.visit(`/basic-test?StudyInstanceUIDs=${StudyInstanceUID}${otherParams}`);
+ (StudyInstanceUID, otherParams = '', mode = '/basic-test') => {
+ cy.visit(`${mode}?StudyInstanceUIDs=${StudyInstanceUID}${otherParams}`);
}
);
+Cypress.Commands.add('waitQueryList', () => {
+ cy.get('[data-querying="false"]');
+});
/**
* Command to search for a Modality and open the study.
*
@@ -87,14 +88,9 @@ Cypress.Commands.add('openStudyModality', Modality => {
cy.initRouteAliases();
cy.visit('/');
- cy.get('#filter-accessionOrModalityOrDescription')
- .type(Modality)
- .wait(2000);
+ cy.get('#filter-accessionOrModalityOrDescription').type(Modality).waitQueryList();
- cy.get('[data-cy="study-list-results"]')
- .contains(Modality)
- .first()
- .click();
+ cy.get('[data-cy="study-list-results"]').contains(Modality).first().click();
});
/**
@@ -113,7 +109,7 @@ Cypress.Commands.add('openStudyList', () => {
// For some reason cypress 12.x does not like to stub the network request
// so we just wait herer for 1 second
// cy.wait('@getStudies');
- cy.wait(1000);
+ cy.waitQueryList();
});
Cypress.Commands.add('waitStudyList', () => {
@@ -148,18 +144,21 @@ Cypress.Commands.add('drag', { prevSubject: 'element' }, (...args) =>
* @param {number[]} secondClick - Click position [x, y]
*/
Cypress.Commands.add('addLine', (viewport, firstClick, secondClick) => {
- cy.get(viewport).then($viewport => {
- const [x1, y1] = firstClick;
- const [x2, y2] = secondClick;
+ const performClick = (alias, x, y) => {
+ cy.get(alias).as(`axu-${alias}`).click(x, y, { force: true, multiple: true }).wait(1000);
+ };
- // TODO: Added a wait which appears necessary in Cornerstone Tools >4?
- cy.wrap($viewport)
- .click(x1, y1)
- .wait(100)
- .trigger('mousemove', { clientX: x2, clientY: y2 })
- .click(x2, y2)
- .wait(100);
- });
+ cy.get(viewport).as('viewportAlias');
+ const [x1, y1] = firstClick;
+ const [x2, y2] = secondClick;
+
+ // First click
+ performClick('@viewportAlias', x1, y1);
+
+ // Second click
+ performClick('@viewportAlias', x2, y2);
+
+ cy.wait(1000);
});
/**
@@ -171,95 +170,64 @@ Cypress.Commands.add('addLine', (viewport, firstClick, secondClick) => {
* @param {number[]} secondClick - Click position [x, y]
* @param {number[]} thirdClick - Click position [x, y]
*/
-Cypress.Commands.add(
- 'addAngle',
- (viewport, firstClick, secondClick, thirdClick) => {
- cy.get(viewport).then($viewport => {
- const [x1, y1] = firstClick;
- const [x2, y2] = secondClick;
- const [x3, y3] = thirdClick;
-
- cy.wrap($viewport)
- .click(x1, y1, { force: true })
- .trigger('mousemove', { clientX: x2, clientY: y2 })
- .click(x2, y2, { force: true })
- .trigger('mousemove', { clientX: x3, clientY: y3 })
- .click(x3, y3, { force: true });
- });
- }
-);
+Cypress.Commands.add('addAngle', (viewport, firstClick, secondClick, thirdClick) => {
+ cy.get(viewport).then($viewport => {
+ const [x1, y1] = firstClick;
+ const [x2, y2] = secondClick;
+ const [x3, y3] = thirdClick;
+
+ cy.wrap($viewport)
+ .click(x1, y1, { force: true })
+ .trigger('mousemove', { clientX: x2, clientY: y2 })
+ .click(x2, y2, { force: true })
+ .trigger('mousemove', { clientX: x3, clientY: y3 })
+ .click(x3, y3, { force: true });
+ });
+});
Cypress.Commands.add('expectMinimumThumbnails', (seriesToWait = 1) => {
cy.get('[data-cy="study-browser-thumbnail"]', { timeout: 50000 }).should(
- $itemList => {
- expect($itemList.length >= seriesToWait).to.be.true;
- }
+ 'have.length.gte',
+ seriesToWait
);
});
//Command to wait DICOM image to load into the viewport
-Cypress.Commands.add('waitDicomImage', (timeout = 50000) => {
- const loaded = cy.isPageLoaded();
-
- if (loaded) {
- cy.window()
- .its('cornerstone')
- .then({ timeout }, $cornerstone => {
- return new Cypress.Promise(resolve => {
- const onEvent = renderedEvt => {
- const element = renderedEvt.detail.element;
-
- element.removeEventListener(
- $cornerstone.Enums.Events.IMAGE_RENDERED,
- onEvent
- );
- $cornerstone.eventTarget.removeEventListener(
- $cornerstone.Enums.Events.IMAGE_RENDERED,
- onEvent
- );
- resolve();
- };
- const onEnabled = enabledEvt => {
- const element = enabledEvt.detail.element;
-
- element.addEventListener(
- $cornerstone.Enums.Events.IMAGE_RENDERED,
- onEvent
- );
-
- $cornerstone.eventTarget.removeEventListener(
- $cornerstone.Enums.Events.ELEMENT_ENABLED,
- onEnabled
- );
- };
- const enabledElements = $cornerstone.getEnabledElements();
- if (enabledElements && enabledElements.length) {
- // Sometimes the page finishes rendering before this gets run,
- // if so, just resolve immediately.
- resolve();
- } else {
- $cornerstone.eventTarget.addEventListener(
- $cornerstone.Enums.Events.ELEMENT_ENABLED,
- onEnabled
- );
+Cypress.Commands.add('waitDicomImage', (mode = '/basic-test', timeout = 50000) => {
+ cy.window()
+ .its('cornerstone')
+ .should($cornerstone => {
+ const enabled = $cornerstone.getEnabledElements();
+ if (enabled?.length) {
+ enabled.forEach((item, i) => {
+ if (item.viewport.viewportStatus !== $cornerstone.Enums.ViewportStatus.RENDERED) {
+ throw new Error(`Viewport ${i} in state ${item.viewport.viewportStatus}`);
}
});
- });
- }
+ } else {
+ throw new Error('No enabled elements');
+ }
+ });
+ // This shouldn't be necessary, but seems to be.
+ cy.wait(250);
+ cy.log('DICOM image loaded');
});
//Command to reset and clear all the changes made to the viewport
Cypress.Commands.add('resetViewport', () => {
- //Click on More button
+ // Assign an alias to the More button
cy.get('[data-cy="MoreTools-split-button-primary"]')
.should('have.attr', 'data-tool', 'Reset')
- .as('moreBtn')
- .click();
+ .as('moreBtn');
+
+ // Use the alias to click on the More button
+ cy.get('@moreBtn').click();
});
Cypress.Commands.add('imageZoomIn', () => {
cy.initCornerstoneToolsAliases();
cy.get('@zoomBtn').click();
+ cy.wait(25);
//drags the mouse inside the viewport to be able to interact with series
cy.get('@viewport')
@@ -271,6 +239,7 @@ Cypress.Commands.add('imageZoomIn', () => {
Cypress.Commands.add('imageContrast', () => {
cy.initCornerstoneToolsAliases();
cy.get('@wwwcBtnPrimary').click();
+ cy.wait(25);
//drags the mouse inside the viewport to be able to interact with series
cy.get('@viewport')
@@ -303,14 +272,15 @@ Cypress.Commands.add('initStudyListAliasesOnDesktop', () => {
Cypress.Commands.add(
'addLengthMeasurement',
(firstClick = [150, 100], secondClick = [130, 170]) => {
- cy.get('@measurementToolsBtnPrimary')
- .should('have.attr', 'data-tool', 'Length')
- .click()
- .then($lengthBtn => {
- cy.wrap($lengthBtn).should('have.class', 'active');
- });
-
- cy.addLine('.viewport-element', firstClick, secondClick);
+ // Assign an alias to the button element
+ cy.get('@measurementToolsBtnPrimary').as('lengthButton');
+
+ cy.get('@lengthButton').should('have.attr', 'data-tool', 'Length');
+ cy.get('@lengthButton').click();
+
+ cy.get('@lengthButton').should('have.class', 'active');
+
+ cy.addLine('.cornerstone-canvas', firstClick, secondClick);
}
);
@@ -318,8 +288,10 @@ Cypress.Commands.add(
Cypress.Commands.add(
'addAngleMeasurement',
(initPos = [180, 390], midPos = [300, 410], finalPos = [180, 450]) => {
+ cy.get('[data-cy="MeasurementTools-split-button-secondary"]').click();
cy.get('[data-cy="Angle"]').click();
- cy.addAngle('.viewport-element', initPos, midPos, finalPos);
+
+ cy.addAngle('.cornerstone-canvas', initPos, midPos, finalPos);
}
);
@@ -401,22 +373,19 @@ Cypress.Commands.add('setLayout', (columns = 1, rows = 1) => {
.eq(columns - 1)
.click();
- cy.wait(1000);
+ cy.wait(10);
+ cy.waitDicomImage();
});
function convertCanvas(documentClone) {
- documentClone
- .querySelectorAll('canvas')
- .forEach(selector => canvasToImage(selector));
+ documentClone.querySelectorAll('canvas').forEach(selector => canvasToImage(selector));
return documentClone;
}
function unconvertCanvas(documentClone) {
// Remove previously generated images
- documentClone
- .querySelectorAll('[data-percy-image]')
- .forEach(selector => selector.remove());
+ documentClone.querySelectorAll('[data-percy-image]').forEach(selector => selector.remove());
// Restore canvas visibility
documentClone.querySelectorAll('[data-percy-canvas]').forEach(selector => {
selector.removeAttribute('data-percy-canvas');
@@ -426,9 +395,7 @@ function unconvertCanvas(documentClone) {
function canvasToImage(selectorOrEl) {
let canvas =
- typeof selectorOrEl === 'object'
- ? selectorOrEl
- : document.querySelector(selectorOrEl);
+ typeof selectorOrEl === 'object' ? selectorOrEl : document.querySelector(selectorOrEl);
let image = document.createElement('img');
let canvasImageBase64 = canvas.toDataURL('image/png');
@@ -456,10 +423,7 @@ Cypress.Commands.add('openPreferences', () => {
.scrollIntoView()
.click()
.then(() => {
- cy.get('[data-cy="options-dropdown"]')
- .last()
- .click()
- .wait(200);
+ cy.get('[data-cy="options-dropdown"]').last().click().wait(200);
});
}
});
@@ -494,9 +458,7 @@ Cypress.Commands.add('closePreferences', () => {
cy.get('body').then(body => {
// Close notification if displayed
if (body.find('.sb-closeIcon').length > 0) {
- cy.get('.sb-closeIcon')
- .first()
- .click({ force: true });
+ cy.get('.sb-closeIcon').first().click({ force: true });
}
// Close User Preferences Modal (if displayed)
@@ -508,9 +470,11 @@ Cypress.Commands.add('closePreferences', () => {
Cypress.Commands.add('selectPreferencesTab', tabAlias => {
cy.initPreferencesModalAliases();
- cy.get(tabAlias)
- .click()
- .should('have.class', 'active');
+
+ cy.get(tabAlias).as('selectedTab');
+ cy.get('@selectedTab').click();
+ cy.get('@selectedTab').should('have.class', 'active');
+
initPreferencesModalFooterBtnAliases();
});
@@ -526,9 +490,7 @@ Cypress.Commands.add('resetUserHotkeyPreferences', () => {
// Close Success Message overlay (if displayed)
cy.get('body').then(body => {
if (body.find('.sb-closeIcon').length > 0) {
- cy.get('.sb-closeIcon')
- .first()
- .click({ force: true });
+ cy.get('.sb-closeIcon').first().click({ force: true });
}
// Click on Save Button
cy.get('@saveBtn').click();
@@ -547,28 +509,23 @@ Cypress.Commands.add('resetUserGeneralPreferences', () => {
// Close Success Message overlay (if displayed)
cy.get('body').then(body => {
if (body.find('.sb-closeIcon').length > 0) {
- cy.get('.sb-closeIcon')
- .first()
- .click({ force: true });
+ cy.get('.sb-closeIcon').first().click({ force: true });
}
// Click on Save Button
cy.get('@saveBtn').click();
});
});
-Cypress.Commands.add(
- 'setNewHotkeyShortcutOnUserPreferencesModal',
- (function_label, shortcut) => {
- // Within scopes all `.get` and `.contains` to within the matched elements
- // dom instead of checking from document
- cy.get('.HotkeysPreferences').within(() => {
- cy.contains(function_label) // label we're looking for
- .parent()
- .find('input') // closest input to that label
- .type(shortcut, { force: true }); // Set new shortcut for that function
- });
- }
-);
+Cypress.Commands.add('setNewHotkeyShortcutOnUserPreferencesModal', (function_label, shortcut) => {
+ // Within scopes all `.get` and `.contains` to within the matched elements
+ // dom instead of checking from document
+ cy.get('.HotkeysPreferences').within(() => {
+ cy.contains(function_label) // label we're looking for
+ .parent()
+ .find('input') // closest input to that label
+ .type(shortcut, { force: true }); // Set new shortcut for that function
+ });
+});
Cypress.Commands.add(
'setWindowLevelPreset',
@@ -603,9 +560,7 @@ Cypress.Commands.add(
Cypress.Commands.add('openDownloadImageModal', () => {
// Click on More button
- cy.get('[data-cy="Capture"]')
- .as('captureBtn')
- .click();
+ cy.get('[data-cy="Capture"]').as('captureBtn').click();
});
Cypress.Commands.add('setLanguage', (language, save = true) => {
@@ -622,16 +577,12 @@ Cypress.Commands.add('setLanguage', (language, save = true) => {
// Close Success Message overlay (if displayed)
cy.get('body').then(body => {
if (body.find('.sb-closeIcon').length > 0) {
- cy.get('.sb-closeIcon')
- .first()
- .click({ force: true });
+ cy.get('.sb-closeIcon').first().click({ force: true });
}
//Click on Save/Cancel button
const toClick = save ? '@saveBtn' : '@cancelBtn';
- cy.get(toClick)
- .scrollIntoView()
- .click();
+ cy.get(toClick).scrollIntoView().click();
});
});
@@ -639,7 +590,7 @@ Cypress.Commands.add('setLanguage', (language, save = true) => {
// https://github.com/cypress-io/cypress/issues/7362
// uncomment this if you really need the network logs
const origLog = Cypress.log;
-Cypress.log = function(opts, ...other) {
+Cypress.log = function (opts, ...other) {
if (opts.displayName === 'script' || opts.name === 'request') {
return;
}
diff --git a/platform/app/jestBabelTransform.js b/platform/app/jestBabelTransform.js
index d1b645bc78..81c0a5cc96 100644
--- a/platform/app/jestBabelTransform.js
+++ b/platform/app/jestBabelTransform.js
@@ -1,5 +1,5 @@
-const babelJest = require("babel-jest");
+const babelJest = require('babel-jest');
module.exports = babelJest.createTransformer({
- rootMode: "upward"
+ rootMode: 'upward',
});
diff --git a/platform/app/netlify.toml b/platform/app/netlify.toml
index 4af3dd5977..bc07d914e5 100644
--- a/platform/app/netlify.toml
+++ b/platform/app/netlify.toml
@@ -19,7 +19,7 @@
[build.environment]
# If 'production', `yarn install` does not install devDependencies
NODE_ENV = "development"
- NODE_VERSION = "16.14.0"
+ NODE_VERSION = "18.16.1"
YARN_VERSION = "1.22.5"
RUBY_VERSION = "2.6.2"
YARN_FLAGS = "--no-ignore-optional --pure-lockfile"
@@ -43,3 +43,5 @@
# COMMENT: For sharedArrayBuffer, see https://developer.chrome.com/blog/enabling-shared-array-buffer/
Cross-Origin-Embedder-Policy = "require-corp"
Cross-Origin-Opener-Policy = "same-origin"
+ # set CORP to cross-origin for anyone who wants to use the viewer in an iframe
+ Cross-Origin-Resource-Policy = "cross-origin"
diff --git a/platform/app/package.json b/platform/app/package.json
index a95f7e0d3a..49ffe0b881 100644
--- a/platform/app/package.json
+++ b/platform/app/package.json
@@ -1,6 +1,6 @@
{
"name": "@ohif/app",
- "version": "3.6.0",
+ "version": "3.7.0-beta.85",
"productVersion": "3.4.0",
"description": "OHIF Viewer",
"author": "OHIF Contributors",
@@ -30,7 +30,6 @@
"dev:dcm4chee": "cross-env NODE_ENV=development APP_CONFIG=config/local_dcm4chee.js webpack serve --config .webpack/webpack.pwa.js",
"dev:static": "cross-env NODE_ENV=development APP_CONFIG=config/local_static.js webpack serve --config .webpack/webpack.pwa.js",
"dev:viewer": "yarn run dev",
- "preinstall": "node preinstall.js",
"start": "yarn run dev",
"test:e2e": "cypress open",
"test:e2e:ci": "percy exec -- cypress run --config video=false --record --browser chrome --spec 'cypress/integration/visual-regression/**/*'",
@@ -51,23 +50,23 @@
"@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2",
"@cornerstonejs/codec-openjpeg": "^1.2.2",
"@cornerstonejs/codec-openjph": "^2.4.2",
- "@cornerstonejs/dicom-image-loader": "^0.6.8",
- "@ohif/core": "3.6.0",
- "@ohif/extension-cornerstone": "3.6.0",
- "@ohif/extension-cornerstone-dicom-rt": "3.6.0",
- "@ohif/extension-cornerstone-dicom-seg": "3.6.0",
- "@ohif/extension-cornerstone-dicom-sr": "3.6.0",
- "@ohif/extension-default": "3.6.0",
- "@ohif/extension-dicom-microscopy": "3.6.0",
- "@ohif/extension-dicom-pdf": "3.6.0",
- "@ohif/extension-dicom-video": "3.6.0",
- "@ohif/extension-test": "3.6.0",
- "@ohif/i18n": "3.6.0",
- "@ohif/mode-basic-dev-mode": "3.6.0",
- "@ohif/mode-longitudinal": "3.6.0",
- "@ohif/mode-microscopy": "3.6.0",
- "@ohif/mode-test": "3.6.0",
- "@ohif/ui": "3.6.0",
+ "@cornerstonejs/dicom-image-loader": "^1.16.5",
+ "@ohif/core": "3.7.0-beta.85",
+ "@ohif/extension-cornerstone": "3.7.0-beta.85",
+ "@ohif/extension-cornerstone-dicom-rt": "3.7.0-beta.85",
+ "@ohif/extension-cornerstone-dicom-seg": "3.7.0-beta.85",
+ "@ohif/extension-cornerstone-dicom-sr": "3.7.0-beta.85",
+ "@ohif/extension-default": "3.7.0-beta.85",
+ "@ohif/extension-dicom-microscopy": "3.7.0-beta.85",
+ "@ohif/extension-dicom-pdf": "3.7.0-beta.85",
+ "@ohif/extension-dicom-video": "3.7.0-beta.85",
+ "@ohif/extension-test": "3.7.0-beta.85",
+ "@ohif/i18n": "3.7.0-beta.85",
+ "@ohif/mode-basic-dev-mode": "3.7.0-beta.85",
+ "@ohif/mode-longitudinal": "3.7.0-beta.85",
+ "@ohif/mode-microscopy": "3.7.0-beta.85",
+ "@ohif/mode-test": "3.7.0-beta.85",
+ "@ohif/ui": "3.7.0-beta.85",
"@types/react": "^17.0.38",
"classnames": "^2.3.2",
"core-js": "^3.16.1",
@@ -95,7 +94,7 @@
"devDependencies": {
"@babel/plugin-proposal-private-methods": "^7.18.6",
"@percy/cypress": "^3.1.1",
- "cypress": "^12.6.0",
+ "cypress": "^13.2.0",
"cypress-file-upload": "^3.5.3",
"glob": "^8.0.3",
"identity-obj-proxy": "3.0.x",
diff --git a/platform/app/pluginConfig.json b/platform/app/pluginConfig.json
index 2f892db6c8..08a42deb0f 100644
--- a/platform/app/pluginConfig.json
+++ b/platform/app/pluginConfig.json
@@ -57,6 +57,9 @@
{
"packageName": "@ohif/mode-longitudinal"
},
+ {
+ "packageName": "@ohif/mode-segmentation"
+ },
{
"packageName": "@ohif/mode-tmtv"
},
diff --git a/platform/app/postcss.config.js b/platform/app/postcss.config.js
index 6402436e4a..a0daaed081 100644
--- a/platform/app/postcss.config.js
+++ b/platform/app/postcss.config.js
@@ -1 +1 @@
-module.exports = require("../../postcss.config.js");
+module.exports = require('../../postcss.config.js');
diff --git a/platform/app/public/_redirects b/platform/app/public/_redirects
index 9730bd0d3c..c3f7726c34 100644
--- a/platform/app/public/_redirects
+++ b/platform/app/public/_redirects
@@ -1,6 +1,6 @@
# Specific to our deploy-preview
# Our docs are published using CircleCI + GitBook
-# Confgure redirects using netlify.toml
+# Configure redirects using netlify.toml
# Spa
/* /index.html 200
diff --git a/platform/app/public/assets/yandex-browser-manifest.json b/platform/app/public/assets/yandex-browser-manifest.json
index ce9b1c12ec..846829c994 100644
--- a/platform/app/public/assets/yandex-browser-manifest.json
+++ b/platform/app/public/assets/yandex-browser-manifest.json
@@ -6,4 +6,4 @@
"color": "#fff",
"show_title": true
}
-}
\ No newline at end of file
+}
diff --git a/platform/app/public/config/aws.js b/platform/app/public/config/aws.js
index 35ffbde5ca..f7dd9a0698 100644
--- a/platform/app/public/config/aws.js
+++ b/platform/app/public/config/aws.js
@@ -4,7 +4,7 @@ window.config = {
modes: [],
showStudyList: true,
// below flag is for performance reasons, but it might not work for all servers
- omitQuotationForMultipartRequest: true,
+
showWarningMessageForCrossOrigin: true,
showCPUFallbackMessage: true,
showLoadingIndicator: true,
@@ -13,38 +13,39 @@ window.config = {
defaultDataSourceName: 'dicomweb',
dataSources: [
{
- friendlyName: 'dcmjs DICOMWeb Server',
namespace: '@ohif/extension-default.dataSourcesModule.dicomweb',
sourceName: 'dicomweb',
configuration: {
+ friendlyName: 'dcmjs DICOMWeb Server',
name: 'DCM4CHEE',
// Something here to check build
wadoUriRoot: 'https://myserver.com/dicomweb',
qidoRoot: 'https://myserver.com/dicomweb',
wadoRoot: 'https://myserver.com/dicomweb',
qidoSupportsIncludeField: false,
- supportsReject: false,
imageRendering: 'wadors',
thumbnailRendering: 'wadors',
enableStudyLazyLoad: true,
supportsFuzzyMatching: false,
supportsWildcard: false,
staticWado: true,
+ omitQuotationForMultipartRequest: true,
},
},
{
- friendlyName: 'dicom json',
namespace: '@ohif/extension-default.dataSourcesModule.dicomjson',
sourceName: 'dicomjson',
configuration: {
+ friendlyName: 'dicom json',
name: 'json',
},
},
{
- friendlyName: 'dicom local',
namespace: '@ohif/extension-default.dataSourcesModule.dicomlocal',
sourceName: 'dicomlocal',
- configuration: {},
+ configuration: {
+ friendlyName: 'dicom local',
+ },
},
],
httpErrorHandler: error => {
diff --git a/platform/app/public/config/default.js b/platform/app/public/config/default.js
index 8ff91875b8..00013529ea 100644
--- a/platform/app/public/config/default.js
+++ b/platform/app/public/config/default.js
@@ -3,15 +3,11 @@ window.config = {
// whiteLabeling: {},
extensions: [],
modes: [],
- customizationService: {
- // Shows a custom route -access via http://localhost:3000/custom
- // helloPage: '@ohif/extension-default.customizationModule.helloPage',
- },
+ customizationService: {},
showStudyList: true,
// some windows systems have issues with more than 3 web workers
maxNumberOfWebWorkers: 3,
// below flag is for performance reasons, but it might not work for all servers
- omitQuotationForMultipartRequest: true,
showWarningMessageForCrossOrigin: true,
showCPUFallbackMessage: true,
showLoadingIndicator: true,
@@ -37,21 +33,41 @@ window.config = {
// },
dataSources: [
{
- friendlyName: 'dcmjs DICOMWeb Server',
namespace: '@ohif/extension-default.dataSourcesModule.dicomweb',
sourceName: 'dicomweb',
configuration: {
+ friendlyName: 'AWS S3 Static wado server',
name: 'aws',
- // old server
- // wadoUriRoot: 'https://server.dcmjs.org/dcm4chee-arc/aets/DCM4CHEE/wado',
- // qidoRoot: 'https://server.dcmjs.org/dcm4chee-arc/aets/DCM4CHEE/rs',
- // wadoRoot: 'https://server.dcmjs.org/dcm4chee-arc/aets/DCM4CHEE/rs',
-
- // new server
wadoUriRoot: 'https://d33do7qe4w26qo.cloudfront.net/dicomweb',
qidoRoot: 'https://d33do7qe4w26qo.cloudfront.net/dicomweb',
wadoRoot: 'https://d33do7qe4w26qo.cloudfront.net/dicomweb',
-
+ qidoSupportsIncludeField: false,
+ imageRendering: 'wadors',
+ thumbnailRendering: 'wadors',
+ enableStudyLazyLoad: true,
+ supportsFuzzyMatching: false,
+ supportsWildcard: true,
+ staticWado: true,
+ singlepart: 'bulkdata,video',
+ // whether the data source should use retrieveBulkData to grab metadata,
+ // and in case of relative path, what would it be relative to, options
+ // are in the series level or study level (some servers like series some study)
+ bulkDataURI: {
+ enabled: true,
+ relativeResolution: 'studies',
+ },
+ omitQuotationForMultipartRequest: true,
+ },
+ },
+ {
+ namespace: '@ohif/extension-default.dataSourcesModule.dicomweb',
+ sourceName: 'dicomweb2',
+ configuration: {
+ friendlyName: 'AWS S3 Static wado secondary server',
+ name: 'aws',
+ wadoUriRoot: 'https://d28o5kq0jsoob5.cloudfront.net/dicomweb',
+ qidoRoot: 'https://d28o5kq0jsoob5.cloudfront.net/dicomweb',
+ wadoRoot: 'https://d28o5kq0jsoob5.cloudfront.net/dicomweb',
qidoSupportsIncludeField: false,
supportsReject: false,
imageRendering: 'wadors',
@@ -68,29 +84,31 @@ window.config = {
enabled: true,
relativeResolution: 'studies',
},
+ omitQuotationForMultipartRequest: true,
},
},
{
- friendlyName: 'dicomweb delegating proxy',
namespace: '@ohif/extension-default.dataSourcesModule.dicomwebproxy',
sourceName: 'dicomwebproxy',
configuration: {
+ friendlyName: 'dicomweb delegating proxy',
name: 'dicomwebproxy',
},
},
{
- friendlyName: 'dicom json',
namespace: '@ohif/extension-default.dataSourcesModule.dicomjson',
sourceName: 'dicomjson',
configuration: {
+ friendlyName: 'dicom json',
name: 'json',
},
},
{
- friendlyName: 'dicom local',
namespace: '@ohif/extension-default.dataSourcesModule.dicomlocal',
sourceName: 'dicomlocal',
- configuration: {},
+ configuration: {
+ friendlyName: 'dicom local',
+ },
},
],
httpErrorHandler: error => {
diff --git a/platform/app/public/config/default_16bit.js b/platform/app/public/config/default_16bit.js
new file mode 100644
index 0000000000..20b14d6b9b
--- /dev/null
+++ b/platform/app/public/config/default_16bit.js
@@ -0,0 +1,189 @@
+window.config = {
+ routerBasename: '/',
+ // whiteLabeling: {},
+ extensions: [],
+ modes: [],
+ customizationService: {
+ // Shows a custom route -access via http://localhost:3000/custom
+ // helloPage: '@ohif/extension-default.customizationModule.helloPage',
+ },
+ showStudyList: true,
+ // some windows systems have issues with more than 3 web workers
+ maxNumberOfWebWorkers: 3,
+ // below flag is for performance reasons, but it might not work for all servers
+ omitQuotationForMultipartRequest: true,
+ showWarningMessageForCrossOrigin: false,
+ showCPUFallbackMessage: true,
+ showLoadingIndicator: true,
+ use16BitDataType: true,
+ useSharedArrayBuffer: 'AUTO',
+ maxNumRequests: {
+ interaction: 100,
+ thumbnail: 75,
+ // Prefetch number is dependent on the http protocol. For http 2 or
+ // above, the number of requests can be go a lot higher.
+ prefetch: 25,
+ },
+ // filterQueryParam: false,
+ dataSources: [
+ {
+ friendlyName: 'dcmjs DICOMWeb Server',
+ namespace: '@ohif/extension-default.dataSourcesModule.dicomweb',
+ sourceName: 'dicomweb',
+ configuration: {
+ name: 'aws',
+ // old server
+ // wadoUriRoot: 'https://server.dcmjs.org/dcm4chee-arc/aets/DCM4CHEE/wado',
+ // qidoRoot: 'https://server.dcmjs.org/dcm4chee-arc/aets/DCM4CHEE/rs',
+ // wadoRoot: 'https://server.dcmjs.org/dcm4chee-arc/aets/DCM4CHEE/rs',
+ // new server
+ wadoUriRoot: 'https://domvja9iplmyu.cloudfront.net/dicomweb',
+ qidoRoot: 'https://domvja9iplmyu.cloudfront.net/dicomweb',
+ wadoRoot: 'https://domvja9iplmyu.cloudfront.net/dicomweb',
+ qidoSupportsIncludeField: false,
+ supportsReject: false,
+ imageRendering: 'wadors',
+ thumbnailRendering: 'wadors',
+ enableStudyLazyLoad: true,
+ supportsFuzzyMatching: false,
+ supportsWildcard: true,
+ staticWado: true,
+ singlepart: 'bulkdata,video,pdf',
+ },
+ },
+ {
+ friendlyName: 'dicom json',
+ namespace: '@ohif/extension-default.dataSourcesModule.dicomjson',
+ sourceName: 'dicomjson',
+ configuration: {
+ name: 'json',
+ },
+ },
+ {
+ friendlyName: 'dicom local',
+ namespace: '@ohif/extension-default.dataSourcesModule.dicomlocal',
+ sourceName: 'dicomlocal',
+ configuration: {},
+ },
+ ],
+ httpErrorHandler: error => {
+ // This is 429 when rejected from the public idc sandbox too often.
+ console.warn(error.status);
+
+ // Could use services manager here to bring up a dialog/modal if needed.
+ console.warn('test, navigate to https://ohif.org/');
+ },
+ // whiteLabeling: {
+ // /* Optional: Should return a React component to be rendered in the "Logo" section of the application's Top Navigation bar */
+ // createLogoComponentFn: function (React) {
+ // return React.createElement(
+ // 'a',
+ // {
+ // target: '_self',
+ // rel: 'noopener noreferrer',
+ // className: 'text-purple-600 line-through',
+ // href: '/',
+ // },
+ // React.createElement('img',
+ // {
+ // src: './customLogo.svg',
+ // className: 'w-8 h-8',
+ // }
+ // ))
+ // },
+ // },
+ defaultDataSourceName: 'dicomweb',
+ hotkeys: [
+ {
+ commandName: 'incrementActiveViewport',
+ label: 'Next Viewport',
+ keys: ['right'],
+ },
+ {
+ commandName: 'decrementActiveViewport',
+ label: 'Previous Viewport',
+ keys: ['left'],
+ },
+ { commandName: 'rotateViewportCW', label: 'Rotate Right', keys: ['r'] },
+ { commandName: 'rotateViewportCCW', label: 'Rotate Left', keys: ['l'] },
+ { commandName: 'invertViewport', label: 'Invert', keys: ['i'] },
+ {
+ commandName: 'flipViewportHorizontal',
+ label: 'Flip Horizontally',
+ keys: ['h'],
+ },
+ {
+ commandName: 'flipViewportVertical',
+ label: 'Flip Vertically',
+ keys: ['v'],
+ },
+ { commandName: 'scaleUpViewport', label: 'Zoom In', keys: ['+'] },
+ { commandName: 'scaleDownViewport', label: 'Zoom Out', keys: ['-'] },
+ { commandName: 'fitViewportToWindow', label: 'Zoom to Fit', keys: ['='] },
+ { commandName: 'resetViewport', label: 'Reset', keys: ['space'] },
+ { commandName: 'nextImage', label: 'Next Image', keys: ['down'] },
+ { commandName: 'previousImage', label: 'Previous Image', keys: ['up'] },
+ // {
+ // commandName: 'previousViewportDisplaySet',
+ // label: 'Previous Series',
+ // keys: ['pagedown'],
+ // },
+ // {
+ // commandName: 'nextViewportDisplaySet',
+ // label: 'Next Series',
+ // keys: ['pageup'],
+ // },
+ {
+ commandName: 'setToolActive',
+ commandOptions: { toolName: 'Zoom' },
+ label: 'Zoom',
+ keys: ['z'],
+ },
+ // ~ Window level presets
+ {
+ commandName: 'windowLevelPreset1',
+ label: 'W/L Preset 1',
+ keys: ['1'],
+ },
+ {
+ commandName: 'windowLevelPreset2',
+ label: 'W/L Preset 2',
+ keys: ['2'],
+ },
+ {
+ commandName: 'windowLevelPreset3',
+ label: 'W/L Preset 3',
+ keys: ['3'],
+ },
+ {
+ commandName: 'windowLevelPreset4',
+ label: 'W/L Preset 4',
+ keys: ['4'],
+ },
+ {
+ commandName: 'windowLevelPreset5',
+ label: 'W/L Preset 5',
+ keys: ['5'],
+ },
+ {
+ commandName: 'windowLevelPreset6',
+ label: 'W/L Preset 6',
+ keys: ['6'],
+ },
+ {
+ commandName: 'windowLevelPreset7',
+ label: 'W/L Preset 7',
+ keys: ['7'],
+ },
+ {
+ commandName: 'windowLevelPreset8',
+ label: 'W/L Preset 8',
+ keys: ['8'],
+ },
+ {
+ commandName: 'windowLevelPreset9',
+ label: 'W/L Preset 9',
+ keys: ['9'],
+ },
+ ],
+};
diff --git a/platform/app/public/config/demo.js b/platform/app/public/config/demo.js
index b4d43b8619..5dbd96ab15 100644
--- a/platform/app/public/config/demo.js
+++ b/platform/app/public/config/demo.js
@@ -4,17 +4,16 @@ window.config = {
extensions: [],
showStudyList: true,
// below flag is for performance reasons, but it might not work for all servers
- omitQuotationForMultipartRequest: true,
showWarningMessageForCrossOrigin: true,
strictZSpacingForVolumeViewport: true,
showCPUFallbackMessage: true,
defaultDataSourceName: 'dicomweb',
dataSources: [
{
- friendlyName: 'DCM4CHEE Server',
namespace: '@ohif/extension-default.dataSourcesModule.dicomweb',
sourceName: 'dicomweb',
configuration: {
+ friendlyName: 'DCM4CHEE Server',
name: 'DCM4CHEE',
wadoUriRoot: 'https://d33do7qe4w26qo.cloudfront.net/dicomweb',
qidoRoot: 'https://d33do7qe4w26qo.cloudfront.net/dicomweb',
@@ -25,6 +24,7 @@ window.config = {
bulkDataURI: {
enabled: false,
},
+ omitQuotationForMultipartRequest: true,
},
},
],
diff --git a/platform/app/public/config/dicomweb-server.js b/platform/app/public/config/dicomweb-server.js
index 4db9904176..a3522e587c 100644
--- a/platform/app/public/config/dicomweb-server.js
+++ b/platform/app/public/config/dicomweb-server.js
@@ -4,7 +4,6 @@ window.config = {
modes: [],
showStudyList: true,
// below flag is for performance reasons, but it might not work for all servers
- omitQuotationForMultipartRequest: true,
showWarningMessageForCrossOrigin: true,
showCPUFallbackMessage: true,
showLoadingIndicator: true,
@@ -13,10 +12,10 @@ window.config = {
defaultDataSourceName: 'dicomweb',
dataSources: [
{
- friendlyName: 'dcmjs DICOMWeb Server',
namespace: '@ohif/extension-default.dataSourcesModule.dicomweb',
sourceName: 'dicomweb',
configuration: {
+ friendlyName: 'dcmjs DICOMWeb Server',
name: 'DCM4CHEE',
wadoUriRoot: 'http://localhost:5985',
qidoRoot: 'http://localhost:5985',
@@ -28,21 +27,23 @@ window.config = {
enableStudyLazyLoad: true,
supportsFuzzyMatching: false,
supportsWildcard: false,
+ omitQuotationForMultipartRequest: true,
},
},
{
- friendlyName: 'dicom json',
namespace: '@ohif/extension-default.dataSourcesModule.dicomjson',
sourceName: 'dicomjson',
configuration: {
+ friendlyName: 'dicom json',
name: 'json',
},
},
{
- friendlyName: 'dicom local',
namespace: '@ohif/extension-default.dataSourcesModule.dicomlocal',
sourceName: 'dicomlocal',
- configuration: {},
+ configuration: {
+ friendlyName: 'dicom local',
+ },
},
],
};
diff --git a/platform/app/public/config/dicomweb_relative.js b/platform/app/public/config/dicomweb_relative.js
index af024abd70..bfa51c34ae 100644
--- a/platform/app/public/config/dicomweb_relative.js
+++ b/platform/app/public/config/dicomweb_relative.js
@@ -5,7 +5,6 @@ window.config = {
showStudyList: true,
maxNumberOfWebWorkers: 3,
// below flag is for performance reasons, but it might not work for all servers
- omitQuotationForMultipartRequest: true,
showWarningMessageForCrossOrigin: true,
showCPUFallbackMessage: true,
showLoadingIndicator: true,
@@ -14,16 +13,15 @@ window.config = {
defaultDataSourceName: 'dicomweb',
dataSources: [
{
- friendlyName: 'Static WADO Local Data',
namespace: '@ohif/extension-default.dataSourcesModule.dicomweb',
sourceName: 'dicomweb',
configuration: {
+ friendlyName: 'Static WADO Local Data',
name: 'DCM4CHEE',
wadoUriRoot: '/dicomweb',
qidoRoot: '/dicomweb',
wadoRoot: '/dicomweb',
qidoSupportsIncludeField: false,
- supportsReject: false,
imageRendering: 'wadors',
thumbnailRendering: 'wadors',
enableStudyLazyLoad: true,
@@ -31,21 +29,23 @@ window.config = {
supportsWildcard: true,
staticWado: true,
singlepart: 'bulkdata,video,pdf',
+ omitQuotationForMultipartRequest: true,
},
},
{
- friendlyName: 'dicom json',
namespace: '@ohif/extension-default.dataSourcesModule.dicomjson',
sourceName: 'dicomjson',
configuration: {
+ friendlyName: 'dicom json',
name: 'json',
},
},
{
- friendlyName: 'dicom local',
namespace: '@ohif/extension-default.dataSourcesModule.dicomlocal',
sourceName: 'dicomlocal',
- configuration: {},
+ configuration: {
+ friendlyName: 'dicom local',
+ },
},
],
httpErrorHandler: error => {
diff --git a/platform/app/public/config/docker_nginx-orthanc.js b/platform/app/public/config/docker_nginx-orthanc.js
index 60d7f083ce..97316bc8ad 100644
--- a/platform/app/public/config/docker_nginx-orthanc.js
+++ b/platform/app/public/config/docker_nginx-orthanc.js
@@ -4,7 +4,6 @@ window.config = {
extensions: [],
modes: [],
// below flag is for performance reasons, but it might not work for all servers
- omitQuotationForMultipartRequest: true,
showWarningMessageForCrossOrigin: true,
showCPUFallbackMessage: true,
showLoadingIndicator: true,
@@ -12,10 +11,10 @@ window.config = {
defaultDataSourceName: 'dicomweb',
dataSources: [
{
- friendlyName: 'Orthanc Server',
namespace: '@ohif/extension-default.dataSourcesModule.dicomweb',
sourceName: 'dicomweb',
configuration: {
+ friendlyName: 'Orthanc Server',
name: 'Orthanc',
wadoUriRoot: '/wado',
qidoRoot: '/dicom-web',
@@ -23,21 +22,23 @@ window.config = {
qidoSupportsIncludeField: false,
imageRendering: 'wadors',
thumbnailRendering: 'wadors',
+ omitQuotationForMultipartRequest: true,
},
},
{
- friendlyName: 'dicom json',
namespace: '@ohif/extension-default.dataSourcesModule.dicomjson',
sourceName: 'dicomjson',
configuration: {
+ friendlyName: 'dicom json',
name: 'json',
},
},
{
- friendlyName: 'dicom local',
namespace: '@ohif/extension-default.dataSourcesModule.dicomlocal',
sourceName: 'dicomlocal',
- configuration: {},
+ configuration: {
+ friendlyName: 'dicom local',
+ },
},
],
};
diff --git a/platform/app/public/config/docker_openresty-orthanc-keycloak.js b/platform/app/public/config/docker_openresty-orthanc-keycloak.js
index 07709a7ebe..5e9f7854f3 100644
--- a/platform/app/public/config/docker_openresty-orthanc-keycloak.js
+++ b/platform/app/public/config/docker_openresty-orthanc-keycloak.js
@@ -1,32 +1,39 @@
window.config = {
routerBasename: '/',
showStudyList: true,
+ extensions: [],
+ modes: [],
// below flag is for performance reasons, but it might not work for all servers
- omitQuotationForMultipartRequest: true,
+
showWarningMessageForCrossOrigin: true,
showCPUFallbackMessage: true,
showLoadingIndicator: true,
strictZSpacingForVolumeViewport: true,
- servers: {
- // This is an array, but we'll only use the first entry for now
- dicomWeb: [
- {
+ defaultDataSourceName: 'dicomweb',
+ dataSources: [
+ {
+ namespace: '@ohif/extension-default.dataSourcesModule.dicomweb',
+ sourceName: 'dicomweb',
+ configuration: {
+ friendlyName: 'Orthanc Server',
name: 'Orthanc',
- wadoUriRoot: 'http://127.0.0.1/pacs/wado',
+ wadoUriRoot: 'http://127.0.0.1/pacs/dicom-web',
qidoRoot: 'http://127.0.0.1/pacs/dicom-web',
wadoRoot: 'http://127.0.0.1/pacs/dicom-web',
- qidoSupportsIncludeField: false,
+ qidoSupportsIncludeField: true,
+ supportsReject: true,
imageRendering: 'wadors',
thumbnailRendering: 'wadors',
- // REQUIRED TAG:
- // TODO: Remove tag after https://github.com/OHIF/ohif-core/pull/19 is merged and we bump version
- // requestOptions: {
- // undefined to use JWT + Bearer auth
- // auth: 'orthanc:orthanc',
- // },
+ enableStudyLazyLoad: true,
+ supportsFuzzyMatching: true,
+ supportsWildcard: true,
+ dicomUploadEnabled: true,
+ bulkDataURI: {
+ enabled: true,
+ },
},
- ],
- },
+ },
+ ],
// This is an array, but we'll only use the first entry for now
oidc: [
{
diff --git a/platform/app/public/config/docker_openresty-orthanc.js b/platform/app/public/config/docker_openresty-orthanc.js
index 33e4138779..2500760bf2 100644
--- a/platform/app/public/config/docker_openresty-orthanc.js
+++ b/platform/app/public/config/docker_openresty-orthanc.js
@@ -4,7 +4,7 @@ window.config = {
extensions: [],
modes: [],
// below flag is for performance reasons, but it might not work for all servers
- omitQuotationForMultipartRequest: true,
+
showWarningMessageForCrossOrigin: true,
showCPUFallbackMessage: true,
showLoadingIndicator: true,
@@ -12,32 +12,41 @@ window.config = {
defaultDataSourceName: 'dicomweb',
dataSources: [
{
- friendlyName: 'Orthanc Server',
namespace: '@ohif/extension-default.dataSourcesModule.dicomweb',
sourceName: 'dicomweb',
configuration: {
+ friendlyName: 'Orthanc Server',
name: 'Orthanc',
- wadoUriRoot: 'http://127.0.0.1/pacs/wado',
+ wadoUriRoot: 'http://127.0.0.1/pacs/dicom-web',
qidoRoot: 'http://127.0.0.1/pacs/dicom-web',
wadoRoot: 'http://127.0.0.1/pacs/dicom-web',
- qidoSupportsIncludeField: false,
+ qidoSupportsIncludeField: true,
+ supportsReject: true,
imageRendering: 'wadors',
thumbnailRendering: 'wadors',
+ enableStudyLazyLoad: true,
+ supportsFuzzyMatching: true,
+ supportsWildcard: true,
+ dicomUploadEnabled: true,
+ bulkDataURI: {
+ enabled: true,
+ },
},
},
{
- friendlyName: 'dicom json',
namespace: '@ohif/extension-default.dataSourcesModule.dicomjson',
sourceName: 'dicomjson',
configuration: {
+ friendlyName: 'dicom json',
name: 'json',
},
},
{
- friendlyName: 'dicom local',
namespace: '@ohif/extension-default.dataSourcesModule.dicomlocal',
sourceName: 'dicomlocal',
- configuration: {},
+ configuration: {
+ friendlyName: 'dicom local',
+ },
},
],
};
diff --git a/platform/app/public/config/e2e.js b/platform/app/public/config/e2e.js
index 47903374cb..8b5f174a1e 100644
--- a/platform/app/public/config/e2e.js
+++ b/platform/app/public/config/e2e.js
@@ -4,7 +4,6 @@ window.config = {
modes: ['@ohif/mode-test'],
showStudyList: true,
// below flag is for performance reasons, but it might not work for all servers
- omitQuotationForMultipartRequest: true,
maxNumberOfWebWorkers: 3,
showWarningMessageForCrossOrigin: false,
showCPUFallbackMessage: false,
@@ -13,10 +12,10 @@ window.config = {
defaultDataSourceName: 'e2e',
dataSources: [
{
- friendlyName: 'StaticWado test data',
namespace: '@ohif/extension-default.dataSourcesModule.dicomweb',
sourceName: 'e2e',
configuration: {
+ friendlyName: 'StaticWado test data',
// The most important field to set for static WADO
staticWado: true,
name: 'StaticWADO',
@@ -24,20 +23,20 @@ window.config = {
qidoRoot: '/viewer-testdata',
wadoRoot: '/viewer-testdata',
qidoSupportsIncludeField: false,
- supportsReject: false,
imageRendering: 'wadors',
thumbnailRendering: 'wadors',
enableStudyLazyLoad: true,
supportsFuzzyMatching: false,
supportsWildcard: true,
singlepart: 'video,thumbnail,pdf',
+ omitQuotationForMultipartRequest: true,
},
},
{
- friendlyName: 'Static WADO Local Data',
namespace: '@ohif/extension-default.dataSourcesModule.dicomweb',
sourceName: 'local',
configuration: {
+ friendlyName: 'Static WADO Local Data',
name: 'DCM4CHEE',
qidoRoot: '/dicomweb',
wadoRoot: '/dicomweb',
@@ -54,21 +53,15 @@ window.config = {
},
},
{
- friendlyName: 'dcmjs DICOMWeb Server',
namespace: '@ohif/extension-default.dataSourcesModule.dicomweb',
sourceName: 'ohif',
configuration: {
+ friendlyName: 'AWS S3 Static wado server',
name: 'aws',
- // old server
- // wadoUriRoot: 'https://server.dcmjs.org/dcm4chee-arc/aets/DCM4CHEE/wado',
- // qidoRoot: 'https://server.dcmjs.org/dcm4chee-arc/aets/DCM4CHEE/rs',
- // wadoRoot: 'https://server.dcmjs.org/dcm4chee-arc/aets/DCM4CHEE/rs',
- // new server
wadoUriRoot: 'https://d33do7qe4w26qo.cloudfront.net/dicomweb',
qidoRoot: 'https://d33do7qe4w26qo.cloudfront.net/dicomweb',
wadoRoot: 'https://d33do7qe4w26qo.cloudfront.net/dicomweb',
qidoSupportsIncludeField: false,
- supportsReject: false,
imageRendering: 'wadors',
thumbnailRendering: 'wadors',
enableStudyLazyLoad: true,
@@ -98,18 +91,19 @@ window.config = {
// },
// },
{
- friendlyName: 'dicom json',
namespace: '@ohif/extension-default.dataSourcesModule.dicomjson',
sourceName: 'dicomjson',
configuration: {
+ friendlyName: 'dicom json',
name: 'json',
},
},
{
- friendlyName: 'dicom local',
namespace: '@ohif/extension-default.dataSourcesModule.dicomlocal',
sourceName: 'dicomlocal',
- configuration: {},
+ configuration: {
+ friendlyName: 'dicom local',
+ },
},
],
httpErrorHandler: error => {
diff --git a/platform/app/public/config/google.js b/platform/app/public/config/google.js
index 847e08ebbd..b380a21a72 100644
--- a/platform/app/public/config/google.js
+++ b/platform/app/public/config/google.js
@@ -6,7 +6,6 @@ window.config = {
},
enableGoogleCloudAdapter: false,
// below flag is for performance reasons, but it might not work for all servers
- omitQuotationForMultipartRequest: true,
showWarningMessageForCrossOrigin: true,
showCPUFallbackMessage: true,
showLoadingIndicator: true,
@@ -17,8 +16,7 @@ window.config = {
// ~ REQUIRED
// Authorization Server URL
authority: 'https://accounts.google.com',
- client_id:
- '723928408739-k9k9r3i44j32rhu69vlnibipmmk9i57p.apps.googleusercontent.com',
+ client_id: '723928408739-k9k9r3i44j32rhu69vlnibipmmk9i57p.apps.googleusercontent.com',
redirect_uri: '/callback',
response_type: 'id_token token',
scope:
@@ -37,10 +35,10 @@ window.config = {
defaultDataSourceName: 'dicomweb',
dataSources: [
{
- friendlyName: 'dcmjs DICOMWeb Server',
namespace: '@ohif/extension-default.dataSourcesModule.dicomweb',
sourceName: 'dicomweb',
configuration: {
+ friendlyName: 'dcmjs DICOMWeb Server',
name: 'GCP',
wadoUriRoot:
'https://healthcare.googleapis.com/v1/projects/ohif-cloud-healthcare/locations/us-east4/datasets/ohif-qa-dataset/dicomStores/ohif-qa-2/dicomWeb',
@@ -55,21 +53,24 @@ window.config = {
supportsFuzzyMatching: true,
supportsWildcard: false,
dicomUploadEnabled: true,
+ omitQuotationForMultipartRequest: true,
+ configurationAPI: 'ohif.dataSourceConfigurationAPI.google',
},
},
{
- friendlyName: 'dicom json',
namespace: '@ohif/extension-default.dataSourcesModule.dicomjson',
sourceName: 'dicomjson',
configuration: {
+ friendlyName: 'dicom json',
name: 'json',
},
},
{
- friendlyName: 'dicom local',
namespace: '@ohif/extension-default.dataSourcesModule.dicomlocal',
sourceName: 'dicomlocal',
- configuration: {},
+ configuration: {
+ friendlyName: 'dicom local',
+ },
},
],
};
diff --git a/platform/app/public/config/idc.js b/platform/app/public/config/idc.js
index 6056962bd7..0089182ee9 100644
--- a/platform/app/public/config/idc.js
+++ b/platform/app/public/config/idc.js
@@ -2,7 +2,6 @@ window.config = {
routerBasename: '/',
enableGoogleCloudAdapter: true,
// below flag is for performance reasons, but it might not work for all servers
- omitQuotationForMultipartRequest: true,
showWarningMessageForCrossOrigin: true,
showCPUFallbackMessage: true,
showLoadingIndicator: true,
@@ -17,8 +16,7 @@ window.config = {
// ~ REQUIRED
// Authorization Server URL
authority: 'https://accounts.google.com',
- client_id:
- '723928408739-k9k9r3i44j32rhu69vlnibipmmk9i57p.apps.googleusercontent.com',
+ client_id: '723928408739-k9k9r3i44j32rhu69vlnibipmmk9i57p.apps.googleusercontent.com',
redirect_uri: '/callback', // `OHIFStandaloneViewer.js`
response_type: 'id_token token',
scope:
diff --git a/platform/app/public/config/local_dcm4chee.js b/platform/app/public/config/local_dcm4chee.js
index 763604ffdf..a521bfef06 100644
--- a/platform/app/public/config/local_dcm4chee.js
+++ b/platform/app/public/config/local_dcm4chee.js
@@ -8,7 +8,6 @@ window.config = {
extensions: [],
modes: [],
// below flag is for performance reasons, but it might not work for all servers
- omitQuotationForMultipartRequest: true,
showWarningMessageForCrossOrigin: true,
showCPUFallbackMessage: true,
showLoadingIndicator: true,
@@ -16,10 +15,10 @@ window.config = {
defaultDataSourceName: 'dicomweb',
dataSources: [
{
- friendlyName: 'DCM4CHEE Server',
namespace: '@ohif/extension-default.dataSourcesModule.dicomweb',
sourceName: 'dicomweb',
configuration: {
+ friendlyName: 'DCM4CHEE Server',
name: 'DCM4CHEE',
wadoUriRoot: 'http://localhost:8080/dcm4chee-arc/aets/DCM4CHEE/wado',
qidoRoot: 'http://localhost:8080/dcm4chee-arc/aets/DCM4CHEE/rs',
@@ -39,21 +38,23 @@ window.config = {
bulkDataURI: {
enabled: true,
},
+ omitQuotationForMultipartRequest: true,
},
},
{
- friendlyName: 'dicom json',
namespace: '@ohif/extension-default.dataSourcesModule.dicomjson',
sourceName: 'dicomjson',
configuration: {
+ friendlyName: 'dicom json',
name: 'json',
},
},
{
- friendlyName: 'dicom local',
namespace: '@ohif/extension-default.dataSourcesModule.dicomlocal',
sourceName: 'dicomlocal',
- configuration: {},
+ configuration: {
+ friendlyName: 'dicom local',
+ },
},
],
studyListFunctionsEnabled: true,
diff --git a/platform/app/public/config/local_orthanc.js b/platform/app/public/config/local_orthanc.js
index 3153408b08..eabb22f21a 100644
--- a/platform/app/public/config/local_orthanc.js
+++ b/platform/app/public/config/local_orthanc.js
@@ -16,10 +16,10 @@ window.config = {
defaultDataSourceName: 'dicomweb',
dataSources: [
{
- friendlyName: 'dcmjs DICOMWeb Server',
namespace: '@ohif/extension-default.dataSourcesModule.dicomweb',
sourceName: 'dicomweb',
configuration: {
+ friendlyName: 'local Orthanc DICOMWeb Server',
name: 'DCM4CHEE',
wadoUriRoot: 'http://localhost/dicom-web',
qidoRoot: 'http://localhost/dicom-web',
@@ -38,18 +38,19 @@ window.config = {
},
},
{
- friendlyName: 'dicom json',
namespace: '@ohif/extension-default.dataSourcesModule.dicomjson',
sourceName: 'dicomjson',
configuration: {
+ friendlyName: 'dicom json',
name: 'json',
},
},
{
- friendlyName: 'dicom local',
namespace: '@ohif/extension-default.dataSourcesModule.dicomlocal',
sourceName: 'dicomlocal',
- configuration: {},
+ configuration: {
+ friendlyName: 'dicom local',
+ },
},
],
httpErrorHandler: error => {
diff --git a/platform/app/public/config/local_static.js b/platform/app/public/config/local_static.js
index 6774e1b9a0..89f205d011 100644
--- a/platform/app/public/config/local_static.js
+++ b/platform/app/public/config/local_static.js
@@ -1,14 +1,11 @@
window.config = {
routerBasename: '/',
- customizationService: [
- '@ohif/extension-default.customizationModule.helloPage',
- ],
+ customizationService: ['@ohif/extension-default.customizationModule.helloPage'],
extensions: [],
modes: [],
showStudyList: true,
maxNumberOfWebWorkers: 4,
// below flag is for performance reasons, but it might not work for all servers
- omitQuotationForMultipartRequest: true,
showWarningMessageForCrossOrigin: true,
showCPUFallbackMessage: true,
showLoadingIndicator: true,
@@ -17,15 +14,14 @@ window.config = {
defaultDataSourceName: 'dicomweb',
dataSources: [
{
- friendlyName: 'Static WADO Local Data',
namespace: '@ohif/extension-default.dataSourcesModule.dicomweb',
sourceName: 'dicomweb',
configuration: {
+ friendlyName: 'Static WADO Local Data',
name: 'DCM4CHEE',
qidoRoot: '/dicomweb',
wadoRoot: '/dicomweb',
qidoSupportsIncludeField: false,
- supportsReject: false,
imageRendering: 'wadors',
thumbnailRendering: 'wadors',
enableStudyLazyLoad: true,
@@ -33,21 +29,23 @@ window.config = {
supportsWildcard: true,
staticWado: true,
singlepart: 'bulkdata,video,pdf',
+ omitQuotationForMultipartRequest: true,
},
},
{
- friendlyName: 'dicom json',
namespace: '@ohif/extension-default.dataSourcesModule.dicomjson',
sourceName: 'dicomjson',
configuration: {
+ friendlyName: 'dicom json',
name: 'json',
},
},
{
- friendlyName: 'dicom local',
namespace: '@ohif/extension-default.dataSourcesModule.dicomlocal',
sourceName: 'dicomlocal',
- configuration: {},
+ configuration: {
+ friendlyName: 'dicom local',
+ },
},
],
httpErrorHandler: error => {
diff --git a/platform/app/public/config/multiple.js b/platform/app/public/config/multiple.js
index 07a2842644..57684a9ef5 100644
--- a/platform/app/public/config/multiple.js
+++ b/platform/app/public/config/multiple.js
@@ -16,7 +16,6 @@ window.config = {
showStudyList: true,
maxNumberOfWebWorkers: 4,
// below flag is for performance reasons, but it might not work for all servers
- omitQuotationForMultipartRequest: true,
showWarningMessageForCrossOrigin: true,
showCPUFallbackMessage: true,
showLoadingIndicator: true,
@@ -25,10 +24,10 @@ window.config = {
defaultDataSourceName: 'default',
dataSources: [
{
- friendlyName: 'Static WADO Local Data',
namespace: '@ohif/extension-default.dataSourcesModule.dicomweb',
sourceName: 'default',
configuration: {
+ friendlyName: 'Static WADO Local Data',
name: 'DCM4CHEE',
qidoRoot: '/dicomweb',
wadoRoot: '/dicomweb',
@@ -42,13 +41,14 @@ window.config = {
supportsWildcard: true,
staticWado: true,
singlepart: 'bulkdata,video,pdf',
+ omitQuotationForMultipartRequest: true,
},
},
{
- friendlyName: 'dcmjs DICOMWeb Server',
namespace: '@ohif/extension-default.dataSourcesModule.dicomweb',
sourceName: 'ohif',
configuration: {
+ friendlyName: 'dcmjs DICOMWeb Server',
name: 'aws',
// old server
// wadoUriRoot: 'https://server.dcmjs.org/dcm4chee-arc/aets/DCM4CHEE/wado',
@@ -59,7 +59,6 @@ window.config = {
qidoRoot: 'https://d33do7qe4w26qo.cloudfront.net/dicomweb',
wadoRoot: 'https://d33do7qe4w26qo.cloudfront.net/dicomweb',
qidoSupportsIncludeField: false,
- supportsReject: false,
imageRendering: 'wadors',
thumbnailRendering: 'wadors',
enableStudyLazyLoad: true,
@@ -70,15 +69,14 @@ window.config = {
},
},
{
- friendlyName: 'AWS S3 OHIF',
namespace: '@ohif/extension-default.dataSourcesModule.dicomweb',
sourceName: 'aws',
configuration: {
+ friendlyName: 'AWS S3 OHIF',
name: 'aws',
qidoRoot: 'https://dd32w2rfebxel.cloudfront.net/dicomweb',
wadoRoot: 'https://dd32w2rfebxel.cloudfront.net/dicomweb',
qidoSupportsIncludeField: false,
- supportsReject: false,
supportsStow: false,
imageRendering: 'wadors',
thumbnailRendering: 'wadors',
@@ -90,16 +88,15 @@ window.config = {
},
},
{
- friendlyName: 'E2E Test Data',
namespace: '@ohif/extension-default.dataSourcesModule.dicomweb',
sourceName: 'e2e',
configuration: {
+ friendlyName: 'E2E Test Data',
name: 'DCM4CHEE',
wadoUriRoot: '/viewer-testdata',
qidoRoot: '/viewer-testdata',
wadoRoot: '/viewer-testdata',
qidoSupportsIncludeField: false,
- supportsReject: false,
supportsStow: false,
imageRendering: 'wadors',
thumbnailRendering: 'wadors',
@@ -111,18 +108,19 @@ window.config = {
},
},
{
- friendlyName: 'dicom json',
namespace: '@ohif/extension-default.dataSourcesModule.dicomjson',
sourceName: 'dicomjson',
configuration: {
+ friendlyName: 'dicom json',
name: 'json',
},
},
{
- friendlyName: 'dicom local',
namespace: '@ohif/extension-default.dataSourcesModule.dicomlocal',
sourceName: 'dicomlocal',
- configuration: {},
+ configuration: {
+ friendlyName: 'dicom local',
+ },
},
],
httpErrorHandler: error => {
diff --git a/platform/app/public/config/netlify.js b/platform/app/public/config/netlify.js
index 1bc23c049d..a729d1c8d5 100644
--- a/platform/app/public/config/netlify.js
+++ b/platform/app/public/config/netlify.js
@@ -4,7 +4,6 @@ window.config = {
modes: [],
showStudyList: true,
// below flag is for performance reasons, but it might not work for all servers
- omitQuotationForMultipartRequest: true,
showWarningMessageForCrossOrigin: true,
showCPUFallbackMessage: true,
showLoadingIndicator: true,
@@ -13,15 +12,42 @@ window.config = {
defaultDataSourceName: 'dicomweb',
dataSources: [
{
- friendlyName: 'dcmjs DICOMWeb Server',
namespace: '@ohif/extension-default.dataSourcesModule.dicomweb',
sourceName: 'dicomweb',
configuration: {
+ friendlyName: 'AWS S3 Static wado server',
name: 'aws',
wadoUriRoot: 'https://d33do7qe4w26qo.cloudfront.net/dicomweb',
qidoRoot: 'https://d33do7qe4w26qo.cloudfront.net/dicomweb',
wadoRoot: 'https://d33do7qe4w26qo.cloudfront.net/dicomweb',
+ qidoSupportsIncludeField: false,
+ imageRendering: 'wadors',
+ thumbnailRendering: 'wadors',
+ enableStudyLazyLoad: true,
+ supportsFuzzyMatching: false,
+ supportsWildcard: true,
+ staticWado: true,
+ singlepart: 'bulkdata,video',
+ // whether the data source should use retrieveBulkData to grab metadata,
+ // and in case of relative path, what would it be relative to, options
+ // are in the series level or study level (some servers like series some study)
+ bulkDataURI: {
+ enabled: true,
+ relativeResolution: 'studies',
+ },
+ omitQuotationForMultipartRequest: true,
+ },
+ },
+ {
+ namespace: '@ohif/extension-default.dataSourcesModule.dicomweb',
+ sourceName: 'dicomweb2',
+ configuration: {
+ friendlyName: 'AWS S3 Static wado secondary server',
+ name: 'aws',
+ wadoUriRoot: 'https://d28o5kq0jsoob5.cloudfront.net/dicomweb',
+ qidoRoot: 'https://d28o5kq0jsoob5.cloudfront.net/dicomweb',
+ wadoRoot: 'https://d28o5kq0jsoob5.cloudfront.net/dicomweb',
qidoSupportsIncludeField: false,
supportsReject: false,
imageRendering: 'wadors',
@@ -38,21 +64,23 @@ window.config = {
enabled: true,
relativeResolution: 'studies',
},
+ omitQuotationForMultipartRequest: true,
},
},
{
- friendlyName: 'dicom json',
namespace: '@ohif/extension-default.dataSourcesModule.dicomjson',
sourceName: 'dicomjson',
configuration: {
+ friendlyName: 'dicom json',
name: 'json',
},
},
{
- friendlyName: 'dicom local',
namespace: '@ohif/extension-default.dataSourcesModule.dicomlocal',
sourceName: 'dicomlocal',
- configuration: {},
+ configuration: {
+ friendlyName: 'dicom local',
+ },
},
],
httpErrorHandler: error => {
diff --git a/platform/app/public/config/public_dicomweb.js b/platform/app/public/config/public_dicomweb.js
index 322d896846..2dc7503744 100644
--- a/platform/app/public/config/public_dicomweb.js
+++ b/platform/app/public/config/public_dicomweb.js
@@ -2,7 +2,6 @@ window.config = {
routerBasename: '/',
showStudyList: true,
// below flag is for performance reasons, but it might not work for all servers
- omitQuotationForMultipartRequest: true,
showWarningMessageForCrossOrigin: true,
showCPUFallbackMessage: true,
showLoadingIndicator: true,
@@ -18,6 +17,7 @@ window.config = {
imageRendering: 'wadors',
thumbnailRendering: 'wadors',
supportsFuzzyMatching: true,
+ omitQuotationForMultipartRequest: true,
},
],
},
diff --git a/platform/app/public/es6-shim.min.js b/platform/app/public/es6-shim.min.js
index f8ef71c73a..c1447d6fc7 100644
--- a/platform/app/public/es6-shim.min.js
+++ b/platform/app/public/es6-shim.min.js
@@ -7,6 +7,3573 @@
* Details and documentation:
* https://github.com/paulmillr/es6-shim/
*/
-(function(e,t){if(typeof define==="function"&&define.amd){define(t)}else if(typeof exports==="object"){module.exports=t()}else{e.returnExports=t()}})(this,function(){"use strict";var e=Function.call.bind(Function.apply);var t=Function.call.bind(Function.call);var r=Array.isArray;var n=Object.keys;var o=function notThunker(t){return function notThunk(){return!e(t,this,arguments)}};var i=function(e){try{e();return false}catch(t){return true}};var a=function valueOrFalseIfThrows(e){try{return e()}catch(t){return false}};var u=o(i);var f=function(){return!i(function(){return Object.defineProperty({},"x",{get:function(){}})})};var s=!!Object.defineProperty&&f();var c=function foo(){}.name==="foo";var l=Function.call.bind(Array.prototype.forEach);var p=Function.call.bind(Array.prototype.reduce);var v=Function.call.bind(Array.prototype.filter);var y=Function.call.bind(Array.prototype.some);var h=function(e,t,r,n){if(!n&&t in e){return}if(s){Object.defineProperty(e,t,{configurable:true,enumerable:false,writable:true,value:r})}else{e[t]=r}};var b=function(e,t,r){l(n(t),function(n){var o=t[n];h(e,n,o,!!r)})};var g=Function.call.bind(Object.prototype.toString);var d=typeof/abc/==="function"?function IsCallableSlow(e){return typeof e==="function"&&g(e)==="[object Function]"}:function IsCallableFast(e){return typeof e==="function"};var m={getter:function(e,t,r){if(!s){throw new TypeError("getters require true ES5 support")}Object.defineProperty(e,t,{configurable:true,enumerable:false,get:r})},proxy:function(e,t,r){if(!s){throw new TypeError("getters require true ES5 support")}var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,{configurable:n.configurable,enumerable:n.enumerable,get:function getKey(){return e[t]},set:function setKey(r){e[t]=r}})},redefine:function(e,t,r){if(s){var n=Object.getOwnPropertyDescriptor(e,t);n.value=r;Object.defineProperty(e,t,n)}else{e[t]=r}},defineByDescriptor:function(e,t,r){if(s){Object.defineProperty(e,t,r)}else if("value"in r){e[t]=r.value}},preserveToString:function(e,t){if(t&&d(t.toString)){h(e,"toString",t.toString.bind(t),true)}}};var O=Object.create||function(e,t){var r=function Prototype(){};r.prototype=e;var o=new r;if(typeof t!=="undefined"){n(t).forEach(function(e){m.defineByDescriptor(o,e,t[e])})}return o};var w=function(e,t){if(!Object.setPrototypeOf){return false}return a(function(){var r=function Subclass(t){var r=new e(t);Object.setPrototypeOf(r,Subclass.prototype);return r};Object.setPrototypeOf(r,e);r.prototype=O(e.prototype,{constructor:{value:r}});return t(r)})};var j=function(){if(typeof self!=="undefined"){return self}if(typeof window!=="undefined"){return window}if(typeof global!=="undefined"){return global}throw new Error("unable to locate global object")};var S=j();var T=S.isFinite;var I=Function.call.bind(String.prototype.indexOf);var E=Function.apply.bind(Array.prototype.indexOf);var P=Function.call.bind(Array.prototype.concat);var C=Function.call.bind(String.prototype.slice);var M=Function.call.bind(Array.prototype.push);var x=Function.apply.bind(Array.prototype.push);var N=Function.call.bind(Array.prototype.shift);var A=Math.max;var R=Math.min;var _=Math.floor;var k=Math.abs;var L=Math.exp;var F=Math.log;var D=Math.sqrt;var z=Function.call.bind(Object.prototype.hasOwnProperty);var q;var W=function(){};var G=S.Map;var H=G&&G.prototype["delete"];var V=G&&G.prototype.get;var B=G&&G.prototype.has;var U=G&&G.prototype.set;var $=S.Symbol||{};var J=$.species||"@@species";var X=Number.isNaN||function isNaN(e){return e!==e};var K=Number.isFinite||function isFinite(e){return typeof e==="number"&&T(e)};var Z=d(Math.sign)?Math.sign:function sign(e){var t=Number(e);if(t===0){return t}if(X(t)){return t}return t<0?-1:1};var Y=function log1p(e){var t=Number(e);if(t<-1||X(t)){return NaN}if(t===0||t===Infinity){return t}if(t===-1){return-Infinity}return 1+t-1===0?t:t*(F(1+t)/(1+t-1))};var Q=function isArguments(e){return g(e)==="[object Arguments]"};var ee=function isArguments(e){return e!==null&&typeof e==="object"&&typeof e.length==="number"&&e.length>=0&&g(e)!=="[object Array]"&&g(e.callee)==="[object Function]"};var te=Q(arguments)?Q:ee;var re={primitive:function(e){return e===null||typeof e!=="function"&&typeof e!=="object"},string:function(e){return g(e)==="[object String]"},regex:function(e){return g(e)==="[object RegExp]"},symbol:function(e){return typeof S.Symbol==="function"&&typeof e==="symbol"}};var ne=function overrideNative(e,t,r){var n=e[t];h(e,t,r,true);m.preserveToString(e[t],n)};var oe=typeof $==="function"&&typeof $["for"]==="function"&&re.symbol($());var ie=re.symbol($.iterator)?$.iterator:"_es6-shim iterator_";if(S.Set&&typeof(new S.Set)["@@iterator"]==="function"){ie="@@iterator"}if(!S.Reflect){h(S,"Reflect",{},true)}var ae=S.Reflect;var ue=String;var fe=typeof document==="undefined"||!document?null:document.all;var se=fe==null?function isNullOrUndefined(e){return e==null}:function isNullOrUndefinedAndNotDocumentAll(e){return e==null&&e!==fe};var ce={Call:function Call(t,r){var n=arguments.length>2?arguments[2]:[];if(!ce.IsCallable(t)){throw new TypeError(t+" is not a function")}return e(t,r,n)},RequireObjectCoercible:function(e,t){if(se(e)){throw new TypeError(t||"Cannot call method on "+e)}return e},TypeIsObject:function(e){if(e===void 0||e===null||e===true||e===false){return false}return typeof e==="function"||typeof e==="object"||e===fe},ToObject:function(e,t){return Object(ce.RequireObjectCoercible(e,t))},IsCallable:d,IsConstructor:function(e){return ce.IsCallable(e)},ToInt32:function(e){return ce.ToNumber(e)>>0},ToUint32:function(e){return ce.ToNumber(e)>>>0},ToNumber:function(e){if(g(e)==="[object Symbol]"){throw new TypeError("Cannot convert a Symbol value to a number")}return+e},ToInteger:function(e){var t=ce.ToNumber(e);if(X(t)){return 0}if(t===0||!K(t)){return t}return(t>0?1:-1)*_(k(t))},ToLength:function(e){var t=ce.ToInteger(e);if(t<=0){return 0}if(t>Number.MAX_SAFE_INTEGER){return Number.MAX_SAFE_INTEGER}return t},SameValue:function(e,t){if(e===t){if(e===0){return 1/e===1/t}return true}return X(e)&&X(t)},SameValueZero:function(e,t){return e===t||X(e)&&X(t)},IsIterable:function(e){return ce.TypeIsObject(e)&&(typeof e[ie]!=="undefined"||te(e))},GetIterator:function(e){if(te(e)){return new q(e,"value")}var t=ce.GetMethod(e,ie);if(!ce.IsCallable(t)){throw new TypeError("value is not an iterable")}var r=ce.Call(t,e);if(!ce.TypeIsObject(r)){throw new TypeError("bad iterator")}return r},GetMethod:function(e,t){var r=ce.ToObject(e)[t];if(se(r)){return void 0}if(!ce.IsCallable(r)){throw new TypeError("Method not callable: "+t)}return r},IteratorComplete:function(e){return!!e.done},IteratorClose:function(e,t){var r=ce.GetMethod(e,"return");if(r===void 0){return}var n,o;try{n=ce.Call(r,e)}catch(i){o=i}if(t){return}if(o){throw o}if(!ce.TypeIsObject(n)){throw new TypeError("Iterator's return method returned a non-object.")}},IteratorNext:function(e){var t=arguments.length>1?e.next(arguments[1]):e.next();if(!ce.TypeIsObject(t)){throw new TypeError("bad iterator")}return t},IteratorStep:function(e){var t=ce.IteratorNext(e);var r=ce.IteratorComplete(t);return r?false:t},Construct:function(e,t,r,n){var o=typeof r==="undefined"?e:r;if(!n&&ae.construct){return ae.construct(e,t,o)}var i=o.prototype;if(!ce.TypeIsObject(i)){i=Object.prototype}var a=O(i);var u=ce.Call(e,a,t);return ce.TypeIsObject(u)?u:a},SpeciesConstructor:function(e,t){var r=e.constructor;if(r===void 0){return t}if(!ce.TypeIsObject(r)){throw new TypeError("Bad constructor")}var n=r[J];if(se(n)){return t}if(!ce.IsConstructor(n)){throw new TypeError("Bad @@species")}return n},CreateHTML:function(e,t,r,n){var o=ce.ToString(e);var i="<"+t;if(r!==""){var a=ce.ToString(n);var u=a.replace(/"/g,""");i+=" "+r+'="'+u+'"'}var f=i+">";var s=f+o;return s+""+t+">"},IsRegExp:function IsRegExp(e){if(!ce.TypeIsObject(e)){return false}var t=e[$.match];if(typeof t!=="undefined"){return!!t}return re.regex(e)},ToString:function ToString(e){return ue(e)}};if(s&&oe){var le=function defineWellKnownSymbol(e){if(re.symbol($[e])){return $[e]}var t=$["for"]("Symbol."+e);Object.defineProperty($,e,{configurable:false,enumerable:false,writable:false,value:t});return t};if(!re.symbol($.search)){var pe=le("search");var ve=String.prototype.search;h(RegExp.prototype,pe,function search(e){return ce.Call(ve,e,[this])});var ye=function search(e){var t=ce.RequireObjectCoercible(this);if(!se(e)){var r=ce.GetMethod(e,pe);if(typeof r!=="undefined"){return ce.Call(r,e,[t])}}return ce.Call(ve,t,[ce.ToString(e)])};ne(String.prototype,"search",ye)}if(!re.symbol($.replace)){var he=le("replace");var be=String.prototype.replace;h(RegExp.prototype,he,function replace(e,t){return ce.Call(be,e,[this,t])});var ge=function replace(e,t){var r=ce.RequireObjectCoercible(this);if(!se(e)){var n=ce.GetMethod(e,he);if(typeof n!=="undefined"){return ce.Call(n,e,[r,t])}}return ce.Call(be,r,[ce.ToString(e),t])};ne(String.prototype,"replace",ge)}if(!re.symbol($.split)){var de=le("split");var me=String.prototype.split;h(RegExp.prototype,de,function split(e,t){return ce.Call(me,e,[this,t])});var Oe=function split(e,t){var r=ce.RequireObjectCoercible(this);if(!se(e)){var n=ce.GetMethod(e,de);if(typeof n!=="undefined"){return ce.Call(n,e,[r,t])}}return ce.Call(me,r,[ce.ToString(e),t])};ne(String.prototype,"split",Oe)}var we=re.symbol($.match);var je=we&&function(){var e={};e[$.match]=function(){return 42};return"a".match(e)!==42}();if(!we||je){var Se=le("match");var Te=String.prototype.match;h(RegExp.prototype,Se,function match(e){return ce.Call(Te,e,[this])});var Ie=function match(e){var t=ce.RequireObjectCoercible(this);if(!se(e)){var r=ce.GetMethod(e,Se);if(typeof r!=="undefined"){return ce.Call(r,e,[t])}}return ce.Call(Te,t,[ce.ToString(e)])};ne(String.prototype,"match",Ie)}}var Ee=function wrapConstructor(e,t,r){m.preserveToString(t,e);if(Object.setPrototypeOf){Object.setPrototypeOf(e,t)}if(s){l(Object.getOwnPropertyNames(e),function(n){if(n in W||r[n]){return}m.proxy(e,n,t)})}else{l(Object.keys(e),function(n){if(n in W||r[n]){return}t[n]=e[n]})}t.prototype=e.prototype;m.redefine(e.prototype,"constructor",t)};var Pe=function(){return this};var Ce=function(e){if(s&&!z(e,J)){m.getter(e,J,Pe)}};var Me=function(e,t){var r=t||function iterator(){return this};h(e,ie,r);if(!e[ie]&&re.symbol(ie)){e[ie]=r}};var xe=function createDataProperty(e,t,r){if(s){Object.defineProperty(e,t,{configurable:true,enumerable:true,writable:true,value:r})}else{e[t]=r}};var Ne=function createDataPropertyOrThrow(e,t,r){xe(e,t,r);if(!ce.SameValue(e[t],r)){throw new TypeError("property is nonconfigurable")}};var Ae=function(e,t,r,n){if(!ce.TypeIsObject(e)){throw new TypeError("Constructor requires `new`: "+t.name)}var o=t.prototype;if(!ce.TypeIsObject(o)){o=r}var i=O(o);for(var a in n){if(z(n,a)){var u=n[a];h(i,a,u,true)}}return i};if(String.fromCodePoint&&String.fromCodePoint.length!==1){var Re=String.fromCodePoint;ne(String,"fromCodePoint",function fromCodePoint(e){return ce.Call(Re,this,arguments)})}var _e={fromCodePoint:function fromCodePoint(e){var t=[];var r;for(var n=0,o=arguments.length;n1114111){throw new RangeError("Invalid code point "+r)}if(r<65536){M(t,String.fromCharCode(r))}else{r-=65536;M(t,String.fromCharCode((r>>10)+55296));M(t,String.fromCharCode(r%1024+56320))}}return t.join("")},raw:function raw(e){var t=ce.ToObject(e,"bad callSite");var r=ce.ToObject(t.raw,"bad raw value");var n=r.length;var o=ce.ToLength(n);if(o<=0){return""}var i=[];var a=0;var u,f,s,c;while(a=o){break}f=a+1=Le){throw new RangeError("repeat count must be less than infinity and not overflow maximum string size")}return ke(t,r)},startsWith:function startsWith(e){var t=ce.ToString(ce.RequireObjectCoercible(this));if(ce.IsRegExp(e)){throw new TypeError('Cannot call method "startsWith" with a regex')}var r=ce.ToString(e);var n;if(arguments.length>1){n=arguments[1]}var o=A(ce.ToInteger(n),0);return C(t,o,o+r.length)===r},endsWith:function endsWith(e){var t=ce.ToString(ce.RequireObjectCoercible(this));if(ce.IsRegExp(e)){throw new TypeError('Cannot call method "endsWith" with a regex')}var r=ce.ToString(e);var n=t.length;var o;if(arguments.length>1){o=arguments[1]}var i=typeof o==="undefined"?n:ce.ToInteger(o);var a=R(A(i,0),n);return C(t,a-r.length,a)===r},includes:function includes(e){if(ce.IsRegExp(e)){throw new TypeError('"includes" does not accept a RegExp')}var t=ce.ToString(e);var r;if(arguments.length>1){r=arguments[1]}return I(this,t,r)!==-1},codePointAt:function codePointAt(e){var t=ce.ToString(ce.RequireObjectCoercible(this));var r=ce.ToInteger(e);var n=t.length;if(r>=0&&r56319||i){return o}var a=t.charCodeAt(r+1);if(a<56320||a>57343){return o}return(o-55296)*1024+(a-56320)+65536}}};if(String.prototype.includes&&"a".includes("a",Infinity)!==false){ne(String.prototype,"includes",Fe.includes)}if(String.prototype.startsWith&&String.prototype.endsWith){var De=i(function(){return"/a/".startsWith(/a/)});var ze=a(function(){return"abc".startsWith("a",Infinity)===false});if(!De||!ze){ne(String.prototype,"startsWith",Fe.startsWith);ne(String.prototype,"endsWith",Fe.endsWith)}}if(oe){var qe=a(function(){var e=/a/;e[$.match]=false;return"/a/".startsWith(e)});if(!qe){ne(String.prototype,"startsWith",Fe.startsWith)}var We=a(function(){var e=/a/;e[$.match]=false;return"/a/".endsWith(e)});if(!We){ne(String.prototype,"endsWith",Fe.endsWith)}var Ge=a(function(){var e=/a/;e[$.match]=false;return"/a/".includes(e)});if(!Ge){ne(String.prototype,"includes",Fe.includes)}}b(String.prototype,Fe);var He=["\t\n\x0B\f\r \xa0\u1680\u180e\u2000\u2001\u2002\u2003","\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028","\u2029\ufeff"].join("");var Ve=new RegExp("(^["+He+"]+)|(["+He+"]+$)","g");var Be=function trim(){return ce.ToString(ce.RequireObjectCoercible(this)).replace(Ve,"")};var Ue=["\x85","\u200b","\ufffe"].join("");var $e=new RegExp("["+Ue+"]","g");var Je=/^[-+]0x[0-9a-f]+$/i;var Xe=Ue.trim().length!==Ue.length;h(String.prototype,"trim",Be,Xe);var Ke=function(e){return{value:e,done:arguments.length===0}};var Ze=function(e){ce.RequireObjectCoercible(e);this._s=ce.ToString(e);this._i=0};Ze.prototype.next=function(){var e=this._s;var t=this._i;if(typeof e==="undefined"||t>=e.length){this._s=void 0;return Ke()}var r=e.charCodeAt(t);var n,o;if(r<55296||r>56319||t+1===e.length){o=1}else{n=e.charCodeAt(t+1);o=n<56320||n>57343?1:2}this._i=t+o;return Ke(e.substr(t,o))};Me(Ze.prototype);Me(String.prototype,function(){return new Ze(this)});var Ye={from:function from(e){var r=this;var n;if(arguments.length>1){n=arguments[1]}var o,i;if(typeof n==="undefined"){o=false}else{if(!ce.IsCallable(n)){throw new TypeError("Array.from: when provided, the second argument must be a function")}if(arguments.length>2){i=arguments[2]}o=true}var a=typeof(te(e)||ce.GetMethod(e,ie))!=="undefined";var u,f,s;if(a){f=ce.IsConstructor(r)?Object(new r):[];var c=ce.GetIterator(e);var l,p;s=0;while(true){l=ce.IteratorStep(c);if(l===false){break}p=l.value;try{if(o){p=typeof i==="undefined"?n(p,s):t(n,i,p,s)}f[s]=p}catch(v){ce.IteratorClose(c,true);throw v}s+=1}u=s}else{var y=ce.ToObject(e);u=ce.ToLength(y.length);f=ce.IsConstructor(r)?Object(new r(u)):new Array(u);var h;for(s=0;s2){f=arguments[2]}var s=typeof f==="undefined"?n:ce.ToInteger(f);var c=s<0?A(n+s,0):R(s,n);var l=R(c-u,n-a);var p=1;if(u0){if(u in r){r[a]=r[u]}else{delete r[a]}u+=p;a+=p;l-=1}return r},fill:function fill(e){var t;if(arguments.length>1){t=arguments[1]}var r;if(arguments.length>2){r=arguments[2]}var n=ce.ToObject(this);var o=ce.ToLength(n.length);t=ce.ToInteger(typeof t==="undefined"?0:t);r=ce.ToInteger(typeof r==="undefined"?o:r);var i=t<0?A(o+t,0):R(t,o);var a=r<0?o+r:r;for(var u=i;u1?arguments[1]:null;for(var i=0,a;i1?arguments[1]:null;for(var i=0;i1&&typeof arguments[1]!=="undefined"){return ce.Call(it,this,arguments)}else{return t(it,this,e)}})}var at=-(Math.pow(2,32)-1);var ut=function(e,r){var n={length:at};n[r?(n.length>>>0)-1:0]=true;return a(function(){t(e,n,function(){throw new RangeError("should not reach here")},[]);return true})};if(!ut(Array.prototype.forEach)){var ft=Array.prototype.forEach;ne(Array.prototype,"forEach",function forEach(e){return ce.Call(ft,this.length>=0?this:[],arguments)},true)}if(!ut(Array.prototype.map)){var st=Array.prototype.map;ne(Array.prototype,"map",function map(e){return ce.Call(st,this.length>=0?this:[],arguments)},true)}if(!ut(Array.prototype.filter)){var ct=Array.prototype.filter;ne(Array.prototype,"filter",function filter(e){return ce.Call(ct,this.length>=0?this:[],arguments)},true)}if(!ut(Array.prototype.some)){var lt=Array.prototype.some;ne(Array.prototype,"some",function some(e){return ce.Call(lt,this.length>=0?this:[],arguments)},true)}if(!ut(Array.prototype.every)){var pt=Array.prototype.every;ne(Array.prototype,"every",function every(e){return ce.Call(pt,this.length>=0?this:[],arguments)},true)}if(!ut(Array.prototype.reduce)){var vt=Array.prototype.reduce;ne(Array.prototype,"reduce",function reduce(e){return ce.Call(vt,this.length>=0?this:[],arguments)},true)}if(!ut(Array.prototype.reduceRight,true)){var yt=Array.prototype.reduceRight;ne(Array.prototype,"reduceRight",function reduceRight(e){return ce.Call(yt,this.length>=0?this:[],arguments)},true)}var ht=Number("0o10")!==8;var bt=Number("0b10")!==2;var gt=y(Ue,function(e){return Number(e+0+e)===0});if(ht||bt||gt){var dt=Number;var mt=/^0b[01]+$/i;var Ot=/^0o[0-7]+$/i;var wt=mt.test.bind(mt);var jt=Ot.test.bind(Ot);var St=function(e){var t;if(typeof e.valueOf==="function"){t=e.valueOf();if(re.primitive(t)){return t}}if(typeof e.toString==="function"){t=e.toString();if(re.primitive(t)){return t}}throw new TypeError("No default value")};var Tt=$e.test.bind($e);var It=Je.test.bind(Je);var Et=function(){var e=function Number(t){var r;if(arguments.length>0){r=re.primitive(t)?t:St(t,"number")}else{r=0}if(typeof r==="string"){r=ce.Call(Be,r);if(wt(r)){r=parseInt(C(r,2),2)}else if(jt(r)){r=parseInt(C(r,2),8)}else if(Tt(r)||It(r)){r=NaN}}var n=this;var o=a(function(){dt.prototype.valueOf.call(n);return true});if(n instanceof e&&!o){return new dt(r)}return dt(r)};return e}();Ee(dt,Et,{});b(Et,{NaN:dt.NaN,MAX_VALUE:dt.MAX_VALUE,MIN_VALUE:dt.MIN_VALUE,NEGATIVE_INFINITY:dt.NEGATIVE_INFINITY,POSITIVE_INFINITY:dt.POSITIVE_INFINITY});Number=Et;m.redefine(S,"Number",Et)}var Pt=Math.pow(2,53)-1;b(Number,{MAX_SAFE_INTEGER:Pt,MIN_SAFE_INTEGER:-Pt,EPSILON:2.220446049250313e-16,parseInt:S.parseInt,parseFloat:S.parseFloat,isFinite:K,isInteger:function isInteger(e){return K(e)&&ce.ToInteger(e)===e},isSafeInteger:function isSafeInteger(e){return Number.isInteger(e)&&k(e)<=Number.MAX_SAFE_INTEGER},isNaN:X});h(Number,"parseInt",S.parseInt,Number.parseInt!==S.parseInt);if([,1].find(function(){return true})===1){ne(Array.prototype,"find",et.find)}if([,1].findIndex(function(){return true})!==0){ne(Array.prototype,"findIndex",et.findIndex)}var Ct=Function.bind.call(Function.bind,Object.prototype.propertyIsEnumerable);var Mt=function ensureEnumerable(e,t){if(s&&Ct(e,t)){Object.defineProperty(e,t,{enumerable:false})}};var xt=function sliceArgs(){var e=Number(this);var t=arguments.length;var r=t-e;var n=new Array(r<0?0:r);for(var o=e;o1){return NaN}var r=k(t);return Z(t)*Y(2*r/(1-r))/2},cbrt:function cbrt(e){var t=Number(e);if(t===0){return t}var r=t<0;var n;if(r){t=-t}if(t===Infinity){n=Infinity}else{n=L(F(t)/3);n=(t/(n*n)+2*n)/3}return r?-n:n},clz32:function clz32(e){var t=Number(e);var r=ce.ToUint32(t);if(r===0){return 32}return Pr?ce.Call(Pr,r):31-_(F(r+.5)*Ir)},cosh:function cosh(e){var t=Number(e);if(t===0){return 1}if(X(t)){return NaN}if(!T(t)){return Infinity}var r=L(k(t)-1);return(r+1/(r*Tr*Tr))*(Tr/2)},expm1:function expm1(e){var t=Number(e);if(t===-Infinity){return-1}if(!T(t)||t===0){return t}if(k(t)>.5){return L(t)-1}var r=t;var n=0;var o=1;while(n+r!==n){n+=r;o+=1;r*=t/o}return n},hypot:function hypot(e,t){var r=0;var n=0;for(var o=0;o0?i/n*(i/n):i}}return n===Infinity?Infinity:n*D(r)},log2:function log2(e){return F(e)*Ir},log10:function log10(e){return F(e)*Er},log1p:Y,sign:Z,sinh:function sinh(e){var t=Number(e);if(!T(t)||t===0){return t}var r=k(t);if(r<1){var n=Math.expm1(r);return Z(t)*n*(1+1/(n+1))/2}var o=L(r-1);return Z(t)*(o-1/(o*Tr*Tr))*(Tr/2)},tanh:function tanh(e){var t=Number(e);if(X(t)||t===0){return t}if(t>=20){return 1}if(t<=-20){return-1}return(Math.expm1(t)-Math.expm1(-t))/(L(t)+L(-t))},trunc:function trunc(e){var t=Number(e);return t<0?-_(-t):_(t)},imul:function imul(e,t){var r=ce.ToUint32(e);var n=ce.ToUint32(t);var o=r>>>16&65535;var i=r&65535;var a=n>>>16&65535;var u=n&65535;return i*u+(o*u+i*a<<16>>>0)|0},fround:function fround(e){var t=Number(e);if(t===0||t===Infinity||t===-Infinity||X(t)){return t}var r=Z(t);var n=k(t);if(njr||X(i)){return r*Infinity}return r*i}};var Mr=function withinULPDistance(e,t,r){return k(1-e/t)/Number.EPSILON<(r||8)};b(Math,Cr);h(Math,"sinh",Cr.sinh,Math.sinh(710)===Infinity);h(Math,"cosh",Cr.cosh,Math.cosh(710)===Infinity);h(Math,"log1p",Cr.log1p,Math.log1p(-1e-17)!==-1e-17);h(Math,"asinh",Cr.asinh,Math.asinh(-1e7)!==-Math.asinh(1e7));h(Math,"asinh",Cr.asinh,Math.asinh(1e300)===Infinity);h(Math,"atanh",Cr.atanh,Math.atanh(1e-300)===0);h(Math,"tanh",Cr.tanh,Math.tanh(-2e-17)!==-2e-17);
- h(Math,"acosh",Cr.acosh,Math.acosh(Number.MAX_VALUE)===Infinity);h(Math,"acosh",Cr.acosh,!Mr(Math.acosh(1+Number.EPSILON),Math.sqrt(2*Number.EPSILON)));h(Math,"cbrt",Cr.cbrt,!Mr(Math.cbrt(1e-300),1e-100));h(Math,"sinh",Cr.sinh,Math.sinh(-2e-17)!==-2e-17);var xr=Math.expm1(10);h(Math,"expm1",Cr.expm1,xr>22025.465794806718||xr<22025.465794806718);var Nr=Math.round;var Ar=Math.round(.5-Number.EPSILON/4)===0&&Math.round(-.5+Number.EPSILON/3.99)===1;var Rr=mr+1;var _r=2*mr-1;var kr=[Rr,_r].every(function(e){return Math.round(e)===e});h(Math,"round",function round(e){var t=_(e);var r=t===-1?-0:t+1;return e-t<.5?t:r},!Ar||!kr);m.preserveToString(Math.round,Nr);var Lr=Math.imul;if(Math.imul(4294967295,5)!==-5){Math.imul=Cr.imul;m.preserveToString(Math.imul,Lr)}if(Math.imul.length!==2){ne(Math,"imul",function imul(e,t){return ce.Call(Lr,Math,arguments)})}var Fr=function(){var e=S.setTimeout;if(typeof e!=="function"&&typeof e!=="object"){return}ce.IsPromise=function(e){if(!ce.TypeIsObject(e)){return false}if(typeof e._promise==="undefined"){return false}return true};var r=function(e){if(!ce.IsConstructor(e)){throw new TypeError("Bad promise constructor")}var t=this;var r=function(e,r){if(t.resolve!==void 0||t.reject!==void 0){throw new TypeError("Bad Promise implementation!")}t.resolve=e;t.reject=r};t.resolve=void 0;t.reject=void 0;t.promise=new e(r);if(!(ce.IsCallable(t.resolve)&&ce.IsCallable(t.reject))){throw new TypeError("Bad promise constructor")}};var n;if(typeof window!=="undefined"&&ce.IsCallable(window.postMessage)){n=function(){var e=[];var t="zero-timeout-message";var r=function(r){M(e,r);window.postMessage(t,"*")};var n=function(r){if(r.source===window&&r.data===t){r.stopPropagation();if(e.length===0){return}var n=N(e);n()}};window.addEventListener("message",n,true);return r}}var o=function(){var e=S.Promise;var t=e&&e.resolve&&e.resolve();return t&&function(e){return t.then(e)}};var i=ce.IsCallable(S.setImmediate)?S.setImmediate:typeof process==="object"&&process.nextTick?process.nextTick:o()||(ce.IsCallable(n)?n():function(t){e(t,0)});var a=function(e){return e};var u=function(e){throw e};var f=0;var s=1;var c=2;var l=0;var p=1;var v=2;var y={};var h=function(e,t,r){i(function(){g(e,t,r)})};var g=function(e,t,r){var n,o;if(t===y){return e(r)}try{n=e(r);o=t.resolve}catch(i){n=i;o=t.reject}o(n)};var d=function(e,t){var r=e._promise;var n=r.reactionLength;if(n>0){h(r.fulfillReactionHandler0,r.reactionCapability0,t);r.fulfillReactionHandler0=void 0;r.rejectReactions0=void 0;r.reactionCapability0=void 0;if(n>1){for(var o=1,i=0;o0){h(r.rejectReactionHandler0,r.reactionCapability0,t);r.fulfillReactionHandler0=void 0;r.rejectReactions0=void 0;r.reactionCapability0=void 0;if(n>1){for(var o=1,i=0;o2&&arguments[2]===y;if(b&&o===E){i=y}else{i=new r(o)}var g=ce.IsCallable(e)?e:a;var d=ce.IsCallable(t)?t:u;var m=n._promise;var O;if(m.state===f){if(m.reactionLength===0){m.fulfillReactionHandler0=g;m.rejectReactionHandler0=d;m.reactionCapability0=i}else{var w=3*(m.reactionLength-1);m[w+l]=g;m[w+p]=d;m[w+v]=i}m.reactionLength+=1}else if(m.state===s){O=m.result;h(g,i,O)}else if(m.state===c){O=m.result;h(d,i,O)}else{throw new TypeError("unexpected Promise state")}return i.promise}});y=new r(E);I=T.then;return E}();if(S.Promise){delete S.Promise.accept;delete S.Promise.defer;delete S.Promise.prototype.chain}if(typeof Fr==="function"){b(S,{Promise:Fr});var Dr=w(S.Promise,function(e){return e.resolve(42).then(function(){})instanceof e});var zr=!i(function(){return S.Promise.reject(42).then(null,5).then(null,W)});var qr=i(function(){return S.Promise.call(3,W)});var Wr=function(e){var t=e.resolve(5);t.constructor={};var r=e.resolve(t);try{r.then(null,W).then(null,W)}catch(n){return true}return t===r}(S.Promise);var Gr=s&&function(){var e=0;var t=Object.defineProperty({},"then",{get:function(){e+=1}});Promise.resolve(t);return e===1}();var Hr=function BadResolverPromise(e){var t=new Promise(e);e(3,function(){});this.then=t.then;this.constructor=BadResolverPromise};Hr.prototype=Promise.prototype;Hr.all=Promise.all;var Vr=a(function(){return!!Hr.all([1,2])});if(!Dr||!zr||!qr||Wr||!Gr||Vr){Promise=Fr;ne(S,"Promise",Fr)}if(Promise.all.length!==1){var Br=Promise.all;ne(Promise,"all",function all(e){return ce.Call(Br,this,arguments)})}if(Promise.race.length!==1){var Ur=Promise.race;ne(Promise,"race",function race(e){return ce.Call(Ur,this,arguments)})}if(Promise.resolve.length!==1){var $r=Promise.resolve;ne(Promise,"resolve",function resolve(e){return ce.Call($r,this,arguments)})}if(Promise.reject.length!==1){var Jr=Promise.reject;ne(Promise,"reject",function reject(e){return ce.Call(Jr,this,arguments)})}Mt(Promise,"all");Mt(Promise,"race");Mt(Promise,"resolve");Mt(Promise,"reject");Ce(Promise)}var Xr=function(e){var t=n(p(e,function(e,t){e[t]=true;return e},{}));return e.join(":")===t.join(":")};var Kr=Xr(["z","a","bb"]);var Zr=Xr(["z",1,"a","3",2]);if(s){var Yr=function fastkey(e,t){if(!t&&!Kr){return null}if(se(e)){return"^"+ce.ToString(e)}else if(typeof e==="string"){return"$"+e}else if(typeof e==="number"){if(!Zr){return"n"+e}return e}else if(typeof e==="boolean"){return"b"+e}return null};var Qr=function emptyObject(){return Object.create?Object.create(null):{}};var en=function addIterableToMap(e,n,o){if(r(o)||re.string(o)){l(o,function(e){if(!ce.TypeIsObject(e)){throw new TypeError("Iterator value "+e+" is not an entry object")}n.set(e[0],e[1])})}else if(o instanceof e){t(e.prototype.forEach,o,function(e,t){n.set(t,e)})}else{var i,a;if(!se(o)){a=n.set;if(!ce.IsCallable(a)){throw new TypeError("bad map")}i=ce.GetIterator(o)}if(typeof i!=="undefined"){while(true){var u=ce.IteratorStep(i);if(u===false){break}var f=u.value;try{if(!ce.TypeIsObject(f)){throw new TypeError("Iterator value "+f+" is not an entry object")}t(a,n,f[0],f[1])}catch(s){ce.IteratorClose(i,true);throw s}}}}};var tn=function addIterableToSet(e,n,o){if(r(o)||re.string(o)){l(o,function(e){n.add(e)})}else if(o instanceof e){t(e.prototype.forEach,o,function(e){n.add(e)})}else{var i,a;if(!se(o)){a=n.add;if(!ce.IsCallable(a)){throw new TypeError("bad set")}i=ce.GetIterator(o)}if(typeof i!=="undefined"){while(true){var u=ce.IteratorStep(i);if(u===false){break}var f=u.value;try{t(a,n,f)}catch(s){ce.IteratorClose(i,true);throw s}}}}};var rn={Map:function(){var e={};var r=function MapEntry(e,t){this.key=e;this.value=t;this.next=null;this.prev=null};r.prototype.isRemoved=function isRemoved(){return this.key===e};var n=function isMap(e){return!!e._es6map};var o=function requireMapSlot(e,t){if(!ce.TypeIsObject(e)||!n(e)){throw new TypeError("Method Map.prototype."+t+" called on incompatible receiver "+ce.ToString(e))}};var i=function MapIterator(e,t){o(e,"[[MapIterator]]");this.head=e._head;this.i=this.head;this.kind=t};i.prototype={isMapIterator:true,next:function next(){if(!this.isMapIterator){throw new TypeError("Not a MapIterator")}var e=this.i;var t=this.kind;var r=this.head;if(typeof this.i==="undefined"){return Ke()}while(e.isRemoved()&&e!==r){e=e.prev}var n;while(e.next!==r){e=e.next;if(!e.isRemoved()){if(t==="key"){n=e.key}else if(t==="value"){n=e.value}else{n=[e.key,e.value]}this.i=e;return Ke(n)}}this.i=void 0;return Ke()}};Me(i.prototype);var a;var u=function Map(){if(!(this instanceof Map)){throw new TypeError('Constructor Map requires "new"')}if(this&&this._es6map){throw new TypeError("Bad construction")}var e=Ae(this,Map,a,{_es6map:true,_head:null,_map:G?new G:null,_size:0,_storage:Qr()});var t=new r(null,null);t.next=t.prev=t;e._head=t;if(arguments.length>0){en(Map,e,arguments[0])}return e};a=u.prototype;m.getter(a,"size",function(){if(typeof this._size==="undefined"){throw new TypeError("size method called on incompatible Map")}return this._size});b(a,{get:function get(e){o(this,"get");var t;var r=Yr(e,true);if(r!==null){t=this._storage[r];if(t){return t.value}else{return}}if(this._map){t=V.call(this._map,e);if(t){return t.value}else{return}}var n=this._head;var i=n;while((i=i.next)!==n){if(ce.SameValueZero(i.key,e)){return i.value}}},has:function has(e){o(this,"has");var t=Yr(e,true);if(t!==null){return typeof this._storage[t]!=="undefined"}if(this._map){return B.call(this._map,e)}var r=this._head;var n=r;while((n=n.next)!==r){if(ce.SameValueZero(n.key,e)){return true}}return false},set:function set(e,t){o(this,"set");var n=this._head;var i=n;var a;var u=Yr(e,true);if(u!==null){if(typeof this._storage[u]!=="undefined"){this._storage[u].value=t;return this}else{a=this._storage[u]=new r(e,t);i=n.prev}}else if(this._map){if(B.call(this._map,e)){V.call(this._map,e).value=t}else{a=new r(e,t);U.call(this._map,e,a);i=n.prev}}while((i=i.next)!==n){if(ce.SameValueZero(i.key,e)){i.value=t;return this}}a=a||new r(e,t);if(ce.SameValue(-0,e)){a.key=+0}a.next=this._head;a.prev=this._head.prev;a.prev.next=a;a.next.prev=a;this._size+=1;return this},"delete":function(t){o(this,"delete");var r=this._head;var n=r;var i=Yr(t,true);if(i!==null){if(typeof this._storage[i]==="undefined"){return false}n=this._storage[i].prev;delete this._storage[i]}else if(this._map){if(!B.call(this._map,t)){return false}n=V.call(this._map,t).prev;H.call(this._map,t)}while((n=n.next)!==r){if(ce.SameValueZero(n.key,t)){n.key=e;n.value=e;n.prev.next=n.next;n.next.prev=n.prev;this._size-=1;return true}}return false},clear:function clear(){o(this,"clear");this._map=G?new G:null;this._size=0;this._storage=Qr();var t=this._head;var r=t;var n=r.next;while((r=n)!==t){r.key=e;r.value=e;n=r.next;r.next=r.prev=t}t.next=t.prev=t},keys:function keys(){o(this,"keys");return new i(this,"key")},values:function values(){o(this,"values");return new i(this,"value")},entries:function entries(){o(this,"entries");return new i(this,"key+value")},forEach:function forEach(e){o(this,"forEach");var r=arguments.length>1?arguments[1]:null;var n=this.entries();for(var i=n.next();!i.done;i=n.next()){if(r){t(e,r,i.value[1],i.value[0],this)}else{e(i.value[1],i.value[0],this)}}}});Me(a,a.entries);return u}(),Set:function(){var e=function isSet(e){return e._es6set&&typeof e._storage!=="undefined"};var r=function requireSetSlot(t,r){if(!ce.TypeIsObject(t)||!e(t)){throw new TypeError("Set.prototype."+r+" called on incompatible receiver "+ce.ToString(t))}};var o;var i=function Set(){if(!(this instanceof Set)){throw new TypeError('Constructor Set requires "new"')}if(this&&this._es6set){throw new TypeError("Bad construction")}var e=Ae(this,Set,o,{_es6set:true,"[[SetData]]":null,_storage:Qr()});if(!e._es6set){throw new TypeError("bad set")}if(arguments.length>0){tn(Set,e,arguments[0])}return e};o=i.prototype;var a=function(e){var t=e;if(t==="^null"){return null}else if(t==="^undefined"){return void 0}else{var r=t.charAt(0);if(r==="$"){return C(t,1)}else if(r==="n"){return+C(t,1)}else if(r==="b"){return t==="btrue"}}return+t};var u=function ensureMap(e){if(!e["[[SetData]]"]){var t=new rn.Map;e["[[SetData]]"]=t;l(n(e._storage),function(e){var r=a(e);t.set(r,r)});e["[[SetData]]"]=t}e._storage=null};m.getter(i.prototype,"size",function(){r(this,"size");if(this._storage){return n(this._storage).length}u(this);return this["[[SetData]]"].size});b(i.prototype,{has:function has(e){r(this,"has");var t;if(this._storage&&(t=Yr(e))!==null){return!!this._storage[t]}u(this);return this["[[SetData]]"].has(e)},add:function add(e){r(this,"add");var t;if(this._storage&&(t=Yr(e))!==null){this._storage[t]=true;return this}u(this);this["[[SetData]]"].set(e,e);return this},"delete":function(e){r(this,"delete");var t;if(this._storage&&(t=Yr(e))!==null){var n=z(this._storage,t);return delete this._storage[t]&&n}u(this);return this["[[SetData]]"]["delete"](e)},clear:function clear(){r(this,"clear");if(this._storage){this._storage=Qr()}if(this["[[SetData]]"]){this["[[SetData]]"].clear()}},values:function values(){r(this,"values");u(this);return new f(this["[[SetData]]"].values())},entries:function entries(){r(this,"entries");u(this);return new f(this["[[SetData]]"].entries())},forEach:function forEach(e){r(this,"forEach");var n=arguments.length>1?arguments[1]:null;var o=this;u(o);this["[[SetData]]"].forEach(function(r,i){if(n){t(e,n,i,i,o)}else{e(i,i,o)}})}});h(i.prototype,"keys",i.prototype.values,true);Me(i.prototype,i.prototype.values);var f=function SetIterator(e){this.it=e};f.prototype={isSetIterator:true,next:function next(){if(!this.isSetIterator){throw new TypeError("Not a SetIterator")}return this.it.next()}};Me(f.prototype);return i}()};var nn=S.Set&&!Set.prototype["delete"]&&Set.prototype.remove&&Set.prototype.items&&Set.prototype.map&&Array.isArray((new Set).keys);if(nn){S.Set=rn.Set}if(S.Map||S.Set){var on=a(function(){return new Map([[1,2]]).get(1)===2});if(!on){S.Map=function Map(){if(!(this instanceof Map)){throw new TypeError('Constructor Map requires "new"')}var e=new G;if(arguments.length>0){en(Map,e,arguments[0])}delete e.constructor;Object.setPrototypeOf(e,S.Map.prototype);return e};S.Map.prototype=O(G.prototype);h(S.Map.prototype,"constructor",S.Map,true);m.preserveToString(S.Map,G)}var an=new Map;var un=function(){var e=new Map([[1,0],[2,0],[3,0],[4,0]]);e.set(-0,e);return e.get(0)===e&&e.get(-0)===e&&e.has(0)&&e.has(-0)}();var fn=an.set(1,2)===an;if(!un||!fn){ne(Map.prototype,"set",function set(e,r){t(U,this,e===0?0:e,r);return this})}if(!un){b(Map.prototype,{get:function get(e){return t(V,this,e===0?0:e)},has:function has(e){return t(B,this,e===0?0:e)}},true);m.preserveToString(Map.prototype.get,V);m.preserveToString(Map.prototype.has,B)}var sn=new Set;var cn=Set.prototype["delete"]&&Set.prototype.add&&Set.prototype.has&&function(e){e["delete"](0);e.add(-0);return!e.has(0)}(sn);var ln=sn.add(1)===sn;if(!cn||!ln){var pn=Set.prototype.add;Set.prototype.add=function add(e){t(pn,this,e===0?0:e);return this};m.preserveToString(Set.prototype.add,pn)}if(!cn){var vn=Set.prototype.has;Set.prototype.has=function has(e){return t(vn,this,e===0?0:e)};m.preserveToString(Set.prototype.has,vn);var yn=Set.prototype["delete"];Set.prototype["delete"]=function SetDelete(e){return t(yn,this,e===0?0:e)};m.preserveToString(Set.prototype["delete"],yn)}var hn=w(S.Map,function(e){var t=new e([]);t.set(42,42);return t instanceof e});var bn=Object.setPrototypeOf&&!hn;var gn=function(){try{return!(S.Map()instanceof S.Map)}catch(e){return e instanceof TypeError}}();if(S.Map.length!==0||bn||!gn){S.Map=function Map(){if(!(this instanceof Map)){throw new TypeError('Constructor Map requires "new"')}var e=new G;if(arguments.length>0){en(Map,e,arguments[0])}delete e.constructor;Object.setPrototypeOf(e,Map.prototype);return e};S.Map.prototype=G.prototype;h(S.Map.prototype,"constructor",S.Map,true);m.preserveToString(S.Map,G)}var dn=w(S.Set,function(e){var t=new e([]);t.add(42,42);return t instanceof e});var mn=Object.setPrototypeOf&&!dn;var On=function(){try{return!(S.Set()instanceof S.Set)}catch(e){return e instanceof TypeError}}();if(S.Set.length!==0||mn||!On){var wn=S.Set;S.Set=function Set(){if(!(this instanceof Set)){throw new TypeError('Constructor Set requires "new"')}var e=new wn;if(arguments.length>0){tn(Set,e,arguments[0])}delete e.constructor;Object.setPrototypeOf(e,Set.prototype);return e};S.Set.prototype=wn.prototype;h(S.Set.prototype,"constructor",S.Set,true);m.preserveToString(S.Set,wn)}var jn=new S.Map;var Sn=!a(function(){return jn.keys().next().done});if(typeof S.Map.prototype.clear!=="function"||(new S.Set).size!==0||jn.size!==0||typeof S.Map.prototype.keys!=="function"||typeof S.Set.prototype.keys!=="function"||typeof S.Map.prototype.forEach!=="function"||typeof S.Set.prototype.forEach!=="function"||u(S.Map)||u(S.Set)||typeof jn.keys().next!=="function"||Sn||!hn){b(S,{Map:rn.Map,Set:rn.Set},true)}if(S.Set.prototype.keys!==S.Set.prototype.values){h(S.Set.prototype,"keys",S.Set.prototype.values,true)}Me(Object.getPrototypeOf((new S.Map).keys()));Me(Object.getPrototypeOf((new S.Set).keys()));if(c&&S.Set.prototype.has.name!=="has"){var Tn=S.Set.prototype.has;ne(S.Set.prototype,"has",function has(e){return t(Tn,this,e)})}}b(S,rn);Ce(S.Map);Ce(S.Set)}var In=function throwUnlessTargetIsObject(e){if(!ce.TypeIsObject(e)){throw new TypeError("target must be an object")}};var En={apply:function apply(){return ce.Call(ce.Call,null,arguments)},construct:function construct(e,t){if(!ce.IsConstructor(e)){throw new TypeError("First argument must be a constructor.")}var r=arguments.length>2?arguments[2]:e;if(!ce.IsConstructor(r)){throw new TypeError("new.target must be a constructor.")}return ce.Construct(e,t,r,"internal")},deleteProperty:function deleteProperty(e,t){In(e);if(s){var r=Object.getOwnPropertyDescriptor(e,t);if(r&&!r.configurable){return false}}return delete e[t]},has:function has(e,t){In(e);return t in e}};if(Object.getOwnPropertyNames){Object.assign(En,{ownKeys:function ownKeys(e){In(e);var t=Object.getOwnPropertyNames(e);if(ce.IsCallable(Object.getOwnPropertySymbols)){x(t,Object.getOwnPropertySymbols(e))}return t}})}var Pn=function ConvertExceptionToBoolean(e){return!i(e)};if(Object.preventExtensions){Object.assign(En,{isExtensible:function isExtensible(e){In(e);return Object.isExtensible(e)},preventExtensions:function preventExtensions(e){In(e);return Pn(function(){return Object.preventExtensions(e)})}})}if(s){var Cn=function get(e,t,r){var n=Object.getOwnPropertyDescriptor(e,t);if(!n){var o=Object.getPrototypeOf(e);if(o===null){return void 0}return Cn(o,t,r)}if("value"in n){return n.value}if(n.get){return ce.Call(n.get,r)}return void 0};var Mn=function set(e,r,n,o){var i=Object.getOwnPropertyDescriptor(e,r);if(!i){var a=Object.getPrototypeOf(e);if(a!==null){return Mn(a,r,n,o)}i={value:void 0,writable:true,enumerable:true,configurable:true}}if("value"in i){if(!i.writable){return false}if(!ce.TypeIsObject(o)){return false}var u=Object.getOwnPropertyDescriptor(o,r);if(u){return ae.defineProperty(o,r,{value:n})}else{return ae.defineProperty(o,r,{value:n,writable:true,enumerable:true,configurable:true})}}if(i.set){t(i.set,o,n);return true}return false};Object.assign(En,{defineProperty:function defineProperty(e,t,r){In(e);return Pn(function(){return Object.defineProperty(e,t,r)})},getOwnPropertyDescriptor:function getOwnPropertyDescriptor(e,t){In(e);return Object.getOwnPropertyDescriptor(e,t)},get:function get(e,t){In(e);var r=arguments.length>2?arguments[2]:e;return Cn(e,t,r)},set:function set(e,t,r){In(e);var n=arguments.length>3?arguments[3]:e;return Mn(e,t,r,n)}})}if(Object.getPrototypeOf){var xn=Object.getPrototypeOf;En.getPrototypeOf=function getPrototypeOf(e){In(e);return xn(e)}}if(Object.setPrototypeOf&&En.getPrototypeOf){var Nn=function(e,t){var r=t;while(r){if(e===r){return true}r=En.getPrototypeOf(r)}return false};Object.assign(En,{setPrototypeOf:function setPrototypeOf(e,t){In(e);if(t!==null&&!ce.TypeIsObject(t)){throw new TypeError("proto must be an object or null")}if(t===ae.getPrototypeOf(e)){return true}if(ae.isExtensible&&!ae.isExtensible(e)){return false}if(Nn(e,t)){return false}Object.setPrototypeOf(e,t);return true}})}var An=function(e,t){if(!ce.IsCallable(S.Reflect[e])){h(S.Reflect,e,t)}else{var r=a(function(){S.Reflect[e](1);S.Reflect[e](NaN);S.Reflect[e](true);return true});if(r){ne(S.Reflect,e,t)}}};Object.keys(En).forEach(function(e){An(e,En[e])});var Rn=S.Reflect.getPrototypeOf;if(c&&Rn&&Rn.name!=="getPrototypeOf"){ne(S.Reflect,"getPrototypeOf",function getPrototypeOf(e){return t(Rn,S.Reflect,e)})}if(S.Reflect.setPrototypeOf){if(a(function(){S.Reflect.setPrototypeOf(1,{});return true})){ne(S.Reflect,"setPrototypeOf",En.setPrototypeOf)}}if(S.Reflect.defineProperty){if(!a(function(){var e=!S.Reflect.defineProperty(1,"test",{value:1});var t=typeof Object.preventExtensions!=="function"||!S.Reflect.defineProperty(Object.preventExtensions({}),"test",{});return e&&t})){ne(S.Reflect,"defineProperty",En.defineProperty)}}if(S.Reflect.construct){if(!a(function(){var e=function F(){};return S.Reflect.construct(function(){},[],e)instanceof e})){ne(S.Reflect,"construct",En.construct)}}if(String(new Date(NaN))!=="Invalid Date"){var _n=Date.prototype.toString;var kn=function toString(){var e=+this;if(e!==e){return"Invalid Date"}return ce.Call(_n,this)};ne(Date.prototype,"toString",kn)}var Ln={anchor:function anchor(e){return ce.CreateHTML(this,"a","name",e)},big:function big(){return ce.CreateHTML(this,"big","","")},blink:function blink(){return ce.CreateHTML(this,"blink","","")},bold:function bold(){return ce.CreateHTML(this,"b","","")},fixed:function fixed(){return ce.CreateHTML(this,"tt","","")},fontcolor:function fontcolor(e){return ce.CreateHTML(this,"font","color",e)},fontsize:function fontsize(e){return ce.CreateHTML(this,"font","size",e)},italics:function italics(){return ce.CreateHTML(this,"i","","")},link:function link(e){return ce.CreateHTML(this,"a","href",e)},small:function small(){return ce.CreateHTML(this,"small","","")},strike:function strike(){return ce.CreateHTML(this,"strike","","")},sub:function sub(){return ce.CreateHTML(this,"sub","","")},sup:function sub(){return ce.CreateHTML(this,"sup","","")}};l(Object.keys(Ln),function(e){var r=String.prototype[e];var n=false;if(ce.IsCallable(r)){var o=t(r,"",' " ');var i=P([],o.match(/"/g)).length;n=o!==o.toLowerCase()||i>2}else{n=true}if(n){ne(String.prototype,e,Ln[e])}});var Fn=function(){if(!oe){return false}var e=typeof JSON==="object"&&typeof JSON.stringify==="function"?JSON.stringify:null;if(!e){return false}if(typeof e($())!=="undefined"){return true}if(e([$()])!=="[null]"){return true}var t={a:$()};t[$()]=true;if(e(t)!=="{}"){return true}return false}();var Dn=a(function(){if(!oe){return true}return JSON.stringify(Object($()))==="{}"&&JSON.stringify([Object($())])==="[{}]"});if(Fn||!Dn){var zn=JSON.stringify;ne(JSON,"stringify",function stringify(e){if(typeof e==="symbol"){return}var n;if(arguments.length>1){n=arguments[1]}var o=[e];if(!r(n)){var i=ce.IsCallable(n)?n:null;var a=function(e,r){var n=i?t(i,this,e,r):r;if(typeof n!=="symbol"){if(re.symbol(n)){return Nt({})(n)}else{return n}}};o.push(a)}else{o.push(n)}if(arguments.length>2){o.push(arguments[2])}return zn.apply(this,o)})}return S});
+(function (e, t) {
+ if (typeof define === 'function' && define.amd) {
+ define(t);
+ } else if (typeof exports === 'object') {
+ module.exports = t();
+ } else {
+ e.returnExports = t();
+ }
+})(this, function () {
+ 'use strict';
+ var e = Function.call.bind(Function.apply);
+ var t = Function.call.bind(Function.call);
+ var r = Array.isArray;
+ var n = Object.keys;
+ var o = function notThunker(t) {
+ return function notThunk() {
+ return !e(t, this, arguments);
+ };
+ };
+ var i = function (e) {
+ try {
+ e();
+ return false;
+ } catch (t) {
+ return true;
+ }
+ };
+ var a = function valueOrFalseIfThrows(e) {
+ try {
+ return e();
+ } catch (t) {
+ return false;
+ }
+ };
+ var u = o(i);
+ var f = function () {
+ return !i(function () {
+ return Object.defineProperty({}, 'x', { get: function () {} });
+ });
+ };
+ var s = !!Object.defineProperty && f();
+ var c = function foo() {}.name === 'foo';
+ var l = Function.call.bind(Array.prototype.forEach);
+ var p = Function.call.bind(Array.prototype.reduce);
+ var v = Function.call.bind(Array.prototype.filter);
+ var y = Function.call.bind(Array.prototype.some);
+ var h = function (e, t, r, n) {
+ if (!n && t in e) {
+ return;
+ }
+ if (s) {
+ Object.defineProperty(e, t, {
+ configurable: true,
+ enumerable: false,
+ writable: true,
+ value: r,
+ });
+ } else {
+ e[t] = r;
+ }
+ };
+ var b = function (e, t, r) {
+ l(n(t), function (n) {
+ var o = t[n];
+ h(e, n, o, !!r);
+ });
+ };
+ var g = Function.call.bind(Object.prototype.toString);
+ var d =
+ typeof /abc/ === 'function'
+ ? function IsCallableSlow(e) {
+ return typeof e === 'function' && g(e) === '[object Function]';
+ }
+ : function IsCallableFast(e) {
+ return typeof e === 'function';
+ };
+ var m = {
+ getter: function (e, t, r) {
+ if (!s) {
+ throw new TypeError('getters require true ES5 support');
+ }
+ Object.defineProperty(e, t, {
+ configurable: true,
+ enumerable: false,
+ get: r,
+ });
+ },
+ proxy: function (e, t, r) {
+ if (!s) {
+ throw new TypeError('getters require true ES5 support');
+ }
+ var n = Object.getOwnPropertyDescriptor(e, t);
+ Object.defineProperty(r, t, {
+ configurable: n.configurable,
+ enumerable: n.enumerable,
+ get: function getKey() {
+ return e[t];
+ },
+ set: function setKey(r) {
+ e[t] = r;
+ },
+ });
+ },
+ redefine: function (e, t, r) {
+ if (s) {
+ var n = Object.getOwnPropertyDescriptor(e, t);
+ n.value = r;
+ Object.defineProperty(e, t, n);
+ } else {
+ e[t] = r;
+ }
+ },
+ defineByDescriptor: function (e, t, r) {
+ if (s) {
+ Object.defineProperty(e, t, r);
+ } else if ('value' in r) {
+ e[t] = r.value;
+ }
+ },
+ preserveToString: function (e, t) {
+ if (t && d(t.toString)) {
+ h(e, 'toString', t.toString.bind(t), true);
+ }
+ },
+ };
+ var O =
+ Object.create ||
+ function (e, t) {
+ var r = function Prototype() {};
+ r.prototype = e;
+ var o = new r();
+ if (typeof t !== 'undefined') {
+ n(t).forEach(function (e) {
+ m.defineByDescriptor(o, e, t[e]);
+ });
+ }
+ return o;
+ };
+ var w = function (e, t) {
+ if (!Object.setPrototypeOf) {
+ return false;
+ }
+ return a(function () {
+ var r = function Subclass(t) {
+ var r = new e(t);
+ Object.setPrototypeOf(r, Subclass.prototype);
+ return r;
+ };
+ Object.setPrototypeOf(r, e);
+ r.prototype = O(e.prototype, { constructor: { value: r } });
+ return t(r);
+ });
+ };
+ var j = function () {
+ if (typeof self !== 'undefined') {
+ return self;
+ }
+ if (typeof window !== 'undefined') {
+ return window;
+ }
+ if (typeof global !== 'undefined') {
+ return global;
+ }
+ throw new Error('unable to locate global object');
+ };
+ var S = j();
+ var T = S.isFinite;
+ var I = Function.call.bind(String.prototype.indexOf);
+ var E = Function.apply.bind(Array.prototype.indexOf);
+ var P = Function.call.bind(Array.prototype.concat);
+ var C = Function.call.bind(String.prototype.slice);
+ var M = Function.call.bind(Array.prototype.push);
+ var x = Function.apply.bind(Array.prototype.push);
+ var N = Function.call.bind(Array.prototype.shift);
+ var A = Math.max;
+ var R = Math.min;
+ var _ = Math.floor;
+ var k = Math.abs;
+ var L = Math.exp;
+ var F = Math.log;
+ var D = Math.sqrt;
+ var z = Function.call.bind(Object.prototype.hasOwnProperty);
+ var q;
+ var W = function () {};
+ var G = S.Map;
+ var H = G && G.prototype['delete'];
+ var V = G && G.prototype.get;
+ var B = G && G.prototype.has;
+ var U = G && G.prototype.set;
+ var $ = S.Symbol || {};
+ var J = $.species || '@@species';
+ var X =
+ Number.isNaN ||
+ function isNaN(e) {
+ return e !== e;
+ };
+ var K =
+ Number.isFinite ||
+ function isFinite(e) {
+ return typeof e === 'number' && T(e);
+ };
+ var Z = d(Math.sign)
+ ? Math.sign
+ : function sign(e) {
+ var t = Number(e);
+ if (t === 0) {
+ return t;
+ }
+ if (X(t)) {
+ return t;
+ }
+ return t < 0 ? -1 : 1;
+ };
+ var Y = function log1p(e) {
+ var t = Number(e);
+ if (t < -1 || X(t)) {
+ return NaN;
+ }
+ if (t === 0 || t === Infinity) {
+ return t;
+ }
+ if (t === -1) {
+ return -Infinity;
+ }
+ return 1 + t - 1 === 0 ? t : t * (F(1 + t) / (1 + t - 1));
+ };
+ var Q = function isArguments(e) {
+ return g(e) === '[object Arguments]';
+ };
+ var ee = function isArguments(e) {
+ return (
+ e !== null &&
+ typeof e === 'object' &&
+ typeof e.length === 'number' &&
+ e.length >= 0 &&
+ g(e) !== '[object Array]' &&
+ g(e.callee) === '[object Function]'
+ );
+ };
+ var te = Q(arguments) ? Q : ee;
+ var re = {
+ primitive: function (e) {
+ return e === null || (typeof e !== 'function' && typeof e !== 'object');
+ },
+ string: function (e) {
+ return g(e) === '[object String]';
+ },
+ regex: function (e) {
+ return g(e) === '[object RegExp]';
+ },
+ symbol: function (e) {
+ return typeof S.Symbol === 'function' && typeof e === 'symbol';
+ },
+ };
+ var ne = function overrideNative(e, t, r) {
+ var n = e[t];
+ h(e, t, r, true);
+ m.preserveToString(e[t], n);
+ };
+ var oe = typeof $ === 'function' && typeof $['for'] === 'function' && re.symbol($());
+ var ie = re.symbol($.iterator) ? $.iterator : '_es6-shim iterator_';
+ if (S.Set && typeof new S.Set()['@@iterator'] === 'function') {
+ ie = '@@iterator';
+ }
+ if (!S.Reflect) {
+ h(S, 'Reflect', {}, true);
+ }
+ var ae = S.Reflect;
+ var ue = String;
+ var fe = typeof document === 'undefined' || !document ? null : document.all;
+ var se =
+ fe == null
+ ? function isNullOrUndefined(e) {
+ return e == null;
+ }
+ : function isNullOrUndefinedAndNotDocumentAll(e) {
+ return e == null && e !== fe;
+ };
+ var ce = {
+ Call: function Call(t, r) {
+ var n = arguments.length > 2 ? arguments[2] : [];
+ if (!ce.IsCallable(t)) {
+ throw new TypeError(t + ' is not a function');
+ }
+ return e(t, r, n);
+ },
+ RequireObjectCoercible: function (e, t) {
+ if (se(e)) {
+ throw new TypeError(t || 'Cannot call method on ' + e);
+ }
+ return e;
+ },
+ TypeIsObject: function (e) {
+ if (e === void 0 || e === null || e === true || e === false) {
+ return false;
+ }
+ return typeof e === 'function' || typeof e === 'object' || e === fe;
+ },
+ ToObject: function (e, t) {
+ return Object(ce.RequireObjectCoercible(e, t));
+ },
+ IsCallable: d,
+ IsConstructor: function (e) {
+ return ce.IsCallable(e);
+ },
+ ToInt32: function (e) {
+ return ce.ToNumber(e) >> 0;
+ },
+ ToUint32: function (e) {
+ return ce.ToNumber(e) >>> 0;
+ },
+ ToNumber: function (e) {
+ if (g(e) === '[object Symbol]') {
+ throw new TypeError('Cannot convert a Symbol value to a number');
+ }
+ return +e;
+ },
+ ToInteger: function (e) {
+ var t = ce.ToNumber(e);
+ if (X(t)) {
+ return 0;
+ }
+ if (t === 0 || !K(t)) {
+ return t;
+ }
+ return (t > 0 ? 1 : -1) * _(k(t));
+ },
+ ToLength: function (e) {
+ var t = ce.ToInteger(e);
+ if (t <= 0) {
+ return 0;
+ }
+ if (t > Number.MAX_SAFE_INTEGER) {
+ return Number.MAX_SAFE_INTEGER;
+ }
+ return t;
+ },
+ SameValue: function (e, t) {
+ if (e === t) {
+ if (e === 0) {
+ return 1 / e === 1 / t;
+ }
+ return true;
+ }
+ return X(e) && X(t);
+ },
+ SameValueZero: function (e, t) {
+ return e === t || (X(e) && X(t));
+ },
+ IsIterable: function (e) {
+ return ce.TypeIsObject(e) && (typeof e[ie] !== 'undefined' || te(e));
+ },
+ GetIterator: function (e) {
+ if (te(e)) {
+ return new q(e, 'value');
+ }
+ var t = ce.GetMethod(e, ie);
+ if (!ce.IsCallable(t)) {
+ throw new TypeError('value is not an iterable');
+ }
+ var r = ce.Call(t, e);
+ if (!ce.TypeIsObject(r)) {
+ throw new TypeError('bad iterator');
+ }
+ return r;
+ },
+ GetMethod: function (e, t) {
+ var r = ce.ToObject(e)[t];
+ if (se(r)) {
+ return void 0;
+ }
+ if (!ce.IsCallable(r)) {
+ throw new TypeError('Method not callable: ' + t);
+ }
+ return r;
+ },
+ IteratorComplete: function (e) {
+ return !!e.done;
+ },
+ IteratorClose: function (e, t) {
+ var r = ce.GetMethod(e, 'return');
+ if (r === void 0) {
+ return;
+ }
+ var n, o;
+ try {
+ n = ce.Call(r, e);
+ } catch (i) {
+ o = i;
+ }
+ if (t) {
+ return;
+ }
+ if (o) {
+ throw o;
+ }
+ if (!ce.TypeIsObject(n)) {
+ throw new TypeError("Iterator's return method returned a non-object.");
+ }
+ },
+ IteratorNext: function (e) {
+ var t = arguments.length > 1 ? e.next(arguments[1]) : e.next();
+ if (!ce.TypeIsObject(t)) {
+ throw new TypeError('bad iterator');
+ }
+ return t;
+ },
+ IteratorStep: function (e) {
+ var t = ce.IteratorNext(e);
+ var r = ce.IteratorComplete(t);
+ return r ? false : t;
+ },
+ Construct: function (e, t, r, n) {
+ var o = typeof r === 'undefined' ? e : r;
+ if (!n && ae.construct) {
+ return ae.construct(e, t, o);
+ }
+ var i = o.prototype;
+ if (!ce.TypeIsObject(i)) {
+ i = Object.prototype;
+ }
+ var a = O(i);
+ var u = ce.Call(e, a, t);
+ return ce.TypeIsObject(u) ? u : a;
+ },
+ SpeciesConstructor: function (e, t) {
+ var r = e.constructor;
+ if (r === void 0) {
+ return t;
+ }
+ if (!ce.TypeIsObject(r)) {
+ throw new TypeError('Bad constructor');
+ }
+ var n = r[J];
+ if (se(n)) {
+ return t;
+ }
+ if (!ce.IsConstructor(n)) {
+ throw new TypeError('Bad @@species');
+ }
+ return n;
+ },
+ CreateHTML: function (e, t, r, n) {
+ var o = ce.ToString(e);
+ var i = '<' + t;
+ if (r !== '') {
+ var a = ce.ToString(n);
+ var u = a.replace(/"/g, '"');
+ i += ' ' + r + '="' + u + '"';
+ }
+ var f = i + '>';
+ var s = f + o;
+ return s + '' + t + '>';
+ },
+ IsRegExp: function IsRegExp(e) {
+ if (!ce.TypeIsObject(e)) {
+ return false;
+ }
+ var t = e[$.match];
+ if (typeof t !== 'undefined') {
+ return !!t;
+ }
+ return re.regex(e);
+ },
+ ToString: function ToString(e) {
+ return ue(e);
+ },
+ };
+ if (s && oe) {
+ var le = function defineWellKnownSymbol(e) {
+ if (re.symbol($[e])) {
+ return $[e];
+ }
+ var t = $['for']('Symbol.' + e);
+ Object.defineProperty($, e, {
+ configurable: false,
+ enumerable: false,
+ writable: false,
+ value: t,
+ });
+ return t;
+ };
+ if (!re.symbol($.search)) {
+ var pe = le('search');
+ var ve = String.prototype.search;
+ h(RegExp.prototype, pe, function search(e) {
+ return ce.Call(ve, e, [this]);
+ });
+ var ye = function search(e) {
+ var t = ce.RequireObjectCoercible(this);
+ if (!se(e)) {
+ var r = ce.GetMethod(e, pe);
+ if (typeof r !== 'undefined') {
+ return ce.Call(r, e, [t]);
+ }
+ }
+ return ce.Call(ve, t, [ce.ToString(e)]);
+ };
+ ne(String.prototype, 'search', ye);
+ }
+ if (!re.symbol($.replace)) {
+ var he = le('replace');
+ var be = String.prototype.replace;
+ h(RegExp.prototype, he, function replace(e, t) {
+ return ce.Call(be, e, [this, t]);
+ });
+ var ge = function replace(e, t) {
+ var r = ce.RequireObjectCoercible(this);
+ if (!se(e)) {
+ var n = ce.GetMethod(e, he);
+ if (typeof n !== 'undefined') {
+ return ce.Call(n, e, [r, t]);
+ }
+ }
+ return ce.Call(be, r, [ce.ToString(e), t]);
+ };
+ ne(String.prototype, 'replace', ge);
+ }
+ if (!re.symbol($.split)) {
+ var de = le('split');
+ var me = String.prototype.split;
+ h(RegExp.prototype, de, function split(e, t) {
+ return ce.Call(me, e, [this, t]);
+ });
+ var Oe = function split(e, t) {
+ var r = ce.RequireObjectCoercible(this);
+ if (!se(e)) {
+ var n = ce.GetMethod(e, de);
+ if (typeof n !== 'undefined') {
+ return ce.Call(n, e, [r, t]);
+ }
+ }
+ return ce.Call(me, r, [ce.ToString(e), t]);
+ };
+ ne(String.prototype, 'split', Oe);
+ }
+ var we = re.symbol($.match);
+ var je =
+ we &&
+ (function () {
+ var e = {};
+ e[$.match] = function () {
+ return 42;
+ };
+ return 'a'.match(e) !== 42;
+ })();
+ if (!we || je) {
+ var Se = le('match');
+ var Te = String.prototype.match;
+ h(RegExp.prototype, Se, function match(e) {
+ return ce.Call(Te, e, [this]);
+ });
+ var Ie = function match(e) {
+ var t = ce.RequireObjectCoercible(this);
+ if (!se(e)) {
+ var r = ce.GetMethod(e, Se);
+ if (typeof r !== 'undefined') {
+ return ce.Call(r, e, [t]);
+ }
+ }
+ return ce.Call(Te, t, [ce.ToString(e)]);
+ };
+ ne(String.prototype, 'match', Ie);
+ }
+ }
+ var Ee = function wrapConstructor(e, t, r) {
+ m.preserveToString(t, e);
+ if (Object.setPrototypeOf) {
+ Object.setPrototypeOf(e, t);
+ }
+ if (s) {
+ l(Object.getOwnPropertyNames(e), function (n) {
+ if (n in W || r[n]) {
+ return;
+ }
+ m.proxy(e, n, t);
+ });
+ } else {
+ l(Object.keys(e), function (n) {
+ if (n in W || r[n]) {
+ return;
+ }
+ t[n] = e[n];
+ });
+ }
+ t.prototype = e.prototype;
+ m.redefine(e.prototype, 'constructor', t);
+ };
+ var Pe = function () {
+ return this;
+ };
+ var Ce = function (e) {
+ if (s && !z(e, J)) {
+ m.getter(e, J, Pe);
+ }
+ };
+ var Me = function (e, t) {
+ var r =
+ t ||
+ function iterator() {
+ return this;
+ };
+ h(e, ie, r);
+ if (!e[ie] && re.symbol(ie)) {
+ e[ie] = r;
+ }
+ };
+ var xe = function createDataProperty(e, t, r) {
+ if (s) {
+ Object.defineProperty(e, t, {
+ configurable: true,
+ enumerable: true,
+ writable: true,
+ value: r,
+ });
+ } else {
+ e[t] = r;
+ }
+ };
+ var Ne = function createDataPropertyOrThrow(e, t, r) {
+ xe(e, t, r);
+ if (!ce.SameValue(e[t], r)) {
+ throw new TypeError('property is nonconfigurable');
+ }
+ };
+ var Ae = function (e, t, r, n) {
+ if (!ce.TypeIsObject(e)) {
+ throw new TypeError('Constructor requires `new`: ' + t.name);
+ }
+ var o = t.prototype;
+ if (!ce.TypeIsObject(o)) {
+ o = r;
+ }
+ var i = O(o);
+ for (var a in n) {
+ if (z(n, a)) {
+ var u = n[a];
+ h(i, a, u, true);
+ }
+ }
+ return i;
+ };
+ if (String.fromCodePoint && String.fromCodePoint.length !== 1) {
+ var Re = String.fromCodePoint;
+ ne(String, 'fromCodePoint', function fromCodePoint(e) {
+ return ce.Call(Re, this, arguments);
+ });
+ }
+ var _e = {
+ fromCodePoint: function fromCodePoint(e) {
+ var t = [];
+ var r;
+ for (var n = 0, o = arguments.length; n < o; n++) {
+ r = Number(arguments[n]);
+ if (!ce.SameValue(r, ce.ToInteger(r)) || r < 0 || r > 1114111) {
+ throw new RangeError('Invalid code point ' + r);
+ }
+ if (r < 65536) {
+ M(t, String.fromCharCode(r));
+ } else {
+ r -= 65536;
+ M(t, String.fromCharCode((r >> 10) + 55296));
+ M(t, String.fromCharCode((r % 1024) + 56320));
+ }
+ }
+ return t.join('');
+ },
+ raw: function raw(e) {
+ var t = ce.ToObject(e, 'bad callSite');
+ var r = ce.ToObject(t.raw, 'bad raw value');
+ var n = r.length;
+ var o = ce.ToLength(n);
+ if (o <= 0) {
+ return '';
+ }
+ var i = [];
+ var a = 0;
+ var u, f, s, c;
+ while (a < o) {
+ u = ce.ToString(a);
+ s = ce.ToString(r[u]);
+ M(i, s);
+ if (a + 1 >= o) {
+ break;
+ }
+ f = a + 1 < arguments.length ? arguments[a + 1] : '';
+ c = ce.ToString(f);
+ M(i, c);
+ a += 1;
+ }
+ return i.join('');
+ },
+ };
+ if (String.raw && String.raw({ raw: { 0: 'x', 1: 'y', length: 2 } }) !== 'xy') {
+ ne(String, 'raw', _e.raw);
+ }
+ b(String, _e);
+ var ke = function repeat(e, t) {
+ if (t < 1) {
+ return '';
+ }
+ if (t % 2) {
+ return repeat(e, t - 1) + e;
+ }
+ var r = repeat(e, t / 2);
+ return r + r;
+ };
+ var Le = Infinity;
+ var Fe = {
+ repeat: function repeat(e) {
+ var t = ce.ToString(ce.RequireObjectCoercible(this));
+ var r = ce.ToInteger(e);
+ if (r < 0 || r >= Le) {
+ throw new RangeError(
+ 'repeat count must be less than infinity and not overflow maximum string size'
+ );
+ }
+ return ke(t, r);
+ },
+ startsWith: function startsWith(e) {
+ var t = ce.ToString(ce.RequireObjectCoercible(this));
+ if (ce.IsRegExp(e)) {
+ throw new TypeError('Cannot call method "startsWith" with a regex');
+ }
+ var r = ce.ToString(e);
+ var n;
+ if (arguments.length > 1) {
+ n = arguments[1];
+ }
+ var o = A(ce.ToInteger(n), 0);
+ return C(t, o, o + r.length) === r;
+ },
+ endsWith: function endsWith(e) {
+ var t = ce.ToString(ce.RequireObjectCoercible(this));
+ if (ce.IsRegExp(e)) {
+ throw new TypeError('Cannot call method "endsWith" with a regex');
+ }
+ var r = ce.ToString(e);
+ var n = t.length;
+ var o;
+ if (arguments.length > 1) {
+ o = arguments[1];
+ }
+ var i = typeof o === 'undefined' ? n : ce.ToInteger(o);
+ var a = R(A(i, 0), n);
+ return C(t, a - r.length, a) === r;
+ },
+ includes: function includes(e) {
+ if (ce.IsRegExp(e)) {
+ throw new TypeError('"includes" does not accept a RegExp');
+ }
+ var t = ce.ToString(e);
+ var r;
+ if (arguments.length > 1) {
+ r = arguments[1];
+ }
+ return I(this, t, r) !== -1;
+ },
+ codePointAt: function codePointAt(e) {
+ var t = ce.ToString(ce.RequireObjectCoercible(this));
+ var r = ce.ToInteger(e);
+ var n = t.length;
+ if (r >= 0 && r < n) {
+ var o = t.charCodeAt(r);
+ var i = r + 1 === n;
+ if (o < 55296 || o > 56319 || i) {
+ return o;
+ }
+ var a = t.charCodeAt(r + 1);
+ if (a < 56320 || a > 57343) {
+ return o;
+ }
+ return (o - 55296) * 1024 + (a - 56320) + 65536;
+ }
+ },
+ };
+ if (String.prototype.includes && 'a'.includes('a', Infinity) !== false) {
+ ne(String.prototype, 'includes', Fe.includes);
+ }
+ if (String.prototype.startsWith && String.prototype.endsWith) {
+ var De = i(function () {
+ return '/a/'.startsWith(/a/);
+ });
+ var ze = a(function () {
+ return 'abc'.startsWith('a', Infinity) === false;
+ });
+ if (!De || !ze) {
+ ne(String.prototype, 'startsWith', Fe.startsWith);
+ ne(String.prototype, 'endsWith', Fe.endsWith);
+ }
+ }
+ if (oe) {
+ var qe = a(function () {
+ var e = /a/;
+ e[$.match] = false;
+ return '/a/'.startsWith(e);
+ });
+ if (!qe) {
+ ne(String.prototype, 'startsWith', Fe.startsWith);
+ }
+ var We = a(function () {
+ var e = /a/;
+ e[$.match] = false;
+ return '/a/'.endsWith(e);
+ });
+ if (!We) {
+ ne(String.prototype, 'endsWith', Fe.endsWith);
+ }
+ var Ge = a(function () {
+ var e = /a/;
+ e[$.match] = false;
+ return '/a/'.includes(e);
+ });
+ if (!Ge) {
+ ne(String.prototype, 'includes', Fe.includes);
+ }
+ }
+ b(String.prototype, Fe);
+ var He = [
+ '\t\n\x0B\f\r \xa0\u1680\u180e\u2000\u2001\u2002\u2003',
+ '\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028',
+ '\u2029\ufeff',
+ ].join('');
+ var Ve = new RegExp('(^[' + He + ']+)|([' + He + ']+$)', 'g');
+ var Be = function trim() {
+ return ce.ToString(ce.RequireObjectCoercible(this)).replace(Ve, '');
+ };
+ var Ue = ['\x85', '\u200b', '\ufffe'].join('');
+ var $e = new RegExp('[' + Ue + ']', 'g');
+ var Je = /^[-+]0x[0-9a-f]+$/i;
+ var Xe = Ue.trim().length !== Ue.length;
+ h(String.prototype, 'trim', Be, Xe);
+ var Ke = function (e) {
+ return { value: e, done: arguments.length === 0 };
+ };
+ var Ze = function (e) {
+ ce.RequireObjectCoercible(e);
+ this._s = ce.ToString(e);
+ this._i = 0;
+ };
+ Ze.prototype.next = function () {
+ var e = this._s;
+ var t = this._i;
+ if (typeof e === 'undefined' || t >= e.length) {
+ this._s = void 0;
+ return Ke();
+ }
+ var r = e.charCodeAt(t);
+ var n, o;
+ if (r < 55296 || r > 56319 || t + 1 === e.length) {
+ o = 1;
+ } else {
+ n = e.charCodeAt(t + 1);
+ o = n < 56320 || n > 57343 ? 1 : 2;
+ }
+ this._i = t + o;
+ return Ke(e.substr(t, o));
+ };
+ Me(Ze.prototype);
+ Me(String.prototype, function () {
+ return new Ze(this);
+ });
+ var Ye = {
+ from: function from(e) {
+ var r = this;
+ var n;
+ if (arguments.length > 1) {
+ n = arguments[1];
+ }
+ var o, i;
+ if (typeof n === 'undefined') {
+ o = false;
+ } else {
+ if (!ce.IsCallable(n)) {
+ throw new TypeError('Array.from: when provided, the second argument must be a function');
+ }
+ if (arguments.length > 2) {
+ i = arguments[2];
+ }
+ o = true;
+ }
+ var a = typeof (te(e) || ce.GetMethod(e, ie)) !== 'undefined';
+ var u, f, s;
+ if (a) {
+ f = ce.IsConstructor(r) ? Object(new r()) : [];
+ var c = ce.GetIterator(e);
+ var l, p;
+ s = 0;
+ while (true) {
+ l = ce.IteratorStep(c);
+ if (l === false) {
+ break;
+ }
+ p = l.value;
+ try {
+ if (o) {
+ p = typeof i === 'undefined' ? n(p, s) : t(n, i, p, s);
+ }
+ f[s] = p;
+ } catch (v) {
+ ce.IteratorClose(c, true);
+ throw v;
+ }
+ s += 1;
+ }
+ u = s;
+ } else {
+ var y = ce.ToObject(e);
+ u = ce.ToLength(y.length);
+ f = ce.IsConstructor(r) ? Object(new r(u)) : new Array(u);
+ var h;
+ for (s = 0; s < u; ++s) {
+ h = y[s];
+ if (o) {
+ h = typeof i === 'undefined' ? n(h, s) : t(n, i, h, s);
+ }
+ Ne(f, s, h);
+ }
+ }
+ f.length = u;
+ return f;
+ },
+ of: function of() {
+ var e = arguments.length;
+ var t = this;
+ var n = r(t) || !ce.IsCallable(t) ? new Array(e) : ce.Construct(t, [e]);
+ for (var o = 0; o < e; ++o) {
+ Ne(n, o, arguments[o]);
+ }
+ n.length = e;
+ return n;
+ },
+ };
+ b(Array, Ye);
+ Ce(Array);
+ q = function (e, t) {
+ this.i = 0;
+ this.array = e;
+ this.kind = t;
+ };
+ b(q.prototype, {
+ next: function () {
+ var e = this.i;
+ var t = this.array;
+ if (!(this instanceof q)) {
+ throw new TypeError('Not an ArrayIterator');
+ }
+ if (typeof t !== 'undefined') {
+ var r = ce.ToLength(t.length);
+ for (; e < r; e++) {
+ var n = this.kind;
+ var o;
+ if (n === 'key') {
+ o = e;
+ } else if (n === 'value') {
+ o = t[e];
+ } else if (n === 'entry') {
+ o = [e, t[e]];
+ }
+ this.i = e + 1;
+ return Ke(o);
+ }
+ }
+ this.array = void 0;
+ return Ke();
+ },
+ });
+ Me(q.prototype);
+ var Qe =
+ Array.of === Ye.of ||
+ (function () {
+ var e = function Foo(e) {
+ this.length = e;
+ };
+ e.prototype = [];
+ var t = Array.of.apply(e, [1, 2]);
+ return t instanceof e && t.length === 2;
+ })();
+ if (!Qe) {
+ ne(Array, 'of', Ye.of);
+ }
+ var et = {
+ copyWithin: function copyWithin(e, t) {
+ var r = ce.ToObject(this);
+ var n = ce.ToLength(r.length);
+ var o = ce.ToInteger(e);
+ var i = ce.ToInteger(t);
+ var a = o < 0 ? A(n + o, 0) : R(o, n);
+ var u = i < 0 ? A(n + i, 0) : R(i, n);
+ var f;
+ if (arguments.length > 2) {
+ f = arguments[2];
+ }
+ var s = typeof f === 'undefined' ? n : ce.ToInteger(f);
+ var c = s < 0 ? A(n + s, 0) : R(s, n);
+ var l = R(c - u, n - a);
+ var p = 1;
+ if (u < a && a < u + l) {
+ p = -1;
+ u += l - 1;
+ a += l - 1;
+ }
+ while (l > 0) {
+ if (u in r) {
+ r[a] = r[u];
+ } else {
+ delete r[a];
+ }
+ u += p;
+ a += p;
+ l -= 1;
+ }
+ return r;
+ },
+ fill: function fill(e) {
+ var t;
+ if (arguments.length > 1) {
+ t = arguments[1];
+ }
+ var r;
+ if (arguments.length > 2) {
+ r = arguments[2];
+ }
+ var n = ce.ToObject(this);
+ var o = ce.ToLength(n.length);
+ t = ce.ToInteger(typeof t === 'undefined' ? 0 : t);
+ r = ce.ToInteger(typeof r === 'undefined' ? o : r);
+ var i = t < 0 ? A(o + t, 0) : R(t, o);
+ var a = r < 0 ? o + r : r;
+ for (var u = i; u < o && u < a; ++u) {
+ n[u] = e;
+ }
+ return n;
+ },
+ find: function find(e) {
+ var r = ce.ToObject(this);
+ var n = ce.ToLength(r.length);
+ if (!ce.IsCallable(e)) {
+ throw new TypeError('Array#find: predicate must be a function');
+ }
+ var o = arguments.length > 1 ? arguments[1] : null;
+ for (var i = 0, a; i < n; i++) {
+ a = r[i];
+ if (o) {
+ if (t(e, o, a, i, r)) {
+ return a;
+ }
+ } else if (e(a, i, r)) {
+ return a;
+ }
+ }
+ },
+ findIndex: function findIndex(e) {
+ var r = ce.ToObject(this);
+ var n = ce.ToLength(r.length);
+ if (!ce.IsCallable(e)) {
+ throw new TypeError('Array#findIndex: predicate must be a function');
+ }
+ var o = arguments.length > 1 ? arguments[1] : null;
+ for (var i = 0; i < n; i++) {
+ if (o) {
+ if (t(e, o, r[i], i, r)) {
+ return i;
+ }
+ } else if (e(r[i], i, r)) {
+ return i;
+ }
+ }
+ return -1;
+ },
+ keys: function keys() {
+ return new q(this, 'key');
+ },
+ values: function values() {
+ return new q(this, 'value');
+ },
+ entries: function entries() {
+ return new q(this, 'entry');
+ },
+ };
+ if (Array.prototype.keys && !ce.IsCallable([1].keys().next)) {
+ delete Array.prototype.keys;
+ }
+ if (Array.prototype.entries && !ce.IsCallable([1].entries().next)) {
+ delete Array.prototype.entries;
+ }
+ if (
+ Array.prototype.keys &&
+ Array.prototype.entries &&
+ !Array.prototype.values &&
+ Array.prototype[ie]
+ ) {
+ b(Array.prototype, { values: Array.prototype[ie] });
+ if (re.symbol($.unscopables)) {
+ Array.prototype[$.unscopables].values = true;
+ }
+ }
+ if (c && Array.prototype.values && Array.prototype.values.name !== 'values') {
+ var tt = Array.prototype.values;
+ ne(Array.prototype, 'values', function values() {
+ return ce.Call(tt, this, arguments);
+ });
+ h(Array.prototype, ie, Array.prototype.values, true);
+ }
+ b(Array.prototype, et);
+ if (1 / [true].indexOf(true, -0) < 0) {
+ h(
+ Array.prototype,
+ 'indexOf',
+ function indexOf(e) {
+ var t = E(this, arguments);
+ if (t === 0 && 1 / t < 0) {
+ return 0;
+ }
+ return t;
+ },
+ true
+ );
+ }
+ Me(Array.prototype, function () {
+ return this.values();
+ });
+ if (Object.getPrototypeOf) {
+ Me(Object.getPrototypeOf([].values()));
+ }
+ var rt = (function () {
+ return a(function () {
+ return Array.from({ length: -1 }).length === 0;
+ });
+ })();
+ var nt = (function () {
+ var e = Array.from([0].entries());
+ return e.length === 1 && r(e[0]) && e[0][0] === 0 && e[0][1] === 0;
+ })();
+ if (!rt || !nt) {
+ ne(Array, 'from', Ye.from);
+ }
+ var ot = (function () {
+ return a(function () {
+ return Array.from([0], void 0);
+ });
+ })();
+ if (!ot) {
+ var it = Array.from;
+ ne(Array, 'from', function from(e) {
+ if (arguments.length > 1 && typeof arguments[1] !== 'undefined') {
+ return ce.Call(it, this, arguments);
+ } else {
+ return t(it, this, e);
+ }
+ });
+ }
+ var at = -(Math.pow(2, 32) - 1);
+ var ut = function (e, r) {
+ var n = { length: at };
+ n[r ? (n.length >>> 0) - 1 : 0] = true;
+ return a(function () {
+ t(
+ e,
+ n,
+ function () {
+ throw new RangeError('should not reach here');
+ },
+ []
+ );
+ return true;
+ });
+ };
+ if (!ut(Array.prototype.forEach)) {
+ var ft = Array.prototype.forEach;
+ ne(
+ Array.prototype,
+ 'forEach',
+ function forEach(e) {
+ return ce.Call(ft, this.length >= 0 ? this : [], arguments);
+ },
+ true
+ );
+ }
+ if (!ut(Array.prototype.map)) {
+ var st = Array.prototype.map;
+ ne(
+ Array.prototype,
+ 'map',
+ function map(e) {
+ return ce.Call(st, this.length >= 0 ? this : [], arguments);
+ },
+ true
+ );
+ }
+ if (!ut(Array.prototype.filter)) {
+ var ct = Array.prototype.filter;
+ ne(
+ Array.prototype,
+ 'filter',
+ function filter(e) {
+ return ce.Call(ct, this.length >= 0 ? this : [], arguments);
+ },
+ true
+ );
+ }
+ if (!ut(Array.prototype.some)) {
+ var lt = Array.prototype.some;
+ ne(
+ Array.prototype,
+ 'some',
+ function some(e) {
+ return ce.Call(lt, this.length >= 0 ? this : [], arguments);
+ },
+ true
+ );
+ }
+ if (!ut(Array.prototype.every)) {
+ var pt = Array.prototype.every;
+ ne(
+ Array.prototype,
+ 'every',
+ function every(e) {
+ return ce.Call(pt, this.length >= 0 ? this : [], arguments);
+ },
+ true
+ );
+ }
+ if (!ut(Array.prototype.reduce)) {
+ var vt = Array.prototype.reduce;
+ ne(
+ Array.prototype,
+ 'reduce',
+ function reduce(e) {
+ return ce.Call(vt, this.length >= 0 ? this : [], arguments);
+ },
+ true
+ );
+ }
+ if (!ut(Array.prototype.reduceRight, true)) {
+ var yt = Array.prototype.reduceRight;
+ ne(
+ Array.prototype,
+ 'reduceRight',
+ function reduceRight(e) {
+ return ce.Call(yt, this.length >= 0 ? this : [], arguments);
+ },
+ true
+ );
+ }
+ var ht = Number('0o10') !== 8;
+ var bt = Number('0b10') !== 2;
+ var gt = y(Ue, function (e) {
+ return Number(e + 0 + e) === 0;
+ });
+ if (ht || bt || gt) {
+ var dt = Number;
+ var mt = /^0b[01]+$/i;
+ var Ot = /^0o[0-7]+$/i;
+ var wt = mt.test.bind(mt);
+ var jt = Ot.test.bind(Ot);
+ var St = function (e) {
+ var t;
+ if (typeof e.valueOf === 'function') {
+ t = e.valueOf();
+ if (re.primitive(t)) {
+ return t;
+ }
+ }
+ if (typeof e.toString === 'function') {
+ t = e.toString();
+ if (re.primitive(t)) {
+ return t;
+ }
+ }
+ throw new TypeError('No default value');
+ };
+ var Tt = $e.test.bind($e);
+ var It = Je.test.bind(Je);
+ var Et = (function () {
+ var e = function Number(t) {
+ var r;
+ if (arguments.length > 0) {
+ r = re.primitive(t) ? t : St(t, 'number');
+ } else {
+ r = 0;
+ }
+ if (typeof r === 'string') {
+ r = ce.Call(Be, r);
+ if (wt(r)) {
+ r = parseInt(C(r, 2), 2);
+ } else if (jt(r)) {
+ r = parseInt(C(r, 2), 8);
+ } else if (Tt(r) || It(r)) {
+ r = NaN;
+ }
+ }
+ var n = this;
+ var o = a(function () {
+ dt.prototype.valueOf.call(n);
+ return true;
+ });
+ if (n instanceof e && !o) {
+ return new dt(r);
+ }
+ return dt(r);
+ };
+ return e;
+ })();
+ Ee(dt, Et, {});
+ b(Et, {
+ NaN: dt.NaN,
+ MAX_VALUE: dt.MAX_VALUE,
+ MIN_VALUE: dt.MIN_VALUE,
+ NEGATIVE_INFINITY: dt.NEGATIVE_INFINITY,
+ POSITIVE_INFINITY: dt.POSITIVE_INFINITY,
+ });
+ Number = Et;
+ m.redefine(S, 'Number', Et);
+ }
+ var Pt = Math.pow(2, 53) - 1;
+ b(Number, {
+ MAX_SAFE_INTEGER: Pt,
+ MIN_SAFE_INTEGER: -Pt,
+ EPSILON: 2.220446049250313e-16,
+ parseInt: S.parseInt,
+ parseFloat: S.parseFloat,
+ isFinite: K,
+ isInteger: function isInteger(e) {
+ return K(e) && ce.ToInteger(e) === e;
+ },
+ isSafeInteger: function isSafeInteger(e) {
+ return Number.isInteger(e) && k(e) <= Number.MAX_SAFE_INTEGER;
+ },
+ isNaN: X,
+ });
+ h(Number, 'parseInt', S.parseInt, Number.parseInt !== S.parseInt);
+ if (
+ [, 1].find(function () {
+ return true;
+ }) === 1
+ ) {
+ ne(Array.prototype, 'find', et.find);
+ }
+ if (
+ [, 1].findIndex(function () {
+ return true;
+ }) !== 0
+ ) {
+ ne(Array.prototype, 'findIndex', et.findIndex);
+ }
+ var Ct = Function.bind.call(Function.bind, Object.prototype.propertyIsEnumerable);
+ var Mt = function ensureEnumerable(e, t) {
+ if (s && Ct(e, t)) {
+ Object.defineProperty(e, t, { enumerable: false });
+ }
+ };
+ var xt = function sliceArgs() {
+ var e = Number(this);
+ var t = arguments.length;
+ var r = t - e;
+ var n = new Array(r < 0 ? 0 : r);
+ for (var o = e; o < t; ++o) {
+ n[o - e] = arguments[o];
+ }
+ return n;
+ };
+ var Nt = function assignTo(e) {
+ return function assignToSource(t, r) {
+ t[r] = e[r];
+ return t;
+ };
+ };
+ var At = function (e, t) {
+ var r = n(Object(t));
+ var o;
+ if (ce.IsCallable(Object.getOwnPropertySymbols)) {
+ o = v(Object.getOwnPropertySymbols(Object(t)), Ct(t));
+ }
+ return p(P(r, o || []), Nt(t), e);
+ };
+ var Rt = {
+ assign: function (e, t) {
+ var r = ce.ToObject(e, 'Cannot convert undefined or null to object');
+ return p(ce.Call(xt, 1, arguments), At, r);
+ },
+ is: function is(e, t) {
+ return ce.SameValue(e, t);
+ },
+ };
+ var _t =
+ Object.assign &&
+ Object.preventExtensions &&
+ (function () {
+ var e = Object.preventExtensions({ 1: 2 });
+ try {
+ Object.assign(e, 'xy');
+ } catch (t) {
+ return e[1] === 'y';
+ }
+ })();
+ if (_t) {
+ ne(Object, 'assign', Rt.assign);
+ }
+ b(Object, Rt);
+ if (s) {
+ var kt = {
+ setPrototypeOf: (function (e, r) {
+ var n;
+ var o = function (e, t) {
+ if (!ce.TypeIsObject(e)) {
+ throw new TypeError('cannot set prototype on a non-object');
+ }
+ if (!(t === null || ce.TypeIsObject(t))) {
+ throw new TypeError('can only set prototype to an object or null' + t);
+ }
+ };
+ var i = function (e, r) {
+ o(e, r);
+ t(n, e, r);
+ return e;
+ };
+ try {
+ n = e.getOwnPropertyDescriptor(e.prototype, r).set;
+ t(n, {}, null);
+ } catch (a) {
+ if (e.prototype !== {}[r]) {
+ return;
+ }
+ n = function (e) {
+ this[r] = e;
+ };
+ i.polyfill = i(i({}, null), e.prototype) instanceof e;
+ }
+ return i;
+ })(Object, '__proto__'),
+ };
+ b(Object, kt);
+ }
+ if (
+ Object.setPrototypeOf &&
+ Object.getPrototypeOf &&
+ Object.getPrototypeOf(Object.setPrototypeOf({}, null)) !== null &&
+ Object.getPrototypeOf(Object.create(null)) === null
+ ) {
+ (function () {
+ var e = Object.create(null);
+ var t = Object.getPrototypeOf;
+ var r = Object.setPrototypeOf;
+ Object.getPrototypeOf = function (r) {
+ var n = t(r);
+ return n === e ? null : n;
+ };
+ Object.setPrototypeOf = function (t, n) {
+ var o = n === null ? e : n;
+ return r(t, o);
+ };
+ Object.setPrototypeOf.polyfill = false;
+ })();
+ }
+ var Lt = !i(function () {
+ return Object.keys('foo');
+ });
+ if (!Lt) {
+ var Ft = Object.keys;
+ ne(Object, 'keys', function keys(e) {
+ return Ft(ce.ToObject(e));
+ });
+ n = Object.keys;
+ }
+ var Dt = i(function () {
+ return Object.keys(/a/g);
+ });
+ if (Dt) {
+ var zt = Object.keys;
+ ne(Object, 'keys', function keys(e) {
+ if (re.regex(e)) {
+ var t = [];
+ for (var r in e) {
+ if (z(e, r)) {
+ M(t, r);
+ }
+ }
+ return t;
+ }
+ return zt(e);
+ });
+ n = Object.keys;
+ }
+ if (Object.getOwnPropertyNames) {
+ var qt = !i(function () {
+ return Object.getOwnPropertyNames('foo');
+ });
+ if (!qt) {
+ var Wt = typeof window === 'object' ? Object.getOwnPropertyNames(window) : [];
+ var Gt = Object.getOwnPropertyNames;
+ ne(Object, 'getOwnPropertyNames', function getOwnPropertyNames(e) {
+ var t = ce.ToObject(e);
+ if (g(t) === '[object Window]') {
+ try {
+ return Gt(t);
+ } catch (r) {
+ return P([], Wt);
+ }
+ }
+ return Gt(t);
+ });
+ }
+ }
+ if (Object.getOwnPropertyDescriptor) {
+ var Ht = !i(function () {
+ return Object.getOwnPropertyDescriptor('foo', 'bar');
+ });
+ if (!Ht) {
+ var Vt = Object.getOwnPropertyDescriptor;
+ ne(Object, 'getOwnPropertyDescriptor', function getOwnPropertyDescriptor(e, t) {
+ return Vt(ce.ToObject(e), t);
+ });
+ }
+ }
+ if (Object.seal) {
+ var Bt = !i(function () {
+ return Object.seal('foo');
+ });
+ if (!Bt) {
+ var Ut = Object.seal;
+ ne(Object, 'seal', function seal(e) {
+ if (!ce.TypeIsObject(e)) {
+ return e;
+ }
+ return Ut(e);
+ });
+ }
+ }
+ if (Object.isSealed) {
+ var $t = !i(function () {
+ return Object.isSealed('foo');
+ });
+ if (!$t) {
+ var Jt = Object.isSealed;
+ ne(Object, 'isSealed', function isSealed(e) {
+ if (!ce.TypeIsObject(e)) {
+ return true;
+ }
+ return Jt(e);
+ });
+ }
+ }
+ if (Object.freeze) {
+ var Xt = !i(function () {
+ return Object.freeze('foo');
+ });
+ if (!Xt) {
+ var Kt = Object.freeze;
+ ne(Object, 'freeze', function freeze(e) {
+ if (!ce.TypeIsObject(e)) {
+ return e;
+ }
+ return Kt(e);
+ });
+ }
+ }
+ if (Object.isFrozen) {
+ var Zt = !i(function () {
+ return Object.isFrozen('foo');
+ });
+ if (!Zt) {
+ var Yt = Object.isFrozen;
+ ne(Object, 'isFrozen', function isFrozen(e) {
+ if (!ce.TypeIsObject(e)) {
+ return true;
+ }
+ return Yt(e);
+ });
+ }
+ }
+ if (Object.preventExtensions) {
+ var Qt = !i(function () {
+ return Object.preventExtensions('foo');
+ });
+ if (!Qt) {
+ var er = Object.preventExtensions;
+ ne(Object, 'preventExtensions', function preventExtensions(e) {
+ if (!ce.TypeIsObject(e)) {
+ return e;
+ }
+ return er(e);
+ });
+ }
+ }
+ if (Object.isExtensible) {
+ var tr = !i(function () {
+ return Object.isExtensible('foo');
+ });
+ if (!tr) {
+ var rr = Object.isExtensible;
+ ne(Object, 'isExtensible', function isExtensible(e) {
+ if (!ce.TypeIsObject(e)) {
+ return false;
+ }
+ return rr(e);
+ });
+ }
+ }
+ if (Object.getPrototypeOf) {
+ var nr = !i(function () {
+ return Object.getPrototypeOf('foo');
+ });
+ if (!nr) {
+ var or = Object.getPrototypeOf;
+ ne(Object, 'getPrototypeOf', function getPrototypeOf(e) {
+ return or(ce.ToObject(e));
+ });
+ }
+ }
+ var ir =
+ s &&
+ (function () {
+ var e = Object.getOwnPropertyDescriptor(RegExp.prototype, 'flags');
+ return e && ce.IsCallable(e.get);
+ })();
+ if (s && !ir) {
+ var ar = function flags() {
+ if (!ce.TypeIsObject(this)) {
+ throw new TypeError('Method called on incompatible type: must be an object.');
+ }
+ var e = '';
+ if (this.global) {
+ e += 'g';
+ }
+ if (this.ignoreCase) {
+ e += 'i';
+ }
+ if (this.multiline) {
+ e += 'm';
+ }
+ if (this.unicode) {
+ e += 'u';
+ }
+ if (this.sticky) {
+ e += 'y';
+ }
+ return e;
+ };
+ m.getter(RegExp.prototype, 'flags', ar);
+ }
+ var ur =
+ s &&
+ a(function () {
+ return String(new RegExp(/a/g, 'i')) === '/a/i';
+ });
+ var fr =
+ oe &&
+ s &&
+ (function () {
+ var e = /./;
+ e[$.match] = false;
+ return RegExp(e) === e;
+ })();
+ var sr = a(function () {
+ return RegExp.prototype.toString.call({ source: 'abc' }) === '/abc/';
+ });
+ var cr =
+ sr &&
+ a(function () {
+ return RegExp.prototype.toString.call({ source: 'a', flags: 'b' }) === '/a/b';
+ });
+ if (!sr || !cr) {
+ var lr = RegExp.prototype.toString;
+ h(
+ RegExp.prototype,
+ 'toString',
+ function toString() {
+ var e = ce.RequireObjectCoercible(this);
+ if (re.regex(e)) {
+ return t(lr, e);
+ }
+ var r = ue(e.source);
+ var n = ue(e.flags);
+ return '/' + r + '/' + n;
+ },
+ true
+ );
+ m.preserveToString(RegExp.prototype.toString, lr);
+ }
+ if (s && (!ur || fr)) {
+ var pr = Object.getOwnPropertyDescriptor(RegExp.prototype, 'flags').get;
+ var vr = Object.getOwnPropertyDescriptor(RegExp.prototype, 'source') || {};
+ var yr = function () {
+ return this.source;
+ };
+ var hr = ce.IsCallable(vr.get) ? vr.get : yr;
+ var br = RegExp;
+ var gr = (function () {
+ return function RegExp(e, t) {
+ var r = ce.IsRegExp(e);
+ var n = this instanceof RegExp;
+ if (!n && r && typeof t === 'undefined' && e.constructor === RegExp) {
+ return e;
+ }
+ var o = e;
+ var i = t;
+ if (re.regex(e)) {
+ o = ce.Call(hr, e);
+ i = typeof t === 'undefined' ? ce.Call(pr, e) : t;
+ return new RegExp(o, i);
+ } else if (r) {
+ o = e.source;
+ i = typeof t === 'undefined' ? e.flags : t;
+ }
+ return new br(e, t);
+ };
+ })();
+ Ee(br, gr, { $input: true });
+ RegExp = gr;
+ m.redefine(S, 'RegExp', gr);
+ }
+ if (s) {
+ var dr = {
+ input: '$_',
+ lastMatch: '$&',
+ lastParen: '$+',
+ leftContext: '$`',
+ rightContext: "$'",
+ };
+ l(n(dr), function (e) {
+ if (e in RegExp && !(dr[e] in RegExp)) {
+ m.getter(RegExp, dr[e], function get() {
+ return RegExp[e];
+ });
+ }
+ });
+ }
+ Ce(RegExp);
+ var mr = 1 / Number.EPSILON;
+ var Or = function roundTiesToEven(e) {
+ return e + mr - mr;
+ };
+ var wr = Math.pow(2, -23);
+ var jr = Math.pow(2, 127) * (2 - wr);
+ var Sr = Math.pow(2, -126);
+ var Tr = Math.E;
+ var Ir = Math.LOG2E;
+ var Er = Math.LOG10E;
+ var Pr = Number.prototype.clz;
+ delete Number.prototype.clz;
+ var Cr = {
+ acosh: function acosh(e) {
+ var t = Number(e);
+ if (X(t) || e < 1) {
+ return NaN;
+ }
+ if (t === 1) {
+ return 0;
+ }
+ if (t === Infinity) {
+ return t;
+ }
+ var r = 1 / (t * t);
+ if (t < 2) {
+ return Y(t - 1 + D(1 - r) * t);
+ }
+ var n = t / 2;
+ return Y(n + D(1 - r) * n - 1) + 1 / Ir;
+ },
+ asinh: function asinh(e) {
+ var t = Number(e);
+ if (t === 0 || !T(t)) {
+ return t;
+ }
+ var r = k(t);
+ var n = r * r;
+ var o = Z(t);
+ if (r < 1) {
+ return o * Y(r + n / (D(n + 1) + 1));
+ }
+ return o * (Y(r / 2 + (D(1 + 1 / n) * r) / 2 - 1) + 1 / Ir);
+ },
+ atanh: function atanh(e) {
+ var t = Number(e);
+ if (t === 0) {
+ return t;
+ }
+ if (t === -1) {
+ return -Infinity;
+ }
+ if (t === 1) {
+ return Infinity;
+ }
+ if (X(t) || t < -1 || t > 1) {
+ return NaN;
+ }
+ var r = k(t);
+ return (Z(t) * Y((2 * r) / (1 - r))) / 2;
+ },
+ cbrt: function cbrt(e) {
+ var t = Number(e);
+ if (t === 0) {
+ return t;
+ }
+ var r = t < 0;
+ var n;
+ if (r) {
+ t = -t;
+ }
+ if (t === Infinity) {
+ n = Infinity;
+ } else {
+ n = L(F(t) / 3);
+ n = (t / (n * n) + 2 * n) / 3;
+ }
+ return r ? -n : n;
+ },
+ clz32: function clz32(e) {
+ var t = Number(e);
+ var r = ce.ToUint32(t);
+ if (r === 0) {
+ return 32;
+ }
+ return Pr ? ce.Call(Pr, r) : 31 - _(F(r + 0.5) * Ir);
+ },
+ cosh: function cosh(e) {
+ var t = Number(e);
+ if (t === 0) {
+ return 1;
+ }
+ if (X(t)) {
+ return NaN;
+ }
+ if (!T(t)) {
+ return Infinity;
+ }
+ var r = L(k(t) - 1);
+ return (r + 1 / (r * Tr * Tr)) * (Tr / 2);
+ },
+ expm1: function expm1(e) {
+ var t = Number(e);
+ if (t === -Infinity) {
+ return -1;
+ }
+ if (!T(t) || t === 0) {
+ return t;
+ }
+ if (k(t) > 0.5) {
+ return L(t) - 1;
+ }
+ var r = t;
+ var n = 0;
+ var o = 1;
+ while (n + r !== n) {
+ n += r;
+ o += 1;
+ r *= t / o;
+ }
+ return n;
+ },
+ hypot: function hypot(e, t) {
+ var r = 0;
+ var n = 0;
+ for (var o = 0; o < arguments.length; ++o) {
+ var i = k(Number(arguments[o]));
+ if (n < i) {
+ r *= (n / i) * (n / i);
+ r += 1;
+ n = i;
+ } else {
+ r += i > 0 ? (i / n) * (i / n) : i;
+ }
+ }
+ return n === Infinity ? Infinity : n * D(r);
+ },
+ log2: function log2(e) {
+ return F(e) * Ir;
+ },
+ log10: function log10(e) {
+ return F(e) * Er;
+ },
+ log1p: Y,
+ sign: Z,
+ sinh: function sinh(e) {
+ var t = Number(e);
+ if (!T(t) || t === 0) {
+ return t;
+ }
+ var r = k(t);
+ if (r < 1) {
+ var n = Math.expm1(r);
+ return (Z(t) * n * (1 + 1 / (n + 1))) / 2;
+ }
+ var o = L(r - 1);
+ return Z(t) * (o - 1 / (o * Tr * Tr)) * (Tr / 2);
+ },
+ tanh: function tanh(e) {
+ var t = Number(e);
+ if (X(t) || t === 0) {
+ return t;
+ }
+ if (t >= 20) {
+ return 1;
+ }
+ if (t <= -20) {
+ return -1;
+ }
+ return (Math.expm1(t) - Math.expm1(-t)) / (L(t) + L(-t));
+ },
+ trunc: function trunc(e) {
+ var t = Number(e);
+ return t < 0 ? -_(-t) : _(t);
+ },
+ imul: function imul(e, t) {
+ var r = ce.ToUint32(e);
+ var n = ce.ToUint32(t);
+ var o = (r >>> 16) & 65535;
+ var i = r & 65535;
+ var a = (n >>> 16) & 65535;
+ var u = n & 65535;
+ return (i * u + (((o * u + i * a) << 16) >>> 0)) | 0;
+ },
+ fround: function fround(e) {
+ var t = Number(e);
+ if (t === 0 || t === Infinity || t === -Infinity || X(t)) {
+ return t;
+ }
+ var r = Z(t);
+ var n = k(t);
+ if (n < Sr) {
+ return r * Or(n / Sr / wr) * Sr * wr;
+ }
+ var o = (1 + wr / Number.EPSILON) * n;
+ var i = o - (o - n);
+ if (i > jr || X(i)) {
+ return r * Infinity;
+ }
+ return r * i;
+ },
+ };
+ var Mr = function withinULPDistance(e, t, r) {
+ return k(1 - e / t) / Number.EPSILON < (r || 8);
+ };
+ b(Math, Cr);
+ h(Math, 'sinh', Cr.sinh, Math.sinh(710) === Infinity);
+ h(Math, 'cosh', Cr.cosh, Math.cosh(710) === Infinity);
+ h(Math, 'log1p', Cr.log1p, Math.log1p(-1e-17) !== -1e-17);
+ h(Math, 'asinh', Cr.asinh, Math.asinh(-1e7) !== -Math.asinh(1e7));
+ h(Math, 'asinh', Cr.asinh, Math.asinh(1e300) === Infinity);
+ h(Math, 'atanh', Cr.atanh, Math.atanh(1e-300) === 0);
+ h(Math, 'tanh', Cr.tanh, Math.tanh(-2e-17) !== -2e-17);
+ h(Math, 'acosh', Cr.acosh, Math.acosh(Number.MAX_VALUE) === Infinity);
+ h(Math, 'acosh', Cr.acosh, !Mr(Math.acosh(1 + Number.EPSILON), Math.sqrt(2 * Number.EPSILON)));
+ h(Math, 'cbrt', Cr.cbrt, !Mr(Math.cbrt(1e-300), 1e-100));
+ h(Math, 'sinh', Cr.sinh, Math.sinh(-2e-17) !== -2e-17);
+ var xr = Math.expm1(10);
+ h(Math, 'expm1', Cr.expm1, xr > 22025.465794806718 || xr < 22025.465794806718);
+ var Nr = Math.round;
+ var Ar =
+ Math.round(0.5 - Number.EPSILON / 4) === 0 && Math.round(-0.5 + Number.EPSILON / 3.99) === 1;
+ var Rr = mr + 1;
+ var _r = 2 * mr - 1;
+ var kr = [Rr, _r].every(function (e) {
+ return Math.round(e) === e;
+ });
+ h(
+ Math,
+ 'round',
+ function round(e) {
+ var t = _(e);
+ var r = t === -1 ? -0 : t + 1;
+ return e - t < 0.5 ? t : r;
+ },
+ !Ar || !kr
+ );
+ m.preserveToString(Math.round, Nr);
+ var Lr = Math.imul;
+ if (Math.imul(4294967295, 5) !== -5) {
+ Math.imul = Cr.imul;
+ m.preserveToString(Math.imul, Lr);
+ }
+ if (Math.imul.length !== 2) {
+ ne(Math, 'imul', function imul(e, t) {
+ return ce.Call(Lr, Math, arguments);
+ });
+ }
+ var Fr = (function () {
+ var e = S.setTimeout;
+ if (typeof e !== 'function' && typeof e !== 'object') {
+ return;
+ }
+ ce.IsPromise = function (e) {
+ if (!ce.TypeIsObject(e)) {
+ return false;
+ }
+ if (typeof e._promise === 'undefined') {
+ return false;
+ }
+ return true;
+ };
+ var r = function (e) {
+ if (!ce.IsConstructor(e)) {
+ throw new TypeError('Bad promise constructor');
+ }
+ var t = this;
+ var r = function (e, r) {
+ if (t.resolve !== void 0 || t.reject !== void 0) {
+ throw new TypeError('Bad Promise implementation!');
+ }
+ t.resolve = e;
+ t.reject = r;
+ };
+ t.resolve = void 0;
+ t.reject = void 0;
+ t.promise = new e(r);
+ if (!(ce.IsCallable(t.resolve) && ce.IsCallable(t.reject))) {
+ throw new TypeError('Bad promise constructor');
+ }
+ };
+ var n;
+ if (typeof window !== 'undefined' && ce.IsCallable(window.postMessage)) {
+ n = function () {
+ var e = [];
+ var t = 'zero-timeout-message';
+ var r = function (r) {
+ M(e, r);
+ window.postMessage(t, '*');
+ };
+ var n = function (r) {
+ if (r.source === window && r.data === t) {
+ r.stopPropagation();
+ if (e.length === 0) {
+ return;
+ }
+ var n = N(e);
+ n();
+ }
+ };
+ window.addEventListener('message', n, true);
+ return r;
+ };
+ }
+ var o = function () {
+ var e = S.Promise;
+ var t = e && e.resolve && e.resolve();
+ return (
+ t &&
+ function (e) {
+ return t.then(e);
+ }
+ );
+ };
+ var i = ce.IsCallable(S.setImmediate)
+ ? S.setImmediate
+ : typeof process === 'object' && process.nextTick
+ ? process.nextTick
+ : o() ||
+ (ce.IsCallable(n)
+ ? n()
+ : function (t) {
+ e(t, 0);
+ });
+ var a = function (e) {
+ return e;
+ };
+ var u = function (e) {
+ throw e;
+ };
+ var f = 0;
+ var s = 1;
+ var c = 2;
+ var l = 0;
+ var p = 1;
+ var v = 2;
+ var y = {};
+ var h = function (e, t, r) {
+ i(function () {
+ g(e, t, r);
+ });
+ };
+ var g = function (e, t, r) {
+ var n, o;
+ if (t === y) {
+ return e(r);
+ }
+ try {
+ n = e(r);
+ o = t.resolve;
+ } catch (i) {
+ n = i;
+ o = t.reject;
+ }
+ o(n);
+ };
+ var d = function (e, t) {
+ var r = e._promise;
+ var n = r.reactionLength;
+ if (n > 0) {
+ h(r.fulfillReactionHandler0, r.reactionCapability0, t);
+ r.fulfillReactionHandler0 = void 0;
+ r.rejectReactions0 = void 0;
+ r.reactionCapability0 = void 0;
+ if (n > 1) {
+ for (var o = 1, i = 0; o < n; o++, i += 3) {
+ h(r[i + l], r[i + v], t);
+ e[i + l] = void 0;
+ e[i + p] = void 0;
+ e[i + v] = void 0;
+ }
+ }
+ }
+ r.result = t;
+ r.state = s;
+ r.reactionLength = 0;
+ };
+ var m = function (e, t) {
+ var r = e._promise;
+ var n = r.reactionLength;
+ if (n > 0) {
+ h(r.rejectReactionHandler0, r.reactionCapability0, t);
+ r.fulfillReactionHandler0 = void 0;
+ r.rejectReactions0 = void 0;
+ r.reactionCapability0 = void 0;
+ if (n > 1) {
+ for (var o = 1, i = 0; o < n; o++, i += 3) {
+ h(r[i + p], r[i + v], t);
+ e[i + l] = void 0;
+ e[i + p] = void 0;
+ e[i + v] = void 0;
+ }
+ }
+ }
+ r.result = t;
+ r.state = c;
+ r.reactionLength = 0;
+ };
+ var O = function (e) {
+ var t = false;
+ var r = function (r) {
+ var n;
+ if (t) {
+ return;
+ }
+ t = true;
+ if (r === e) {
+ return m(e, new TypeError('Self resolution'));
+ }
+ if (!ce.TypeIsObject(r)) {
+ return d(e, r);
+ }
+ try {
+ n = r.then;
+ } catch (o) {
+ return m(e, o);
+ }
+ if (!ce.IsCallable(n)) {
+ return d(e, r);
+ }
+ i(function () {
+ j(e, r, n);
+ });
+ };
+ var n = function (r) {
+ if (t) {
+ return;
+ }
+ t = true;
+ return m(e, r);
+ };
+ return { resolve: r, reject: n };
+ };
+ var w = function (e, r, n, o) {
+ if (e === I) {
+ t(e, r, n, o, y);
+ } else {
+ t(e, r, n, o);
+ }
+ };
+ var j = function (e, t, r) {
+ var n = O(e);
+ var o = n.resolve;
+ var i = n.reject;
+ try {
+ w(r, t, o, i);
+ } catch (a) {
+ i(a);
+ }
+ };
+ var T, I;
+ var E = (function () {
+ var e = function Promise(t) {
+ if (!(this instanceof e)) {
+ throw new TypeError('Constructor Promise requires "new"');
+ }
+ if (this && this._promise) {
+ throw new TypeError('Bad construction');
+ }
+ if (!ce.IsCallable(t)) {
+ throw new TypeError('not a valid resolver');
+ }
+ var r = Ae(this, e, T, {
+ _promise: {
+ result: void 0,
+ state: f,
+ reactionLength: 0,
+ fulfillReactionHandler0: void 0,
+ rejectReactionHandler0: void 0,
+ reactionCapability0: void 0,
+ },
+ });
+ var n = O(r);
+ var o = n.reject;
+ try {
+ t(n.resolve, o);
+ } catch (i) {
+ o(i);
+ }
+ return r;
+ };
+ return e;
+ })();
+ T = E.prototype;
+ var P = function (e, t, r, n) {
+ var o = false;
+ return function (i) {
+ if (o) {
+ return;
+ }
+ o = true;
+ t[e] = i;
+ if (--n.count === 0) {
+ var a = r.resolve;
+ a(t);
+ }
+ };
+ };
+ var C = function (e, t, r) {
+ var n = e.iterator;
+ var o = [];
+ var i = { count: 1 };
+ var a, u;
+ var f = 0;
+ while (true) {
+ try {
+ a = ce.IteratorStep(n);
+ if (a === false) {
+ e.done = true;
+ break;
+ }
+ u = a.value;
+ } catch (s) {
+ e.done = true;
+ throw s;
+ }
+ o[f] = void 0;
+ var c = t.resolve(u);
+ var l = P(f, o, r, i);
+ i.count += 1;
+ w(c.then, c, l, r.reject);
+ f += 1;
+ }
+ if (--i.count === 0) {
+ var p = r.resolve;
+ p(o);
+ }
+ return r.promise;
+ };
+ var x = function (e, t, r) {
+ var n = e.iterator;
+ var o, i, a;
+ while (true) {
+ try {
+ o = ce.IteratorStep(n);
+ if (o === false) {
+ e.done = true;
+ break;
+ }
+ i = o.value;
+ } catch (u) {
+ e.done = true;
+ throw u;
+ }
+ a = t.resolve(i);
+ w(a.then, a, r.resolve, r.reject);
+ }
+ return r.promise;
+ };
+ b(E, {
+ all: function all(e) {
+ var t = this;
+ if (!ce.TypeIsObject(t)) {
+ throw new TypeError('Promise is not object');
+ }
+ var n = new r(t);
+ var o, i;
+ try {
+ o = ce.GetIterator(e);
+ i = { iterator: o, done: false };
+ return C(i, t, n);
+ } catch (a) {
+ var u = a;
+ if (i && !i.done) {
+ try {
+ ce.IteratorClose(o, true);
+ } catch (f) {
+ u = f;
+ }
+ }
+ var s = n.reject;
+ s(u);
+ return n.promise;
+ }
+ },
+ race: function race(e) {
+ var t = this;
+ if (!ce.TypeIsObject(t)) {
+ throw new TypeError('Promise is not object');
+ }
+ var n = new r(t);
+ var o, i;
+ try {
+ o = ce.GetIterator(e);
+ i = { iterator: o, done: false };
+ return x(i, t, n);
+ } catch (a) {
+ var u = a;
+ if (i && !i.done) {
+ try {
+ ce.IteratorClose(o, true);
+ } catch (f) {
+ u = f;
+ }
+ }
+ var s = n.reject;
+ s(u);
+ return n.promise;
+ }
+ },
+ reject: function reject(e) {
+ var t = this;
+ if (!ce.TypeIsObject(t)) {
+ throw new TypeError('Bad promise constructor');
+ }
+ var n = new r(t);
+ var o = n.reject;
+ o(e);
+ return n.promise;
+ },
+ resolve: function resolve(e) {
+ var t = this;
+ if (!ce.TypeIsObject(t)) {
+ throw new TypeError('Bad promise constructor');
+ }
+ if (ce.IsPromise(e)) {
+ var n = e.constructor;
+ if (n === t) {
+ return e;
+ }
+ }
+ var o = new r(t);
+ var i = o.resolve;
+ i(e);
+ return o.promise;
+ },
+ });
+ b(T, {
+ catch: function (e) {
+ return this.then(null, e);
+ },
+ then: function then(e, t) {
+ var n = this;
+ if (!ce.IsPromise(n)) {
+ throw new TypeError('not a promise');
+ }
+ var o = ce.SpeciesConstructor(n, E);
+ var i;
+ var b = arguments.length > 2 && arguments[2] === y;
+ if (b && o === E) {
+ i = y;
+ } else {
+ i = new r(o);
+ }
+ var g = ce.IsCallable(e) ? e : a;
+ var d = ce.IsCallable(t) ? t : u;
+ var m = n._promise;
+ var O;
+ if (m.state === f) {
+ if (m.reactionLength === 0) {
+ m.fulfillReactionHandler0 = g;
+ m.rejectReactionHandler0 = d;
+ m.reactionCapability0 = i;
+ } else {
+ var w = 3 * (m.reactionLength - 1);
+ m[w + l] = g;
+ m[w + p] = d;
+ m[w + v] = i;
+ }
+ m.reactionLength += 1;
+ } else if (m.state === s) {
+ O = m.result;
+ h(g, i, O);
+ } else if (m.state === c) {
+ O = m.result;
+ h(d, i, O);
+ } else {
+ throw new TypeError('unexpected Promise state');
+ }
+ return i.promise;
+ },
+ });
+ y = new r(E);
+ I = T.then;
+ return E;
+ })();
+ if (S.Promise) {
+ delete S.Promise.accept;
+ delete S.Promise.defer;
+ delete S.Promise.prototype.chain;
+ }
+ if (typeof Fr === 'function') {
+ b(S, { Promise: Fr });
+ var Dr = w(S.Promise, function (e) {
+ return e.resolve(42).then(function () {}) instanceof e;
+ });
+ var zr = !i(function () {
+ return S.Promise.reject(42).then(null, 5).then(null, W);
+ });
+ var qr = i(function () {
+ return S.Promise.call(3, W);
+ });
+ var Wr = (function (e) {
+ var t = e.resolve(5);
+ t.constructor = {};
+ var r = e.resolve(t);
+ try {
+ r.then(null, W).then(null, W);
+ } catch (n) {
+ return true;
+ }
+ return t === r;
+ })(S.Promise);
+ var Gr =
+ s &&
+ (function () {
+ var e = 0;
+ var t = Object.defineProperty({}, 'then', {
+ get: function () {
+ e += 1;
+ },
+ });
+ Promise.resolve(t);
+ return e === 1;
+ })();
+ var Hr = function BadResolverPromise(e) {
+ var t = new Promise(e);
+ e(3, function () {});
+ this.then = t.then;
+ this.constructor = BadResolverPromise;
+ };
+ Hr.prototype = Promise.prototype;
+ Hr.all = Promise.all;
+ var Vr = a(function () {
+ return !!Hr.all([1, 2]);
+ });
+ if (!Dr || !zr || !qr || Wr || !Gr || Vr) {
+ Promise = Fr;
+ ne(S, 'Promise', Fr);
+ }
+ if (Promise.all.length !== 1) {
+ var Br = Promise.all;
+ ne(Promise, 'all', function all(e) {
+ return ce.Call(Br, this, arguments);
+ });
+ }
+ if (Promise.race.length !== 1) {
+ var Ur = Promise.race;
+ ne(Promise, 'race', function race(e) {
+ return ce.Call(Ur, this, arguments);
+ });
+ }
+ if (Promise.resolve.length !== 1) {
+ var $r = Promise.resolve;
+ ne(Promise, 'resolve', function resolve(e) {
+ return ce.Call($r, this, arguments);
+ });
+ }
+ if (Promise.reject.length !== 1) {
+ var Jr = Promise.reject;
+ ne(Promise, 'reject', function reject(e) {
+ return ce.Call(Jr, this, arguments);
+ });
+ }
+ Mt(Promise, 'all');
+ Mt(Promise, 'race');
+ Mt(Promise, 'resolve');
+ Mt(Promise, 'reject');
+ Ce(Promise);
+ }
+ var Xr = function (e) {
+ var t = n(
+ p(
+ e,
+ function (e, t) {
+ e[t] = true;
+ return e;
+ },
+ {}
+ )
+ );
+ return e.join(':') === t.join(':');
+ };
+ var Kr = Xr(['z', 'a', 'bb']);
+ var Zr = Xr(['z', 1, 'a', '3', 2]);
+ if (s) {
+ var Yr = function fastkey(e, t) {
+ if (!t && !Kr) {
+ return null;
+ }
+ if (se(e)) {
+ return '^' + ce.ToString(e);
+ } else if (typeof e === 'string') {
+ return '$' + e;
+ } else if (typeof e === 'number') {
+ if (!Zr) {
+ return 'n' + e;
+ }
+ return e;
+ } else if (typeof e === 'boolean') {
+ return 'b' + e;
+ }
+ return null;
+ };
+ var Qr = function emptyObject() {
+ return Object.create ? Object.create(null) : {};
+ };
+ var en = function addIterableToMap(e, n, o) {
+ if (r(o) || re.string(o)) {
+ l(o, function (e) {
+ if (!ce.TypeIsObject(e)) {
+ throw new TypeError('Iterator value ' + e + ' is not an entry object');
+ }
+ n.set(e[0], e[1]);
+ });
+ } else if (o instanceof e) {
+ t(e.prototype.forEach, o, function (e, t) {
+ n.set(t, e);
+ });
+ } else {
+ var i, a;
+ if (!se(o)) {
+ a = n.set;
+ if (!ce.IsCallable(a)) {
+ throw new TypeError('bad map');
+ }
+ i = ce.GetIterator(o);
+ }
+ if (typeof i !== 'undefined') {
+ while (true) {
+ var u = ce.IteratorStep(i);
+ if (u === false) {
+ break;
+ }
+ var f = u.value;
+ try {
+ if (!ce.TypeIsObject(f)) {
+ throw new TypeError('Iterator value ' + f + ' is not an entry object');
+ }
+ t(a, n, f[0], f[1]);
+ } catch (s) {
+ ce.IteratorClose(i, true);
+ throw s;
+ }
+ }
+ }
+ }
+ };
+ var tn = function addIterableToSet(e, n, o) {
+ if (r(o) || re.string(o)) {
+ l(o, function (e) {
+ n.add(e);
+ });
+ } else if (o instanceof e) {
+ t(e.prototype.forEach, o, function (e) {
+ n.add(e);
+ });
+ } else {
+ var i, a;
+ if (!se(o)) {
+ a = n.add;
+ if (!ce.IsCallable(a)) {
+ throw new TypeError('bad set');
+ }
+ i = ce.GetIterator(o);
+ }
+ if (typeof i !== 'undefined') {
+ while (true) {
+ var u = ce.IteratorStep(i);
+ if (u === false) {
+ break;
+ }
+ var f = u.value;
+ try {
+ t(a, n, f);
+ } catch (s) {
+ ce.IteratorClose(i, true);
+ throw s;
+ }
+ }
+ }
+ }
+ };
+ var rn = {
+ Map: (function () {
+ var e = {};
+ var r = function MapEntry(e, t) {
+ this.key = e;
+ this.value = t;
+ this.next = null;
+ this.prev = null;
+ };
+ r.prototype.isRemoved = function isRemoved() {
+ return this.key === e;
+ };
+ var n = function isMap(e) {
+ return !!e._es6map;
+ };
+ var o = function requireMapSlot(e, t) {
+ if (!ce.TypeIsObject(e) || !n(e)) {
+ throw new TypeError(
+ 'Method Map.prototype.' + t + ' called on incompatible receiver ' + ce.ToString(e)
+ );
+ }
+ };
+ var i = function MapIterator(e, t) {
+ o(e, '[[MapIterator]]');
+ this.head = e._head;
+ this.i = this.head;
+ this.kind = t;
+ };
+ i.prototype = {
+ isMapIterator: true,
+ next: function next() {
+ if (!this.isMapIterator) {
+ throw new TypeError('Not a MapIterator');
+ }
+ var e = this.i;
+ var t = this.kind;
+ var r = this.head;
+ if (typeof this.i === 'undefined') {
+ return Ke();
+ }
+ while (e.isRemoved() && e !== r) {
+ e = e.prev;
+ }
+ var n;
+ while (e.next !== r) {
+ e = e.next;
+ if (!e.isRemoved()) {
+ if (t === 'key') {
+ n = e.key;
+ } else if (t === 'value') {
+ n = e.value;
+ } else {
+ n = [e.key, e.value];
+ }
+ this.i = e;
+ return Ke(n);
+ }
+ }
+ this.i = void 0;
+ return Ke();
+ },
+ };
+ Me(i.prototype);
+ var a;
+ var u = function Map() {
+ if (!(this instanceof Map)) {
+ throw new TypeError('Constructor Map requires "new"');
+ }
+ if (this && this._es6map) {
+ throw new TypeError('Bad construction');
+ }
+ var e = Ae(this, Map, a, {
+ _es6map: true,
+ _head: null,
+ _map: G ? new G() : null,
+ _size: 0,
+ _storage: Qr(),
+ });
+ var t = new r(null, null);
+ t.next = t.prev = t;
+ e._head = t;
+ if (arguments.length > 0) {
+ en(Map, e, arguments[0]);
+ }
+ return e;
+ };
+ a = u.prototype;
+ m.getter(a, 'size', function () {
+ if (typeof this._size === 'undefined') {
+ throw new TypeError('size method called on incompatible Map');
+ }
+ return this._size;
+ });
+ b(a, {
+ get: function get(e) {
+ o(this, 'get');
+ var t;
+ var r = Yr(e, true);
+ if (r !== null) {
+ t = this._storage[r];
+ if (t) {
+ return t.value;
+ } else {
+ return;
+ }
+ }
+ if (this._map) {
+ t = V.call(this._map, e);
+ if (t) {
+ return t.value;
+ } else {
+ return;
+ }
+ }
+ var n = this._head;
+ var i = n;
+ while ((i = i.next) !== n) {
+ if (ce.SameValueZero(i.key, e)) {
+ return i.value;
+ }
+ }
+ },
+ has: function has(e) {
+ o(this, 'has');
+ var t = Yr(e, true);
+ if (t !== null) {
+ return typeof this._storage[t] !== 'undefined';
+ }
+ if (this._map) {
+ return B.call(this._map, e);
+ }
+ var r = this._head;
+ var n = r;
+ while ((n = n.next) !== r) {
+ if (ce.SameValueZero(n.key, e)) {
+ return true;
+ }
+ }
+ return false;
+ },
+ set: function set(e, t) {
+ o(this, 'set');
+ var n = this._head;
+ var i = n;
+ var a;
+ var u = Yr(e, true);
+ if (u !== null) {
+ if (typeof this._storage[u] !== 'undefined') {
+ this._storage[u].value = t;
+ return this;
+ } else {
+ a = this._storage[u] = new r(e, t);
+ i = n.prev;
+ }
+ } else if (this._map) {
+ if (B.call(this._map, e)) {
+ V.call(this._map, e).value = t;
+ } else {
+ a = new r(e, t);
+ U.call(this._map, e, a);
+ i = n.prev;
+ }
+ }
+ while ((i = i.next) !== n) {
+ if (ce.SameValueZero(i.key, e)) {
+ i.value = t;
+ return this;
+ }
+ }
+ a = a || new r(e, t);
+ if (ce.SameValue(-0, e)) {
+ a.key = +0;
+ }
+ a.next = this._head;
+ a.prev = this._head.prev;
+ a.prev.next = a;
+ a.next.prev = a;
+ this._size += 1;
+ return this;
+ },
+ delete: function (t) {
+ o(this, 'delete');
+ var r = this._head;
+ var n = r;
+ var i = Yr(t, true);
+ if (i !== null) {
+ if (typeof this._storage[i] === 'undefined') {
+ return false;
+ }
+ n = this._storage[i].prev;
+ delete this._storage[i];
+ } else if (this._map) {
+ if (!B.call(this._map, t)) {
+ return false;
+ }
+ n = V.call(this._map, t).prev;
+ H.call(this._map, t);
+ }
+ while ((n = n.next) !== r) {
+ if (ce.SameValueZero(n.key, t)) {
+ n.key = e;
+ n.value = e;
+ n.prev.next = n.next;
+ n.next.prev = n.prev;
+ this._size -= 1;
+ return true;
+ }
+ }
+ return false;
+ },
+ clear: function clear() {
+ o(this, 'clear');
+ this._map = G ? new G() : null;
+ this._size = 0;
+ this._storage = Qr();
+ var t = this._head;
+ var r = t;
+ var n = r.next;
+ while ((r = n) !== t) {
+ r.key = e;
+ r.value = e;
+ n = r.next;
+ r.next = r.prev = t;
+ }
+ t.next = t.prev = t;
+ },
+ keys: function keys() {
+ o(this, 'keys');
+ return new i(this, 'key');
+ },
+ values: function values() {
+ o(this, 'values');
+ return new i(this, 'value');
+ },
+ entries: function entries() {
+ o(this, 'entries');
+ return new i(this, 'key+value');
+ },
+ forEach: function forEach(e) {
+ o(this, 'forEach');
+ var r = arguments.length > 1 ? arguments[1] : null;
+ var n = this.entries();
+ for (var i = n.next(); !i.done; i = n.next()) {
+ if (r) {
+ t(e, r, i.value[1], i.value[0], this);
+ } else {
+ e(i.value[1], i.value[0], this);
+ }
+ }
+ },
+ });
+ Me(a, a.entries);
+ return u;
+ })(),
+ Set: (function () {
+ var e = function isSet(e) {
+ return e._es6set && typeof e._storage !== 'undefined';
+ };
+ var r = function requireSetSlot(t, r) {
+ if (!ce.TypeIsObject(t) || !e(t)) {
+ throw new TypeError(
+ 'Set.prototype.' + r + ' called on incompatible receiver ' + ce.ToString(t)
+ );
+ }
+ };
+ var o;
+ var i = function Set() {
+ if (!(this instanceof Set)) {
+ throw new TypeError('Constructor Set requires "new"');
+ }
+ if (this && this._es6set) {
+ throw new TypeError('Bad construction');
+ }
+ var e = Ae(this, Set, o, {
+ _es6set: true,
+ '[[SetData]]': null,
+ _storage: Qr(),
+ });
+ if (!e._es6set) {
+ throw new TypeError('bad set');
+ }
+ if (arguments.length > 0) {
+ tn(Set, e, arguments[0]);
+ }
+ return e;
+ };
+ o = i.prototype;
+ var a = function (e) {
+ var t = e;
+ if (t === '^null') {
+ return null;
+ } else if (t === '^undefined') {
+ return void 0;
+ } else {
+ var r = t.charAt(0);
+ if (r === '$') {
+ return C(t, 1);
+ } else if (r === 'n') {
+ return +C(t, 1);
+ } else if (r === 'b') {
+ return t === 'btrue';
+ }
+ }
+ return +t;
+ };
+ var u = function ensureMap(e) {
+ if (!e['[[SetData]]']) {
+ var t = new rn.Map();
+ e['[[SetData]]'] = t;
+ l(n(e._storage), function (e) {
+ var r = a(e);
+ t.set(r, r);
+ });
+ e['[[SetData]]'] = t;
+ }
+ e._storage = null;
+ };
+ m.getter(i.prototype, 'size', function () {
+ r(this, 'size');
+ if (this._storage) {
+ return n(this._storage).length;
+ }
+ u(this);
+ return this['[[SetData]]'].size;
+ });
+ b(i.prototype, {
+ has: function has(e) {
+ r(this, 'has');
+ var t;
+ if (this._storage && (t = Yr(e)) !== null) {
+ return !!this._storage[t];
+ }
+ u(this);
+ return this['[[SetData]]'].has(e);
+ },
+ add: function add(e) {
+ r(this, 'add');
+ var t;
+ if (this._storage && (t = Yr(e)) !== null) {
+ this._storage[t] = true;
+ return this;
+ }
+ u(this);
+ this['[[SetData]]'].set(e, e);
+ return this;
+ },
+ delete: function (e) {
+ r(this, 'delete');
+ var t;
+ if (this._storage && (t = Yr(e)) !== null) {
+ var n = z(this._storage, t);
+ return delete this._storage[t] && n;
+ }
+ u(this);
+ return this['[[SetData]]']['delete'](e);
+ },
+ clear: function clear() {
+ r(this, 'clear');
+ if (this._storage) {
+ this._storage = Qr();
+ }
+ if (this['[[SetData]]']) {
+ this['[[SetData]]'].clear();
+ }
+ },
+ values: function values() {
+ r(this, 'values');
+ u(this);
+ return new f(this['[[SetData]]'].values());
+ },
+ entries: function entries() {
+ r(this, 'entries');
+ u(this);
+ return new f(this['[[SetData]]'].entries());
+ },
+ forEach: function forEach(e) {
+ r(this, 'forEach');
+ var n = arguments.length > 1 ? arguments[1] : null;
+ var o = this;
+ u(o);
+ this['[[SetData]]'].forEach(function (r, i) {
+ if (n) {
+ t(e, n, i, i, o);
+ } else {
+ e(i, i, o);
+ }
+ });
+ },
+ });
+ h(i.prototype, 'keys', i.prototype.values, true);
+ Me(i.prototype, i.prototype.values);
+ var f = function SetIterator(e) {
+ this.it = e;
+ };
+ f.prototype = {
+ isSetIterator: true,
+ next: function next() {
+ if (!this.isSetIterator) {
+ throw new TypeError('Not a SetIterator');
+ }
+ return this.it.next();
+ },
+ };
+ Me(f.prototype);
+ return i;
+ })(),
+ };
+ var nn =
+ S.Set &&
+ !Set.prototype['delete'] &&
+ Set.prototype.remove &&
+ Set.prototype.items &&
+ Set.prototype.map &&
+ Array.isArray(new Set().keys);
+ if (nn) {
+ S.Set = rn.Set;
+ }
+ if (S.Map || S.Set) {
+ var on = a(function () {
+ return new Map([[1, 2]]).get(1) === 2;
+ });
+ if (!on) {
+ S.Map = function Map() {
+ if (!(this instanceof Map)) {
+ throw new TypeError('Constructor Map requires "new"');
+ }
+ var e = new G();
+ if (arguments.length > 0) {
+ en(Map, e, arguments[0]);
+ }
+ delete e.constructor;
+ Object.setPrototypeOf(e, S.Map.prototype);
+ return e;
+ };
+ S.Map.prototype = O(G.prototype);
+ h(S.Map.prototype, 'constructor', S.Map, true);
+ m.preserveToString(S.Map, G);
+ }
+ var an = new Map();
+ var un = (function () {
+ var e = new Map([
+ [1, 0],
+ [2, 0],
+ [3, 0],
+ [4, 0],
+ ]);
+ e.set(-0, e);
+ return e.get(0) === e && e.get(-0) === e && e.has(0) && e.has(-0);
+ })();
+ var fn = an.set(1, 2) === an;
+ if (!un || !fn) {
+ ne(Map.prototype, 'set', function set(e, r) {
+ t(U, this, e === 0 ? 0 : e, r);
+ return this;
+ });
+ }
+ if (!un) {
+ b(
+ Map.prototype,
+ {
+ get: function get(e) {
+ return t(V, this, e === 0 ? 0 : e);
+ },
+ has: function has(e) {
+ return t(B, this, e === 0 ? 0 : e);
+ },
+ },
+ true
+ );
+ m.preserveToString(Map.prototype.get, V);
+ m.preserveToString(Map.prototype.has, B);
+ }
+ var sn = new Set();
+ var cn =
+ Set.prototype['delete'] &&
+ Set.prototype.add &&
+ Set.prototype.has &&
+ (function (e) {
+ e['delete'](0);
+ e.add(-0);
+ return !e.has(0);
+ })(sn);
+ var ln = sn.add(1) === sn;
+ if (!cn || !ln) {
+ var pn = Set.prototype.add;
+ Set.prototype.add = function add(e) {
+ t(pn, this, e === 0 ? 0 : e);
+ return this;
+ };
+ m.preserveToString(Set.prototype.add, pn);
+ }
+ if (!cn) {
+ var vn = Set.prototype.has;
+ Set.prototype.has = function has(e) {
+ return t(vn, this, e === 0 ? 0 : e);
+ };
+ m.preserveToString(Set.prototype.has, vn);
+ var yn = Set.prototype['delete'];
+ Set.prototype['delete'] = function SetDelete(e) {
+ return t(yn, this, e === 0 ? 0 : e);
+ };
+ m.preserveToString(Set.prototype['delete'], yn);
+ }
+ var hn = w(S.Map, function (e) {
+ var t = new e([]);
+ t.set(42, 42);
+ return t instanceof e;
+ });
+ var bn = Object.setPrototypeOf && !hn;
+ var gn = (function () {
+ try {
+ return !(S.Map() instanceof S.Map);
+ } catch (e) {
+ return e instanceof TypeError;
+ }
+ })();
+ if (S.Map.length !== 0 || bn || !gn) {
+ S.Map = function Map() {
+ if (!(this instanceof Map)) {
+ throw new TypeError('Constructor Map requires "new"');
+ }
+ var e = new G();
+ if (arguments.length > 0) {
+ en(Map, e, arguments[0]);
+ }
+ delete e.constructor;
+ Object.setPrototypeOf(e, Map.prototype);
+ return e;
+ };
+ S.Map.prototype = G.prototype;
+ h(S.Map.prototype, 'constructor', S.Map, true);
+ m.preserveToString(S.Map, G);
+ }
+ var dn = w(S.Set, function (e) {
+ var t = new e([]);
+ t.add(42, 42);
+ return t instanceof e;
+ });
+ var mn = Object.setPrototypeOf && !dn;
+ var On = (function () {
+ try {
+ return !(S.Set() instanceof S.Set);
+ } catch (e) {
+ return e instanceof TypeError;
+ }
+ })();
+ if (S.Set.length !== 0 || mn || !On) {
+ var wn = S.Set;
+ S.Set = function Set() {
+ if (!(this instanceof Set)) {
+ throw new TypeError('Constructor Set requires "new"');
+ }
+ var e = new wn();
+ if (arguments.length > 0) {
+ tn(Set, e, arguments[0]);
+ }
+ delete e.constructor;
+ Object.setPrototypeOf(e, Set.prototype);
+ return e;
+ };
+ S.Set.prototype = wn.prototype;
+ h(S.Set.prototype, 'constructor', S.Set, true);
+ m.preserveToString(S.Set, wn);
+ }
+ var jn = new S.Map();
+ var Sn = !a(function () {
+ return jn.keys().next().done;
+ });
+ if (
+ typeof S.Map.prototype.clear !== 'function' ||
+ new S.Set().size !== 0 ||
+ jn.size !== 0 ||
+ typeof S.Map.prototype.keys !== 'function' ||
+ typeof S.Set.prototype.keys !== 'function' ||
+ typeof S.Map.prototype.forEach !== 'function' ||
+ typeof S.Set.prototype.forEach !== 'function' ||
+ u(S.Map) ||
+ u(S.Set) ||
+ typeof jn.keys().next !== 'function' ||
+ Sn ||
+ !hn
+ ) {
+ b(S, { Map: rn.Map, Set: rn.Set }, true);
+ }
+ if (S.Set.prototype.keys !== S.Set.prototype.values) {
+ h(S.Set.prototype, 'keys', S.Set.prototype.values, true);
+ }
+ Me(Object.getPrototypeOf(new S.Map().keys()));
+ Me(Object.getPrototypeOf(new S.Set().keys()));
+ if (c && S.Set.prototype.has.name !== 'has') {
+ var Tn = S.Set.prototype.has;
+ ne(S.Set.prototype, 'has', function has(e) {
+ return t(Tn, this, e);
+ });
+ }
+ }
+ b(S, rn);
+ Ce(S.Map);
+ Ce(S.Set);
+ }
+ var In = function throwUnlessTargetIsObject(e) {
+ if (!ce.TypeIsObject(e)) {
+ throw new TypeError('target must be an object');
+ }
+ };
+ var En = {
+ apply: function apply() {
+ return ce.Call(ce.Call, null, arguments);
+ },
+ construct: function construct(e, t) {
+ if (!ce.IsConstructor(e)) {
+ throw new TypeError('First argument must be a constructor.');
+ }
+ var r = arguments.length > 2 ? arguments[2] : e;
+ if (!ce.IsConstructor(r)) {
+ throw new TypeError('new.target must be a constructor.');
+ }
+ return ce.Construct(e, t, r, 'internal');
+ },
+ deleteProperty: function deleteProperty(e, t) {
+ In(e);
+ if (s) {
+ var r = Object.getOwnPropertyDescriptor(e, t);
+ if (r && !r.configurable) {
+ return false;
+ }
+ }
+ return delete e[t];
+ },
+ has: function has(e, t) {
+ In(e);
+ return t in e;
+ },
+ };
+ if (Object.getOwnPropertyNames) {
+ Object.assign(En, {
+ ownKeys: function ownKeys(e) {
+ In(e);
+ var t = Object.getOwnPropertyNames(e);
+ if (ce.IsCallable(Object.getOwnPropertySymbols)) {
+ x(t, Object.getOwnPropertySymbols(e));
+ }
+ return t;
+ },
+ });
+ }
+ var Pn = function ConvertExceptionToBoolean(e) {
+ return !i(e);
+ };
+ if (Object.preventExtensions) {
+ Object.assign(En, {
+ isExtensible: function isExtensible(e) {
+ In(e);
+ return Object.isExtensible(e);
+ },
+ preventExtensions: function preventExtensions(e) {
+ In(e);
+ return Pn(function () {
+ return Object.preventExtensions(e);
+ });
+ },
+ });
+ }
+ if (s) {
+ var Cn = function get(e, t, r) {
+ var n = Object.getOwnPropertyDescriptor(e, t);
+ if (!n) {
+ var o = Object.getPrototypeOf(e);
+ if (o === null) {
+ return void 0;
+ }
+ return Cn(o, t, r);
+ }
+ if ('value' in n) {
+ return n.value;
+ }
+ if (n.get) {
+ return ce.Call(n.get, r);
+ }
+ return void 0;
+ };
+ var Mn = function set(e, r, n, o) {
+ var i = Object.getOwnPropertyDescriptor(e, r);
+ if (!i) {
+ var a = Object.getPrototypeOf(e);
+ if (a !== null) {
+ return Mn(a, r, n, o);
+ }
+ i = {
+ value: void 0,
+ writable: true,
+ enumerable: true,
+ configurable: true,
+ };
+ }
+ if ('value' in i) {
+ if (!i.writable) {
+ return false;
+ }
+ if (!ce.TypeIsObject(o)) {
+ return false;
+ }
+ var u = Object.getOwnPropertyDescriptor(o, r);
+ if (u) {
+ return ae.defineProperty(o, r, { value: n });
+ } else {
+ return ae.defineProperty(o, r, {
+ value: n,
+ writable: true,
+ enumerable: true,
+ configurable: true,
+ });
+ }
+ }
+ if (i.set) {
+ t(i.set, o, n);
+ return true;
+ }
+ return false;
+ };
+ Object.assign(En, {
+ defineProperty: function defineProperty(e, t, r) {
+ In(e);
+ return Pn(function () {
+ return Object.defineProperty(e, t, r);
+ });
+ },
+ getOwnPropertyDescriptor: function getOwnPropertyDescriptor(e, t) {
+ In(e);
+ return Object.getOwnPropertyDescriptor(e, t);
+ },
+ get: function get(e, t) {
+ In(e);
+ var r = arguments.length > 2 ? arguments[2] : e;
+ return Cn(e, t, r);
+ },
+ set: function set(e, t, r) {
+ In(e);
+ var n = arguments.length > 3 ? arguments[3] : e;
+ return Mn(e, t, r, n);
+ },
+ });
+ }
+ if (Object.getPrototypeOf) {
+ var xn = Object.getPrototypeOf;
+ En.getPrototypeOf = function getPrototypeOf(e) {
+ In(e);
+ return xn(e);
+ };
+ }
+ if (Object.setPrototypeOf && En.getPrototypeOf) {
+ var Nn = function (e, t) {
+ var r = t;
+ while (r) {
+ if (e === r) {
+ return true;
+ }
+ r = En.getPrototypeOf(r);
+ }
+ return false;
+ };
+ Object.assign(En, {
+ setPrototypeOf: function setPrototypeOf(e, t) {
+ In(e);
+ if (t !== null && !ce.TypeIsObject(t)) {
+ throw new TypeError('proto must be an object or null');
+ }
+ if (t === ae.getPrototypeOf(e)) {
+ return true;
+ }
+ if (ae.isExtensible && !ae.isExtensible(e)) {
+ return false;
+ }
+ if (Nn(e, t)) {
+ return false;
+ }
+ Object.setPrototypeOf(e, t);
+ return true;
+ },
+ });
+ }
+ var An = function (e, t) {
+ if (!ce.IsCallable(S.Reflect[e])) {
+ h(S.Reflect, e, t);
+ } else {
+ var r = a(function () {
+ S.Reflect[e](1);
+ S.Reflect[e](NaN);
+ S.Reflect[e](true);
+ return true;
+ });
+ if (r) {
+ ne(S.Reflect, e, t);
+ }
+ }
+ };
+ Object.keys(En).forEach(function (e) {
+ An(e, En[e]);
+ });
+ var Rn = S.Reflect.getPrototypeOf;
+ if (c && Rn && Rn.name !== 'getPrototypeOf') {
+ ne(S.Reflect, 'getPrototypeOf', function getPrototypeOf(e) {
+ return t(Rn, S.Reflect, e);
+ });
+ }
+ if (S.Reflect.setPrototypeOf) {
+ if (
+ a(function () {
+ S.Reflect.setPrototypeOf(1, {});
+ return true;
+ })
+ ) {
+ ne(S.Reflect, 'setPrototypeOf', En.setPrototypeOf);
+ }
+ }
+ if (S.Reflect.defineProperty) {
+ if (
+ !a(function () {
+ var e = !S.Reflect.defineProperty(1, 'test', { value: 1 });
+ var t =
+ typeof Object.preventExtensions !== 'function' ||
+ !S.Reflect.defineProperty(Object.preventExtensions({}), 'test', {});
+ return e && t;
+ })
+ ) {
+ ne(S.Reflect, 'defineProperty', En.defineProperty);
+ }
+ }
+ if (S.Reflect.construct) {
+ if (
+ !a(function () {
+ var e = function F() {};
+ return S.Reflect.construct(function () {}, [], e) instanceof e;
+ })
+ ) {
+ ne(S.Reflect, 'construct', En.construct);
+ }
+ }
+ if (String(new Date(NaN)) !== 'Invalid Date') {
+ var _n = Date.prototype.toString;
+ var kn = function toString() {
+ var e = +this;
+ if (e !== e) {
+ return 'Invalid Date';
+ }
+ return ce.Call(_n, this);
+ };
+ ne(Date.prototype, 'toString', kn);
+ }
+ var Ln = {
+ anchor: function anchor(e) {
+ return ce.CreateHTML(this, 'a', 'name', e);
+ },
+ big: function big() {
+ return ce.CreateHTML(this, 'big', '', '');
+ },
+ blink: function blink() {
+ return ce.CreateHTML(this, 'blink', '', '');
+ },
+ bold: function bold() {
+ return ce.CreateHTML(this, 'b', '', '');
+ },
+ fixed: function fixed() {
+ return ce.CreateHTML(this, 'tt', '', '');
+ },
+ fontcolor: function fontcolor(e) {
+ return ce.CreateHTML(this, 'font', 'color', e);
+ },
+ fontsize: function fontsize(e) {
+ return ce.CreateHTML(this, 'font', 'size', e);
+ },
+ italics: function italics() {
+ return ce.CreateHTML(this, 'i', '', '');
+ },
+ link: function link(e) {
+ return ce.CreateHTML(this, 'a', 'href', e);
+ },
+ small: function small() {
+ return ce.CreateHTML(this, 'small', '', '');
+ },
+ strike: function strike() {
+ return ce.CreateHTML(this, 'strike', '', '');
+ },
+ sub: function sub() {
+ return ce.CreateHTML(this, 'sub', '', '');
+ },
+ sup: function sub() {
+ return ce.CreateHTML(this, 'sup', '', '');
+ },
+ };
+ l(Object.keys(Ln), function (e) {
+ var r = String.prototype[e];
+ var n = false;
+ if (ce.IsCallable(r)) {
+ var o = t(r, '', ' " ');
+ var i = P([], o.match(/"/g)).length;
+ n = o !== o.toLowerCase() || i > 2;
+ } else {
+ n = true;
+ }
+ if (n) {
+ ne(String.prototype, e, Ln[e]);
+ }
+ });
+ var Fn = (function () {
+ if (!oe) {
+ return false;
+ }
+ var e =
+ typeof JSON === 'object' && typeof JSON.stringify === 'function' ? JSON.stringify : null;
+ if (!e) {
+ return false;
+ }
+ if (typeof e($()) !== 'undefined') {
+ return true;
+ }
+ if (e([$()]) !== '[null]') {
+ return true;
+ }
+ var t = { a: $() };
+ t[$()] = true;
+ if (e(t) !== '{}') {
+ return true;
+ }
+ return false;
+ })();
+ var Dn = a(function () {
+ if (!oe) {
+ return true;
+ }
+ return JSON.stringify(Object($())) === '{}' && JSON.stringify([Object($())]) === '[{}]';
+ });
+ if (Fn || !Dn) {
+ var zn = JSON.stringify;
+ ne(JSON, 'stringify', function stringify(e) {
+ if (typeof e === 'symbol') {
+ return;
+ }
+ var n;
+ if (arguments.length > 1) {
+ n = arguments[1];
+ }
+ var o = [e];
+ if (!r(n)) {
+ var i = ce.IsCallable(n) ? n : null;
+ var a = function (e, r) {
+ var n = i ? t(i, this, e, r) : r;
+ if (typeof n !== 'symbol') {
+ if (re.symbol(n)) {
+ return Nt({})(n);
+ } else {
+ return n;
+ }
+ }
+ };
+ o.push(a);
+ } else {
+ o.push(n);
+ }
+ if (arguments.length > 2) {
+ o.push(arguments[2]);
+ }
+ return zn.apply(this, o);
+ });
+ }
+ return S;
+});
//# sourceMappingURL=es6-shim.map
diff --git a/platform/app/public/html-templates/index.html b/platform/app/public/html-templates/index.html
index 9ff1c3e692..9853c121a6 100644
--- a/platform/app/public/html-templates/index.html
+++ b/platform/app/public/html-templates/index.html
@@ -1,4 +1,4 @@
-
+
@@ -6,16 +6,34 @@
name="viewport"
content="width=device-width, initial-scale=1, shrink-to-fit=no"
/>
-
-
-
-
+
+
+
+
-
-
+
+
-
+
-
+
OHIF Viewer
-
+
+
@@ -6,16 +6,34 @@
name="viewport"
content="width=device-width, initial-scale=1, shrink-to-fit=no"
/>
-
-
-
-
+
+
+
+
-
-
+
+
-
+
-
+
{
// customize the UI prompt accordingly.
- const isFirstTimeUpdatedServiceWorkerIsWaiting =
- event.wasWaitingBeforeRegister === false;
+ const isFirstTimeUpdatedServiceWorkerIsWaiting = event.wasWaitingBeforeRegister === false;
console.log(
'isFirstTimeUpdatedServiceWorkerIsWaiting',
isFirstTimeUpdatedServiceWorkerIsWaiting
diff --git a/platform/app/public/oidc-client.min.js b/platform/app/public/oidc-client.min.js
index 082fc8d529..1e82a13d4b 100644
--- a/platform/app/public/oidc-client.min.js
+++ b/platform/app/public/oidc-client.min.js
@@ -1,46 +1,10864 @@
-!function webpackUniversalModuleDefinition(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var n in r)("object"==typeof exports?exports:e)[n]=r[n]}}(window,function(){return function(e){var t={};function __webpack_require__(r){if(t[r])return t[r].exports;var n=t[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,__webpack_require__),n.l=!0,n.exports}return __webpack_require__.m=e,__webpack_require__.c=t,__webpack_require__.d=function(e,t,r){__webpack_require__.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},__webpack_require__.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},__webpack_require__.t=function(e,t){if(1&t&&(e=__webpack_require__(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(__webpack_require__.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)__webpack_require__.d(r,n,function(t){return e[t]}.bind(null,n));return r},__webpack_require__.n=function(e){var t=e&&e.__esModule?function getDefault(){return e.default}:function getModuleExports(){return e};return __webpack_require__.d(t,"a",t),t},__webpack_require__.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},__webpack_require__.p="",__webpack_require__(__webpack_require__.s=45)}([function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function defineProperties(e,t){for(var r=0;r=4){for(var e=arguments.length,t=Array(e),r=0;r=3){for(var e=arguments.length,t=Array(e),r=0;r=2){for(var e=arguments.length,t=Array(e),r=0;r=1){for(var e=arguments.length,t=Array(e),r=0;r1&&void 0!==arguments[1]?arguments[1]:"#",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.Global;"string"!=typeof e&&(e=r.location.href);var o=e.lastIndexOf(t);o>=0&&(e=e.substr(o+1));for(var s,a={},u=/([^&=]+)=([^&]*)/g,c=0;s=u.exec(e);)if(a[decodeURIComponent(s[1])]=decodeURIComponent(s[2]),c++>50)return n.Log.error("UrlUtility.parseUrlFragment: response exceeded expected number of parameters",e),{error:"Response exceeded expected number of parameters"};for(var h in a)return a;return{}},UrlUtility}()},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MetadataService=void 0;var n=function(){function defineProperties(e,t){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:o.JsonService;if(function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,MetadataService),!e)throw i.Log.error("MetadataService: No settings passed to MetadataService"),new Error("settings");this._settings=e,this._jsonService=new t(["application/jwk-set+json"])}return MetadataService.prototype.getMetadata=function getMetadata(){var e=this;return this._settings.metadata?(i.Log.debug("MetadataService.getMetadata: Returning metadata from settings"),Promise.resolve(this._settings.metadata)):this.metadataUrl?(i.Log.debug("MetadataService.getMetadata: getting metadata from",this.metadataUrl),this._jsonService.getJson(this.metadataUrl).then(function(t){return i.Log.debug("MetadataService.getMetadata: json received"),e._settings.metadata=t,t})):(i.Log.error("MetadataService.getMetadata: No authority or metadataUrl configured on settings"),Promise.reject(new Error("No authority or metadataUrl configured on settings")))},MetadataService.prototype.getIssuer=function getIssuer(){return this._getMetadataProperty("issuer")},MetadataService.prototype.getAuthorizationEndpoint=function getAuthorizationEndpoint(){return this._getMetadataProperty("authorization_endpoint")},MetadataService.prototype.getUserInfoEndpoint=function getUserInfoEndpoint(){return this._getMetadataProperty("userinfo_endpoint")},MetadataService.prototype.getTokenEndpoint=function getTokenEndpoint(){return this._getMetadataProperty("token_endpoint",!0)},MetadataService.prototype.getCheckSessionIframe=function getCheckSessionIframe(){return this._getMetadataProperty("check_session_iframe",!0)},MetadataService.prototype.getEndSessionEndpoint=function getEndSessionEndpoint(){return this._getMetadataProperty("end_session_endpoint",!0)},MetadataService.prototype.getRevocationEndpoint=function getRevocationEndpoint(){return this._getMetadataProperty("revocation_endpoint",!0)},MetadataService.prototype._getMetadataProperty=function _getMetadataProperty(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return i.Log.debug("MetadataService.getMetadataProperty for: "+e),this.getMetadata().then(function(r){if(i.Log.debug("MetadataService.getMetadataProperty: metadata recieved"),void 0===r[e]){if(!0===t)return void i.Log.warn("MetadataService.getMetadataProperty: Metadata does not contain optional property "+e);throw i.Log.error("MetadataService.getMetadataProperty: Metadata does not contain property "+e),new Error("Metadata does not contain property "+e)}return r[e]})},MetadataService.prototype.getSigningKeys=function getSigningKeys(){var e=this;return this._settings.signingKeys?(i.Log.debug("MetadataService.getSigningKeys: Returning signingKeys from settings"),Promise.resolve(this._settings.signingKeys)):this._getMetadataProperty("jwks_uri").then(function(t){return i.Log.debug("MetadataService.getSigningKeys: jwks_uri received",t),e._jsonService.getJson(t).then(function(t){if(i.Log.debug("MetadataService.getSigningKeys: key set received",t),!t.keys)throw i.Log.error("MetadataService.getSigningKeys: Missing keys on keyset"),new Error("Missing keys on keyset");return e._settings.signingKeys=t.keys,e._settings.signingKeys})})},n(MetadataService,[{key:"metadataUrl",get:function get(){return this._metadataUrl||(this._settings.metadataUrl?this._metadataUrl=this._settings.metadataUrl:(this._metadataUrl=this._settings.authority,this._metadataUrl&&this._metadataUrl.indexOf(".well-known/openid-configuration")<0&&("/"!==this._metadataUrl[this._metadataUrl.length-1]&&(this._metadataUrl+="/"),this._metadataUrl+=".well-known/openid-configuration"))),this._metadataUrl}}]),MetadataService}()},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.State=void 0;var n=function(){function defineProperties(e,t){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},t=e.id,r=e.data,n=e.created;!function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,State),this._id=t||(0,o.default)(),this._data=r,this._created="number"==typeof n&&n>0?n:parseInt(Date.now()/1e3)}return State.prototype.toStorageString=function toStorageString(){return i.Log.debug("State.toStorageString"),JSON.stringify({id:this.id,data:this.data,created:this.created})},State.fromStorageString=function fromStorageString(e){return i.Log.debug("State.fromStorageString"),new State(JSON.parse(e))},State.clearStaleState=function clearStaleState(e,t){var r=Date.now()/1e3-t;return e.getAllKeys().then(function(t){i.Log.debug("State.clearStaleState: got keys",t);for(var n=[],o=function _loop(o){var s=t[o];a=e.get(s).then(function(t){var n=!1;if(t)try{var o=State.fromStorageString(t);i.Log.debug("State.clearStaleState: got item from key: ",s,o.created),o.created<=r&&(n=!0)}catch(e){i.Log.error("State.clearStaleState: Error parsing state for key",s,e.message),n=!0}else i.Log.debug("State.clearStaleState: no item in storage for key: ",s),n=!0;if(n)return i.Log.debug("State.clearStaleState: removed item for key: ",s),e.remove(s)}),n.push(a)},s=0;s0&&void 0!==arguments[0]?arguments[0]:{},t=e.prefix,r=void 0===t?"oidc.":t,n=e.store,o=void 0===n?i.Global.localStorage:n;!function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,WebStorageStateStore),this._store=o,this._prefix=r}return WebStorageStateStore.prototype.set=function set(e,t){return n.Log.debug("WebStorageStateStore.set",e),e=this._prefix+e,this._store.setItem(e,t),Promise.resolve()},WebStorageStateStore.prototype.get=function get(e){n.Log.debug("WebStorageStateStore.get",e),e=this._prefix+e;var t=this._store.getItem(e);return Promise.resolve(t)},WebStorageStateStore.prototype.remove=function remove(e){n.Log.debug("WebStorageStateStore.remove",e),e=this._prefix+e;var t=this._store.getItem(e);return this._store.removeItem(e),Promise.resolve(t)},WebStorageStateStore.prototype.getAllKeys=function getAllKeys(){n.Log.debug("WebStorageStateStore.getAllKeys");for(var e=[],t=0;t0&&void 0!==arguments[0]?arguments[0]:{},t=e.authority,r=e.metadataUrl,i=e.metadata,o=e.signingKeys,g=e.client_id,p=e.client_secret,d=e.response_type,v=void 0===d?c:d,y=e.scope,m=void 0===y?h:y,S=e.redirect_uri,F=e.post_logout_redirect_uri,b=e.prompt,_=e.display,w=e.max_age,E=e.ui_locales,x=e.acr_values,C=e.resource,P=e.filterProtocolClaims,A=void 0===P||P,k=e.loadUserInfo,I=void 0===k||k,B=e.staleStateAge,R=void 0===B?f:B,T=e.clockSkew,U=void 0===T?l:T,M=e.stateStore,L=void 0===M?new s.WebStorageStateStore:M,D=e.ResponseValidatorCtor,N=void 0===D?a.ResponseValidator:D,O=e.MetadataServiceCtor,H=void 0===O?u.MetadataService:O,j=e.extraQueryParams,K=void 0===j?{}:j;!function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,OidcClientSettings),this._authority=t,this._metadataUrl=r,this._metadata=i,this._signingKeys=o,this._client_id=g,this._client_secret=p,this._response_type=v,this._scope=m,this._redirect_uri=S,this._post_logout_redirect_uri=F,this._prompt=b,this._display=_,this._max_age=w,this._ui_locales=E,this._acr_values=x,this._resource=C,this._filterProtocolClaims=!!A,this._loadUserInfo=!!I,this._staleStateAge=R,this._clockSkew=U,this._stateStore=L,this._validator=new N(this),this._metadataService=new H(this),this._extraQueryParams="object"===(void 0===K?"undefined":n(K))?K:{}}return i(OidcClientSettings,[{key:"client_id",get:function get(){return this._client_id},set:function set(e){if(this._client_id)throw o.Log.error("OidcClientSettings.set_client_id: client_id has already been assigned."),new Error("client_id has already been assigned.");this._client_id=e}},{key:"client_secret",get:function get(){return this._client_secret}},{key:"response_type",get:function get(){return this._response_type}},{key:"scope",get:function get(){return this._scope}},{key:"redirect_uri",get:function get(){return this._redirect_uri}},{key:"post_logout_redirect_uri",get:function get(){return this._post_logout_redirect_uri}},{key:"prompt",get:function get(){return this._prompt}},{key:"display",get:function get(){return this._display}},{key:"max_age",get:function get(){return this._max_age}},{key:"ui_locales",get:function get(){return this._ui_locales}},{key:"acr_values",get:function get(){return this._acr_values}},{key:"resource",get:function get(){return this._resource}},{key:"authority",get:function get(){return this._authority},set:function set(e){if(this._authority)throw o.Log.error("OidcClientSettings.set_authority: authority has already been assigned."),new Error("authority has already been assigned.");this._authority=e}},{key:"metadataUrl",get:function get(){return this._metadataUrl||(this._metadataUrl=this.authority,this._metadataUrl&&this._metadataUrl.indexOf(".well-known/openid-configuration")<0&&("/"!==this._metadataUrl[this._metadataUrl.length-1]&&(this._metadataUrl+="/"),this._metadataUrl+=".well-known/openid-configuration")),this._metadataUrl}},{key:"metadata",get:function get(){return this._metadata},set:function set(e){this._metadata=e}},{key:"signingKeys",get:function get(){return this._signingKeys},set:function set(e){this._signingKeys=e}},{key:"filterProtocolClaims",get:function get(){return this._filterProtocolClaims}},{key:"loadUserInfo",get:function get(){return this._loadUserInfo}},{key:"staleStateAge",get:function get(){return this._staleStateAge}},{key:"clockSkew",get:function get(){return this._clockSkew}},{key:"stateStore",get:function get(){return this._stateStore}},{key:"validator",get:function get(){return this._validator}},{key:"metadataService",get:function get(){return this._metadataService}},{key:"extraQueryParams",get:function get(){return this._extraQueryParams},set:function set(e){"object"===(void 0===e?"undefined":n(e))?this._extraQueryParams=e:this._extraQueryParams={}}}]),OidcClientSettings}()},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CordovaPopupWindow=void 0;var n=function(){function defineProperties(e,t){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:o.Global.XMLHttpRequest,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.MetadataService;if(function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,TokenRevocationClient),!e)throw n.Log.error("TokenRevocationClient.ctor: No settings provided"),new Error("No settings provided.");this._settings=e,this._XMLHttpRequestCtor=t,this._metadataService=new r(this._settings)}return TokenRevocationClient.prototype.revoke=function revoke(e,t){var r=this;if(!e)throw n.Log.error("TokenRevocationClient.revoke: No accessToken provided"),new Error("No accessToken provided.");return this._metadataService.getRevocationEndpoint().then(function(i){if(i){n.Log.error("TokenRevocationClient.revoke: Revoking access token");var o=r._settings.client_id,s=r._settings.client_secret;return r._revoke(i,o,s,e)}if(t)throw n.Log.error("TokenRevocationClient.revoke: Revocation not supported"),new Error("Revocation not supported")})},TokenRevocationClient.prototype._revoke=function _revoke(e,t,r,i){var o=this;return new Promise(function(s,a){var u=new o._XMLHttpRequestCtor;u.open("POST",e),u.onload=function(){n.Log.debug("TokenRevocationClient.revoke: HTTP response received, status",u.status),200===u.status?s():a(Error(u.statusText+" ("+u.status+")"))};var c="client_id="+encodeURIComponent(t);r&&(c+="&client_secret="+encodeURIComponent(r)),c+="&token_type_hint="+encodeURIComponent("access_token"),c+="&token="+encodeURIComponent(i),u.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),u.send(c)})},TokenRevocationClient}()},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CheckSessionIFrame=void 0;var n=r(0);var i=2e3;t.CheckSessionIFrame=function(){function CheckSessionIFrame(e,t,r,n){var o=!(arguments.length>4&&void 0!==arguments[4])||arguments[4];!function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,CheckSessionIFrame),this._callback=e,this._client_id=t,this._url=r,this._interval=n||i,this._stopOnError=o;var s=r.indexOf("/",r.indexOf("//")+2);this._frame_origin=r.substr(0,s),this._frame=window.document.createElement("iframe"),this._frame.style.visibility="hidden",this._frame.style.position="absolute",this._frame.style.display="none",this._frame.style.width=0,this._frame.style.height=0,this._frame.src=r}return CheckSessionIFrame.prototype.load=function load(){var e=this;return new Promise(function(t){e._frame.onload=function(){t()},window.document.body.appendChild(e._frame),e._boundMessageEvent=e._message.bind(e),window.addEventListener("message",e._boundMessageEvent,!1)})},CheckSessionIFrame.prototype._message=function _message(e){e.origin===this._frame_origin&&e.source===this._frame.contentWindow&&("error"===e.data?(n.Log.error("CheckSessionIFrame: error message from check session op iframe"),this._stopOnError&&this.stop()):"changed"===e.data?(n.Log.debug("CheckSessionIFrame: changed message from check session op iframe"),this.stop(),this._callback()):n.Log.debug("CheckSessionIFrame: "+e.data+" message from check session op iframe"))},CheckSessionIFrame.prototype.start=function start(e){var t=this;if(this._session_state!==e){n.Log.debug("CheckSessionIFrame.start"),this.stop(),this._session_state=e;var r=function send(){t._frame.contentWindow.postMessage(t._client_id+" "+t._session_state,t._frame_origin)};r(),this._timer=window.setInterval(r,this._interval)}},CheckSessionIFrame.prototype.stop=function stop(){this._session_state=null,this._timer&&(n.Log.debug("CheckSessionIFrame.stop"),window.clearInterval(this._timer),this._timer=null)},CheckSessionIFrame}()},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SessionMonitor=void 0;var n=function(){function defineProperties(e,t){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:o.CheckSessionIFrame;if(function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,SessionMonitor),!e)throw i.Log.error("SessionMonitor.ctor: No user manager passed to SessionMonitor"),new Error("userManager");this._userManager=e,this._CheckSessionIFrameCtor=r,this._userManager.events.addUserLoaded(this._start.bind(this)),this._userManager.events.addUserUnloaded(this._stop.bind(this)),this._userManager.getUser().then(function(e){e&&t._start(e)}).catch(function(e){i.Log.error("SessionMonitor ctor: error from getUser:",e.message)})}return SessionMonitor.prototype._start=function _start(e){var t=this,r=e.session_state;r&&(this._sub=e.profile.sub,this._sid=e.profile.sid,i.Log.debug("SessionMonitor._start: session_state:",r,", sub:",this._sub),this._checkSessionIFrame?this._checkSessionIFrame.start(r):this._metadataService.getCheckSessionIframe().then(function(e){if(e){i.Log.debug("SessionMonitor._start: Initializing check session iframe");var n=t._client_id,o=t._checkSessionInterval,s=t._stopCheckSessionOnError;t._checkSessionIFrame=new t._CheckSessionIFrameCtor(t._callback.bind(t),n,e,o,s),t._checkSessionIFrame.load().then(function(){t._checkSessionIFrame.start(r)})}else i.Log.warn("SessionMonitor._start: No check session iframe found in the metadata")}).catch(function(e){i.Log.error("SessionMonitor._start: Error from getCheckSessionIframe:",e.message)}))},SessionMonitor.prototype._stop=function _stop(){this._sub=null,this._sid=null,this._checkSessionIFrame&&(i.Log.debug("SessionMonitor._stop"),this._checkSessionIFrame.stop())},SessionMonitor.prototype._callback=function _callback(){var e=this;this._userManager.querySessionStatus().then(function(t){var r=!0;t?t.sub===e._sub?(r=!1,e._checkSessionIFrame.start(t.session_state),t.sid===e._sid?i.Log.debug("SessionMonitor._callback: Same sub still logged in at OP, restarting check session iframe; session_state:",t.session_state):(i.Log.debug("SessionMonitor._callback: Same sub still logged in at OP, session state has changed, restarting check session iframe; session_state:",t.session_state),e._userManager.events._raiseUserSessionChanged())):i.Log.debug("SessionMonitor._callback: Different subject signed into OP:",t.sub):i.Log.debug("SessionMonitor._callback: Subject no longer signed into OP"),r&&(i.Log.debug("SessionMonitor._callback: SessionMonitor._callback; raising signed out event"),e._userManager.events._raiseUserSignedOut())}).catch(function(t){i.Log.debug("SessionMonitor._callback: Error calling queryCurrentSigninSession; raising signed out event",t.message),e._userManager.events._raiseUserSignedOut()})},n(SessionMonitor,[{key:"_settings",get:function get(){return this._userManager.settings}},{key:"_metadataService",get:function get(){return this._userManager.metadataService}},{key:"_client_id",get:function get(){return this._settings.client_id}},{key:"_checkSessionInterval",get:function get(){return this._settings.checkSessionInterval}},{key:"_stopCheckSessionOnError",get:function get(){return this._settings.stopCheckSessionOnError}}]),SessionMonitor}()},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Event=void 0;var n=r(0);t.Event=function(){function Event(e){!function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Event),this._name=e,this._callbacks=[]}return Event.prototype.addHandler=function addHandler(e){this._callbacks.push(e)},Event.prototype.removeHandler=function removeHandler(e){var t=this._callbacks.findIndex(function(t){return t===e});t>=0&&this._callbacks.splice(t,1)},Event.prototype.raise=function raise(){n.Log.debug("Event: Raising event: "+this._name);for(var e=0;e0&&void 0!==arguments[0]?arguments[0]:{},t=e.accessTokenExpiringNotificationTime,r=void 0===t?o:t,n=e.accessTokenExpiringTimer,s=void 0===n?new i.Timer("Access token expiring"):n,a=e.accessTokenExpiredTimer,u=void 0===a?new i.Timer("Access token expired"):a;!function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,AccessTokenEvents),this._accessTokenExpiringNotificationTime=r,this._accessTokenExpiring=s,this._accessTokenExpired=u}return AccessTokenEvents.prototype.load=function load(e){if(e.access_token&&void 0!==e.expires_in){var t=e.expires_in;if(n.Log.debug("AccessTokenEvents.load: access token present, remaining duration:",t),t>0){var r=t-this._accessTokenExpiringNotificationTime;r<=0&&(r=1),n.Log.debug("AccessTokenEvents.load: registering expiring timer in:",r),this._accessTokenExpiring.init(r)}else n.Log.debug("AccessTokenEvents.load: canceling existing expiring timer becase we're past expiration."),this._accessTokenExpiring.cancel();var i=t+1;n.Log.debug("AccessTokenEvents.load: registering expired timer in:",i),this._accessTokenExpired.init(i)}else this._accessTokenExpiring.cancel(),this._accessTokenExpired.cancel()},AccessTokenEvents.prototype.unload=function unload(){n.Log.debug("AccessTokenEvents.unload: canceling existing access token timers"),this._accessTokenExpiring.cancel(),this._accessTokenExpired.cancel()},AccessTokenEvents.prototype.addAccessTokenExpiring=function addAccessTokenExpiring(e){this._accessTokenExpiring.addHandler(e)},AccessTokenEvents.prototype.removeAccessTokenExpiring=function removeAccessTokenExpiring(e){this._accessTokenExpiring.removeHandler(e)},AccessTokenEvents.prototype.addAccessTokenExpired=function addAccessTokenExpired(e){this._accessTokenExpired.addHandler(e)},AccessTokenEvents.prototype.removeAccessTokenExpired=function removeAccessTokenExpired(e){this._accessTokenExpired.removeHandler(e)},AccessTokenEvents}()},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.User=void 0;var n=function(){function defineProperties(e,t){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},r=t.nonce,n=t.authority,i=t.client_id;!function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,SigninState);var o=function _possibleConstructorReturn(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,arguments[0]));return!0===r?o._nonce=(0,s.default)():r&&(o._nonce=r),o._authority=n,o._client_id=i,o}return function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(SigninState,e),SigninState.prototype.toStorageString=function toStorageString(){return i.Log.debug("SigninState.toStorageString"),JSON.stringify({id:this.id,data:this.data,created:this.created,nonce:this.nonce,authority:this.authority,client_id:this.client_id})},SigninState.fromStorageString=function fromStorageString(e){return i.Log.debug("SigninState.fromStorageString"),new SigninState(JSON.parse(e))},n(SigninState,[{key:"nonce",get:function get(){return this._nonce}},{key:"authority",get:function get(){return this._authority}},{key:"client_id",get:function get(){return this._client_id}}]),SigninState}(o.State)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ErrorResponse=void 0;var n=r(0);t.ErrorResponse=function(e){function ErrorResponse(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=t.error,i=t.error_description,o=t.error_uri,s=t.state;if(function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,ErrorResponse),!r)throw n.Log.error("No error passed to ErrorResponse"),new Error("error");var a=function _possibleConstructorReturn(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,i||r));return a.name="ErrorResponse",a.error=r,a.error_description=i,a.error_uri=o,a.state=s,a}return function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(ErrorResponse,e),ErrorResponse}(Error)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.JsonService=void 0;var n=r(0),i=r(1);t.JsonService=function(){function JsonService(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:i.Global.XMLHttpRequest;!function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,JsonService),e&&Array.isArray(e)?this._contentTypes=e.slice():this._contentTypes=[],this._contentTypes.push("application/json"),this._XMLHttpRequest=t}return JsonService.prototype.getJson=function getJson(e,t){var r=this;if(!e)throw n.Log.error("JsonService.getJson: No url passed"),new Error("url");return n.Log.debug("JsonService.getJson, url: ",e),new Promise(function(i,o){var s=new r._XMLHttpRequest;s.open("GET",e);var a=r._contentTypes;s.onload=function(){if(n.Log.debug("JsonService.getJson: HTTP response received, status",s.status),200===s.status){var t=s.getResponseHeader("Content-Type");if(t)if(a.find(function(e){if(t.startsWith(e))return!0}))try{return void i(JSON.parse(s.responseText))}catch(e){return n.Log.error("JsonService.getJson: Error parsing JSON response",e.message),void o(e)}o(Error("Invalid response Content-Type: "+t+", from URL: "+e))}else o(Error(s.statusText+" ("+s.status+")"))},s.onerror=function(){n.Log.error("JsonService.getJson: network error"),o(Error("Network Error"))},t&&(n.Log.debug("JsonService.getJson: token passed, setting Authorization header"),s.setRequestHeader("Authorization","Bearer "+t)),s.send()})},JsonService}()},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OidcClient=void 0;var n=function(){function defineProperties(e,t){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{};!function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,OidcClient),e instanceof o.OidcClientSettings?this._settings=e:this._settings=new o.OidcClientSettings(e)}return OidcClient.prototype.createSigninRequest=function createSigninRequest(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=t.response_type,n=t.scope,o=t.redirect_uri,s=t.data,u=t.state,c=t.prompt,h=t.display,f=t.max_age,l=t.ui_locales,g=t.id_token_hint,p=t.login_hint,d=t.acr_values,v=t.resource,y=t.request,m=t.request_uri,S=t.extraQueryParams,F=arguments[1];i.Log.debug("OidcClient.createSigninRequest");var b=this._settings.client_id;r=r||this._settings.response_type,n=n||this._settings.scope,o=o||this._settings.redirect_uri,c=c||this._settings.prompt,h=h||this._settings.display,f=f||this._settings.max_age,l=l||this._settings.ui_locales,d=d||this._settings.acr_values,v=v||this._settings.resource,S=S||this._settings.extraQueryParams;var _=this._settings.authority;return this._metadataService.getAuthorizationEndpoint().then(function(t){i.Log.debug("OidcClient.createSigninRequest: Received authorization endpoint",t);var w=new a.SigninRequest({url:t,client_id:b,redirect_uri:o,response_type:r,scope:n,data:s||u,authority:_,prompt:c,display:h,max_age:f,ui_locales:l,id_token_hint:g,login_hint:p,acr_values:d,resource:v,request:y,request_uri:m,extraQueryParams:S}),E=w.state;return(F=F||e._stateStore).set(E.id,E.toStorageString()).then(function(){return w})})},OidcClient.prototype.processSigninResponse=function processSigninResponse(e,t){var r=this;i.Log.debug("OidcClient.processSigninResponse");var n=new u.SigninResponse(e);return n.state?(t=t||this._stateStore).remove(n.state).then(function(e){if(!e)throw i.Log.error("OidcClient.processSigninResponse: No matching state found in storage"),new Error("No matching state found in storage");var t=f.SigninState.fromStorageString(e);return i.Log.debug("OidcClient.processSigninResponse: Received state from storage; validating response"),r._validator.validateSigninResponse(t,n)}):(i.Log.error("OidcClient.processSigninResponse: No state in response"),Promise.reject(new Error("No state in response")))},OidcClient.prototype.createSignoutRequest=function createSignoutRequest(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=t.id_token_hint,n=t.data,o=t.state,s=t.post_logout_redirect_uri,a=arguments[1];return i.Log.debug("OidcClient.createSignoutRequest"),s=s||this._settings.post_logout_redirect_uri,this._metadataService.getEndSessionEndpoint().then(function(t){if(!t)throw i.Log.error("OidcClient.createSignoutRequest: No end session endpoint url returned"),new Error("no end session endpoint");i.Log.debug("OidcClient.createSignoutRequest: Received end session endpoint",t);var u=new c.SignoutRequest({url:t,id_token_hint:r,post_logout_redirect_uri:s,data:n||o}),h=u.state;return h&&(i.Log.debug("OidcClient.createSignoutRequest: Signout request has state to persist"),(a=a||e._stateStore).set(h.id,h.toStorageString())),u})},OidcClient.prototype.processSignoutResponse=function processSignoutResponse(e,t){var r=this;i.Log.debug("OidcClient.processSignoutResponse");var n=new h.SignoutResponse(e);if(!n.state)return i.Log.debug("OidcClient.processSignoutResponse: No state in response"),n.error?(i.Log.warn("OidcClient.processSignoutResponse: Response was error: ",n.error),Promise.reject(new s.ErrorResponse(n))):Promise.resolve(n);var o=n.state;return(t=t||this._stateStore).remove(o).then(function(e){if(!e)throw i.Log.error("OidcClient.processSignoutResponse: No matching state found in storage"),new Error("No matching state found in storage");var t=l.State.fromStorageString(e);return i.Log.debug("OidcClient.processSignoutResponse: Received state from storage; validating response"),r._validator.validateSignoutResponse(t,n)})},OidcClient.prototype.clearStaleState=function clearStaleState(e){return i.Log.debug("OidcClient.clearStaleState"),e=e||this._stateStore,l.State.clearStaleState(e,this.settings.staleStateAge)},n(OidcClient,[{key:"_stateStore",get:function get(){return this.settings.stateStore}},{key:"_validator",get:function get(){return this.settings.validator}},{key:"_metadataService",get:function get(){return this.settings.metadataService}},{key:"settings",get:function get(){return this._settings}},{key:"metadataService",get:function get(){return this._metadataService}}]),OidcClient}()},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CordovaIFrameNavigator=void 0;var n=r(7);t.CordovaIFrameNavigator=function(){function CordovaIFrameNavigator(){!function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,CordovaIFrameNavigator)}return CordovaIFrameNavigator.prototype.prepare=function prepare(e){e.popupWindowFeatures="hidden=yes";var t=new n.CordovaPopupWindow(e);return Promise.resolve(t)},CordovaIFrameNavigator}()},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CordovaPopupNavigator=void 0;var n=r(7);t.CordovaPopupNavigator=function(){function CordovaPopupNavigator(){!function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,CordovaPopupNavigator)}return CordovaPopupNavigator.prototype.prepare=function prepare(e){var t=new n.CordovaPopupWindow(e);return Promise.resolve(t)},CordovaPopupNavigator}()},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SilentRenewService=void 0;var n=r(0);t.SilentRenewService=function(){function SilentRenewService(e){!function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,SilentRenewService),this._userManager=e}return SilentRenewService.prototype.start=function start(){this._callback||(this._callback=this._tokenExpiring.bind(this),this._userManager.events.addAccessTokenExpiring(this._callback),this._userManager.getUser().then(function(e){}).catch(function(e){n.Log.error("SilentRenewService.start: Error from getUser:",e.message)}))},SilentRenewService.prototype.stop=function stop(){this._callback&&(this._userManager.events.removeAccessTokenExpiring(this._callback),delete this._callback)},SilentRenewService.prototype._tokenExpiring=function _tokenExpiring(){var e=this;this._userManager.signinSilent().then(function(e){n.Log.debug("SilentRenewService._tokenExpiring: Silent token renewal successful")},function(t){n.Log.error("SilentRenewService._tokenExpiring: Error from signinSilent:",t.message),e._userManager.events._raiseSilentRenewError(t)})},SilentRenewService}()},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Timer=void 0;var n=function(){function defineProperties(e,t){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:o.Global.timer,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;!function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Timer);var i=function _possibleConstructorReturn(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,t));return i._timer=r,i._nowFunc=n||function(){return Date.now()/1e3},i}return function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(Timer,e),Timer.prototype.init=function init(e){e<=0&&(e=1),e=parseInt(e);var t=this.now+e;if(this.expiration===t&&this._timerHandle)i.Log.debug("Timer.init timer "+this._name+" skipping initialization since already initialized for expiration:",this.expiration);else{this.cancel(),i.Log.debug("Timer.init timer "+this._name+" for duration:",e),this._expiration=t;var r=5;e1&&void 0!==arguments[1])||arguments[1];n.Log.debug("UserManagerEvents.load"),e.prototype.load.call(this,t),r&&this._userLoaded.raise(t)},UserManagerEvents.prototype.unload=function unload(){n.Log.debug("UserManagerEvents.unload"),e.prototype.unload.call(this),this._userUnloaded.raise()},UserManagerEvents.prototype.addUserLoaded=function addUserLoaded(e){this._userLoaded.addHandler(e)},UserManagerEvents.prototype.removeUserLoaded=function removeUserLoaded(e){this._userLoaded.removeHandler(e)},UserManagerEvents.prototype.addUserUnloaded=function addUserUnloaded(e){this._userUnloaded.addHandler(e)},UserManagerEvents.prototype.removeUserUnloaded=function removeUserUnloaded(e){this._userUnloaded.removeHandler(e)},UserManagerEvents.prototype.addSilentRenewError=function addSilentRenewError(e){this._silentRenewError.addHandler(e)},UserManagerEvents.prototype.removeSilentRenewError=function removeSilentRenewError(e){this._silentRenewError.removeHandler(e)},UserManagerEvents.prototype._raiseSilentRenewError=function _raiseSilentRenewError(e){n.Log.debug("UserManagerEvents._raiseSilentRenewError",e.message),this._silentRenewError.raise(e)},UserManagerEvents.prototype.addUserSignedOut=function addUserSignedOut(e){this._userSignedOut.addHandler(e)},UserManagerEvents.prototype.removeUserSignedOut=function removeUserSignedOut(e){this._userSignedOut.removeHandler(e)},UserManagerEvents.prototype._raiseUserSignedOut=function _raiseUserSignedOut(e){n.Log.debug("UserManagerEvents._raiseUserSignedOut"),this._userSignedOut.raise(e)},UserManagerEvents.prototype.addUserSessionChanged=function addUserSessionChanged(e){this._userSessionChanged.addHandler(e)},UserManagerEvents.prototype.removeUserSessionChanged=function removeUserSessionChanged(e){this._userSessionChanged.removeHandler(e)},UserManagerEvents.prototype._raiseUserSessionChanged=function _raiseUserSessionChanged(e){n.Log.debug("UserManagerEvents._raiseUserSessionChanged"),this._userSessionChanged.raise(e)},UserManagerEvents}(i.AccessTokenEvents)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IFrameWindow=void 0;var n=function(){function defineProperties(e,t){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},r=t.popup_redirect_uri,n=t.popup_post_logout_redirect_uri,i=t.popupWindowFeatures,l=t.popupWindowTarget,g=t.silent_redirect_uri,p=t.silentRequestTimeout,d=t.automaticSilentRenew,v=void 0!==d&&d,y=t.includeIdTokenInSilentRenew,m=void 0===y||y,S=t.monitorSession,F=void 0===S||S,b=t.checkSessionInterval,_=void 0===b?f:b,w=t.stopCheckSessionOnError,E=void 0===w||w,x=t.revokeAccessTokenOnSignout,C=void 0!==x&&x,P=t.accessTokenExpiringNotificationTime,A=void 0===P?h:P,k=t.redirectNavigator,I=void 0===k?new o.RedirectNavigator:k,B=t.popupNavigator,R=void 0===B?new s.PopupNavigator:B,T=t.iframeNavigator,U=void 0===T?new a.IFrameNavigator:T,M=t.userStore,L=void 0===M?new u.WebStorageStateStore({store:c.Global.sessionStorage}):M;!function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,UserManagerSettings);var D=function _possibleConstructorReturn(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,arguments[0]));return D._popup_redirect_uri=r,D._popup_post_logout_redirect_uri=n,D._popupWindowFeatures=i,D._popupWindowTarget=l,D._silent_redirect_uri=g,D._silentRequestTimeout=p,D._automaticSilentRenew=!!v,D._includeIdTokenInSilentRenew=m,D._accessTokenExpiringNotificationTime=A,D._monitorSession=F,D._checkSessionInterval=_,D._stopCheckSessionOnError=E,D._revokeAccessTokenOnSignout=C,D._redirectNavigator=I,D._popupNavigator=R,D._iframeNavigator=U,D._userStore=L,D}return function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(UserManagerSettings,e),n(UserManagerSettings,[{key:"popup_redirect_uri",get:function get(){return this._popup_redirect_uri}},{key:"popup_post_logout_redirect_uri",get:function get(){return this._popup_post_logout_redirect_uri}},{key:"popupWindowFeatures",get:function get(){return this._popupWindowFeatures}},{key:"popupWindowTarget",get:function get(){return this._popupWindowTarget}},{key:"silent_redirect_uri",get:function get(){return this._silent_redirect_uri}},{key:"silentRequestTimeout",get:function get(){return this._silentRequestTimeout}},{key:"automaticSilentRenew",get:function get(){return!(!this.silent_redirect_uri||!this._automaticSilentRenew)}},{key:"includeIdTokenInSilentRenew",get:function get(){return this._includeIdTokenInSilentRenew}},{key:"accessTokenExpiringNotificationTime",get:function get(){return this._accessTokenExpiringNotificationTime}},{key:"monitorSession",get:function get(){return this._monitorSession}},{key:"checkSessionInterval",get:function get(){return this._checkSessionInterval}},{key:"stopCheckSessionOnError",get:function get(){return this._stopCheckSessionOnError}},{key:"revokeAccessTokenOnSignout",get:function get(){return this._revokeAccessTokenOnSignout}},{key:"redirectNavigator",get:function get(){return this._redirectNavigator}},{key:"popupNavigator",get:function get(){return this._popupNavigator}},{key:"iframeNavigator",get:function get(){return this._iframeNavigator}},{key:"userStore",get:function get(){return this._userStore}}]),UserManagerSettings}(i.OidcClientSettings)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.UserManager=void 0;var n=function(){function defineProperties(e,t){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:c.SilentRenewService,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:h.SessionMonitor,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:f.TokenRevocationClient;!function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,UserManager),t instanceof s.UserManagerSettings||(t=new s.UserManagerSettings(t));var a=function _possibleConstructorReturn(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,t));return a._events=new u.UserManagerEvents(t),a._silentRenewService=new r(a),a.settings.automaticSilentRenew&&(i.Log.debug("UserManager.ctor: automaticSilentRenew is configured, setting up silent renew"),a.startSilentRenew()),a.settings.monitorSession&&(i.Log.debug("UserManager.ctor: monitorSession is configured, setting up session monitor"),a._sessionMonitor=new n(a)),a._tokenRevocationClient=new o(a._settings),a}return function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(UserManager,e),UserManager.prototype.getUser=function getUser(){var e=this;return this._loadUser().then(function(t){return t?(i.Log.info("UserManager.getUser: user loaded"),e._events.load(t,!1),t):(i.Log.info("UserManager.getUser: user not found in storage"),null)})},UserManager.prototype.removeUser=function removeUser(){var e=this;return this.storeUser(null).then(function(){i.Log.info("UserManager.removeUser: user removed from storage"),e._events.unload()})},UserManager.prototype.signinRedirect=function signinRedirect(e){return this._signinStart(e,this._redirectNavigator).then(function(){i.Log.info("UserManager.signinRedirect: successful")})},UserManager.prototype.signinRedirectCallback=function signinRedirectCallback(e){return this._signinEnd(e||this._redirectNavigator.url).then(function(e){return e&&(e.profile&&e.profile.sub?i.Log.info("UserManager.signinRedirectCallback: successful, signed in sub: ",e.profile.sub):i.Log.info("UserManager.signinRedirectCallback: no sub")),e})},UserManager.prototype.signinPopup=function signinPopup(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.redirect_uri||this.settings.popup_redirect_uri||this.settings.redirect_uri;return t?(e.redirect_uri=t,e.display="popup",this._signin(e,this._popupNavigator,{startUrl:t,popupWindowFeatures:e.popupWindowFeatures||this.settings.popupWindowFeatures,popupWindowTarget:e.popupWindowTarget||this.settings.popupWindowTarget}).then(function(e){return e&&(e.profile&&e.profile.sub?i.Log.info("UserManager.signinPopup: signinPopup successful, signed in sub: ",e.profile.sub):i.Log.info("UserManager.signinPopup: no sub")),e})):(i.Log.error("UserManager.signinPopup: No popup_redirect_uri or redirect_uri configured"),Promise.reject(new Error("No popup_redirect_uri or redirect_uri configured")))},UserManager.prototype.signinPopupCallback=function signinPopupCallback(e){return this._signinCallback(e,this._popupNavigator).then(function(e){return e&&(e.profile&&e.profile.sub?i.Log.info("UserManager.signinPopupCallback: successful, signed in sub: ",e.profile.sub):i.Log.info("UserManager.signinPopupCallback: no sub")),e}).catch(function(e){i.Log.error("UserManager.signinPopupCallback error: "+e&&e.message)})},UserManager.prototype.signinSilent=function signinSilent(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=t.redirect_uri||this.settings.silent_redirect_uri;if(!r)return i.Log.error("UserManager.signinSilent: No silent_redirect_uri configured"),Promise.reject(new Error("No silent_redirect_uri configured"));t.redirect_uri=r,t.prompt="none";return(t.id_token_hint||!this.settings.includeIdTokenInSilentRenew?Promise.resolve():this._loadUser().then(function(e){t.id_token_hint=e&&e.id_token})).then(function(){return e._signin(t,e._iframeNavigator,{startUrl:r,silentRequestTimeout:t.silentRequestTimeout||e.settings.silentRequestTimeout})}).then(function(e){return e&&(e.profile&&e.profile.sub?i.Log.info("UserManager.signinSilent: successful, signed in sub: ",e.profile.sub):i.Log.info("UserManager.signinSilent: no sub")),e})},UserManager.prototype.signinSilentCallback=function signinSilentCallback(e){return this._signinCallback(e,this._iframeNavigator).then(function(e){return e&&(e.profile&&e.profile.sub?i.Log.info("UserManager.signinSilentCallback: successful, signed in sub: ",e.profile.sub):i.Log.info("UserManager.signinSilentCallback: no sub")),e})},UserManager.prototype.querySessionStatus=function querySessionStatus(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=t.redirect_uri||this.settings.silent_redirect_uri;return r?(t.redirect_uri=r,t.prompt="none",t.response_type="id_token",t.scope="openid",this._signinStart(t,this._iframeNavigator,{startUrl:r,silentRequestTimeout:t.silentRequestTimeout||this.settings.silentRequestTimeout}).then(function(t){return e.processSigninResponse(t.url).then(function(e){if(i.Log.debug("UserManager.querySessionStatus: got signin response"),e.session_state&&e.profile.sub&&e.profile.sid)return i.Log.info("UserManager.querySessionStatus: querySessionStatus success for sub: ",e.profile.sub),{session_state:e.session_state,sub:e.profile.sub,sid:e.profile.sid};i.Log.info("querySessionStatus successful, user not authenticated")})})):(i.Log.error("UserManager.querySessionStatus: No silent_redirect_uri configured"),Promise.reject(new Error("No silent_redirect_uri configured")))},UserManager.prototype._signin=function _signin(e,t){var r=this,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this._signinStart(e,t,n).then(function(e){return r._signinEnd(e.url)})},UserManager.prototype._signinStart=function _signinStart(e,t){var r=this,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return t.prepare(n).then(function(t){return i.Log.debug("UserManager._signinStart: got navigator window handle"),r.createSigninRequest(e).then(function(e){return i.Log.debug("UserManager._signinStart: got signin request"),n.url=e.url,n.id=e.state.id,t.navigate(n)}).catch(function(e){throw t.close&&(i.Log.debug("UserManager._signinStart: Error after preparing navigator, closing navigator window"),t.close()),e})})},UserManager.prototype._signinEnd=function _signinEnd(e){var t=this;return this.processSigninResponse(e).then(function(e){i.Log.debug("UserManager._signinEnd: got signin response");var r=new a.User(e);return t.storeUser(r).then(function(){return i.Log.debug("UserManager._signinEnd: user stored"),t._events.load(r),r})})},UserManager.prototype._signinCallback=function _signinCallback(e,t){return i.Log.debug("UserManager._signinCallback"),t.callback(e)},UserManager.prototype.signoutRedirect=function signoutRedirect(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.post_logout_redirect_uri||this.settings.post_logout_redirect_uri;return t&&(e.post_logout_redirect_uri=t),this._signoutStart(e,this._redirectNavigator).then(function(){i.Log.info("UserManager.signoutRedirect: successful")})},UserManager.prototype.signoutRedirectCallback=function signoutRedirectCallback(e){return this._signoutEnd(e||this._redirectNavigator.url).then(function(e){return i.Log.info("UserManager.signoutRedirectCallback: successful"),e})},UserManager.prototype.signoutPopup=function signoutPopup(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.post_logout_redirect_uri||this.settings.popup_post_logout_redirect_uri||this.settings.post_logout_redirect_uri;return e.post_logout_redirect_uri=t,e.display="popup",e.post_logout_redirect_uri&&(e.state=e.state||{}),this._signout(e,this._popupNavigator,{startUrl:t,popupWindowFeatures:e.popupWindowFeatures||this.settings.popupWindowFeatures,popupWindowTarget:e.popupWindowTarget||this.settings.popupWindowTarget}).then(function(){i.Log.info("UserManager.signinPopup: successful")})},UserManager.prototype.signoutPopupCallback=function signoutPopupCallback(e,t){void 0===t&&"boolean"==typeof e&&(e=null,t=!0);return this._popupNavigator.callback(e,t,"?").then(function(){i.Log.info("UserManager.signoutPopupCallback: successful")})},UserManager.prototype._signout=function _signout(e,t){var r=this,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this._signoutStart(e,t,n).then(function(e){return r._signoutEnd(e.url)})},UserManager.prototype._signoutStart=function _signoutStart(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this,r=arguments[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return r.prepare(n).then(function(r){return i.Log.debug("UserManager._signoutStart: got navigator window handle"),t._loadUser().then(function(o){return i.Log.debug("UserManager._signoutStart: loaded current user from storage"),(t._settings.revokeAccessTokenOnSignout?t._revokeInternal(o):Promise.resolve()).then(function(){var s=e.id_token_hint||o&&o.id_token;return s&&(i.Log.debug("UserManager._signoutStart: Setting id_token into signout request"),e.id_token_hint=s),t.removeUser().then(function(){return i.Log.debug("UserManager._signoutStart: user removed, creating signout request"),t.createSignoutRequest(e).then(function(e){return i.Log.debug("UserManager._signoutStart: got signout request"),n.url=e.url,e.state&&(n.id=e.state.id),r.navigate(n)})})})}).catch(function(e){throw r.close&&(i.Log.debug("UserManager._signoutStart: Error after preparing navigator, closing navigator window"),r.close()),e})})},UserManager.prototype._signoutEnd=function _signoutEnd(e){return this.processSignoutResponse(e).then(function(e){return i.Log.debug("UserManager._signoutEnd: got signout response"),e})},UserManager.prototype.revokeAccessToken=function revokeAccessToken(){var e=this;return this._loadUser().then(function(t){return e._revokeInternal(t,!0).then(function(r){if(r)return i.Log.debug("UserManager.revokeAccessToken: removing token properties from user and re-storing"),t.access_token=null,t.expires_at=null,t.token_type=null,e.storeUser(t).then(function(){i.Log.debug("UserManager.revokeAccessToken: user stored"),e._events.load(t)})})}).then(function(){i.Log.info("UserManager.revokeAccessToken: access token revoked successfully")})},UserManager.prototype._revokeInternal=function _revokeInternal(e,t){var r=e&&e.access_token;return!r||r.indexOf(".")>=0?(i.Log.debug("UserManager.revokeAccessToken: no need to revoke due to no user, token, or JWT format"),Promise.resolve(!1)):this._tokenRevocationClient.revoke(r,t).then(function(){return!0})},UserManager.prototype.startSilentRenew=function startSilentRenew(){this._silentRenewService.start()},UserManager.prototype.stopSilentRenew=function stopSilentRenew(){this._silentRenewService.stop()},UserManager.prototype._loadUser=function _loadUser(){return this._userStore.get(this._userStoreKey).then(function(e){return e?(i.Log.debug("UserManager._loadUser: user storageString loaded"),a.User.fromStorageString(e)):(i.Log.debug("UserManager._loadUser: no user storageString"),null)})},UserManager.prototype.storeUser=function storeUser(e){if(e){i.Log.debug("UserManager.storeUser: storing user");var t=e.toStorageString();return this._userStore.set(this._userStoreKey,t)}return i.Log.debug("storeUser.storeUser: removing user"),this._userStore.remove(this._userStoreKey)},n(UserManager,[{key:"_redirectNavigator",get:function get(){return this.settings.redirectNavigator}},{key:"_popupNavigator",get:function get(){return this.settings.popupNavigator}},{key:"_iframeNavigator",get:function get(){return this.settings.iframeNavigator}},{key:"_userStore",get:function get(){return this.settings.userStore}},{key:"events",get:function get(){return this._events}},{key:"_userStoreKey",get:function get(){return"user:"+this.settings.authority+":"+this.settings.client_id}}]),UserManager}(o.OidcClient)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InMemoryWebStorage=void 0;var n=function(){function defineProperties(e,t){for(var r=0;r0){var n=parseInt(Date.now()/1e3);this.expires_at=n+r}}return n(SigninResponse,[{key:"expires_in",get:function get(){if(this.expires_at){var e=parseInt(Date.now()/1e3);return this.expires_at-e}}},{key:"expired",get:function get(){var e=this.expires_in;if(void 0!==e)return e<=0}},{key:"scopes",get:function get(){return(this.scope||"").split(" ")}},{key:"isOpenIdConnect",get:function get(){return this.scopes.indexOf("openid")>=0||!!this.id_token}}]),SigninResponse}()},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SigninRequest=void 0;var n=r(0),i=r(2),o=r(15);t.SigninRequest=function(){function SigninRequest(e){var t=e.url,r=e.client_id,s=e.redirect_uri,a=e.response_type,u=e.scope,c=e.authority,h=e.data,f=e.prompt,l=e.display,g=e.max_age,p=e.ui_locales,d=e.id_token_hint,v=e.login_hint,y=e.acr_values,m=e.resource,S=e.request,F=e.request_uri,b=e.extraQueryParams;if(function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,SigninRequest),!t)throw n.Log.error("SigninRequest.ctor: No url passed"),new Error("url");if(!r)throw n.Log.error("SigninRequest.ctor: No client_id passed"),new Error("client_id");if(!s)throw n.Log.error("SigninRequest.ctor: No redirect_uri passed"),new Error("redirect_uri");if(!a)throw n.Log.error("SigninRequest.ctor: No response_type passed"),new Error("response_type");if(!u)throw n.Log.error("SigninRequest.ctor: No scope passed"),new Error("scope");if(!c)throw n.Log.error("SigninRequest.ctor: No authority passed"),new Error("authority");var _=SigninRequest.isOidc(a);this.state=new o.SigninState({nonce:_,data:h,client_id:r,authority:c}),t=i.UrlUtility.addQueryParam(t,"client_id",r),t=i.UrlUtility.addQueryParam(t,"redirect_uri",s),t=i.UrlUtility.addQueryParam(t,"response_type",a),t=i.UrlUtility.addQueryParam(t,"scope",u),t=i.UrlUtility.addQueryParam(t,"state",this.state.id),_&&(t=i.UrlUtility.addQueryParam(t,"nonce",this.state.nonce));var w={prompt:f,display:l,max_age:g,ui_locales:p,id_token_hint:d,login_hint:v,acr_values:y,resource:m,request:S,request_uri:F};for(var E in w)w[E]&&(t=i.UrlUtility.addQueryParam(t,E,w[E]));for(var x in b)t=i.UrlUtility.addQueryParam(t,x,b[x]);this.url=t}return SigninRequest.isOidc=function isOidc(e){return!!e.split(/\s+/g).filter(function(e){return"id_token"===e})[0]},SigninRequest.isOAuth=function isOAuth(e){return!!e.split(/\s+/g).filter(function(e){return"token"===e})[0]},SigninRequest}()},function(e,t){var r={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==r.call(e)}},function(e,t){t.read=function(e,t,r,n,i){var o,s,a=8*i-n-1,u=(1<>1,h=-7,f=r?i-1:0,l=r?-1:1,g=e[t+f];for(f+=l,o=g&(1<<-h)-1,g>>=-h,h+=a;h>0;o=256*o+e[t+f],f+=l,h-=8);for(s=o&(1<<-h)-1,o>>=-h,h+=n;h>0;s=256*s+e[t+f],f+=l,h-=8);if(0===o)o=1-c;else{if(o===u)return s?NaN:1/0*(g?-1:1);s+=Math.pow(2,n),o-=c}return(g?-1:1)*s*Math.pow(2,o-n)},t.write=function(e,t,r,n,i,o){var s,a,u,c=8*o-i-1,h=(1<>1,l=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,g=n?0:o-1,p=n?1:-1,d=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,s=h):(s=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-s))<1&&(s--,u*=2),(t+=s+f>=1?l/u:l*Math.pow(2,1-f))*u>=2&&(s++,u/=2),s+f>=h?(a=0,s=h):s+f>=1?(a=(t*u-1)*Math.pow(2,i),s+=f):(a=t*Math.pow(2,f-1)*Math.pow(2,i),s=0));i>=8;e[r+g]=255&a,g+=p,a/=256,i-=8);for(s=s<0;e[r+g]=255&s,g+=p,s/=256,c-=8);e[r+g-p]|=128*d}},function(e,t,r){"use strict";t.byteLength=function byteLength(e){var t=getLens(e),r=t[0],n=t[1];return 3*(r+n)/4-n},t.toByteArray=function toByteArray(e){for(var t,r=getLens(e),n=r[0],s=r[1],a=new o(function _byteLength(e,t,r){return 3*(t+r)/4-r}(0,n,s)),u=0,c=s>0?n-4:n,h=0;h>16&255,a[u++]=t>>8&255,a[u++]=255&t;2===s&&(t=i[e.charCodeAt(h)]<<2|i[e.charCodeAt(h+1)]>>4,a[u++]=255&t);1===s&&(t=i[e.charCodeAt(h)]<<10|i[e.charCodeAt(h+1)]<<4|i[e.charCodeAt(h+2)]>>2,a[u++]=t>>8&255,a[u++]=255&t);return a},t.fromByteArray=function fromByteArray(e){for(var t,r=e.length,i=r%3,o=[],s=0,a=r-i;sa?a:s+16383));1===i?(t=e[r-1],o.push(n[t>>2]+n[t<<4&63]+"==")):2===i&&(t=(e[r-2]<<8)+e[r-1],o.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+"="));return o.join("")};for(var n=[],i=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,u=s.length;a0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function tripletToBase64(e){return n[e>>18&63]+n[e>>12&63]+n[e>>6&63]+n[63&e]}function encodeChunk(e,t,r){for(var n,i=[],o=t;o
- * @license MIT
- */
- var n=r(38),i=r(37),o=r(36);function kMaxLength(){return Buffer.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function createBuffer(e,t){if(kMaxLength()=kMaxLength())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+kMaxLength().toString(16)+" bytes");return 0|e}function byteLength(e,t){if(Buffer.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var r=e.length;if(0===r)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return utf8ToBytes(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return base64ToBytes(e).length;default:if(n)return utf8ToBytes(e).length;t=(""+t).toLowerCase(),n=!0}}function swap(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function bidirectionalIndexOf(e,t,r,n,i){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof t&&(t=Buffer.from(t,n)),Buffer.isBuffer(t))return 0===t.length?-1:arrayIndexOf(e,t,r,n,i);if("number"==typeof t)return t&=255,Buffer.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):arrayIndexOf(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function arrayIndexOf(e,t,r,n,i){var o,s=1,a=e.length,u=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;s=2,a/=2,u/=2,r/=2}function read(e,t){return 1===s?e[t]:e.readUInt16BE(t*s)}if(i){var c=-1;for(o=r;oa&&(r=a-u),o=r;o>=0;o--){for(var h=!0,f=0;fi&&(n=i):n=i;var o=t.length;if(o%2!=0)throw new TypeError("Invalid hex string");n>o/2&&(n=o/2);for(var s=0;s>8,i=r%256,o.push(i),o.push(n);return o}(t,e.length-r),e,r,n)}function base64Slice(e,t,r){return 0===t&&r===e.length?n.fromByteArray(e):n.fromByteArray(e.slice(t,r))}function utf8Slice(e,t,r){r=Math.min(e.length,r);for(var n=[],i=t;i239?4:h>223?3:h>191?2:1;if(i+l<=r)switch(l){case 1:h<128&&(f=h);break;case 2:128==(192&(o=e[i+1]))&&(c=(31&h)<<6|63&o)>127&&(f=c);break;case 3:o=e[i+1],a=e[i+2],128==(192&o)&&128==(192&a)&&(c=(15&h)<<12|(63&o)<<6|63&a)>2047&&(c<55296||c>57343)&&(f=c);break;case 4:o=e[i+1],a=e[i+2],u=e[i+3],128==(192&o)&&128==(192&a)&&128==(192&u)&&(c=(15&h)<<18|(63&o)<<12|(63&a)<<6|63&u)>65535&&c<1114112&&(f=c)}null===f?(f=65533,l=1):f>65535&&(f-=65536,n.push(f>>>10&1023|55296),f=56320|1023&f),n.push(f),i+=l}return function decodeCodePointsArray(e){var t=e.length;if(t<=s)return String.fromCharCode.apply(String,e);var r="",n=0;for(;nthis.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return hexSlice(this,t,r);case"utf8":case"utf-8":return utf8Slice(this,t,r);case"ascii":return asciiSlice(this,t,r);case"latin1":case"binary":return latin1Slice(this,t,r);case"base64":return base64Slice(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return utf16leSlice(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}.apply(this,arguments)},Buffer.prototype.equals=function equals(e){if(!Buffer.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===Buffer.compare(this,e)},Buffer.prototype.inspect=function inspect(){var e="",r=t.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(e+=" ... ")),""},Buffer.prototype.compare=function compare(e,t,r,n,i){if(!Buffer.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),t<0||r>e.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&t>=r)return 0;if(n>=i)return-1;if(t>=r)return 1;if(t>>>=0,r>>>=0,n>>>=0,i>>>=0,this===e)return 0;for(var o=i-n,s=r-t,a=Math.min(o,s),u=this.slice(n,i),c=e.slice(t,r),h=0;hi)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return hexWrite(this,e,t,r);case"utf8":case"utf-8":return utf8Write(this,e,t,r);case"ascii":return asciiWrite(this,e,t,r);case"latin1":case"binary":return latin1Write(this,e,t,r);case"base64":return base64Write(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ucs2Write(this,e,t,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},Buffer.prototype.toJSON=function toJSON(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var s=4096;function asciiSlice(e,t,r){var n="";r=Math.min(e.length,r);for(var i=t;in)&&(r=n);for(var i="",o=t;or)throw new RangeError("Trying to access beyond buffer length")}function checkInt(e,t,r,n,i,o){if(!Buffer.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function objectWriteUInt16(e,t,r,n){t<0&&(t=65535+t+1);for(var i=0,o=Math.min(e.length-r,2);i>>8*(n?i:1-i)}function objectWriteUInt32(e,t,r,n){t<0&&(t=4294967295+t+1);for(var i=0,o=Math.min(e.length-r,4);i>>8*(n?i:3-i)&255}function checkIEEE754(e,t,r,n,i,o){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function writeFloat(e,t,r,n,o){return o||checkIEEE754(e,0,r,4),i.write(e,t,r,n,23,4),r+4}function writeDouble(e,t,r,n,o){return o||checkIEEE754(e,0,r,8),i.write(e,t,r,n,52,8),r+8}Buffer.prototype.slice=function slice(e,t){var r,n=this.length;if(e=~~e,t=void 0===t?n:~~t,e<0?(e+=n)<0&&(e=0):e>n&&(e=n),t<0?(t+=n)<0&&(t=0):t>n&&(t=n),t0&&(i*=256);)n+=this[e+--t]*i;return n},Buffer.prototype.readUInt8=function readUInt8(e,t){return t||checkOffset(e,1,this.length),this[e]},Buffer.prototype.readUInt16LE=function readUInt16LE(e,t){return t||checkOffset(e,2,this.length),this[e]|this[e+1]<<8},Buffer.prototype.readUInt16BE=function readUInt16BE(e,t){return t||checkOffset(e,2,this.length),this[e]<<8|this[e+1]},Buffer.prototype.readUInt32LE=function readUInt32LE(e,t){return t||checkOffset(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},Buffer.prototype.readUInt32BE=function readUInt32BE(e,t){return t||checkOffset(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},Buffer.prototype.readIntLE=function readIntLE(e,t,r){e|=0,t|=0,r||checkOffset(e,t,this.length);for(var n=this[e],i=1,o=0;++o=(i*=128)&&(n-=Math.pow(2,8*t)),n},Buffer.prototype.readIntBE=function readIntBE(e,t,r){e|=0,t|=0,r||checkOffset(e,t,this.length);for(var n=t,i=1,o=this[e+--n];n>0&&(i*=256);)o+=this[e+--n]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*t)),o},Buffer.prototype.readInt8=function readInt8(e,t){return t||checkOffset(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},Buffer.prototype.readInt16LE=function readInt16LE(e,t){t||checkOffset(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},Buffer.prototype.readInt16BE=function readInt16BE(e,t){t||checkOffset(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},Buffer.prototype.readInt32LE=function readInt32LE(e,t){return t||checkOffset(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},Buffer.prototype.readInt32BE=function readInt32BE(e,t){return t||checkOffset(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},Buffer.prototype.readFloatLE=function readFloatLE(e,t){return t||checkOffset(e,4,this.length),i.read(this,e,!0,23,4)},Buffer.prototype.readFloatBE=function readFloatBE(e,t){return t||checkOffset(e,4,this.length),i.read(this,e,!1,23,4)},Buffer.prototype.readDoubleLE=function readDoubleLE(e,t){return t||checkOffset(e,8,this.length),i.read(this,e,!0,52,8)},Buffer.prototype.readDoubleBE=function readDoubleBE(e,t){return t||checkOffset(e,8,this.length),i.read(this,e,!1,52,8)},Buffer.prototype.writeUIntLE=function writeUIntLE(e,t,r,n){(e=+e,t|=0,r|=0,n)||checkInt(this,e,t,r,Math.pow(2,8*r)-1,0);var i=1,o=0;for(this[t]=255&e;++o=0&&(o*=256);)this[t+i]=e/o&255;return t+r},Buffer.prototype.writeUInt8=function writeUInt8(e,t,r){return e=+e,t|=0,r||checkInt(this,e,t,1,255,0),Buffer.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},Buffer.prototype.writeUInt16LE=function writeUInt16LE(e,t,r){return e=+e,t|=0,r||checkInt(this,e,t,2,65535,0),Buffer.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):objectWriteUInt16(this,e,t,!0),t+2},Buffer.prototype.writeUInt16BE=function writeUInt16BE(e,t,r){return e=+e,t|=0,r||checkInt(this,e,t,2,65535,0),Buffer.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):objectWriteUInt16(this,e,t,!1),t+2},Buffer.prototype.writeUInt32LE=function writeUInt32LE(e,t,r){return e=+e,t|=0,r||checkInt(this,e,t,4,4294967295,0),Buffer.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):objectWriteUInt32(this,e,t,!0),t+4},Buffer.prototype.writeUInt32BE=function writeUInt32BE(e,t,r){return e=+e,t|=0,r||checkInt(this,e,t,4,4294967295,0),Buffer.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):objectWriteUInt32(this,e,t,!1),t+4},Buffer.prototype.writeIntLE=function writeIntLE(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);checkInt(this,e,t,r,i-1,-i)}var o=0,s=1,a=0;for(this[t]=255&e;++o>0)-a&255;return t+r},Buffer.prototype.writeIntBE=function writeIntBE(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);checkInt(this,e,t,r,i-1,-i)}var o=r-1,s=1,a=0;for(this[t+o]=255&e;--o>=0&&(s*=256);)e<0&&0===a&&0!==this[t+o+1]&&(a=1),this[t+o]=(e/s>>0)-a&255;return t+r},Buffer.prototype.writeInt8=function writeInt8(e,t,r){return e=+e,t|=0,r||checkInt(this,e,t,1,127,-128),Buffer.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},Buffer.prototype.writeInt16LE=function writeInt16LE(e,t,r){return e=+e,t|=0,r||checkInt(this,e,t,2,32767,-32768),Buffer.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):objectWriteUInt16(this,e,t,!0),t+2},Buffer.prototype.writeInt16BE=function writeInt16BE(e,t,r){return e=+e,t|=0,r||checkInt(this,e,t,2,32767,-32768),Buffer.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):objectWriteUInt16(this,e,t,!1),t+2},Buffer.prototype.writeInt32LE=function writeInt32LE(e,t,r){return e=+e,t|=0,r||checkInt(this,e,t,4,2147483647,-2147483648),Buffer.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):objectWriteUInt32(this,e,t,!0),t+4},Buffer.prototype.writeInt32BE=function writeInt32BE(e,t,r){return e=+e,t|=0,r||checkInt(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),Buffer.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):objectWriteUInt32(this,e,t,!1),t+4},Buffer.prototype.writeFloatLE=function writeFloatLE(e,t,r){return writeFloat(this,e,t,!0,r)},Buffer.prototype.writeFloatBE=function writeFloatBE(e,t,r){return writeFloat(this,e,t,!1,r)},Buffer.prototype.writeDoubleLE=function writeDoubleLE(e,t,r){return writeDouble(this,e,t,!0,r)},Buffer.prototype.writeDoubleBE=function writeDoubleBE(e,t,r){return writeDouble(this,e,t,!1,r)},Buffer.prototype.copy=function copy(e,t,r,n){if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t