{"version":3,"sources":["webpack:///./node_modules/vtk.js/Sources/macro.js","webpack:///./node_modules/vtk.js/Sources/Common/Core/Math/index.js","webpack:///./node_modules/jszip/lib/utils.js","webpack:///./node_modules/vtk.js/node_modules/gl-matrix/src/gl-matrix.js","webpack:///./node_modules/vtk.js/Sources/Common/Core/DataArray/index.js","webpack:///./node_modules/vtk.js/Sources/Rendering/SceneGraph/ViewNode/index.js","webpack:///(webpack)/buildin/amd-define.js","webpack:///./node_modules/jszip/lib/stream/GenericWorker.js","webpack:///./node_modules/vtk.js/Sources/Common/Core/DataArray/Constants.js","webpack:///./node_modules/vtk.js/Sources/Common/DataModel/PolyData/index.js","webpack:///./node_modules/vtk.js/node_modules/gl-matrix/src/gl-matrix/common.js","webpack:///./node_modules/vtk.js/Sources/Rendering/OpenGL/ShaderProgram/index.js","webpack:///./node_modules/pako/lib/utils/common.js","webpack:///./node_modules/jszip/lib/support.js","webpack:///./external_modules/helpers/helper.less","webpack:///./node_modules/readable-stream/lib/_stream_duplex.js","webpack:///./node_modules/vtk.js/Sources/vtk.js","webpack:///(webpack)/buildin/module.js","webpack:///(webpack)/buildin/amd-options.js","webpack:///./node_modules/vtk.js/Sources/Rendering/Core/Property/Constants.js","webpack:///./node_modules/vtk.js/Sources/Rendering/OpenGL/Texture/index.js","webpack:///./node_modules/vtk.js/Sources/Rendering/Core/Mapper/index.js","webpack:///./node_modules/jszip/lib/utf8.js","webpack:///./node_modules/inherits/inherits_browser.js","webpack:///./external_modules/helpers/multimodal.js","webpack:///./external_modules/helpers/error.js","webpack:///./external_modules/helpers/params.js","webpack:///./node_modules/vtk.js/Sources/Rendering/OpenGL/BufferObject/Constants.js","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/core-util-is/lib/util.js","webpack:///./node_modules/jszip/lib/external.js","webpack:///./node_modules/vtk.js/Sources/Rendering/OpenGL/Texture/Constants.js","webpack:///./node_modules/vtk.js/Sources/Rendering/OpenGL/BufferObject/index.js","webpack:///./node_modules/vtk.js/Sources/Rendering/OpenGL/PolyDataMapper/index.js","webpack:///./node_modules/vtk.js/Sources/Rendering/OpenGL/Helper/index.js","webpack:///./node_modules/vtk.js/Sources/Rendering/OpenGL/glsl/vtkPolyDataFS.glsl","webpack:///./node_modules/pako/index.js","webpack:///./node_modules/process-nextick-args/index.js","webpack:///./node_modules/safe-buffer/index.js","webpack:///./node_modules/jszip/lib/nodejsUtils.js","webpack:///./node_modules/jszip/node_modules/core-js/library/modules/_global.js","webpack:///./external_modules/helpers/ajax.js","webpack:///./external_modules/helpers/wait.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/vtk.js/Sources/Rendering/Core/Actor/index.js","webpack:///./node_modules/vtk.js/Sources/Common/DataModel/BoundingBox/index.js","webpack:///./node_modules/vtk.js/Sources/Rendering/Core/Property/index.js","webpack:///./node_modules/vtk.js/Sources/Rendering/OpenGL/Framebuffer/index.js","webpack:///./node_modules/vtk.js/Sources/Common/DataModel/DataSet/index.js","webpack:///./node_modules/vtk.js/Sources/Common/DataModel/ImageData/index.js","webpack:///./node_modules/vtk.js/Sources/Common/Core/ScalarsToColors/Constants.js","webpack:///./node_modules/vtk.js/Sources/Common/Core/Points/index.js","webpack:///./node_modules/pako/lib/zlib/messages.js","webpack:///./node_modules/vtk.js/Sources/Common/Core/Endian/index.js","webpack:///./node_modules/readable-stream/readable-browser.js","webpack:///./node_modules/readable-stream/lib/_stream_writable.js","webpack:///./node_modules/jszip/node_modules/core-js/library/modules/_is-object.js","webpack:///./node_modules/jszip/node_modules/core-js/library/modules/_descriptors.js","webpack:///./node_modules/jszip/lib/compressedObject.js","webpack:///./node_modules/jszip/lib/crc32.js","webpack:///./node_modules/vtk.js/Sources/Common/Core/MatrixBuilder/index.js","webpack:///./node_modules/vtk.js/node_modules/gl-matrix/src/gl-matrix/mat3.js","webpack:///./node_modules/vtk.js/node_modules/gl-matrix/src/gl-matrix/mat4.js","webpack:///./node_modules/vtk.js/node_modules/gl-matrix/src/gl-matrix/quat.js","webpack:///./node_modules/vtk.js/node_modules/gl-matrix/src/gl-matrix/vec3.js","webpack:///./node_modules/vtk.js/node_modules/gl-matrix/src/gl-matrix/vec4.js","webpack:///./node_modules/vtk.js/Sources/Rendering/OpenGL/RenderWindow/index.js","webpack:///./node_modules/webworker-promise/lib/tiny-emitter.js","webpack:///./node_modules/vtk.js/Sources/Rendering/SceneGraph/RenderPass/index.js","webpack:///./node_modules/vtk.js/Sources/Rendering/OpenGL/HardwareSelector/index.js","webpack:///./node_modules/vtk.js/Sources/Common/DataModel/DataSetAttributes/Constants.js","webpack:///./node_modules/vtk.js/Sources/Rendering/OpenGL/VertexArrayObject/index.js","webpack:///./node_modules/vtk.js/Sources/Common/DataModel/StructuredData/Constants.js","webpack:///./node_modules/vtk.js/Sources/Rendering/Core/Mapper/Constants.js","webpack:///./node_modules/vtk.js/Sources/Rendering/OpenGL/glsl/vtkPolyDataVS.glsl","webpack:///./node_modules/vtk.js/Sources/Rendering/Core/Renderer/index.js","webpack:///./node_modules/vtk.js/Sources/Rendering/Core/RenderWindowInteractor/index.js","webpack:///./node_modules/vtk.js/Sources/Rendering/Core/InteractorStyle/Constants.js","webpack:///./node_modules/vtk.js/Sources/Rendering/Core/RenderWindowInteractor/Constants.js","webpack:///./node_modules/pako/lib/zlib/adler32.js","webpack:///./node_modules/pako/lib/zlib/crc32.js","webpack:///./node_modules/pako/lib/utils/strings.js","webpack:///./node_modules/pako/lib/zlib/zstream.js","webpack:///./node_modules/pako/lib/zlib/constants.js","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/jszip/lib/readable-stream-browser.js","webpack:///./node_modules/readable-stream/lib/_stream_readable.js","webpack:///./node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///./node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///./node_modules/string_decoder/lib/string_decoder.js","webpack:///./node_modules/readable-stream/lib/_stream_transform.js","webpack:///./node_modules/jszip/lib/base64.js","webpack:///./node_modules/jszip/node_modules/core-js/library/modules/_core.js","webpack:///./node_modules/jszip/node_modules/core-js/library/modules/_ctx.js","webpack:///./node_modules/jszip/node_modules/core-js/library/modules/_fails.js","webpack:///./node_modules/jszip/node_modules/core-js/library/modules/_dom-create.js","webpack:///./node_modules/jszip/lib/stream/StreamHelper.js","webpack:///./node_modules/jszip/lib/defaults.js","webpack:///./node_modules/jszip/lib/stream/DataWorker.js","webpack:///./node_modules/jszip/lib/stream/DataLengthProbe.js","webpack:///./node_modules/jszip/lib/stream/Crc32Probe.js","webpack:///./node_modules/jszip/lib/compressions.js","webpack:///./node_modules/jszip/lib/signature.js","webpack:///./node_modules/jszip/lib/reader/readerFor.js","webpack:///./node_modules/jszip/lib/reader/ArrayReader.js","webpack:///./node_modules/jszip/lib/reader/DataReader.js","webpack:///./node_modules/jszip/lib/reader/Uint8ArrayReader.js","webpack:///./node_modules/vtk.js/Sources/Filters/Sources/CubeSource/index.js","webpack:///./node_modules/vtk.js/Sources/Filters/Sources/ConeSource/index.js","webpack:///./app/contour_plot.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/seedrandom/index.js","webpack:///./node_modules/seedrandom/lib/alea.js","webpack:///./node_modules/seedrandom/lib/xor128.js","webpack:///./node_modules/seedrandom/lib/xorwow.js","webpack:///./node_modules/seedrandom/lib/xorshift7.js","webpack:///./node_modules/seedrandom/lib/xor4096.js","webpack:///./node_modules/seedrandom/lib/tychei.js","webpack:///./node_modules/seedrandom/seedrandom.js","webpack:///crypto (ignored)","webpack:///./node_modules/vtk.js/node_modules/gl-matrix/src/gl-matrix/mat2.js","webpack:///./node_modules/vtk.js/node_modules/gl-matrix/src/gl-matrix/mat2d.js","webpack:///./node_modules/vtk.js/node_modules/gl-matrix/src/gl-matrix/quat2.js","webpack:///./node_modules/vtk.js/node_modules/gl-matrix/src/gl-matrix/vec2.js","webpack:///./node_modules/vtk.js/Sources/Rendering/Core/Prop3D/index.js","webpack:///./node_modules/vtk.js/Sources/Common/DataModel/Plane/index.js","webpack:///./node_modules/vtk.js/Sources/Rendering/Core/Prop/index.js","webpack:///./node_modules/vtk.js/Sources/Rendering/Misc/FullScreenRenderWindow/index.js","webpack:///./node_modules/vtk.js/Sources/Rendering/OpenGL/ForwardPass/index.js","webpack:///./node_modules/webworker-promise/lib/index.js","webpack:///./node_modules/vtk.js/Sources/Rendering/OpenGL/Texture/ComputeGradients.worker.js","webpack:///./node_modules/webworker-promise/lib/register.js","webpack:///./node_modules/vtk.js/Sources/Rendering/OpenGL/ViewNodeFactory/index.js","webpack:///./node_modules/vtk.js/Sources/Rendering/SceneGraph/GenericWidgetRepresentation/index.js","webpack:///./node_modules/vtk.js/Sources/Rendering/SceneGraph/ViewNodeFactory/index.js","webpack:///./node_modules/vtk.js/Sources/Rendering/OpenGL/Actor/index.js","webpack:///./node_modules/vtk.js/Sources/Rendering/OpenGL/Actor2D/index.js","webpack:///./node_modules/vtk.js/Sources/Rendering/OpenGL/Camera/index.js","webpack:///./node_modules/vtk.js/Sources/Rendering/OpenGL/Glyph3DMapper/index.js","webpack:///./node_modules/vtk.js/Sources/Rendering/OpenGL/HardwareSelector/Constants.js","webpack:///./node_modules/vtk.js/Sources/Common/DataModel/SelectionNode/index.js","webpack:///./node_modules/vtk.js/Sources/Common/DataModel/SelectionNode/Constants.js","webpack:///./node_modules/vtk.js/Sources/Common/DataModel/DataSetAttributes/index.js","webpack:///./node_modules/vtk.js/Sources/Common/DataModel/DataSetAttributes/FieldData.js","webpack:///./node_modules/vtk.js/Sources/Common/DataModel/DataSet/Constants.js","webpack:///./node_modules/vtk.js/Sources/Rendering/OpenGL/CellArrayBufferObject/index.js","webpack:///./node_modules/vtk.js/Sources/Rendering/OpenGL/Shader/index.js","webpack:///./node_modules/vtk.js/Sources/Rendering/Core/AbstractMapper3D/index.js","webpack:///./node_modules/vtk.js/Sources/Rendering/Core/AbstractMapper/index.js","webpack:///./node_modules/vtk.js/Sources/Common/DataModel/StructuredData/index.js","webpack:///./node_modules/vtk.js/Sources/Common/Core/LookupTable/index.js","webpack:///./node_modules/vtk.js/Sources/Common/Core/ScalarsToColors/index.js","webpack:///./node_modules/vtk.js/Sources/Rendering/Core/Mapper/CoincidentTopologyHelper.js","webpack:///./node_modules/vtk.js/Sources/Rendering/Core/Mapper/Static.js","webpack:///./node_modules/vtk.js/Sources/Rendering/OpenGL/ImageMapper/index.js","webpack:///./node_modules/vtk.js/Sources/Rendering/Core/ImageMapper/Constants.js","webpack:///./node_modules/vtk.js/Sources/Rendering/Core/ImageProperty/Constants.js","webpack:///./node_modules/vtk.js/Sources/Rendering/OpenGL/ImageSlice/index.js","webpack:///./node_modules/vtk.js/Sources/Rendering/OpenGL/PixelSpaceCallbackMapper/index.js","webpack:///./node_modules/vtk.js/Sources/Rendering/OpenGL/Renderer/index.js","webpack:///./node_modules/vtk.js/Sources/Rendering/OpenGL/Skybox/index.js","webpack:///./node_modules/vtk.js/Sources/Rendering/OpenGL/SphereMapper/index.js","webpack:///./node_modules/vtk.js/Sources/Rendering/OpenGL/glsl/vtkSphereMapperVS.glsl","webpack:///./node_modules/vtk.js/Sources/Rendering/OpenGL/StickMapper/index.js","webpack:///./node_modules/vtk.js/Sources/Rendering/OpenGL/glsl/vtkStickMapperVS.glsl","webpack:///./node_modules/vtk.js/Sources/Rendering/OpenGL/Volume/index.js","webpack:///./node_modules/vtk.js/Sources/Rendering/OpenGL/VolumeMapper/index.js","webpack:///./node_modules/vtk.js/Sources/Rendering/Core/VolumeProperty/Constants.js","webpack:///./node_modules/vtk.js/Sources/Rendering/OpenGL/glsl/vtkVolumeVS.glsl","webpack:///./node_modules/vtk.js/Sources/Rendering/OpenGL/glsl/vtkVolumeFS.glsl","webpack:///./node_modules/vtk.js/Sources/Rendering/OpenGL/glsl/vtkVolumeFS2.glsl","webpack:///./node_modules/vtk.js/Sources/Rendering/OpenGL/ShaderCache/index.js","webpack:///./node_modules/blueimp-md5/js/md5.js","webpack:///./node_modules/vtk.js/Sources/Rendering/OpenGL/TextureUnitManager/index.js","webpack:///./node_modules/webvr-polyfill/build/webvr-polyfill.js","webpack:///./node_modules/vtk.js/Sources/Rendering/Core/Camera/index.js","webpack:///./node_modules/vtk.js/Sources/Rendering/Core/Light/index.js","webpack:///./node_modules/vtk.js/Sources/Rendering/Core/Viewport/index.js","webpack:///./node_modules/vtk.js/Sources/Rendering/Core/RenderWindow/index.js","webpack:///./node_modules/vtk.js/Sources/Interaction/Style/InteractorStyleTrackballCamera/index.js","webpack:///./node_modules/vtk.js/Sources/Rendering/Core/InteractorStyle/index.js","webpack:///./node_modules/vtk.js/Sources/Rendering/Core/InteractorObserver/index.js","webpack:///./node_modules/vtk.js/Sources/Common/Core/CellArray/index.js","webpack:///./node_modules/vtk.js/Sources/Common/DataModel/PointSet/index.js","webpack:///./node_modules/vtk.js/Sources/IO/Core/HttpDataSetReader/index.js","webpack:///./node_modules/vtk.js/Sources/IO/Core/DataAccessHelper/index.js","webpack:///./node_modules/vtk.js/Sources/IO/Core/DataAccessHelper/HtmlDataAccessHelper.js","webpack:///./node_modules/vtk.js/node_modules/base64-js/index.js","webpack:///./node_modules/pako/lib/deflate.js","webpack:///./node_modules/pako/lib/zlib/deflate.js","webpack:///./node_modules/pako/lib/zlib/trees.js","webpack:///./node_modules/pako/lib/inflate.js","webpack:///./node_modules/pako/lib/zlib/inflate.js","webpack:///./node_modules/pako/lib/zlib/inffast.js","webpack:///./node_modules/pako/lib/zlib/inftrees.js","webpack:///./node_modules/pako/lib/zlib/gzheader.js","webpack:///./node_modules/vtk.js/Sources/IO/Core/DataAccessHelper/HttpDataAccessHelper.js","webpack:///./node_modules/vtk.js/Sources/IO/Core/DataAccessHelper/JSZipDataAccessHelper.js","webpack:///./node_modules/jszip/lib/index.js","webpack:///./node_modules/jszip/lib/object.js","webpack:///./node_modules/buffer/node_modules/base64-js/index.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/stream-browserify/index.js","webpack:///util (ignored)","webpack:///./node_modules/readable-stream/lib/internal/streams/BufferList.js","webpack:///./node_modules/util-deprecate/browser.js","webpack:///./node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///./node_modules/readable-stream/writable-browser.js","webpack:///./node_modules/readable-stream/duplex-browser.js","webpack:///./node_modules/readable-stream/transform.js","webpack:///./node_modules/readable-stream/passthrough.js","webpack:///./node_modules/jszip/node_modules/core-js/library/fn/set-immediate.js","webpack:///./node_modules/jszip/node_modules/core-js/library/modules/web.immediate.js","webpack:///./node_modules/jszip/node_modules/core-js/library/modules/_export.js","webpack:///./node_modules/jszip/node_modules/core-js/library/modules/_a-function.js","webpack:///./node_modules/jszip/node_modules/core-js/library/modules/_hide.js","webpack:///./node_modules/jszip/node_modules/core-js/library/modules/_object-dp.js","webpack:///./node_modules/jszip/node_modules/core-js/library/modules/_an-object.js","webpack:///./node_modules/jszip/node_modules/core-js/library/modules/_ie8-dom-define.js","webpack:///./node_modules/jszip/node_modules/core-js/library/modules/_to-primitive.js","webpack:///./node_modules/jszip/node_modules/core-js/library/modules/_property-desc.js","webpack:///./node_modules/jszip/node_modules/core-js/library/modules/_task.js","webpack:///./node_modules/jszip/node_modules/core-js/library/modules/_invoke.js","webpack:///./node_modules/jszip/node_modules/core-js/library/modules/_html.js","webpack:///./node_modules/jszip/node_modules/core-js/library/modules/_cof.js","webpack:///./node_modules/lie/lib/browser.js","webpack:///./node_modules/immediate/lib/browser.js","webpack:///./node_modules/jszip/lib/stream/ConvertWorker.js","webpack:///./node_modules/jszip/lib/nodejs/NodejsStreamOutputAdapter.js","webpack:///./node_modules/jszip/lib/zipObject.js","webpack:///./node_modules/jszip/lib/generate/index.js","webpack:///./node_modules/jszip/lib/flate.js","webpack:///./node_modules/jszip/lib/generate/ZipFileWorker.js","webpack:///./node_modules/jszip/lib/nodejs/NodejsStreamInputAdapter.js","webpack:///./node_modules/jszip/lib/load.js","webpack:///./node_modules/jszip/lib/zipEntries.js","webpack:///./node_modules/jszip/lib/reader/StringReader.js","webpack:///./node_modules/jszip/lib/reader/NodeBufferReader.js","webpack:///./node_modules/jszip/lib/zipEntry.js","webpack:///./node_modules/vtk.js/Sources/Common/Core/StringArray/index.js","webpack:///./node_modules/vtk.js/Sources/Filters/General/ImageMarchingCubes/index.js","webpack:///./node_modules/vtk.js/Sources/Filters/General/ImageMarchingCubes/caseTable.js","webpack:///./node_modules/vtk.js/Sources/Rendering/Core/Glyph3DMapper/index.js","webpack:///./node_modules/vtk.js/Sources/Rendering/Core/Glyph3DMapper/Constants.js","webpack:///./node_modules/vtk.js/Sources/Filters/Sources/ArrowSource/index.js","webpack:///./node_modules/vtk.js/Sources/Filters/General/AppendPolyData/index.js","webpack:///./node_modules/vtk.js/Sources/Filters/Sources/CylinderSource/index.js","webpack:///./node_modules/vtk.js/Sources/Rendering/Core/PixelSpaceCallbackMapper/index.js","webpack:///./node_modules/vtk.js/Sources/Interaction/Widgets/OrientationMarkerWidget/index.js","webpack:///./node_modules/vtk.js/Sources/Interaction/Widgets/OrientationMarkerWidget/Constants.js","webpack:///./node_modules/vtk.js/Sources/Rendering/Core/AnnotatedCubeActor/index.js","webpack:///./node_modules/vtk.js/Sources/Rendering/Core/Texture/index.js","webpack:///./node_modules/vtk.js/Sources/Common/Core/ImageHelper/index.js","webpack:///./external_modules/helpers/lss.js","webpack:///./external_modules/vtk_plus/RandomSources/index.js","webpack:///./external_modules/vtk_plus/InterpolationFilter/index.js","webpack:///./node_modules/vtk.js/Sources/Filters/General/ImageStreamline/index.js","webpack:///./app/style.mcss","webpack:///./app/style.mcss?3a9e","webpack:///./node_modules/bootstrap-colorpicker/dist/js/bootstrap-colorpicker.js","webpack:///./node_modules/bootstrap-colorpicker/src/sass/_colorpicker.scss"],"names":["setLoggerFunction","vtkLogMacro","vtkInfoMacro","vtkDebugMacro","vtkErrorMacro","vtkWarningMacro","vtkOnceErrorMacro","capitalize","uncapitalize","formatBytesToProperUnit","formatNumbersWithThousandSeparator","obj","get","set","setGet","getArray","setArray","setGetArray","algo","event","newInstance","chain","isVtkObject","traverseInstanceTree","debounce","throttle","keystore","proxy","proxyPropertyMapping","proxyPropertyState","normalizeWheel","globalMTime","VOID","Symbol","getCurrentGlobalMTime","fakeConsole","noOp","consoleMethods","forEach","methodName","global","console","hasOwnProperty","loggerFunctions","debug","error","info","log","warn","name","fn","ERROR_ONCE_MAP","str","TYPED_ARRAYS","Float32Array","Float64Array","Uint8Array","Int8Array","Uint16Array","Int16Array","Uint32Array","Int32Array","charAt","toUpperCase","slice","toLowerCase","size","precision","chunkSize","units","value","Number","currentUnit","pop","toFixed","n","separator","sections","push","Math","floor","reverse","join","safeArrays","model","Object","keys","key","Array","isArray","concat","enumToString","e","find","getStateArrayMapFunc","item","isA","getState","publicAPI","callbacks","isInteger","mtime","classHierarchy","off","index","on","unsubscribe","freeze","isDeleted","deleted","modified","otherMTime","getMTime","callback","onModified","length","className","count","getClassName","depth","map","noWarning","noFunction","ret","indexOf","list","subset","getReferenceByName","val","delete","field","el","jsonArchive","assign","vtkClass","keyName","undefined","sortedObj","sort","shallowCopy","other","Error","otherModel","keyList","otherKeyList","keyIdx","splice","fieldNames","objectSetterMap","enum","RangeError","TypeError","findSetter","type","getSetter","setter","fields","defaultVal","args","array","changeDetected","otherArray","target","v","i","numberOfInputs","numberOfOutputs","inputData","inputConnection","output","inputArrayToProcess","setInputData","dataset","port","msg","getInputData","setInputConnection","outputPort","getInputConnection","addInputConnection","addInputData","getOutputData","shouldUpdate","update","localMTime","minOutputMTime","Infinity","mt","filter","getOutputPort","outputPortAccess","ins","requestData","getNumberOfInputPorts","getNumberOfOutputPorts","getInputArrayToProcess","inputPort","arrayDesc","ds","fieldAssociation","arrayName","setInputArrayToProcess","attributeType","EVENT_ABORT","eventName","previousDelete","curCallbackID","callbackID","cbID","invoke","currentCallbacks","cb","priority","setTimeout","apply","continueNext","cb1","cb2","extend","constructor","initialValues","register","instance","extractFunction","accumulator","visitedInstances","result","modelObj","subObj","func","wait","immediate","timeout","context","later","callNow","clearTimeout","delay","isThrottled","argsToUse","next","wrapper","initialKeystore","setKey","getKey","getAllKeys","deleteKey","clearKeystore","nextProxyId","ROOT_GROUP_NAME","parentDelete","proxyId","ui","JSON","parse","stringify","propertyMap","groupChildrenNames","registerProperties","descriptionList","currentGroupName","childrenNames","children","updateUI","k","listProxyProperties","gName","updateProxyProperty","propertyName","propUI","prop","activate","proxyManager","setActiveMethod","getProxyGroup","propertyLinkSubscribers","registerPropertyLinkForGC","otherLink","gcPropertyLinks","subscribers","unbind","propertyLinkMap","getPropertyLink","id","persistent","links","updateInProgress","source","force","needUpdate","sourceLink","link","newValue","linkToUpdate","indexToDelete","subscription","bind","updateMe","linkHandler","getProperties","groupName","values","propertyNames","method","listPropertyNames","p","getPropertyByName","getPropertyDomainByName","domain","getProxySection","proxyGroup","properties","registerLinks","property","updateOnBind","sLink","setImmediate","subscriptions","modelKey","methodSrc","methodDst","state","defaults","this","applyState","modelKeys","mapping","propValues","PIXEL_STEP","LINE_HEIGHT","PAGE_HEIGHT","wheelEvent","sX","sY","pX","pY","detail","wheelDelta","wheelDeltaY","wheelDeltaX","axis","HORIZONTAL_AXIS","deltaY","deltaX","deltaMode","spinX","spinY","pixelX","pixelY","randomSeedValue","VTK_MAX_ROTATIONS","VTK_SMALL_NUMBER","notImplemented","vtkSwapVectors3","v1","v2","tmp","createArray","Pi","PI","radiansFromDegrees","deg","degreesFromRadians","rad","round","ceil","min","max","arrayMin","arr","minValue","len","arrayMax","maxValue","ceilLog2","factorial","nearestPowerOfTwo","xi","isPowerOfTwo","x","binomial","m","r","beginCombination","nextCombination","status","j","randomSeed","seed","getSeed","random","delta","gaussian","add","a","b","out","subtract","multiplyScalar","vec","scalar","multiplyScalar2D","dot","y","outer","out_3x3","cross","Zx","Zy","Zz","norm","abs","sqrt","sum","normalize","den","perpendiculars","z","theta","x2","y2","z2","dx","dy","dz","c","sintheta","sin","costheta","cos","projectVector","projection","bSquared","scale","dot2D","projectVector2D","distance2BetweenPoints","angleBetweenVectors","crossVect","atan2","gaussianAmplitude","mean","variance","position","distanceFromMean","exp","gaussianWeight","outer2D","out_2x2","norm2D","x2D","normalize2D","determinant2x2","NaN","LUFactor3x3","mat_3x3","index_3","maxI","largest","LUSolve3x3","x_3","linearSolve3x3","y_3","a1","b1","c1","a2","b2","c2","a3","b3","c3","d1","d2","d3","e1","e2","e3","f1","f2","f3","det","v3","multiply3x3_vect3","in_3","out_3","multiply3x3_mat3","a_3x3","b_3x3","multiplyMatrix","rowA","colA","rowB","colB","out_rowXcol","transpose3x3","in_3x3","outT_3x3","invert3x3","outI_3x3","identity3x3","determinant3x3","quaternionToMatrix3x3","quat_4","ww","wx","wy","wz","xx","yy","zz","xy","xz","yz","rr","f","s","areMatricesEqual","matA","matB","isEqual","element","every","jacobiN","w","iq","ip","numPos","tresh","t","tau","sm","h","g","vtkROTATE","aa","ii","jj","kk","ll","ceil_half_n","matrix3x3ToQuaternion","eigenvectors","eigenvalues","NTemp","eigenvectorsTemp","multiplyQuaternion","quat_1","quat_2","quat_out","xw","yw","yx","zw","zx","zy","orthogonalize3x3","x1","x3","y3","flip","quat","diagonalize3x3","w_3","v_3x3","maxVal","C","ATemp","VTemp","singularValueDecomposition3x3","u_3x3","vT_3x3","B","d","luFactorLinearSystem","A","temp1","temp2","luSolveLinearSystem","idx","solveLinearSystem","invertMatrix","AI","column","tmp1Size","tmp2Size","estimateMatrixCondition","MAX_VALUE","jacobi","solveHomogeneousLeastSquares","numberOfSamples","xt","xOrder","XXt","eigenvals","eigenvecs","solveLeastSquares","yt","yOrder","checkHomogeneous","homogenFlags","allHomogeneous","hmt","homogRC","someHomogeneous","XXtI","XYt","successFlag","hex2float","hexStr","outFloatArray","parseInt","substr","rgb2hsv","rgb","hsv","onethird","onesixth","twothird","cmax","cmin","hsv2rgb","fivesixth","lab2xyz","lab","xyz","L","var_Y","var_X","var_Z","ref_X","ref_Y","ref_Z","xyz2lab","xyz2rgb","rgb2xyz","rgb2lab","lab2rgb","uninitializeBounds","bounds","areBoundsInitialized","clampValue","clampAndNormalizeValue","range","getScalarTypeFittingRange","getAdjustedScalarRange","extentIsWithinOtherExtent","extent1","extent2","boundsIsWithinOtherBounds","bounds1_6","bounds2_6","delta_3","pointIsWithinBounds","point_3","bounds_6","solve3PointCircle","p1","p2","p3","center","v21","v32","v13","v12","v23","v31","norm12","norm23","norm13","crossv21v32","normCross","radius","normCross22","alpha","beta","gamma","inf","negInf","isInf","isFinite","isNaN","createUninitializedBounds","getMajorAxisIndex","vector","axisIndex","isNan","glMatrix","mat2","mat2d","mat3","mat4","quat2","vec2","vec3","vec4","DefaultDataType","TUPLE_HOLDER","createRangeHelper","getRange","computeRange","component","numberOfComponents","helper","offset","ensureRangeSize","rangeArray","ranges","getDataType","typedArray","prototype","toString","call","split","getMaxNorm","normArray","numComps","getNumberOfComponents","maxNorm","getNumberOfTuples","getTuple","STATIC","vtkDataArray","dataChange","getElementComponentSize","BYTES_PER_ELEMENT","getComponent","tupleIdx","compIdx","setComponent","getData","componentIndex","rangeIdx","rangeTuple","setTuple","tuple","tupleToFill","getTupleLocation","getNumberOfValues","dataType","newClone","empty","getName","setData","from","buffer","DEFAULT_VALUES","window","PASS_TYPES","vtkViewNode","build","prepass","render","traverse","renderPass","passTraversal","getTraverseOperation","customRenderPass","getOperation","getViewNodeFor","dataObject","renderable","child","vn","getFirstAncestorOfType","parent","addMissingNode","dobj","renderableChildMap","setVisited","newNode","createViewNode","setParent","addMissingNodes","dataObjs","prepareNodes","visited","removeUnusedNodes","getVisited","getRenderable","includes","dataObj","myFactory","createNode","setRenderable","Map","DataTypeByteSize","Uint8ClampedArray","VtkDataTypes","CHAR","SIGNED_CHAR","UNSIGNED_CHAR","SHORT","UNSIGNED_SHORT","INT","UNSIGNED_INT","FLOAT","DOUBLE","POLYDATA_FIELDS","vtkPolyData","camelize","replace","letter","getNumberOfCells","reduce","num","cellType","setMatrixArrayType","toRadian","equals","EPSILON","ARRAY_TYPE","RANDOM","degree","substitute","search","all","replaceStr","replaced","gflag","regex","RegExp","resultstr","vtkShaderProgram","compileShader","vertexShader","compile","getSource","line","getError","fragmentShader","attachShader","setCompiled","cleanup","shaderType","handle","deleteShader","linked","useProgram","setBound","isBound","bound","release","setContext","ctx","geometryShader","inked","uniformLocs","linkProgram","isCompiled","getProgramParameter","LINK_STATUS","lastError","getProgramInfoLog","setLinked","attributeLocs","setUniformMatrix","location","findUniform","uniformMatrix4fv","setUniformMatrix3x3","uniformMatrix3fv","setUniformf","uniform1f","setUniformfv","uniform1fv","setUniformi","uniform1i","setUniformiv","uniform1iv","setUniform2f","uniform2f","setUniform2fv","uniform2fv","setUniform2i","uniform2i","setUniform2iv","uniform2iv","setUniform3f","uniform3f","setUniform3fArray","setUniform3fv","uniform3fv","setUniform3i","uniform3i","setUniform3iv","uniform3iv","setUniform4f","uniform4f","setUniform4fv","uniform4fv","setUniform4i","uniform4i","setUniform4iv","uniform4iv","loc","getUniformLocation","isUniformUsed","isAttributeUsed","getAttribLocation","shader","getHandle","getShaderType","thandle","createProgram","vertexShaderHandle","comntext","detachShader","fragmentShaderHandle","errror","setLastCameraMTime","lastCameraMTime","geometryShaderHandle","compiled","attributesLocs","md5Hash","setShaderType","vtk","factoryMapping","vtkObject","newInst","vtkClassName","Shading","FLAT","GOURAUD","PHONG","Representation","POINTS","WIREFRAME","SURFACE","Interpolation","Wrap","Filter","vtkOpenGLTexture","renWin","openGLRenderWindow","openGLRenderer","getParent","getContext","getInterpolate","generateMipmap","setMinificationFilter","LINEAR_MIPMAP_LINEAR","LINEAR","setMagnificationFilter","NEAREST","getRepeat","setWrapR","REPEAT","setWrapS","setWrapT","setImage","textureBuildTime","getImage","getImageLoaded","create2DFromImage","sendParameters","input","getPointData","getScalars","ext","getExtent","inScalars","data","indata","scalars","createCubeFromRaw","create2DFromRaw","destroyTexture","deactivate","deleteTexture","numberOfDimensions","components","width","height","resetFormatAndType","createTexture","bindTexture","texParameteri","TEXTURE_MIN_FILTER","getOpenGLFilterMode","minificationFilter","TEXTURE_MAG_FILTER","magnificationFilter","TEXTURE_WRAP_S","getOpenGLWrapMode","wrapS","TEXTURE_WRAP_T","wrapT","getTextureUnit","getTextureUnitForTexture","activateTexture","deactivateTexture","releaseGraphicsResources","rwin","internalFormat","format","openGLDataType","shaderProgram","autoParameters","sendParametersTime","TEXTURE_2D","TEXTURE_BINDING_2D","oid","getIntegerv","getWebgl2","TEXTURE_WRAP_R","wrapR","TEXTURE_BASE_LEVEL","baseLevel","TEXTURE_MAX_LEVEL","maxLevel","getInternalFormat","vtktype","getDefaultInternalFormat","getDefaultTextureInternalFormat","setInternalFormat","iFormat","InternalFormat","getFormat","getDefaultFormat","RED","RG","RGB","RGBA","LUMINANCE","LUMINANCE_ALPHA","getDefaultDataType","vtkScalarType","UNSIGNED_BYTE","getExtension","getOpenGLDataType","getShiftAndScale","shift","BYTE","emode","NEAREST_MIPMAP_NEAREST","NEAREST_MIPMAP_LINEAR","LINEAR_MIPMAP_NEAREST","CLAMP_TO_EDGE","MIRRORED_REPEAT","updateArrayDataType","pixData","pixCount","newArray","scaleTextureToHighestPowerOfTwo","newWidth","newHeight","jFactor","iFactor","joff","jidx","jlow","jhi","jmix","jmix1","ioff","iidx","ilow","ihi","imix","dataArray","scaledData","pixelStorei","UNPACK_ALIGNMENT","texImage2D","TEXTURE_CUBE_MAP","invertedData","widthLevel","heightLevel","row1","row2","TEXTURE_CUBE_MAP_POSITIVE_X","createDepthFromRaw","DEPTH_COMPONENT","image","needNearestPowerOfTwo","canvas","document","createElement","translate","drawImage","safeImage","create3DFromRaw","TEXTURE_3D","texImage3D","create3DOneComponentFromRaw","numPixelsIn","volumeInfo","volCopyData","outArray","outIdx","inValue","smin","smax","dataTypeToUse","numCompsToUse","encodedScalars","fval","maxTexDim","getParameter","MAX_TEXTURE_SIZE","xstride","ystride","targetWidth","xreps","yreps","targetHeight","yRep","xrepsThisRow","outXContIncr","inY","xRep","inOffset","inX","create3DLighting","scalarTexture","spacing","computedGradients","vinfo","getVolumeInfo","haveWebgl2","reformatGradientsFunction","workerResults","numVoxelsIn","reformattedGradients","maxMag","subGradients","subMagnitudes","subMinMag","subMaxMag","subDepthStart","subDepthEnd","inIdx","inMagIdx","numWorkerVoxels","vp","getWidth","getHeight","zpin","zyout","zxout","ypout","ypin","xpin","maxNumberOfWorkers","depthStride","workerPromises","workers","depthIndex","worker","workerPromise","depthStart","depthEnd","subData","postMessage","Promise","then","terminate","minMag","gradientsBuildTime","setOpenGLRenderWindow","rw","getMaximumTextureSize","isCurrent","minLOD","maxLOD","ColorMode","ScalarMode","GetArray","VectorMode","staticOffsetModel","Polygon","factor","Line","Point","staticOffsetAPI","addCoincidentTopologyMethods","CATEGORIES","vtkMapper","getBounds","static","setForceCompileOnly","forceCompileOnly","createDefaultLookupTable","lookupTable","getColorModeAsString","colorMode","setColorModeToDefault","setColorMode","setColorModeToMapScalars","setColorModeToDirectScalars","getScalarModeAsString","scalarMode","setScalarModeToDefault","setScalarMode","setScalarModeToUsePointData","setScalarModeToUseCellData","setScalarModeToUsePointFieldData","setScalarModeToUseCellFieldData","setScalarModeToUseFieldData","topologyOffset","getCoincidentTopologyPolygonOffsetParameters","globalValue","getResolveCoincidentTopologyPolygonOffsetParameters","localValue","getRelativeCoincidentTopologyPolygonOffsetParameters","getCoincidentTopologyLineOffsetParameters","getResolveCoincidentTopologyLineOffsetParameters","getRelativeCoincidentTopologyLineOffsetParameters","getCoincidentTopologyPointOffsetParameter","getResolveCoincidentTopologyPointOffsetParameters","getRelativeCoincidentTopologyPointOffsetParameters","getAbstractScalars","arrayAccessMode","arrayId","scalarVisibility","DEFAULT","getCellData","USE_POINT_DATA","USE_CELL_DATA","USE_POINT_FIELD_DATA","pd","BY_ID","getArrayByIndex","getArrayByName","USE_CELL_FIELD_DATA","cd","USE_FIELD_DATA","fd","getFieldData","mapScalars","colorByArrayName","colorCoordinates","colorTextureMap","colorMapColors","useLookupTableScalarRange","getLookupTable","setRange","scalarRange","canUseTextureMapForColoring","mapScalarsToTexture","lut","scalarToTextureCoordinate","scalarValue","rangeMin","invRangeWidth","texCoordS","texCoordT","createColorTextureCoordinates","numScalars","tableRange","tableNumberOfColors","useLogScale","scalarTexelWidth","paddedRange","outputV","inputV","outputCount","scalarIdx","magnitude","applyLogScale","outputs","inputValue","usingLogScale","getLogRange","origAlpha","getAlpha","setAlpha","numberOfColors","getNumberOfAvailableColors","setExtent","setScalars","scalarComponent","getVectorComponent","getVectorMode","MAGNITUDE","getIsOpaque","isOpaque","interpolateScalarsBeforeMapping","getIndexedLookup","clearColorArrays","time","getPrimitiveCount","pcount","points","getPoints","verts","getVerts","lines","getLines","triangles","getPolys","acquireInvertibleLookupTable","valueToColor","colorToValue","useInvertibleColorFor","clearInvertibleColor","renderTime","fieldDataTupleId","useInvertibleColors","invertibleScalars","resolveCoincidentTopology","viewSpecificProperties","ensure","end","dlg","do_show","hide_func","body","removeClass","hasClass","addClass","css","not","modal","show","hide","multi","code","errorDialog","text","$","self","queryString","paramsArray","params","param","decodeURIComponent","addNewState","history","pushState","ObjectType","ARRAY_BUFFER","ELEMENT_ARRAY_BUFFER","TEXTURE_BUFFER","vtkOpenGLBufferObject","convertType","internalType","internalHandle","dirty","getType","setType","isReady","generateBuffer","objectTypeGL","createBuffer","upload","alreadyGenerated","bindBuffer","bufferData","STATIC_DRAW","deleteBuffer","objectType","primTypes","Start","Points","Lines","Tris","TriStrips","TrisEdges","TriStripsEdges","End","PassTypes","StartEvent","EndEvent","vtkOpenGLPolyDataMapper","buildPass","openGLActor","openGLCamera","getActiveCamera","translucentPass","opaqueZBufferPass","haveSeenDepthRequest","renderDepth","opaquePass","primitives","actor","ren","renderPiece","buildShaders","shaders","getShaderTemplate","openGLSpec","getViewSpecificProperties","OpenGL","shaderReplacements","ShaderReplacements","currReplacement","replaceFirst","ssrc","substituteRes","originalValue","replacementValue","replaceAll","replaceShaderValues","openGLSpecProp","vertexShaderCode","vertexSpecProp","VertexShaderCode","Vertex","fragmentShaderCode","fragmentSpecProp","FragmentShaderCode","Fragment","geometryShaderCode","geometrySpecProp","GeometryShaderCode","Geometry","replaceShaderColor","VSSource","GSSource","FSSource","lastLightComplexity","lastBoundBO","colorDec","colorImpl","getCABO","getColorComponents","drawingEdges","getInterpolateScalarsBeforeMapping","getColorCoordinates","replaceShaderLight","shadowFactor","lastLightCount","sstring","lc","replaceShaderNormal","getNormalOffset","haveCellNormals","getOpenGLMode","getProperty","getRepresentation","getPrimitiveType","LINES","replaceShaderPositionVC","getPointSize","replaceShaderTCoord","getTCoordOffset","tus","getActiveTextures","tNumComp","tcdim","getComponents","getTarget","getColorTextureMap","replaceShaderClip","getNumberOfClippingPlanes","numClipPlanes","getCoincidentParameters","cp","getResolveCoincidentTopology","getEdgeVisibility","primType","replaceShaderCoincidentOffset","replaceShaderPicking","getSelector","getCurrentPass","ID_LOW24","getNeedToRebuildShaders","cellBO","lightComplexity","numberOfLights","needLighting","poly","currentInput","getInterpolation","getNormals","haveNormals","getLighting","lights","getLightsByReference","light","getSwitch","getIntensity","lightTypeIsHeadLight","getPositional","needRebuild","selector","selectionPass","lastSelectionPass","lastHaveSeenDepthRequest","getProgram","getShaderSourceTime","updateShaders","newShader","getShaderCache","readyShaderProgramArray","setProgram","getVAO","readyShaderProgram","setMapperShaderParameters","setPropertyShaderParameters","setCameraShaderParameters","setLightingShaderParameters","listCallbacks","ShadersCallbacks","object","userData","primitiveIDOffset","getElementCount","VBOBuildTime","getAttributeUpdateTime","addAttributeArray","getVertexOffset","getStride","removeAttributeArray","getTCoordComponents","getColorBO","getColorOffset","getColorBOStride","planeEquations","planeEquation","getClippingPlaneInDataCoords","getMatrix","internalColorTexture","tex","texUnit","tname","getPropColorValue","program","dColor","getColorByReference","intensity","lightColor","ld","getDirection","lightDirection","lightHalfAngle","cam","viewTF","getViewMatrix","transpose","lp","getTransformedPosition","np","fromValues","transformMat4","getAttenuationValuesByReference","getExponent","getConeAngle","keyMats","getKeyMatrices","camm","getKeyMatrixTime","progm","getLastCameraMTime","getIsIdentity","wcdc","wcvc","normalMatrix","getParallelProjection","actMats","anorms","create","multiply","identity","tmpMat4","mcwc","ppty","opacity","getOpacity","aColor","getEdgeColorByReference","getAmbientColorByReference","getAmbient","getDiffuseColorByReference","getDiffuse","sColor","getSpecularColorByReference","getSpecular","getSpecularPower","renderPieceStart","renderProp","updateBufferObjects","renderPieceDraw","representation","gl","drawSurfaceWithEdges","cabo","mode","drawArrays","stride","rep","TRIANGLES","renderPieceFinish","LastBoundBO","invokeEvent","getStatic","backfaceCulling","getBackfaceCulling","frontfaceCulling","getFrontfaceCulling","disableCullFace","enableCullFace","cullFace","FRONT","BACK","computeBounds","getInput","getNeedToRebuildBufferObjects","buildBufferObjects","vmtime","getColorMapColors","haveCellScalars","getScalarMode","getScalarVisibility","tcoords","getTCoords","VBOBuildString","options","normals","colors","cellOffset","createVBO","getStrips","shaderRebuildString","ambientColor","diffuseColor","specularColor","setPrimitiveType","vtkOpenGLHelper","win","VAO","CABO","oglwin","setElementCount","shaderSourceTime","attributeUpdateTime","primitiveType","module","exports","request","uri","url","contentType","accepts","cache","error_cb","fe","success","failure","done","req","ajax","fail","process_msg","pleaseWaitDiv","pleaseWaitDivInit","recurse","showInit","hideInit","vtkActor","superClass","getActors","forceOpaque","forceTranslucent","texture","isTranslucent","mapper","hasTranslucentPolygonalGeometry","setProperty","makeProperty","bds","mapperBounds","boundsMTime","bbox","computeMatrix","tmp4","matrix","pt","backfaceProperty","getRedrawMTime","getInputAlgorithm","getSupportsSelection","INIT_BOUNDS","isValid","getCenter","getLength","getLengths","getXRange","getYRange","getZRange","getMaxLength","l","getDiagonalLength","oppositeSign","getCorners","corners","ix","iy","iz","vtkBoundingBox","clone","setMinPoint","xMin","xMax","yMin","yMax","zMin","zMax","setMaxPoint","addPoint","addBounds","_xMin","_xMax","_yMin","_yMax","_zMin","_zMax","addBox","intersect","newBounds","bBounds","intersects","MaxPnt","MinPnt","intersectPlane","origin","normal","evaluate","dir","sign","ti","containsPoint","getMinPoint","getMaxPoint","getBound","contains","reset","setBounds","inflate","sx","sy","sz","vtkProperty","setColor","color","setDiffuseColor","setAmbientColor","setSpecularColor","computeCompositeColor","getColor","ambient","diffuse","specular","addShaderVariable","setInterpolationToFlat","setInterpolation","setInterpolationToGouraud","setInterpolationToPhong","getInterpolationAsString","interpolation","setRepresentationToWireframe","setRepresentation","setRepresentationToSurface","setRepresentationToPoints","getRepresentationAsString","edgeColor","specularPower","edgeVisibility","pointSize","lineWidth","lighting","shading","materialName","macro","vtkFramebuffer","getBothMode","FRAMEBUFFER","saveCurrentBindingsAndBuffers","modeIn","saveCurrentBindings","saveCurrentBuffers","previousDrawBinding","FRAMEBUFFER_BINDING","previousActiveFramebuffer","getActiveFramebuffer","restorePreviousBindingsAndBuffers","restorePreviousBindings","restorePreviousBuffers","bindFramebuffer","setActiveFramebuffer","glFramebuffer","colorTexture","createFramebuffer","setColorBuffer","framebufferTexture2D","COLOR_ATTACHMENT0","getGLFramebuffer","deleteFramebuffer","depthTexture","getSize","populateFramebuffer","createRenderbuffer","bindRenderbuffer","RENDERBUFFER","renderbufferStorage","DEPTH_COMPONENT16","framebufferRenderbuffer","DEPTH_ATTACHMENT","previousReadBinding","previousDrawBuffer","previousReadBuffer","DATASET_FIELDS","vtkDataSet","fieldName","vtkImageData","inExtent","extent","dataDescription","getDataDescriptionFromExtent","setDimensions","getDimensions","dims","nCells","getNumberOfPoints","getPoint","ijk","coords","EMPTY","SINGLE_POINT","X_LINE","Y_LINE","Z_LINE","XY_PLANE","YZ_PLANE","XZ_PLANE","XYZ_GRID","vout","indexToWorldVec3","copy","extentToBounds","ex","computeTransforms","rotq","fromMat3","direction","trans","fromRotationTranslationScale","indexToWorld","invert","worldToIndex","setDirection","vin","ain","aout","worldToIndexVec3","dvals","COMPONENT","RGBCOLORS","ScalarMappingTarget","INVALID_BOUNDS","vtkPoints","setNumberOfPoints","nbPoints","dimension","setNumberOfComponents","setPoint","xRange","yRange","zRange","getEndianness","swapBytes","ArrayBuffer","ENDIANNESS","wordSize","bytes","tempBuffer","NoOp","IDENTITY","Transform","useDegre","angleConv","originDirection","targetDirection","src","dst","transf","cosAlpha","fromRotation","acos","angle","rotate","rotateX","rotateY","rotateZ","nbIterations","mat4x4","buildFromDegree","buildFromRadian","fromMat4","adjoint","determinant","fromTranslation","fromScaling","fromMat2d","fromQuat","normalFromMat4","frob","multiplyScalarAndAdd","exactEquals","m00","m01","m02","m10","m11","m12","m20","m21","m22","a01","a02","a12","a00","a10","a11","a20","a21","a22","b01","b11","b21","b00","b02","b10","b12","b20","b22","q","a03","a13","a23","a30","a31","a32","a33","b03","b04","b05","b06","b07","b08","b09","pow","a0","a4","a5","a6","a7","a8","b0","b4","b5","b6","b7","b8","mul","sub","fromXRotation","fromYRotation","fromZRotation","fromRotationTranslation","fromQuat2","getTranslation","getScaling","getRotation","fromRotationTranslationScaleOrigin","frustum","perspective","perspectiveFromFieldOfView","ortho","lookAt","targetTo","m03","m13","m23","m30","m31","m32","m33","translation","bx","by","bz","bw","ax","ay","az","aw","mat","trace","S","o","ox","oy","oz","out0","out1","out2","out4","out5","out6","out8","out9","out10","left","right","bottom","top","near","far","rl","tb","nf","fovy","aspect","tan","fov","upTan","upDegrees","downTan","downDegrees","leftTan","leftDegrees","rightTan","rightDegrees","xScale","yScale","lr","bt","eye","up","x0","y0","y1","z0","z1","eyex","eyey","eyez","upx","upy","upz","centerx","centery","centerz","a9","a14","a15","b9","b13","b14","b15","setAxisAngle","getAxisAngle","calculateW","slerp","conjugate","fromEuler","out_axis","omega","cosom","sinom","scale0","scale1","invDot","fTrace","fRoot","halfToRad","cx","cy","cz","lerp","squaredLength","sqrLen","rotationTo","tmpvec3","xUnitVec3","yUnitVec3","sqlerp","setAxes","matr","view","divide","scaleAndAdd","distance","squaredDistance","negate","inverse","hermite","bezier","transformMat3","transformQuat","factorTimes2","factor1","factor2","factor3","factor4","inverseFactor","inverseFactorTimesTwo","zScale","qx","qy","qz","qw","uvx","uvy","uvz","uuvx","uuvy","uuvz","w2","tempA","tempB","cosine","div","dist","sqrDist","arg","vectorScale","iw","checkRenderTargetSupport","framebuffer","checkFramebufferStatus","FRAMEBUFFER_COMPLETE","vtkOpenGLRenderWindow","updateWindow","setAttribute","style","display","useOffScreen","cursor","cursorVisibility","getRenderersByReference","initialize","initialized","get3DContext","textureUnitManager","shaderCache","blendFuncSeparate","SRC_ALPHA","ONE_MINUS_SRC_ALPHA","ONE","depthFunc","LEQUAL","enable","BLEND","makeCurrent","setContainer","parentNode","removeChild","appendChild","getFramebufferSize","activeFramebuffer","isInViewport","viewport","vCoords","getViewportByReference","getViewportSize","getViewportCenter","displayToNormalizedDisplay","normalizedDisplayToDisplay","worldToView","renderer","viewToWorld","worldToDisplay","val2","viewToNormalizedDisplay","displayToWorld","normalizedDisplayToView","normalizedDisplayToViewport","viewportToNormalizedViewport","normalizedViewportToViewport","displayToLocalDisplay","viewportToNormalizedDisplay","getPixelData","pixels","readPixels","get2DContext","preserveDrawingBuffer","webgl2Supported","WebGL2RenderingContext","webgl2","defaultToWebgl2","polyfill","PROVIDE_MOBILE_VRDISPLAY","DIRTY_SUBMIT_FRAME_BINDINGS","BUFFER_SCALE","navigator","getVRDisplays","displays","vrDisplay","depthNear","depthFar","invokeHaveVRDisplay","addEventListener","preventDefault","restoreContext","startVR","capabilities","canPresent","requestPresent","oldCanvasSize","hasExternalDisplay","queryVRSize","leftEye","getEyeParameters","rightEye","renderWidth","renderHeight","setSize","vrResolution","getRenderers","resetCamera","vrFrameData","VRFrameData","getInteractor","switchToVRAnimation","vrRender","catch","stopVR","returnFromVRAnimation","exitPresent","cancelAnimationFrame","vrSceneFrame","setProjectionMatrix","setViewport","traverseAllPasses","updateGamepads","displayId","requestAnimationFrame","getFrameData","computeViewParametersFromPhysicalMatrix","leftViewMatrix","leftProjectionMatrix","rightViewMatrix","rightProjectionMatrix","submitFrame","rp","setCurrentOperation","textureResourceIds","activeTexture","TEXTURE0","activeUnit","getTextureUnitManager","allocate","free","useFloat","R8","RG8","RGB8","RGBA8","R16F","RG16F","RGB16F","RGBA16F","getCanvasDataURL","imageFormat","toDataURL","captureNextImage","previous","notifyImageReady","resolve","reject","onImageReady","imageURL","getGLInformations","glTextureFloat","glTextureHalfFloat","glDebugRendererInfo","glDrawBuffers","glAnisotropic","MAX_VERTEX_ATTRIBS","MAX_VARYING_VECTORS","MAX_VERTEX_UNIFORM_VECTORS","MAX_FRAGMENT_UNIFORM_VECTORS","MAX_TEXTURE_IMAGE_UNITS","MAX_VERTEX_TEXTURE_IMAGE_UNITS","MAX_COMBINED_TEXTURE_IMAGE_UNITS","MAX_CUBE_MAP_TEXTURE_SIZE","MAX_TEXTURE_MAX_ANISOTROPY_EXT","ALIASED_POINT_SIZE_RANGE","ALIASED_LINE_WIDTH_RANGE","MAX_VIEWPORT_DIMS","MAX_RENDERBUFFER_SIZE","RED_BITS","GREEN_BITS","BLUE_BITS","ALPHA_BITS","DEPTH_BITS","STENCIL_BITS","SUBPIXEL_BITS","SAMPLES","SAMPLE_BUFFERS","ALPHA","HALF_FLOAT_OES","MAX_DRAW_BUFFERS_WEBGL","getShaderPrecisionFormat","VERTEX_SHADER","HIGH_FLOAT","rangeMax","MEDIUM_FLOAT","LOW_FLOAT","FRAGMENT_SHADER","HIGH_INT","MEDIUM_INT","LOW_INT","getSupportedExtensions","RENDERER","VENDOR","VERSION","SHADING_LANGUAGE_VERSION","UNMASKED_RENDERER_WEBGL","UNMASKED_VENDOR_WEBGL","label","renderPasses","invokeImageReady","disableDepthMask","depthMaskEnabled","depthMask","enableDepthMask","cullFaceEnabled","disable","CULL_FACE","vtkRenderPass","currentOperation","currentTraverseOperation","viewNode","currentParent","preDelegateOperations","delegates","postDelegateOperations","SelectionContent","SelectionField","FieldAssociations","vtkOpenGLHardwareSelector","releasePixBuffers","pixBuffer","beginSelection","maxAttributeId","clear","setSelector","hitProps","props","endSelection","preCapturePass","postCapturePass","select","sel","captureBuffers","generateSelection","area","originalBackground","getBackgroundByReference","setBackground","currentPass","MIN_KNOWN_PASS","MAX_KNOWN_PASS","passRequired","savePixelBuffer","pass","passNo","ACTOR_PASS","buildPropHitList","pixelbuffer","convert","setPropColorValueFromInt","idOffset","renderCompositeIndex","COMPOSITE_INDEX_PASS","renderAttributeId","attribid","getPropFromID","passTypeToString","isPropHit","hasKey","pb","propColorValue","getPixelInformation","inDisplayPosition","maxDistance","outSelectedPosition","maxDist","displayPosition","actorid","valid","propID","compositeID","dispPos","curPos","convertSelection","fieldassociation","dataMap","setContentType","INDICES","FIELD_ASSOCIATION_CELLS","setFieldType","CELL","FIELD_ASSOCIATION_POINTS","POINT","pixelCount","setSelectionList","attributeIDs","getInfoHash","pos","hash","has","attributeID","attach","AttributeTypes","SCALARS","VECTORS","NORMALS","TCOORDS","TENSORS","GLOBALIDS","PEDIGREEIDS","EDGEFLAG","NUM_ATTRIBUTES","AttributeLimitTypes","MAX","EXACT","NOLIMIT","CellGhostTypes","DUPLICATECELL","HIGHCONNECTIVITYCELL","LOWCONNECTIVITYCELL","REFINEDCELL","EXTERIORCELL","HIDDENCELL","PointGhostTypes","DUPLICATEPOINT","HIDDENPOINT","AttributeCopyOperations","COPYTUPLE","INTERPOLATE","PASSDATA","ALLCOPY","ghostArrayName","DesiredOutputPrecision","SINGLE","vtkOpenGLVertexArrayObject","exposedMethod","instancingExtension","forceEmulation","extension","supported","handleVAO","createVertexArray","createVertexArrayOES","bindVertexArrayOES","bindVertexArray","ibuff","buffers","buff","iatt","attributes","attrIt","matrixCount","isMatrix","enableVertexAttribArray","vertexAttribPointer","divisor","vertexAttribDivisorANGLE","vertexAttribDivisor","disableVertexAttribArray","shaderProgramChanged","deleteVertexArrayOES","deleteVertexArray","handleProgram","elementType","elementTupleSize","addAttributeArrayWithDivisor","attribs","Index","buffFound","found","addAttributeMatrixWithDivisor","StructuredType","UNCHANGED","MAP_SCALARS","DIRECT_SCALARS","BY_NAME","vtkRenderer","background","COMPUTE_VISIBLE_PROP_BOUNDS_EVENT","RESET_CAMERA_CLIPPING_RANGE_EVENT","RESET_CAMERA_EVENT","updateCamera","activeCamera","getActiveCameraAndResetIfCreated","updateLightsGeometryToFollowCamera","camera","lightTypeIsSceneLight","setPositionFrom","getPositionByReference","setFocalPointFrom","getFocalPointByReference","lightTypeIsCameraLight","updateLightGeometry","lightFollowCamera","allocateTime","updateGeometry","getVTKWindow","renderWindow","setLayer","layer","setPreserveColorBuffer","setActiveCamera","makeCamera","addActor","addViewProp","addVolume","removeActor","actors","removeViewProp","removeVolume","volume","volumes","addLight","getVolumes","removeLight","removeAllLights","setLightCollection","makeLight","createLight","automaticLightCreation","createdLight","setLightTypeToHeadLight","setPosition","getPosition","setFocalPoint","getFocalPoint","normalizedDisplayToWorld","vpd","worldToNormalizedDisplay","getCompositeProjectionMatrix","computeVisiblePropBounds","allBounds","nothingVisible","getVisibility","getUseBounds","boundsToUse","getViewPlaneNormal","setViewAngle","w1","w3","getViewAngle","parallelScale","vup","getViewUp","setViewUp","resetCameraClippingRange","setParallelScale","setPhysicalScale","setPhysicalTranslation","computeClippingRange","minGap","getParallelScale","clippingRangeExpansion","nearClippingPlaneTolerance","setClippingRange","setRenderWindow","vtkWindow","visibleActorCount","visibleVolumeCount","m1","m2","m3","getTransparent","preserveColorBuffer","isActiveCameraCreated","pickedProp","allocatedRenderTime","timeFactor","twoSidedLighting","lastRenderTimeInSeconds","numberOfPropsRendered","propArray","pathArray","preserveDepthBuffer","interactive","erase","draw","useShadows","useDepthPeeling","occlusionRatio","maximumNumberOfPeels","delegate","texturedBackground","backgroundTexture","Device","Input","deviceInputMap","TrackPad","Trigger","Grip","ApplicationMenu","handledEvents","stopPropagation","vtkRenderWindowInteractor","animationRequesters","Set","start","startEventLoop","aren","setInteractorStyle","interactorStyle","setInteractor","setEnabled","updateCurrentRenderer","currentRenderer","findPokedRenderer","getCurrentRenderer","getScreenEventPositionFor","container","getBoundingClientRect","getCanvas","scaleX","scaleY","clientX","clientY","getTouchEventPositionsFor","touches","positions","touch","identifier","getModifierKeysFor","controlKey","ctrlKey","altKey","shiftKey","getKeysFor","modifierKeys","keyCode","charCode","interactionRegistration","addListeners","rootElm","querySelector","invMethod","handleMouseMove","handleMouseUp","handleTouchEnd","handleTouchMove","bindEvents","handleWheel","handleMouseDown","handleKeyPress","handleKeyDown","handleKeyUp","handleTouchStart","unbindEvents","removeEventListener","keyPressEvent","keyDownEvent","keyUpEvent","callData","which","leftButtonPressEvent","middleButtonPressEvent","rightButtonPressEvent","forceRender","enabled","enableRender","inRender","invokeRenderEvent","requestAnimation","requestor","lastFrameTime","lastFrameStart","Date","now","animationRequest","handleAnimation","startAnimationEvent","isAnimating","vrAnimation","cancelAnimation","skipWarning","requestStr","endAnimationEvent","gamepads","getGamepads","gp","lastGamepadValues","buttons","pressed","button3DEvent","gamepad","pose","orientation","device","hand","LeftController","RightController","move3DEvent","moveTimeoutID","startMouseMoveEvent","mouseMoveEvent","endMouseMoveEvent","currTime","FrameTime","animationEvent","wheelTimeoutID","startMouseWheelEvent","mouseWheelEvent","endMouseWheelEvent","leftButtonReleaseEvent","middleButtonReleaseEvent","rightButtonReleaseEvent","recognizeGestures","recognizeGesture","changedTouches","setView","rc","interactiveren","viewportren","getInteractive","lowerFirst","pokedRenderer","startingEventPositions","currentGesture","endPinchEvent","endRotateEvent","endPanEvent","posVals","startVals","originalDistance","newDistance","originalAngle","newAngle","angleDeviation","thresh","clientWidth","clientHeight","pinchDistance","rotateDistance","panDistance","startPinchEvent","rotation","startRotateEvent","startPanEvent","rotateEvent","pinchEvent","panEvent","picker","pickingManager","desiredUpdateRate","stillUpdateRate","States","IS_START","IS_NONE","IS_ROTATE","IS_PAN","IS_SPIN","IS_DOLLY","IS_CAMERA_POSE","IS_WINDOW_LEVEL","IS_SLICE","Unknown","vtkCubeSource","inData","outData","polyData","numberOfPolys","numberOfPoints","pointType","normalArray","setNormals","generate3DTextureCoordinates","textureCoords","setTCoords","tc","pointIndex","xLength","yLength","zLength","rotations","polys","polyIndex","boundsArray","vtkConeSource","resolution","xbot","cellArraySize","pointIdx","cellLocation","capping","rotateFromDirections","ko","require","setupCube","cubeSource","actor_property","setLighting","setAmbient","setDiffuse","setOpacity","setScale","setMapper","setupOrientationActor","axes","setDefaultStyle","fontStyle","fontFamily","fontColor","fontSizeScale","res","faceColor","edgeThickness","setXMinusFaceProperty","setYPlusFaceProperty","setYMinusFaceProperty","setZPlusFaceProperty","setZMinusFaceProperty","ControlView","fullScreenRenderWindow","rootContainer","getElementById","containerStyle","margin","overflow","getRenderWindow","getRenderer","setupIsoSurface","isoActor","marchingCube","reader","fetchGzip","progressCallback","ev","loadIndicator","orientationWidget","interactor","textCanvas","classList","getContainer","textCtx","textActor","psMapper","names","centerPos","setCallback","coordsList","font","textAlign","textBaseline","setTransform","clearRect","mw","width_txt","measureText","fillStyle","fillRect","fillText","setResizeCallback","newDims","progressBar","observable","test_control","progressPct","minDataRange","maxDataRange","isoValue","specBright","useNormals","baseColor","addSpecular","autoRefresh","ready","setupArrows","firstTime","subscribe","setUrl","loadData","pointData","dataRange","setContourValue","viewUp","setViewportCorner","Corners","BOTTOM_LEFT","setViewportSize","setSpecularPower","activeNormals","setComputeNormals","setSpecular","hexToRgb","colorpicker","contourValue","mergePoints","computeNormals","coneSource","tipRadius","shaftRadius","tipLength","vecSource","interpolationFilter","randPoints","setMinBox","setMaxBox","setNumPoints","setScaleModeToScaleByComponents","setOrientationModeToRotation","setScalarRange","setScaleFactor","arrays","getArrays","setVectors","counter","arrowRefreshActive","arrowRefresh","refresh","clearInterval","setInterval","setupStreamline","sline","setIntegrationStep","setMaximumNumberOfSteps","slineMapper","slineActor","fid","pe","lengthComputable","total","loaded","cutHex","substring","applyBindings","LDU","v0","D","U","tx","ty","ab","ac","ad","atx","aty","fromRotationTranslationValues","getDual","setDual","rotateByQuatAppend","rotateByQuatPrepend","rotateAroundAxis","dq","getReal","setReal","ax1","ay1","az1","aw1","bx1","by1","bz1","ax2","ay2","az2","aw2","axisLength","ax0","ay0","az0","aw0","bw1","bx0","by0","bz0","bw0","sqlen","transformMat2","transformMat2d","vtkProp3D","addPosition","deltaXYZ","getOrientationWXYZ","oaxis","rotateWXYZ","degrees","quatMat","setUserMatrix","userMatrix","matrixMTime","isIdentity","getUserMatrix","updateIdentityFlag","userMatrixMTime","cachedProp3D","transform","vtkPlane","PLANE_TOLERANCE","distanceToPlane","projectPoint","xproj","xo","vproj","n2","generalizedProjectPoint","intersectWithLine","outObj","intersection","p21","fabsden","fabstolerance","evaluateFunction","evaluateGradient","retVal","vtkProp","textures","getNestedProps","getActors2D","pick","setEstimatedRenderTime","estimatedRenderTime","savedEstimatedRenderTime","restoreEstimatedRenderTime","addEstimatedRenderTime","setAllocatedRenderTime","getTextures","hasTexture","addTexture","removeTexture","newTextureList","removeAllTextures","visibility","pickable","dragable","useBounds","renderTimeMultiplier","paths","STYLE_CONTAINER","padding","STYLE_CONTROL_PANEL","backgroundColor","borderRadius","listStyle","border","maxWidth","maxHeight","applyStyle","vtkFullScreenRenderWindow","addRenderer","addView","removeController","controlContainer","setControllerVisibility","visible","controllerVisibility","toggleControllerVisibility","addController","html","controlPanelStyle","innerHTML","String","fromCharCode","addRepresentation","removeRepresentation","resize","devicePixelRatio","resizeCallback","listenWindowResize","vtkForwardPass","renderers","getChildren","renNode","opaqueActorCount","translucentActorCount","volumeCount","depthRequested","fbSize","getZBufferTexture","getColorTexture","incrementOpaqueActorCount","incrementTranslucentActorCount","incrementVolumeCount","message","emit","depthLength","gradients","gradientMagnitudes","sliceSize","inPtr","outPtr","grad","zedge","yedge","edge","mag","arrayMinMag","arrayMaxMag","TransferableResponse","vtkOpenGLViewNodeFactory","registerOverride","vtkGenericWidgetRepresentation","vtkViewNodeFactory","overrides","cpt","isObject","setMyFactory","vtkOpenGLActor","getMapper","ogltextures","activeTextures","oglmapper","traverseOpaqueZBufferPass","traverseOpaquePass","traverseTranslucentPass","activateTextures","queryPass","keyMatrixTime","keyMatrices","vtkOpenGLActor2D","vtkOpenGLCamera","tsize","getTiledSizeAndOrigin","lowerLeftU","lowerLeftV","usize","vsize","scissor","volumePass","lastRenderer","aspectRatio","getAspectRatio","vcdc","getProjectionMatrix","vtkOpenGLGlyph3DMapper","hardwareSupport","multiply4x4WithOffset","getColorArray","updateGlyphShaderParameters","normalMatrixUsed","mcvcMatrixUsed","carray","garray","narray","ofs","tmpMat3","mcdcMatrix","mcvcMatrix","cdata","tmpColor","getMatrixArray","getNormalArray","numPts","compositePass","drawArraysInstancedANGLE","drawArraysInstanced","glyphBOBuildTime","matrixBuffer","normalBuffer","colorBuffer","pickBuffer","buildArrays","getBuildTime","parray","mcwcMatrix","vtkSelectionNode","fieldType","selectionList","VALUES","FRUSTUM","LOCATIONS","THRESHOLDS","BLOCKS","QUERY","FIELD","VERTEX","EDGE","ROW","vtkDataSetAttributes","attrTypes","cleanAttributeType","attType","cleanAttType","ee","checkNumberOfComponents","uncleanAttType","currentAttribute","removeArrayByIndex","addArray","setActiveAttributeByName","setActiveAttributeByIndex","getArrayWithIndex","arrayIdx","getActiveAttribute","removeAllArrays","removeArray","entry","activeVal","da","copyAttributeFlags","op","attCopyOp","dataArrays","ref","activeScalars","activeVectors","activeTensors","activeTCoords","activeGlobalIds","activePedigreeIds","vtkFieldData","superGetState","initializeFields","copyAllOn","clearFieldFlags","copyFieldFlags","copyStructure","getCopyFieldFlags","getNumberOfArrays","getNumberOfActiveArrays","arraySpec","hasArray","getArrayName","getFlag","passData","fromId","toId","copyFlag","doCopyAllOff","destArr","ncomps","newSize","tId","copyFieldOn","copyFieldOff","doCopyAllOn","copyAllOff","deepCopy","arrNew","copyFlags","FieldDataTypes","UNIFORM","DATA_OBJECT_FIELD","COORDINATE","POINT_DATA","POINT_FIELD_DATA","CELL_FIELD_DATA","VERTEX_FIELD_DATA","EDGE_FIELD_DATA","ROW_DATA","FIELD_ASSOCIATION_NONE","FIELD_ASSOCIATION_POINTS_THEN_CELLS","FIELD_ASSOCIATION_VERTICES","FIELD_ASSOCIATION_EDGES","FIELD_ASSOCIATION_ROWS","NUMBER_OF_ASSOCIATIONS","vtkOpenGLCellArrayBufferObject","cellArray","inRep","outRep","elementCount","blockSize","vertexOffset","normalOffset","tCoordOffset","tCoordComponents","colorComponents","colorOffset","normalData","tcoordData","colorData","textureComponents","colorBO","normalIdx","tcoordIdx","colorIdx","cellCount","addAPoint","cellBuilders","anythingToPoints","numPoints","cellPts","linesToWireframe","polysToWireframe","stripsToWireframe","polysToSurface","npts","stripsToSurface","cellCounters","countFunc","caboCount","packedUCVBO","packedVBO","vboidx","ucidx","addAPointFunc","colorBOStride","setCoordShiftAndScaleMethod","shiftScaleMethod","setCoordShift","shiftArray","setCoordScale","scaleArray","tcoordBO","vtkShader","stype","createShader","shaderSource","getShaderParameter","COMPILE_STATUS","getShaderInfoLog","vtkAbstractMapper3D","diff","propMatrix","hnormal","clipPlanes","clippingPlanes","plane","getNormal","getOrigin","v4","vtkAbstractMapper","addClippingPlane","removeAllClippingPlanes","removeClippingPlane","getClippingPlanes","setClippingPlanes","planes","nbPlanes","inExt","dataDim","BELOW_RANGE_COLOR_INDEX","ABOVE_RANGE_COLOR_INDEX","NAN_COLOR_INDEX","vtkLookupTable","opaqueFlagBuildTime","opaque","nanColor","useBelowRangeColor","belowRangeColor","useAboveRangeColor","aboveRangeColor","table","opaqueFlag","linearIndexLookup","dIndex","maxIndex","linearLookup","indexedLookupFunction","getAnnotatedValueIndexInternal","lookupShiftAndScale","mapScalarsThroughTable","outFormat","inputOffset","lookupFunc","indexedLookup","trange","getMappingRange","getNumberOfColors","inIncr","cptr","forceBuild","hinc","sinc","vinc","ainc","hueRange","saturationRange","valueRange","alphaRange","rgba","buildSpecialColors","buildTime","tptr","base","intColorToUChar","floatColorToUChar","vtkScalarsToColors","setVectorModeToMagnitude","setVectorMode","setVectorModeToComponent","setVectorModeToRGBColors","setAnnotations","annotations","annotationArray","annotation","updateAnnotatedValueMap","setAnnotation","checkForAnnotatedValue","getNumberOfAnnotatedValues","getAnnotatedValue","getAnnotation","getAnnotatedValueIndex","removeAnnotation","needToRemove","resetAnnotations","annotatedValueMap","getAnnotationColor","getIndexedColor","parseFloat","na","componentIn","newColors","convertToRGBA","newscalars","mapVectorsThroughTable","mapVectorsToMagnitude","compsToUse","outputFormat","vectorComponentIn","vectorSizeIn","vectorMode","vectorSize","vectorComponent","inComponents","getVectorSize","magValues","luminanceToRGBA","convtFun","newValues","luminanceAlphaToRGBA","rGBToRGBA","rGBAToRGBA","numComp","numTuples","setMappingRange","mappingRange","nameList","unit","getResolveCoincidentTopologyPolygonOffsetFaces","setResolveCoincidentTopologyPolygonOffsetFaces","setResolveCoincidentTopology","setResolveCoincidentTopologyToDefault","setResolveCoincidentTopologyToOff","setResolveCoincidentTopologyToPolygonOffset","getResolveCoincidentTopologyAsString","resolveCoincidentTopologyPolygonOffsetFaces","RESOLVE_COINCIDENT_TOPOLOGY_MODE","SlicingMode","vtkOpenGLImageMapper","openGLImageSlice","tris","openGLTexture","getSliceAtFocalPoint","setSliceFromCamera","lastTextureComponents","FALSE","cw","getColorWindow","cl","getColorLevel","cfun","getRGBTransferFunction","cRange","oglShiftScale","texColorUnit","i2wmat4","getIndexToWorld","imagemat","iType","getInterpolationType","cWidth","cTable","cfunToString","colorTextureString","cfTable","getTable","getClosestIJKAxis","ijkMode","nSlice","getSlice","getSlicingMode","getSliceAtPosition","sliceOffset","I","J","K","NONE","numComponents","setGenerateMipmap","ptsArray","tcoordArray","basicScalars","subarray","setName","cells","X","Y","Z","InterpolationType","vtkOpenGLImageSlice","vtkOpenGLPixelSpaceCallbackMapper","texels","getUseZValues","zbt","fb","getFramebuffer","invokeCallback","setDepthRequested","vtkOpenGLRenderer","updateLights","getViewPropsWithNestedProps","clearMask","clearColor","COLOR_BUFFER_BIT","getPreserveDepthBuffer","clearDepth","DEPTH_BUFFER_BIT","ts","SCISSOR_TEST","colorMask","DEPTH_TEST","cameraPass","getSizeByReference","vport","tileViewPort","vpu","vpv","ndvp","vpu2","vpv2","ndvp2","vtkOpenGLSkybox","imat","camPos","tmaps","vtkOpenGLSphereMapper","replacement","fragString","vbo","pointArray","scales","getScaleArray","setColorOffset","setColorBOStride","setColorBO","setColorComponents","setStride","cos30","vboIdx","ucIdx","getRadius","vtkOpenGLStickMapper","picking","orientationArray","getOrientationArray","verticesArray","vtkOpenGLVolume","traverseVolumePass","MCWCMatrix","vtkOpenGLVolumeMapper","zBufferTexture","opacityTexture","lightingTexture","jitterTexture","openGLVolume","gopacity","getUseGradientOpacity","getComputedGradients","volInfo","spc","getSpacing","maxSamples","getSampleDistance","lightNum","getLights","getShade","lastZBufferTexture","getGradientsBuildTime","getRenderTargetSize","crange","getClippingRange","dcxmin","dcxmax","dcymin","dcymax","idxToView","idxNormalMatrix","getMaximumSamplesPerRay","vctoijk","pos2","dcvc","camDOP","getDirectionOfProjection","lightDir","halfAngle","sscale","vprop","ofun","getScalarOpacity","oRange","lightingInfo","gomin","getGradientOpacityMinimumOpacity","gomax","getGradientOpacityMaximumOpacity","goRange","getGradientOpacityMinimumValue","getGradientOpacityMaximumValue","lastXYF","fvp","getAutoAdjustSampleDistances","rwi","rft","getLastFrameTime","avgFrameTime","avgWindowArea","txyf","getDesiredUpdateRate","targetXYF","getStillUpdateRate","getImageSampleDistance","xyf","computedGradientsRenderTimeout","lightingActivatedInvoked","invokeLightingActivated","copyShader","copyVAO","Bounds","bounnds","oTable","opacityFactor","getScalarOpacityUnitDistance","opacityTextureString","oWidth","ofTable","scalarTextureString","lightingTextureString","colortextureString","fullViewportTime","FAST_LINEAR","SET_GET_FIELDS","vtkShaderCache","nFSSource","gl2","fragDepthString","version","nVSSource","nGSSource","vertexCode","fragmentCode","geometryCode","getShaderProgram","getCompiled","bindShader","hashInput","shaderPrograms","sps","getVertexShader","setSource","getFragmentShader","getGeometryShader","setMd5Hash","releaseCurrentShader","sp","astShaderBound","lastShaderBound","vtkOpenGLTextureUnitManager","deleteTable","numberOfTextureUnits","textureUnits","isAllocated","allocateUnit","textureUnitId","vtkCamera","viewMatrix","projectionMatrix","w2pMatrix","dopbasis","upbasis","tmpvec1","tmpvec2","rotateMatrix","newPosition","newFocalPoint","orthogonalizeViewUp","vt","computeDistance","focalPoint","setDistance","directionOfProjection","computeViewPlaneNormal","viewPlaneNormal","dolly","amount","setRoll","roll","getRoll","at","viewUpVec4","viewDir","azimuth","fp","yaw","elevation","pitch","zoom","parallelProjection","viewAngle","setThickness","thickness","setObliqueAngles","physicalOrientationToWorldDirection","ori","getPhysicalToWorldMatrix","oriq","coriq","qdir","getWorldToPhysicalMatrix","physicalScale","physicalTranslation","physVRight","physicalViewNorth","physicalViewUp","phystoworld","computeViewParametersFromViewMatrix","oldDist","setDirectionOfProjection","setViewMatrix","nearz","farz","clippingRange","xmin","windowCenter","xmax","ymin","ymax","useOffAxisProjection","useHorizontalViewAngle","znear","zfar","vMat","pMat","getFrustumPlanes","getOrientation","setDeviceAngles","screen","rotmat","dop","setOrientationWXYZ","toMat4","newdop","newvup","screenBottomLeft","screenBottomRight","screenTopRight","freezeFocalPoint","useScissor","LIGHT_TYPES","vtkLight","transformMatrix","getTransformedFocalPoint","directionMTime","setDirectionAngle","elevationRadians","azimuthRadians","setPositional","setLightType","setLightTypeToCameraLight","setLightTypeToSceneLight","setTransformMatrix","lightType","switch","positional","exponent","coneAngle","attenuationValues","shadowAttenuation","vtkViewport","getViewProps","hasViewProp","newPropList","removeAllViewProps","allprops","addActor2D","removeActor2D","actors2D","displayToView","viewToDisplay","nvp","normalizedDisplayToNormalizedViewport","normalizedViewportToView","viewToNormalizedViewport","normalizedViewportToNormalizedDisplay","PickPropFrom","background2","gradientBackground","pixelAspect","vtkRenderWindow","hasRenderer","removeRenderer","hasView","views","removeView","getStatistics","results","propCount","invisiblePropCount","mpr","captureImages","neverRendered","numberOfLayers","vtkInteractorStyleTrackballCamera","handleMouseRotate","invokeInteractionEvent","handleMousePan","handleMouseDolly","handleMouseSpin","previousPosition","handleButton3D","ed","startCameraPose","endCameraPose","handleMove3D","updateCameraPose","oldTrans","getPhysicalTranslation","speed","pscale","getPhysicalScale","handleLeftButtonPress","startDolly","startPan","startSpin","startRotate","handleLeftButtonRelease","endDolly","endPan","endSpin","endRotate","handleStartMouseWheel","handleMouseWheel","handleEndMouseWheel","handleStartPinch","previousScale","handleEndPinch","handleStartRotate","previousRotation","handleEndRotate","handleStartPan","previousTranslation","handleEndPan","handlePinch","dollyByFactor","handlePan","viewFocus","computeWorldToDisplay","focalDepth","lastTrans","newPickPoint","computeDisplayToWorld","oldPickPoint","motionVector","viewPoint","getLightFollowCamera","handleRotate","getView","deltaElevation","deltaAzimuth","rxf","motionFactor","ryf","autoAdjustCameraClippingRange","oldAngle","dyf","stateNames","Rotate","Pan","Spin","Dolly","CameraPose","WindowLevel","Slice","vtkInteractorStyle","invokeStartInteractionEvent","invokeEndInteractionEvent","anActor","handleObservers","getViews","vtkInteractorObserver","unsubscribeFromEvents","subscribedEvents","subscribeToEvents","extractCellSizes","currentIdx","vtkCellArray","recompute","numberOfCells","cellSizes","getCellSizes","vtkPointSet","fieldDataLocations","HTTP_DATA_ACCESS","ARRAY_BUILDERS","vtkStringArray","GEOMETRY_ARRAYS","arrayToDownload","cellName","vtkUnstructuredGrid","cellTypes","vtkRectilinearGrid","xCoordinates","yCoordinates","zCoordinates","processDataSet","fetchArray","enableArray","registration","pendingPromises","compression","err","vtkHttpDataSetReader","dataAccessHelper","baseURL","updateMetadata","fetchBinary","zipContent","zip","fetchJSON","fullpath","path","datasetObj","arrayToFecth","processNext","metaArray","activeArray","isBusy","requestCount","TYPE_MAPPING","http","getContent","removeLeadingSlash","fetchText","txt","basepath","bText","atob","to","uint8array","encode","invokeBusy","byteLength","toByteArray","fromByteArray","lookup","revLookup","Arr","charCodeAt","placeHoldersCount","b64","placeHolders","tripletToBase64","encodeChunk","uint8","extraBytes","parts","maxChunkLength","len2","xhr","XMLHttpRequest","onreadystatechange","readyState","response","open","responseType","send","pending","responseText","handleUint8Array","handleString","string","handlers","createOptions","zipRoot","loadAsync","metaFiles","relativePath","zipEntry","fullRootPath","dirName","folder","doneCleanUp","asyncType","asyncCallback","file","async","vtkImageMarchingCubes","ids","voxelScalars","voxelGradients","voxelPts","edgeMap","getVoxelScalars","getVoxelPoints","getPointGradient","getVoxelGradients","produceTriangles","cVal","CASE_MASK","VERT_MAP","pId","voxelTris","getCase","eid","edgeVerts","getEdge","n0","n1","pBuffer","tBuffer","nBuffer","polydata","nData","timeEnd","MARCHING_CUBE_CASES","EDGES","OrientationModes","ScaleModes","vtkGlyph3DMapper","getOrientationModeAsString","orientationMode","setOrientationModeToDirection","setOrientationMode","DIRECTION","ROTATION","getOrientationArrayData","idata","getVectors","getScaleModeAsString","scaleMode","setScaleModeToScaleByMagnitude","setScaleMode","SCALE_BY_MAGNITUDE","SCALE_BY_COMPONENTS","setScaleModeToScaleByConstant","SCALE_BY_CONSTANT","getScaleArrayData","gdata","pts","sArray","sData","numSComp","scaling","gbounds","tcorner","oArray","matrixArray","mbuff","nbuff","vMag","vNew","scaleFactor","colorArray","glyph","mult","orient","boundsTime","vtkArrowSource","cylinder","setResolution","shaftResolution","setRadius","setHeight","setCenter","cylinderPD","cylinderPts","cylinderNormals","cone","tipResolution","conePD","conePts","append","appendPD","appendPts","offsetCellArray","appendCellData","dest","ptOffset","vtkAppendPolyData","ttype","firstType","numVerts","numLines","numStrips","numPolys","hasPtNormals","hasPtTCoords","hasPtScalars","dsNumPts","ptD","outputPointsPrecision","vertData","lineData","stripData","newPtNormals","newPtTCoords","newPtScalars","lds","dsNormals","numberOfTuples","dsTCoords","dsScalars","dsPD","ptNorms","ptTCoords","ptScalars","setPoints","vtkCylinderSource","normalsData","tcData","nbot","ntop","xtop","tcbot","tctop","botIdx","topIdx","vtkPixelSpaceCallbackMapper","windowSize","depthValues","dataPoints","hw","hh","pidx","point","coord","linIdx","useZValues","vtkOrientationMarkerWidget","previousCameraInput","selfRenderer","interactorUnsubscribe","viewUnsubscribe","computeViewport","viewXSize","viewYSize","minViewSize","pixelSize","viewportSize","minPixelSize","maxPixelSize","xFrac","yFrac","viewportCorner","TOP_LEFT","TOP_RIGHT","BOTTOM_RIGHT","updateViewport","updateMarkerOrientation","currentCamera","enabling","getNumberOfLayers","setNumberOfLayers","setInteractive","setVisibility","onAnimation","corner","sizeFactor","setActor","previousState","FACE_TO_INDEX","xPlus","xMinus","yPlus","yMinus","zPlus","zMinus","vtkAnnotatedCubeActor","xPlusFaceProperty","xMinusFaceProperty","yPlusFaceProperty","yMinusFaceProperty","zPlusFaceProperty","zMinusFaceProperty","setInterpolate","updateFaceTexture","faceName","newProp","defaultStyle","ctxt","strokeStyle","strokeRect","save","faceRotation","textSize","restore","vtkImage","canvasToImageData","updateAllFaceTextures","setXPlusFaceProperty","vtkTexture","imageLoaded","complete","repeat","interpolate","edgeClamp","boundingBox","getImageData","imageData","setOrigin","setSpacing","imageToImageData","flipX","flipY","setupLSS","lss","lssSource","lssStructure","phi","lon","lat","cos_theta","sin_theta","cos_phi","sin_phi","buildLSS","newLSSInstance","vtkImageStreamline","indices","paramCoords","weights","voxelIndices","dimensions","velAt","xtmp","interpolationFunctions","pcoords","sf","rm","tm","computeStructuredCoordinates","tol2","isInBounds","doubleLoc","tmpInBounds","minExt","maxExt","getVoxelIndices","vectorAt","velArray","velAtArg","vel","computeNextStep","delT","streamIntegrate","maxSteps","maximumNumberOfSteps","integrationStep","pointsBuffer","step","seeds","seedPts","nSeeds","datas","vectors","cellArrayLength","pointArrayLength","offset2","content","insertInto","locals","hot","accept","newContent","dispose"],"mappings":"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WAAWO,UAAUhN,KAAV,CAAjB;AACAjC,YAAM0O,QAAN,EAAgBjT,GAAhB,CAAoB2G,IAAIsM,QAAJ,CAApB;AACD;AACF;;AAED,MAAMO,YAAYhP,OAAOC,IAAP,CAAY4O,QAAZ,CAAlB;AACA,MAAI7M,QAAQgN,UAAUlN,MAAtB;;AAbA;AAeE;AACA,QAAM5B,MAAM8O,UAAUhN,KAAV,CAAZ;AACAjC,UAAMG,GAAN,IAAa2O,SAAS3O,GAAT,CAAb;;AAEA;AACA,QAAM+O,UAAUL,MAAM1O,GAAN,CAAhB;AACAW,sBAAgB3F,WAAWgF,GAAX,CAAhB,IAAqC,UAACjB,KAAD,EAAW;AAC9C,UAAIA,UAAUc,MAAMG,GAAN,CAAd,EAA0B;AACxBH,cAAMG,GAAN,IAAajB,KAAb;AACA,YAAMiQ,aAAaD,QAAQhQ,KAAR,CAAnB;AACA8P,mBAAWG,UAAX;AACArO,kBAAUY,QAAV;AACD;AACF,KAPD;AArBF;;AAcA,SAAOO,OAAP,EAAgB;AAAA;AAef;;AAED;AACA,MAAIgN,UAAUlN,MAAd,EAAsB;AACpBvG,QAAIsF,SAAJ,EAAed,KAAf,EAAsBiP,SAAtB;AACD;AACF;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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AkB;AACxC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA,WAAW,oCAAoC;AAC/C,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA,WAAW,oCAAoC;AAC/C,WAAW,oCAAoC;AAC/C,YAAY,oCAAoC;AAChD;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,2CAA2C;AACtD,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B;;AAE9B;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA,eAAe,wBAAwB;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,UAAU;AACrB,YAAY,OAAO;AACnB;AACA;AACA,mBAAmB;AACnB,eAAe,sBAAsB,OAAO;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;AACA;;AAEA;AACA;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;;;;;;;;;;;;;;;ACjcA;;IAAYI,Q;;AACZ;;IAAYC,I;;AACZ;;IAAYC,K;;AACZ;;IAAYC,I;;AACZ;;IAAYC,I;;AACZ;;IAAYlI,I;;AACZ;;IAAYmI,K;;AACZ;;IAAYC,I;;AACZ;;IAAYC,I;;AACZ;;IAAYC,I;;;;AArCZ;;;;;;;AAOA;;;;;;;;;;;;;;;;;;;AAmBA;;QAcER,Q,GAAAA,Q;QACAC,I,GAAAA,I;QAAMC,K,GAAA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CAAC,UAAD,CAAjC;;AAEA;AACAypB,cAAY3oB,SAAZ,EAAuBd,KAAvB;AACD;;AAED;;AAEA,IAAMhE,cAAc,gBAAMA,WAAN,CAAkBsM,MAAlB,EAA0B,aAA1B,CAApB;;AAEA;;kBAEe,EAAEtM,wBAAF,EAAesM,cAAf,EAAuBkhB,sBAAvB,E;;;;;;;;;ACzMf;AACA;AACA;;;;;;;;ACFA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,MAAM;AACrB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA,0BAA0B,kCAAkC;AAC5D;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,OAAO;AACtB,gBAAgB,OAAO;AACvB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AA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CA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;;AAE5B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA,4BAA4B,YAAY;AACxC,qBAAqB,8BAA8B;AACnD;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,kCAAkC,OAAO;AACzC;AACA;;AAEA;AACA;AACA;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;8CCxGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;;;;;;;;;;;;;ACrCA;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,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;;AAEA;AACA,2BAA2B,kBAAkB;;AAE7C;AACA;AACA,oDAAoD,OAAO;;AAE3D;AACA;AACA,kBAAkB,YAAY;;AAE9B;AACA;AACA,oBAAoB,YAAY;;AAEhC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;AACA;AACA,uBAAuB,qBAAqB,UAAU;;AAEtD;AACA;AACA,wBAAwB,0BAA0B,cAAc,UAAU;;AAE1E;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,0BAA0B,UAAU;;AAE5D;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;;;AAGA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,wBAAwB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA,WAAW,wBAAwB;AACnC,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;AClRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;QCjBgBgI,M,GAAAA,M;QAuCAC,G,GAAAA,G;;AA5ChB;;;;AACA;;;;AAEA,oBAAgB,EAAhB;;AAEO,SAASD,MAAT,CAAgBE,GAAhB,EAAqBC,OAArB,EAA8BpjC,SAA9B,EAAyCqjC,SAAzC,EAAoD;AACzD,wBAAEF,GAAF,EAAOjrC,EAAP,CAAU,iBAAV,EAA6B,UAAStF,KAAT,EAAgB;AAC3C,QAAI0wC,OAAO,sBAAE,MAAF,CAAX;;AAEA,0BAAE,IAAF,EAAQC,WAAR,CAAoB,gBAApB;AACAD,SAAK1V,IAAL,CAAU,gBAAV,EAA4B0V,KAAK1V,IAAL,CAAU,gBAAV,IAA8B,CAA1D;AACD,GALD;;AAOA,wBAAEuV,GAAF,EAAOjrC,EAAP,CAAU,gBAAV,EAA4B,UAAStF,KAAT,EAAgB;AAC1C,QAAI0wC,OAAO,sBAAE,MAAF,CAAX;;AAEA,QAAI,OAAOA,KAAK1V,IAAL,CAAU,gBAAV,CAAP,IAAsC,WAA1C,EACE0V,KAAK1V,IAAL,CAAU,gBAAV,EAA4B,CAA5B;;AAEF,QAAI,sBAAE,IAAF,EAAQ4V,QAAR,CAAiB,gBAAjB,CAAJ,EAAwC;;AAExC,0BAAE,IAAF,EAAQC,QAAR,CAAiB,gBAAjB;AACAH,SAAK1V,IAAL,CAAU,gBAAV,EAA4B0V,KAAK1V,IAAL,CAAU,gBAAV,IAA8B,CAA1D;AACA,0BAAE,IAAF,EAAQ8V,GAAR,CAAY,SAAZ,EAAuB,OAAO,KAAKJ,KAAK1V,IAAL,CAAU,gBAAV,CAAnC;;AAEA,0BAAE,iBAAF,EACG+V,GADH,CACO,iBADP,EAEGD,GAFH,CAEO,SAFP,EAEkB,OAAO,KAAKJ,KAAK1V,IAAL,CAAU,gBAAV,CAF9B,EAGG6V,QAHH,CAGY,gBAHZ;AAID,GAhBD;;AAkBA,MAAInjC,QAAQN,YAAY,CAAZ,GAAgB,GAA5B;AACAmjC,MAAIvV,IAAJ,CACE,cADF,EAEE9uB,WAAW,YAAW;AACpBskC;AACD,GAFD,EAEG9iC,KAFH,CAFF;AAMA6iC,MAAIvV,IAAJ,CAAS,qBAAT,EAAgC,YAAW;AACzC,QAAIyV,SAAJ,EAAeA,YAAf,KACKF,IAAIS,KAAJ,CAAU,MAAV;AACN,GAHD;AAID;;AAEM,SAASV,GAAT,CAAaC,GAAb,EAAkB;AACvB9iC,eAAa8iC,IAAIvV,IAAJ,CAAS,cAAT,CAAb;AACAuV,MAAIvV,IAAJ,CAAS,qBAAT;AACD,C;;;;;;;;;;;;QCtBeiW,I,GAAAA,I;QAQAC,I,GAAAA,I;;AAjChB;;;;AACA;;AACA;;IAAYC,K;;;;;;AAEZ,oBAAgB,EAAhB;;AAEA,IAAIC,OAAO,CACT,oDADS,EAET,4CAFS,EAGT,6BAHS,EAIT,4BAJS,EAKT,8HALS,EAMT,gBANS,EAOT,QAPS,EAQT,8DARS,EAST,QATS,EAUT,4BAVS,EAWT,qEAXS,EAYT,QAZS,EAaT,QAbS,EAcT,QAdS,EAeT,QAfS,EAgBTrtC,IAhBS,CAgBJ,EAhBI,CAAX;AAiBA,IAAIstC,cAAc,sBAAED,IAAF,CAAlB;;AAEO,SAASH,IAAT,CAActnC,GAAd,EAAmB;AACxBrI,UAAQM,GAAR,CAAY,4BAA4B+H,GAAxC;AACA,wBAAE,aAAF,EAAiB0nC,WAAjB,EAA8BC,IAA9B,CAAmC3nC,GAAnC;AACAwnC,QAAMd,MAAN,CAAagB,WAAb,EAA0B,YAAW;AACnCA,gBAAYL,KAAZ;AACD,GAFD;AAGD;;AAEM,SAASE,IAAT,GAAgB;AACrBC,QAAMb,GAAN,CAAUe,WAAV;AACAA,cAAYL,KAAZ,CAAkB,MAAlB;AACD,C;;;;;;;;;ACpCD,iCAAO,CAAC,sBAAD,CAAP,mCAAmB,UAASO,CAAT,EAAY;AAC7B,MAAIC,OAAO,IAAX;;AAEAA,OAAKC,WAAL,GAAoB,UAASC,WAAT,EAAsB;AACxC,QAAIC,SAAS,EAAb;;AAEA,SAAK,IAAI1oC,IAAI,CAAb,EAAgBA,IAAIyoC,YAAY1rC,MAAhC,EAAwC,EAAEiD,CAA1C,EAA6C;AAC3C,UAAI2oC,QAAQF,YAAYzoC,CAAZ,EAAeqiB,KAAf,CAAqB,GAArB,EAA0B,CAA1B,CAAZ;;AAEA,UAAIsmB,MAAM5rC,MAAN,KAAiB,CAArB,EAAwB;;AAExB2rC,aAAOC,MAAM,CAAN,CAAP,IAAmBC,mBAAmBD,MAAM,CAAN,EAAS9gB,OAAT,CAAiB,KAAjB,EAAwB,GAAxB,CAAnB,CAAnB;AACD;;AAED,WAAO6gB,MAAP;AACD,GAZkB,CAYhBnkB,OAAO8G,QAAP,CAAgB1C,MAAhB,CAAuB3M,MAAvB,CAA8B,CAA9B,EAAiCqG,KAAjC,CAAuC,GAAvC,CAZgB,CAAnB;;AAcAkmB,OAAKM,WAAL,GAAmB,YAAW;AAC5BxwC,YAAQM,GAAR,CAAY4vC,KAAKC,WAAjB;AACAM,YAAQC,SAAR,CAAkB,EAAlB,EAAsB,EAAtB,EAA0B,MAAMT,EAAEK,KAAF,CAAQJ,KAAKC,WAAb,CAAhC;AACD,GAHD;;AAKA,SAAOD,IAAP;AACD,CAvBD;AAAA,qG;;;;;;;;;;;;;;;;;;;;;ACAO,IAAMS,kCAAa;AACxBC,gBAAc,CADU;AAExBC,wBAAsB,CAFE;AAGxBC,kBAAgB;AAHQ,CAAnB;;kBAMQ;AACbH;AADa,C;;;;;;;ACNf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,mDAAmD;AACxE;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,uCAAuC,SAAS;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;;AAEA;AACA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD,EAAE;AAClD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,eAAe;AACvC;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,wBAAwB,QAAQ;AAChC;AACA,qBAAqB,eAAe;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD,OAAO;AAC9D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD,OAAO;AAC9D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA,GAAG;AACH;AACA,eAAe,SAAS;AACxB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,YAAY;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;AC5vDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;;;;;;;;AC1GA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AAC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AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iCAAiC;;AAEjC;;AAEA,2CAA2C;AAC3C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,oDAAoD;AACpD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,E;;;;;;;ACvpBA;AACA;AACA,E;;;;;;ACFA;AACA;AACA,iCAAiC,QAAQ,gBAAgB,UAAU,GAAG;AACtE,CAAC,E;;;;;;;ACHD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,qCAAqC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,cAAc;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC1EA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,SAAS;AAC1B;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;AACA;;AAEA;;AAEA,qBAAqB,SAAS;AAC9B;AACA;;AAEA,wBAAwB;AACxB;;AAEA;;AAEA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A;;;AAGA;AACA;AACA;;AAEA;;AAEA,mBAAmB,SAAS;AAC5B;AACA;;AAEA,sBAAsB;AACtB;;;AAGA;;;;;;;;AC1DA;AACA;;;AAGA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAK,wCAAwC,EAAE,aAAa,sBAAsB;AAClF,KAAK,oDAAoD,EAAE,aAAa,0BAA0B;;;AAGlG;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA,kCAAkC;;;AAGlC;AACA;AACA;;AAEA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,wBAAwB,aAAa;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,mCAAmC,SAAS;AAC5C;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,sBAAsB,SAAS;AAC/B;AACA;AACA,mBAAmB,qBAAqB,UAAU;;AAElD;AACA;AACA,oBAAoB,0BAA0B,gBAAgB,UAAU;;AAExE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,0BAA0B,UAAU;;AAExD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB,kBAAkB;;AAE3C;AACA;AACA,kDAAkD,OAAO;;AAEzD;AACA;AACA,gBAAgB,YAAY;;AAE5B;AACA;AACA,kBAAkB,YAAY;;AAE9B;AACA;;;;;;;;ACxLA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC9CA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;ACnEA,iBAAiB;;AAEjB;AACA;AACA;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,2EAA2E,6EAA6E;AACxJ;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,kGAAkG;AAClG,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA,4FAA4F;AAC5F,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,gDAAgD;;AAEhD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC;;AAEtC;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,+CAA+C;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB;;AAEpB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,SAAS;AAC5B;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA,4EAA4E;;AAE5E;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,iBAAiB,yBAAyB;AAC1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mDAAmD;AACnD;AACA,mDAAmD,iEAAiE;AACpH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA,uCAAuC;AACvC,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,OAAO;AACvC;AACA;AACA;;AAEA;AACA,gCAAgC,OAAO;AACvC;AACA;AACA;AACA,C;;;;;;;AC9+BA;;;;;;;;ACAA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,E;;;;;;;ACvEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,sCAAsC,sCAAsC;AACzG;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,C;;;;;;;AC/QA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,YAAY;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK,EAAE;AACP,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA,C;;;;;;;ACrNA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,2BAA2B,yBAAyB,aAAa;AACjE;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;;;;;;ACzGA,6BAA6B;AAC7B,qCAAqC,gC;;;;;;ACDrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;ACnBA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,E;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;;8CCNA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,WAAW,yBAAyB;AACpC,WAAW,OAAO;AAClB,YAAY,0CAA0C;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,YAAY,yBAAyB;AACrC;AACA;AACA;AACA;AACA,cAAc,sBAAsB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sBAAsB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,gBAAgB,aAAa;AAC7B;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,aAAa;AACb;AACA;AACA,KAAK;AACL;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,SAAS;AACxB,gBAAgB,0BAA0B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;;;AAGA;;;;;;;;;AC1NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACVA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;;;;;;;ACnHA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3BA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,qCAAqC;AAChD,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3BA;AACA;AACA;;AAEA;AACA;AACA,eAAe,sBAAsB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,QAAQ;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxDA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,gBAAgB,MAAM;AACtB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,OAAO;AACtB,gBAAgB,MAAM;AACtB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,OAAO;AACtB,gBAAgB,MAAM;AACtB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,OAAO;AACtB,gBAAgB,MAAM;AACtB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,OAAO;AACtB,gBAAgB,OAAO;AACvB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,OAAO;AACtB,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA,uCAAuC,iBAAiB;AACxD;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,OAAO;AACtB,gBAAgB,OAAO;AACvB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,OAAO;AACtB,gBAAgB,OAAO;AACvB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,OAAO;AACtB,gBAAgB,OAAO;AACvB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,OAAO;AACtB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,gBAAgB,KAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;;;;;;;;ACnHA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;QCiQgBv0E,M,GAAAA,M;;AAtRhB;;;;AACA;;;;AACA;;;;AACA;;;;;;;;AAEA;AACA;AACA;;AAEA,SAASg/E,aAAT,CAAuBxmF,SAAvB,EAAkCd,KAAlC,EAAyC;AACvC;AACAA,QAAMkB,cAAN,CAAqBxB,IAArB,CAA0B,eAA1B;;AAEA,WAASkH,WAAT,CAAqB2gF,MAArB,EAA6BC,OAA7B,EAAsC;AAAA;;AACpC,QAAIxnF,MAAMyB,OAAV,EAAmB;AACjB;AACD;;AAED,QAAMgmF,WAAW,mBAAYzrF,WAAZ,EAAjB;AACAwrF,YAAQ,CAAR,IAAaC,QAAb;;AAEA,QAAMC,gBAAgB,CAAtB;AACA,QAAMC,iBAAiB,EAAvB;;AAEA;AACA,QAAM18C,SAAS,IAAI1hB,OAAOvpB,MAAM4nF,SAAb,CAAJ,CA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ACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0CAA0C,sBAAsB,EAAE;AAClE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA;;AAEA,KAAK;AACL;AACA;;AAEA,KAAK;AACL;AACA;;AAEA,KAAK;AACL;AACA;;AAEA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,CAAC;;;;;;;;ACzLD;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,oBAAoB;AACpB,0BAA0B;;AAE1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;8CC3DA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;;AAEA;AACA;;AAEA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA,kBAAkB,YAAY;AAC9B;AACA,kBAAkB,YAAY;AAC9B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,2BAA2B,sCAAsC;AACjE;AACA,qEAAqE;AACrE;AACA;AACA;AACA;AACA,6BAA6B,mBAAmB,EAAE;AAClD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA,8CAA8C;AAC9C;;AAEA;AACA;;;AAGA;AACA;AACA,CAAC;AACD,iDAAqB,aAAa,EAAE;AAAA;AACpC,CAAC;AACD;AACA;;AAEA,CAAC;AACD;AACA;AACA;AACA;;;;;;;;;;8CC/GA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA,iBAAiB,yBAAyB;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB,wCAAwC;AACjE;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,mBAAmB,EAAE;AAClD;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD,iDAAqB,aAAa,EAAE;AAAA;AACpC,CAAC;AACD;AACA;;AAEA,CAAC;AACD;AACA;AACA;AACA;;;;;;;;;;8CC9EA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,aAAa,aAAa;AAC1C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA,iBAAiB,yBAAyB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB,wCAAwC;AACjE;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,mBAAmB,EAAE;AAClD;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD,iDAAqB,aAAa,EAAE;AAAA;AACpC,CAAC;AACD;AACA;;AAEA,CAAC;AACD;AACA;AACA;AACA;;;;;;;;;;8CCnFA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,gBAAgB;AAC7B,uBAAuB;AACvB,uBAAuB;AACvB,uBAAuB;AACvB,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qBAAqB;AACpC,8BAA8B;;AAE9B;AACA;;AAEA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yBAAyB,wCAAwC;AACjE;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,mBAAmB,EAAE;AAClD;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD,iDAAqB,aAAa,EAAE;AAAA;AACpC,CAAC;AACD;AACA;;AAEA,CAAC;AACD;AACA;AACA;AACA;;;;;;;;;8CC/FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,8CAA8C;AAC9C,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,oCAAoC;AACpC,iCAAiC;AACjC;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yBAAyB,wCAAwC;AACjE;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,mBAAmB,EAAE;AAClD;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD,iDAAqB,aAAa,EAAE;AAAA;AACpC,CAAC;AACD;AACA;;AAEA,CAAC;AACD;AACA;AACA;AACA;;;;;;;;8CCjJA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA,iBAAiB,yBAAyB;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB,wCAAwC;AACjE;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,mBAAmB,EAAE;AAClD;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD,iDAAqB,aAAa,EAAE;AAAA;AACpC,CAAC;AACD;AACA;;AAEA,CAAC;AACD;AACA;AACA;AACA;;;;;;;;;;ACpGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB,iBAAiB;;AAElE;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,8BAA8B;AAC9B,0BAA0B;AAC1B,iBAAiB;AACjB,oBAAoB;AACpB;AACA,2BAA2B;AAC3B,aAAa;AACb,aAAa;AACb,eAAe;AACf;AACA,uBAAuB;AACvB;;AAEA,2BAA2B,sBAAsB;AACjD,2BAA2B,gCAAgC;AAC3D;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA,mCAAmC,qBAAqB,EAAE;AAC1D;;AAEA;AACA;AACA,2BAA2B,sBAAsB,aAAa;;AAE9D;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,kBAAkB;;AAElC;AACA;AACA;AACA;AACA,aAAa,WAAW;AACxB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,4CAA4C,EAAE;AACzD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;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ACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mBAAmB;AAClC;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AAAA;AACL,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA,CAAC;;;;;;;;;;;;;;QCpLeA,M,GAAAA,M;;AAnGhB;;;;;;IAEQtN,a,mBAAAA,a;;AAER;AACA;AACA;;AAEA,SAASgkH,2BAAT,CAAqCl+G,SAArC,EAAgDd,KAAhD,EAAuD;AACrD;AACAA,QAAMkB,cAAN,CAAqBxB,IAArB,CAA0B,6BAA1B;;AAEA;AACA;AACA;AACA;AACAoB,YAAUm+G,WAAV,GAAwB,YAAM;AAC5B,SAAK,IAAIj6G,IAAI,CAAb,EAAgBA,IAAIhF,MAAMk/G,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A;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC,qBAAqB;;AAEtB;;;;AAIA;AACA;AACA;;AAEA;AACA,kBAAkB,YAAY,EAAE;AAChC;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,+BAA+B;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,+BAA+B;AAC9E;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,iBAAiB,WAAW,WAAW;AACvC,iBAAiB,WAAW,WAAW;AACvC,iBAAiB,WAAW,YAAY;AACxC,mBAAmB,aAAa,aAAa;AAC7C,mBAAmB,aAAa,aAAa;AAC7C,mBAAmB,aAAa,cAAc;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,4BAA4B,2BAA2B,wCAAwC,iBAAiB,2DAA2D,4DAA4D,+CAA+C,KAAK;AACxU,6CAA6C,8BAA8B,2BAA2B,iBAAiB,mDAAmD,KAAK;AAC/K;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,8BAA8B;AAC9B;AACA,0BAA0B;AAC1B;AACA,gCAAgC;AAChC;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,+BAA+B;AAC/B;AACA,2BAA2B;AAC3B;AACA,iCAAiC;AACjC;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB,mBAAmB,YAAY;AAC/B,qBAAqB,WAAW;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB,mBAAmB,YAAY;AAC/B,qBAAqB,WAAW;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,+BAA+B,iBAAiB,gEAAgE,KAAK;AAC1J,qCAAqC,uBAAuB,iBAAiB,2BAA2B,KAAK;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8BAA8B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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gB,0CAA0C,EAAE,2BAA2B,8BAA8B,EAAE,gBAAgB,0CAA0C,EAAE,2BAA2B,wBAAwB,EAAE,aAAa,sCAAsC,EAAE,2BAA2B,wBAAwB,EAAE,aAAa,uCAAuC,EAAE,2BAA2B,wBAAwB,EAAE,aAAa,uCAAuC,EAAE,2BAA2B,wBAAwB,EAAE,aAAa,uCAAuC,EAAE,2BAA2B,yBAAyB,EAAE,cAAc,sCAAsC,EAAE,2BAA2B,0CAA0C,EAAE,gCAAgC,qCAAqC,EAAE,2BAA2B,0BAA0B,EAAE,gBAAgB,qCAAqC,EAAE,2BAA2B,wBAAwB,EAAE,cAAc,+BAA+B,EAAE,2BAA2B,8BAA8B,EAAE,oBAAoB,4BAA4B,EAAE,2BAA2B,0BAA0B,EAAE,aAAa,4BAA4B,EAAE,uBAAuB,gBAAgB,uCAAuC,EAAE,uBAAuB,iBAAiB,uCAAuC,EAAE,uBAAuB,iBAAiB,+BAA+B,EAAE,uBAAuB,kBAAkB,uCAAuC,EAAE,uBAAuB,kBAAkB,uCAAuC,EAAE,uBAAuB,kBAAkB,6BAA6B;AACplW;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,uBAAuB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,6CAA6C;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,8BAA8B;AAC9E;AACA,OAAO;AACP;AACA;AACA;AACA,qEAAqE;AACrE;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,oCAAoC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,YAAY,EAAE;AAChC;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,mCAAmC,0BAA0B,EAAE;AAC/D,yCAAyC,eAAe;AACxD;AACA;AACA;AACA,8DAA8D,+DAA+D;AAC7H;AACA;AACA,UAAU;AACV;AACA;AACA,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;AACjjB,iDAAiD,0CAA0C,0DAA0D,EAAE;AACvJ;AACA,oFAAoF,IAAI,QAAQ,IAAI;AACpG;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;AACD;AACA,OAAO;AACP;AACA,iCAAiC;AACjC,OAAO;AACP;AACA,CAAC;AACD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,QAAQ;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,QAAQ;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,UAAU,gBAAgB,EAAE;AACrF;AACA;AACA;AACA,mDAAmD,UAAU,gBAAgB,EAAE;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,8CAA8C;AAC9C;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,QAAQ;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,CAAC;AACD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;AAGA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;;;;;;;;;;;;;;QC1rFeA,M,GAAAA,M;;AA9uBhB;;AAEA;;;;AACA;;;;;;IAEQvN,a,mBAAAA,a;;AAER;;AAEA;;;;;AAKA;AACA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GAAa,IAApB,CAAV;AACA3L,cAAU,IAAV;AACD,GALD,MAKO,IAAIosH,eAAe,CAAnB,EAAsB;AAC3BzgH,UAAM,CAACwgH,MAAMz/G,MAAM,CAAZ,KAAkB,CAAnB,IAAyBy/G,MAAMz/G,MAAM,CAAZ,CAA/B;AACA1M,cAAU0rH,OAAO//G,OAAO,EAAd,CAAV;AACA3L,cAAU0rH,OAAQ//G,OAAO,CAAR,GAAa,IAApB,CAAV;AACA3L,cAAU0rH,OAAQ//G,OAAO,CAAR,GAAa,IAApB,CAAV;AACA3L,cAAU,GAAV;AACD;;AAEDqsH,QAAMhyH,IAAN,CAAW2F,MAAX;;AAEA,SAAOqsH,MAAM5xH,IAAN,CAAW,EAAX,CAAP;AACD,C;;;;;;;ACjHD;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,UAAU;AAC7C;AACA;AACA,8BAA8B;AAC9B;AACA,qBAAqB,8BAA8B;AACnD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,eAAe;;AAElB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB;AAClB,mBAAmB;AACnB,sBAAsB;AACtB,mBAAmB;;AAEnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,cAAc;;AAEjC;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,qBAAqB,yCAAyC;;AAE9D;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;;;;;;AC/YA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gCAAgC;AAChC;;;AAGA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B;AAC1B,0BAA0B;AAC1B,0BAA0B;AAC1B,0BAA0B;;AAE1B,mBAAmB;;AAEnB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,sBAAsB,qBAAqB,cAAc,EAAE;;;AAG/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,YAAY;AAC/B,kBAAkB,UAAU;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,wBAAwB;AACxB,YAAY;AACZ,UAAU;AACV,+BAA+B;AAC/B,gCAAgC;AAChC;AACA;;AAEA,sBAAsB;;AAEtB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,0BAA0B;;AAE3D;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,aAAa;;AAEb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE;;AAEnE;AACA,yDAAyD;AACzD;;AAEA;;AAEA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,0DAA0D;AAC1D;;AAEA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,aAAa;;AAEb;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,OAAO,EAAE;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;;AAEA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,WAAW;AACX,mBAAmB;;AAEnB;;AAEA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,OAAO,EAAE;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oEAAoE;AACpE;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,0DAA0D;AAC1D;;AAEA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB;AACrB,eAAe;;AAEf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA,mBAAmB;AACnB,kBAAkB;AAClB,0BAA0B;AAC1B,4BAA4B;AAC5B,uBAAuB;AACvB,mBAAmB;AACnB,gBAAgB;AAChB,qBAAqB;AACrB,mBAAmB;AACnB,2BAA2B;AAC3B,uBAAuB;;AAEvB,kBAAkB;AAClB,kBAAkB;AAClB,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB;;AAEnB,iBAAiB;AACjB,qBAAqB;AACrB,qBAAqB;AACrB,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,wBAAwB;AACxB,sBAAsB;AACtB,2BAA2B;AAC3B,oBAAoB;AACpB,uBAAuB;AACvB,qBAAqB;;AAErB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB;AACjB,oBAAoB;;AAEpB;AACA;;AAEA,sBAAsB;;AAEtB;;AAEA;;AAEA,2CAA2C;AAC3C,6CAA6C;AAC7C,4CAA4C;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB;AACvB,uBAAuB;AACvB,uBAAuB;;AAEvB;AACA;AACA;;AAEA,0BAA0B;AAC1B,+CAA+C;AAC/C;;AAEA,oBAAoB;AACpB,oBAAoB;AACpB;AACA;AACA;;AAEA,gDAAgD;AAChD;AACA;AACA;;AAEA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA;;AAEA,mBAAmB;AACnB,sBAAsB;AACtB,mBAAmB;AACnB,kBAAkB;;;AAGlB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA,6BAA6B,uBAAuB;AACpD,8BAA8B,uBAAuB;AACrD;AACA;AACA;;;AAGA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;;AAEA,uBAAuB;AACvB;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;;;AAGA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qBAAqB;;AAErB,sCAAsC;;AAEtC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA,eAAe;;AAEf;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB;AAChB;AACA;;AAEA;AACA;;AAEA,uBAAuB;AACvB,qBAAqB;AACrB;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA,6BAA6B,uBAAuB;AACpD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;;AAEnC;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,uBAAuB;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,8BAA8B;;AAE9B,2BAA2B,aAAa;AACxC,oBAAoB,qBAAqB;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oDAAoD;AACpD;AACA;;AAEA,aAAa;;AAEb;AACA;AACA,qBAAqB;AACrB,yBAAyB;AACzB,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACj1DA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8BAA8B;AAC9B;;AAEA;;;AAGA,oBAAoB,sBAAsB,qBAAqB,cAAc,EAAE;;AAE/E;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;;AAEA,kCAAkC;AAClC,iCAAiC;AACjC,iCAAiC;AACjC,4BAA4B;AAC5B,iCAAiC;;AAEjC;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA,2BAA2B;AAC3B,oBAAoB;AACpB,6BAA6B;AAC7B;;;;AAIA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR,WAAW;AACX,WAAW;AACX,YAAY;AACZ,QAAQ;AACR,mBAAmB;;AAEnB,gBAAgB,kBAAkB;AAClC;AACA;;AAEA;AACA;AACA;AACA,+CAA+C;;AAE/C,0BAA0B,eAAe;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,UAAU,EAAE;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ;;AAE/B;AACA;;AAEA;AACA;AACA;AACA,oCAAoC,QAAQ;AAC5C,uBAAuB;AACvB,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,yBAAyB,YAAY;AACrC;AACA;AACA;AACA,yBAAyB,UAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,mBAAmB;AACnB,qBAAqB;AACrB;AACA,0CAA0C;AAC1C,eAAe;AACf,WAAW;AACX,QAAQ;;AAER;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,gBAAgB;AAC7B;AACA,oBAAoB,UAAU;AAC9B;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,QAAQ;AACR,WAAW;AACX,aAAa;AACb,WAAW;AACX,WAAW;AACX;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,yBAAyB;AACzC;AACA,eAAe,8BAA8B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA,eAAe,8BAA8B;AAC7C;AACA;AACA;AACA;AACA,aAAa;AACb,QAAQ,gBAAgB;AACxB;AACA,eAAe,oCAAoC;AACnD;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,kBAAkB;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,aAAa;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA,QAAQ;;AAER;AACA,aAAa,aAAa,QAAQ,iCAAiC;AACnE,aAAa,aAAa,QAAQ,iCAAiC;AACnE,aAAa,cAAc,OAAO,+BAA+B;;AAEjE;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,eAAe;AACf,kBAAkB;AAClB;AACA,eAAe;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,YAAY;AACZ;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,OAAO;;AAEtD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,2BAA2B;AAC3B;AACA,WAAW;AACX,SAAS;AACT,aAAa;AACb,WAAW;AACX,YAAY;;AAEZ;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC;AAChC;AACA,OAAO;AACP;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA,kCAAkC;AAClC;AACA,eAAe;AACf;AACA;;AAEA,kCAAkC;AAClC;AACA;AACA;AACA,oCAAoC;AACpC;AACA,OAAO;;AAEP;AACA;AACA;;AAEA,KAAK;AACL;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,oBAAoB;AACpB,WAAW;;AAEX;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,WAAW;AACxB;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uCAAuC,QAAQ,OAAO,wBAAwB;;AAE9E;AACA;AACA;AACA,eAAe;AACf;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;;AAEA,8BAA8B;;AAE9B,6BAA6B;AAC7B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,mBAAmB;AACnB;AACA,QAAQ;AACR,mBAAmB;AACnB,aAAa;;AAEb,wCAAwC;;AAExC,gBAAgB;AAChB,oBAAoB;AACpB,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA,gDAAgD;;AAEhD,aAAa,eAAe;AAC5B;AACA;;AAEA;AACA;;AAEA,KAAK;AACL;;AAEA,KAAK;;AAEL,+BAA+B,kCAAkC;AACjE;;AAEA,KAAK;AACL;;AAEA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,KAAK;AACL;AACA;;AAEA,KAAK;AACL;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,mBAAmB;AACnB;AACA,QAAQ;AACR,mBAAmB;AACnB,aAAa;;AAEb,wCAAwC;;AAExC,gBAAgB;AAChB,oBAAoB;AACpB,oBAAoB;;AAEpB,+BAA+B;AAC/B;AACA;AACA;AACA;;AAEA,aAAa,eAAe;AAC5B;AACA;;AAEA;AACA;;AAEA,KAAK;AACL,UAAU,iCAAiC,EAAE;;AAE7C,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAK;AACL;AACA;;AAEA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,KAAK;AACL;AACA;;AAEA,KAAK;AACL;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,kBAAkB;;AAElB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kCAAkC,kBAAkB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,gCAAgC;AAChC,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;;AAEA,wCAAwC;AACxC;;AAEA,wCAAwC;AACxC;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,IAAI,MAAM,GAAG,MAAM,GAAG;AAChD;AACA;AACA;AACA,SAAS,IAAI,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,IAAI,MAAM,IAAI;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,cAAc;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,iBAAiB;AACjB,WAAW;AACX;AACA,wDAAwD;AACxD,uCAAuC;AACvC;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,iBAAiB;AACjB,WAAW;AACX;AACA,4BAA4B;AAC5B,sBAAsB;;AAEtB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kCAAkC,wBAAwB;;AAE1D,GAAG;AACH;AACA,4CAA4C;AAC5C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;;AAEH;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,kBAAkB;AAClB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;ACnsCA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,UAAU;AAC7C;AACA;AACA,8BAA8B;AAC9B;AACA,qBAAqB,8BAA8B;AACnD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG,eAAe;;AAElB;;AAEA;AACA;AACA;AACA;AACA,+BAA+B,sBAAsB;AACrD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB,mBAAmB;AACnB,sBAAsB;AACtB,mBAAmB;;AAEnB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB,cAAc;AACjC;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,sDAAsD;;AAEtD;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,kEAAkE;;AAEvF;;AAEA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,qBAAqB,yCAAyC;;AAE9D;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;;;;;;ACjaA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;;;AAGA,gBAAgB;AAChB,iBAAiB;AACjB,gBAAgB;AAChB,cAAc;AACd,iBAAiB;AACjB,iBAAiB;AACjB,gBAAgB;AAChB,mBAAmB;AACnB,gBAAgB;AAChB,mBAAmB;AACnB,iBAAiB;AACjB,qBAAqB;AACrB,uBAAuB;AACvB,uBAAuB;AACvB,sBAAsB;AACtB,qBAAqB;AACrB,sBAAsB;AACtB,wBAAwB;AACxB,yBAAyB;AACzB,yBAAyB;AACzB,wBAAwB;AACxB,2BAA2B;AAC3B,yBAAyB;AACzB,4BAA4B;AAC5B,0BAA0B;AAC1B,wBAAwB;AACxB,kBAAkB;AAClB,mBAAmB;AACnB,iBAAiB;AACjB,gBAAgB;AAChB,gBAAgB;AAChB,iBAAiB;;AAEjB;;;;AAIA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA,gBAAgB;AAChB,oBAAoB;AACpB,gBAAgB;AAChB,wBAAwB;AACxB,iBAAiB;AACjB,gBAAgB;AAChB,iBAAiB;AACjB,iBAAiB;AACjB;AACA,mBAAmB;;AAEnB;AACA,iBAAiB;AACjB,iBAAiB;AACjB,iBAAiB;AACjB,iBAAiB;AACjB,qBAAqB;;AAErB;AACA,gBAAgB;AAChB,gBAAgB;;AAEhB;AACA,kBAAkB;AAClB,kBAAkB;;AAElB;AACA,iBAAiB;;AAEjB;AACA,sBAAsB;AACtB,uBAAuB;AACvB,mBAAmB;AACnB,oBAAoB;;AAEpB;AACA,iBAAiB;AACjB,gBAAgB;AAChB,iBAAiB;AACjB,gBAAgB;AAChB,mBAAmB;;AAEnB,mCAAmC;AACnC,mCAAmC;;AAEnC;AACA;AACA;AACA;AACA,yCAAyC;AACzC,qBAAqB;AACrB,sBAAsB;AACtB,gBAAgB;AAChB,gBAAgB;AAChB,eAAe;AACf;;AAEA;AACA;;AAEA,6BAA6B,uBAAuB;AACpD;AACA;AACA,gBAAgB;AAChB,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,6BAA6B,uBAAuB;AACpD;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,6BAA6B,uBAAuB;AACpD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,cAAc,uBAAuB;AACrC,sBAAsB;;AAEtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB;;AAEpB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,uBAAuB,uBAAuB;AAC9C,uBAAuB,uBAAuB;AAC9C,uBAAuB,uBAAuB;AAC9C,uBAAuB,uBAAuB;;AAE9C,uEAAuE,UAAU;;AAEjF;AACA;AACA,sBAAsB,uBAAuB;;AAE7C,uEAAuE,UAAU;;AAEjF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,iBAAiB;AACzD,sCAAsC,qBAAqB;AAC3D;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB;AACpB,WAAW;AACX,UAAU;AACV,iBAAiB;AACjB,WAAW;AACX,WAAW;AACX,gBAAgB;AAChB,WAAW;AACX,WAAW;AACX;AACA,eAAe;AACf,mCAAmC;AACnC,aAAa;AACb,mCAAmC;AACnC,UAAU;AACV,UAAU;AACV,+BAA+B;AAC/B;;AAEA,QAAQ;;AAER;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,qBAAqB,EAAE;;;AAGnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,6BAA6B,iBAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,aAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,iBAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,6BAA6B,iBAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,iBAAiB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iBAAiB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,aAAa;AACzC,4BAA4B,aAAa;AACzC,2BAA2B,iBAAiB;AAC5C,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,iBAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,oEAAoE;AACpE;AACA;AACA;;AAEA,sCAAsC,OAAO;AAC7C;AACA,6BAA6B,iBAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,iBAAiB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,iBAAiB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,iBAAiB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iCAAiC,OAAO;;AAExC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iBAAiB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,kEAAkE;AAClE;AACA;AACA;;AAEA,kCAAkC,OAAO;AACzC;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA,kDAAkD,OAAO;AACzD;AACA,6BAA6B,iBAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,iBAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,oEAAoE;AACpE;AACA;AACA;;AAEA,oCAAoC,OAAO;AAC3C;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA,kDAAkD,OAAO;AACzD;AACA,6BAA6B,iBAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,iBAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iBAAiB;AAC1C;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,qBAAqB;AAC3D,8BAA8B,aAAa;AAC3C;AACA;AACA;AACA;AACA,aAAa;AACb,qCAAqC,kBAAkB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,qBAAqB;AACzD;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,0BAA0B,aAAa;AACvC;AACA;AACA;AACA;AACA,SAAS;AACT,iCAAiC,kBAAkB;AACnD;AACA;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,iBAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,iBAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,6BAA6B,uBAAuB;AACpD;AACA,+BAA+B,uBAAuB;;AAEtD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,6DAA6D,uBAAuB;AACpF;;AAEA;AACA;AACA;;AAEA;AACA;AACA,eAAe;AACf,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnhDA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb,cAAc;;AAEd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,WAAW;AACX,WAAW;AACX,UAAU;AACV,UAAU;AACV;AACA,WAAW;AACX;AACA,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ;AACA,eAAe;AACf,WAAW;AACX,WAAW;AACX,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ,WAAW;AACX,SAAS;AACT;AACA,UAAU;AACV,WAAW;AACX,WAAW;AACX;;;AAGA,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,WAAW,GAAG;AACd;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,GAAG;AAClB;AACA;AACA;AACA;;AAEA,wBAAwB;AACxB;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,4BAA4B;AAC5B,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,gCAAgC;AAChC;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,mBAAmB;AACnB,qCAAqC;AACrC;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,mBAAmB;AACnB;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA,qBAAqB;AACrB,uCAAuC;AACvC;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,mBAAmB;AACnB,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,kBAAkB;AAClB;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB;AAChB;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,YAAY;AACZ;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxVA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB;;AAEzB,cAAc;AACd,cAAc;AACd,uBAAuB;AACvB,eAAe;AACf,eAAe;AACf,eAAe;AACf,eAAe;AACf,eAAe;AACf,eAAe;AACf,WAAW;AACX,WAAW;AACX,UAAU;AACV,WAAW;AACX,WAAW;AACX,kBAAkB;AAClB;AACA,iBAAiB;AACjB,UAAU;AACV,2CAA2C,eAAe;AAC1D,0CAA0C,eAAe;AACzD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA,eAAe,aAAa;AAC5B;AACA;;AAEA;AACA;AACA,qBAAqB,UAAU;AAC/B,2BAA2B,OAAO;AAClC;AACA;AACA;AACA;AACA,kBAAkB;AAClB,sCAAsC,2BAA2B;AACjE,uCAAuC;AACvC,wCAAwC;AACxC;;;AAGA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA,eAAe,WAAW;AAC1B,2BAA2B,OAAO;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA,eAAe,eAAe;AAC9B;AACA;;AAEA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA,GAAG,OAAO;AACV;AACA;AACA;AACA;;AAEA;AACA,WAAW;AACX,UAAU;AACV,YAAY;AACZ,qBAAqB;AACrB,cAAc;AACd,WAAW;AACX,WAAW;AACX,mBAAmB;AACnB,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;ACtVA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;ACzDA;;;;AAEA;;;;AACA;;;;AACA;;;;IAEQ9E,a,mBAAAA,a;IAAeD,a,mBAAAA,a;;AAEvB;;AAEA,IAAI+0H,eAAe,CAAnB;;AAEA,SAASZ,WAAT,CAAqBpuE,GAArB,EAAwC;AAAA,MAAdxB,OAAc,uEAAJ,EAAI;;AACtC,SAAO,IAAItc,OAAJ,CAAY,UAACmlC,OAAD,EAAUC,MAAV,EAAqB;AACtC,QAAMypD,MAAM,IAAIC,cAAJ,EAAZ;;AAEAD,QAAIE,kBAAJ,GAAyB,UAACvxH,CAAD,EAAO;AAC9B,UAAIqxH,IAAIG,UAAJ,KAAmB,CAAvB,EAA0B;AACxB,YAAIH,IAAIh/G,MAAJ,KAAe,GAAf,IAAsBg/G,IAAIh/G,MAAJ,KAAe,CAAzC,EAA4C;AAC1Cs1D,kBAAQ0pD,IAAII,QAAZ;AACD,SAFD,MAEO;AACL7pD,iBAAO,EAAEypD,QAAF,EAAOrxH,IAAP,EAAP;AACD;AACF;AACF,KARD;;AAUA,QAAI8+C,WAAWA,QAAQqsC,gBAAvB,EAAyC;AACvCkmC,UAAI7tD,gBAAJ,CAAqB,UAArB,EAAiC1kB,QAAQqsC,gBAAzC;AACD;;AAED;AACAkmC,QAAIK,IAAJ,CAAS,KAAT,EAAgBpxE,GAAhB,EAAqB,IAArB;AACA+wE,QAAIM,YAAJ,GAAmB,aAAnB;AACAN,QAAIO,IAAJ;AACD,GArBM,CAAP;AAsBD;;AAED,SAAS5D,UAAT,GAAiE;AAAA,MAA7C9lH,QAA6C,uEAAlC,EAAkC;AAAA,MAA9BsmH,OAA8B;AAAA,MAArBrqH,KAAqB;AAAA,MAAd26C,OAAc,uEAAJ,EAAI;;AAC/D,MAAI36C,MAAM+9F,GAAN,IAAa,CAAC/9F,MAAM+9F,GAAN,CAAU2vB,OAA5B,EAAqC;AACnC,WAAO,IAAIrvF,OAAJ,CAAY,UAACmlC,OAAD,EAAUC,MAAV,EAAqB;AACtC,UAAMypD,MAAM,IAAIC,cAAJ,EAAZ;AACA,UAAMhxE,MAAM,CACVkuE,OADU,EAEVrqH,MAAM+9F,GAAN,CAAU2tB,QAFA,EAGV/wE,QAAQsvE,WAAR,GAAyBjqH,MAAM+9F,GAAN,CAAUn2F,EAAnC,WAA6C5H,MAAM+9F,GAAN,CAAUn2F,EAH7C,EAIVzM,IAJU,CAIL,GAJK,CAAZ;;AAMA+xH,UAAIE,kBAAJ,GAAyB,UAACvxH,CAAD,EAAO;AAC9B,YAAIqxH,IAAIG,UAAJ,KAAmB,CAAvB,EAA0B;AACxBrtH,gBAAM+9F,GAAN,CAAU2vB,OAAV,GAAoB,IAApB;AACA,cAAI,EAAEvC,YAAF,KAAmB,CAAnB,IAAwBpnH,SAASioH,UAArC,EAAiD;AAC/CjoH,qBAASioH,UAAT,CAAoB,IAApB;AACD;AACF;AACD,YAAIkB,IAAIG,UAAJ,KAAmB,CAAvB,EAA0B;AACxBrtH,gBAAM+9F,GAAN,CAAU2vB,OAAV,GAAoB,KAApB;AACA,cAAIR,IAAIh/G,MAAJ,KAAe,GAAf,IAAsBg/G,IAAIh/G,MAAJ,KAAe,CAAzC,EAA4C;AAC1ClO,kBAAM0kB,MAAN,GAAewoG,IAAII,QAAnB;;AAEA,gBAAI3yE,QAAQsvE,WAAZ,EAAyB;AACvB,kBAAIjqH,MAAMokB,QAAN,KAAmB,QAAnB,IAA+BpkB,MAAMokB,QAAN,KAAmB,MAAtD,EAA8D;AAC5DpkB,sBAAM0kB,MAAN,GAAe,eAAK09B,OAAL,CAAa,IAAI3oD,UAAJ,CAAeuG,MAAM0kB,MAArB,CAAb,EAA2C;AACxDmnG,sBAAI;AADoD,iBAA3C,CAAf;AAGD,eAJD,MAIO;AACL7rH,sBAAM0kB,MAAN,GAAe,eAAK09B,OAAL,CACb,IAAI3oD,UAAJ,CAAeuG,MAAM0kB,MAArB,CADa,EAEbA,MAFF;AAGD;AACF;;AAED,gBAAI1kB,MAAM+9F,GAAN,CAAUguB,MAAV,KAAqB,MAAzB,EAAiC;AAC/B/rH,oBAAM8I,MAAN,GAAehD,KAAKC,KAAL,CAAW/F,MAAM0kB,MAAjB,CAAf;AACD,aAFD,MAEO;AACL,kBAAI,iBAAOgmC,UAAP,KAAsB1qD,MAAM+9F,GAAN,CAAUguB,MAAhC,IAA0C,iBAAOrhE,UAArD,EAAiE;AAC/D;AACAt0D,iDAA+B4J,MAAM9G,IAArC;AACA,iCAAOsxD,SAAP,CACExqD,MAAM0kB,MADR,EAEE,4BAAiB1kB,MAAMokB,QAAvB,CAFF;AAID;;AAEDpkB,oBAAM8I,MAAN,GAAe,IAAI8b,OAAO5kB,MAAMokB,QAAb,CAAJ,CAA2BpkB,MAAM0kB,MAAjC,CAAf;AACD;;AAED,gBAAI1kB,MAAM8I,MAAN,CAAa1L,MAAb,KAAwB4C,MAAM7F,IAAlC,EAAwC;AACtC9D,sDAEI2J,MAAM9G,IAFV,mDAII8G,MAAM8I,MAAN,CAAa1L,MAJjB,qBAKkB4C,MAAM7F,IALxB;AAOD;;AAED;AACA,mBAAO6F,MAAM+9F,GAAb;AACA,gBAAI,EAAEotB,YAAF,KAAmB,CAAnB,IAAwBpnH,SAASioH,UAArC,EAAiD;AAC/CjoH,uBAASioH,UAAT,CAAoB,KAApB;AACD;AACD,gBAAIjoH,SAAShH,QAAb,EAAuB;AACrBgH,uBAAShH,QAAT;AACD;AACDymE,oBAAQxjE,KAAR;AACD,WAjDD,MAiDO;AACLyjE,mBAAO,EAAEypD,QAAF,EAAOrxH,IAAP,EAAP;AACD;AACF;AACF,OA9DD;;AAgEA,UAAI8+C,WAAWA,QAAQqsC,gBAAvB,EAAyC;AACvCkmC,YAAI7tD,gBAAJ,CAAqB,UAArB,EAAiC1kB,QAAQqsC,gBAAzC;AACD;;AAED;AACAkmC,UAAIK,IAAJ,CAAS,KAAT,EAAgBpxE,GAAhB,EAAqB,IAArB;AACA+wE,UAAIM,YAAJ,GACE7yE,QAAQsvE,WAAR,IAAuBjqH,MAAMokB,QAAN,KAAmB,QAA1C,GACI,aADJ,GAEI,MAHN;AAIA8oG,UAAIO,IAAJ;AACD,KAnFM,CAAP;AAoFD;;AAED,SAAOpvF,QAAQmlC,OAAR,CAAgBxjE,KAAhB,CAAP;AACD;;AAED;;AAEA,SAAS0qH,SAAT,GAAqD;AAAA,MAAlC3mH,QAAkC,uEAAvB,EAAuB;AAAA,MAAnBo4C,GAAmB;AAAA,MAAdxB,OAAc,uEAAJ,EAAI;;AACnD,SAAO,IAAItc,OAAJ,CAAY,UAACmlC,OAAD,EAAUC,MAAV,EAAqB;AACtC,QAAMypD,MAAM,IAAIC,cAAJ,EAAZ;;AAEAD,QAAIE,kBAAJ,GAAyB,UAACvxH,CAAD,EAAO;AAC9B,UAAIqxH,IAAIG,UAAJ,KAAmB,CAAvB,EAA0B;AACxB,YAAI,EAAElC,YAAF,KAAmB,CAAnB,IAAwBpnH,SAASioH,UAArC,EAAiD;AAC/CjoH,mBAASioH,UAAT,CAAoB,IAApB;AACD;AACF;AACD,UAAIkB,IAAIG,UAAJ,KAAmB,CAAvB,EAA0B;AACxB,YAAI,EAAElC,YAAF,KAAmB,CAAnB,IAAwBpnH,SAASioH,UAArC,EAAiD;AAC/CjoH,mBAASioH,UAAT,CAAoB,KAApB;AACD;AACD,YAAIkB,IAAIh/G,MAAJ,KAAe,GAAf,IAAsBg/G,IAAIh/G,MAAJ,KAAe,CAAzC,EAA4C;AAC1C,cAAIysC,QAAQsvE,WAAZ,EAAyB;AACvBzmD,oBACE19D,KAAKC,KAAL,CACE,eAAKq8C,OAAL,CAAa,IAAI3oD,UAAJ,CAAeyzH,IAAII,QAAnB,CAAb,EAA2C,EAAEzB,IAAI,QAAN,EAA3C,CADF,CADF;AAKD,WAND,MAMO;AACLroD,oBAAQ19D,KAAKC,KAAL,CAAWmnH,IAAIS,YAAf,CAAR;AACD;AACF,SAVD,MAUO;AACLlqD,iBAAO,EAAEypD,QAAF,EAAOrxH,IAAP,EAAP;AACD;AACF;AACF,KAxBD;;AA0BA,QAAI8+C,WAAWA,QAAQqsC,gBAAvB,EAAyC;AACvCkmC,UAAI7tD,gBAAJ,CAAqB,UAArB,EAAiC1kB,QAAQqsC,gBAAzC;AACD;;AAED;AACAkmC,QAAIK,IAAJ,CAAS,KAAT,EAAgBpxE,GAAhB,EAAqB,IAArB;AACA+wE,QAAIM,YAAJ,GAAmB7yE,QAAQsvE,WAAR,GAAsB,aAAtB,GAAsC,MAAzD;AACAiD,QAAIO,IAAJ;AACD,GArCM,CAAP;AAsCD;;AAED;;AAEA,SAASjC,SAAT,GAAqD;AAAA,MAAlCznH,QAAkC,uEAAvB,EAAuB;AAAA,MAAnBo4C,GAAmB;AAAA,MAAdxB,OAAc,uEAAJ,EAAI;;AACnD,MAAIA,WAAWA,QAAQsvE,WAAnB,IAAkCtvE,QAAQsvE,WAAR,KAAwB,IAA9D,EAAoE;AAClE5zH,kBAAc,gCAAd;AACAA,qDAA+CskD,QAAQsvE,WAAvD;AACD;;AAED,SAAO,IAAI5rF,OAAJ,CAAY,UAACmlC,OAAD,EAAUC,MAAV,EAAqB;AACtC,QAAMypD,MAAM,IAAIC,cAAJ,EAAZ;;AAEAD,QAAIE,kBAAJ,GAAyB,UAACvxH,CAAD,EAAO;AAC9B,UAAIqxH,IAAIG,UAAJ,KAAmB,CAAvB,EAA0B;AACxB,YAAI,EAAElC,YAAF,KAAmB,CAAnB,IAAwBpnH,SAASioH,UAArC,EAAiD;AAC/CjoH,mBAASioH,UAAT,CAAoB,IAApB;AACD;AACF;AACD,UAAIkB,IAAIG,UAAJ,KAAmB,CAAvB,EAA0B;AACxB,YAAI,EAAElC,YAAF,KAAmB,CAAnB,IAAwBpnH,SAASioH,UAArC,EAAiD;AAC/CjoH,mBAASioH,UAAT,CAAoB,KAApB;AACD;AACD,YAAIkB,IAAIh/G,MAAJ,KAAe,GAAf,IAAsBg/G,IAAIh/G,MAAJ,KAAe,CAAzC,EAA4C;AAC1C,cAAIysC,QAAQsvE,WAAZ,EAAyB;AACvBzmD,oBACE,eAAKphB,OAAL,CAAa,IAAI3oD,UAAJ,CAAeyzH,IAAII,QAAnB,CAAb,EAA2C,EAAEzB,IAAI,QAAN,EAA3C,CADF;AAGD,WAJD,MAIO;AACLroD,oBAAQ0pD,IAAIS,YAAZ;AACD;AACF,SARD,MAQO;AACLlqD,iBAAO,EAAEypD,QAAF,EAAOrxH,IAAP,EAAP;AACD;AACF;AACF,KAtBD;;AAwBA,QAAI8+C,QAAQqsC,gBAAZ,EAA8B;AAC5BkmC,UAAI7tD,gBAAJ,CAAqB,UAArB,EAAiC1kB,QAAQqsC,gBAAzC;AACD;;AAED;AACAkmC,QAAIK,IAAJ,CAAS,KAAT,EAAgBpxE,GAAhB,EAAqB,IAArB;AACA+wE,QAAIM,YAAJ,GAAmB7yE,QAAQsvE,WAAR,GAAsB,aAAtB,GAAsC,MAAzD;AACAiD,QAAIO,IAAJ;AACD,GAnCM,CAAP;AAoCD;;AAED;;kBAEe;AACb5D,wBADa;AAEba,sBAFa;AAGbc,sBAHa;AAIbjB,0BAJa,CAIA;AAJA,C;;AAOf,gD;;;;;;;;;;;;;AClOA;;;;AACA;;;;AAEA;;;;AACA;;;;AACA;;;;IAEQl0H,a,mBAAAA,a;IAAeD,a,mBAAAA,a;;;AAEvB,SAASw3H,gBAAT,CAA0B5tH,KAA1B,EAAiCiqH,WAAjC,EAA8CttE,IAA9C,EAAoD;AAClD,SAAO,UAACmvE,UAAD,EAAgB;AACrB9rH,UAAM0kB,MAAN,GAAe,IAAI+lC,WAAJ,CAAgBqhE,WAAW1uH,MAA3B,CAAf;;AAEA;AACA,QAAMg7D,OAAO,IAAI3+D,UAAJ,CAAeuG,MAAM0kB,MAArB,CAAb;AACA0zC,SAAKthE,GAAL,CAASg1H,UAAT;;AAEA,QAAI7B,WAAJ,EAAiB;AACf,UAAIjqH,MAAMokB,QAAN,KAAmB,QAAnB,IAA+BpkB,MAAMokB,QAAN,KAAmB,MAAtD,EAA8D;AAC5DpkB,cAAM0kB,MAAN,GAAe,eAAK09B,OAAL,CAAa,IAAI3oD,UAAJ,CAAeuG,MAAM0kB,MAArB,CAAb,EAA2C;AACxDmnG,cAAI;AADoD,SAA3C,CAAf;AAGD,OAJD,MAIO;AACL7rH,cAAM0kB,MAAN,GAAe,eAAK09B,OAAL,CAAa,IAAI3oD,UAAJ,CAAeuG,MAAM0kB,MAArB,CAAb,EAA2CA,MAA1D;AACD;AACF;;AAED,QAAI1kB,MAAM+9F,GAAN,CAAUguB,MAAV,KAAqB,MAAzB,EAAiC;AAC/B/rH,YAAM8I,MAAN,GAAehD,KAAKC,KAAL,CAAW/F,MAAM0kB,MAAjB,CAAf;AACD,KAFD,MAEO;AACL,UAAI,iBAAOgmC,UAAP,KAAsB1qD,MAAM+9F,GAAN,CAAUguB,MAAhC,IAA0C,iBAAOrhE,UAArD,EAAiE;AAC/D;AACAt0D,yCAA+B4J,MAAM9G,IAArC;AACA,yBAAOsxD,SAAP,CAAiBxqD,MAAM0kB,MAAvB,EAA+B,4BAAiB1kB,MAAMokB,QAAvB,CAA/B;AACD;;AAEDpkB,YAAM8I,MAAN,GAAe,IAAI8b,OAAO5kB,MAAMokB,QAAb,CAAJ,CAA2BpkB,MAAM0kB,MAAjC,CAAf;AACD;;AAED,QAAI1kB,MAAM8I,MAAN,CAAa1L,MAAb,KAAwB4C,MAAM7F,IAAlC,EAAwC;AACtC9D,8CAEI2J,MAAM9G,IAFV,kDAII8G,MAAM8I,MAAN,CAAa1L,MAJjB,qBAKkB4C,MAAM7F,IALxB;AAOD;;AAEDwiD;AACD,GAxCD;AAyCD;;AAED,SAASkxE,YAAT,CAAsB7tH,KAAtB,EAA6BiqH,WAA7B,EAA0CttE,IAA1C,EAAgD;AAC9C,SAAO,UAACmxE,MAAD,EAAY;AACjB,QAAI7D,WAAJ,EAAiB;AACfjqH,YAAM8I,MAAN,GAAehD,KAAKC,KAAL,CAAW,eAAKq8C,OAAL,CAAa0rE,MAAb,EAAqB,EAAEjC,IAAI,QAAN,EAArB,CAAX,CAAf;AACD,KAFD,MAEO;AACL7rH,YAAM8I,MAAN,GAAehD,KAAKC,KAAL,CAAW+nH,MAAX,CAAf;AACD;AACDnxE;AACD,GAPD;AAQD;;AAED,IAAMoxE,WAAW;AACfjC,cAAY8B,gBADG;AAEfE,UAAQD;AAFO,CAAjB;;AAKA,SAAStC,kBAAT,CAA4BlyH,GAA5B,EAAiC;AAC/B,SAAOA,IAAI,CAAJ,MAAW,GAAX,GAAiBA,IAAIgjB,MAAJ,CAAW,CAAX,CAAjB,GAAiChjB,GAAxC;AACD;;AAED,SAAS89C,MAAT,CAAgB62E,aAAhB,EAA+B;AAC7B,MAAIxkC,QAAQ,KAAZ;AACA,MAAI2hC,eAAe,CAAnB;AACA,MAAMV,MAAM,qBAAZ;AACA,MAAIwD,UAAUxD,GAAd;AACAA,MAAIyD,SAAJ,CAAcF,cAAcxD,UAA5B,EAAwClsF,IAAxC,CAA6C,YAAM;AACjDkrD,YAAQ,IAAR;;AAEA;AACA,QAAM2kC,YAAY,EAAlB;AACA1D,QAAIlyH,OAAJ,CAAY,UAAC61H,YAAD,EAAeC,QAAf,EAA4B;AACtC,UAAID,aAAavwH,OAAb,CAAqB,YAArB,MAAuC,CAAC,CAA5C,EAA+C;AAC7CswH,kBAAUpzH,IAAV,CAAeqzH,YAAf;AACD;AACF,KAJD;AAKAD,cAAUxvH,IAAV,CAAe,UAACgQ,CAAD,EAAIC,CAAJ;AAAA,aAAUD,EAAEvR,MAAF,GAAWwR,EAAExR,MAAvB;AAAA,KAAf;AACA,QAAMkxH,eAAeH,UAAU,CAAV,EAAazrG,KAAb,CAAmB,GAAnB,CAArB;AACA,WAAO4rG,aAAalxH,MAAb,GAAsB,CAA7B,EAAgC;AAC9B,UAAMmxH,UAAUD,aAAa53F,KAAb,EAAhB;AACAu3F,gBAAUA,QAAQO,MAAR,CAAeD,OAAf,CAAV;AACD;;AAED,QAAIP,cAAc9wH,QAAlB,EAA4B;AAC1B8wH,oBAAc9wH,QAAd,CAAuButH,GAAvB;AACD;AACF,GApBD;AAqBA,SAAO;AACLZ,cADK,wBACmD;AAAA,UAA7C9lH,QAA6C,uEAAlC,EAAkC;AAAA,UAA9BsmH,OAA8B;AAAA,UAArBrqH,KAAqB;AAAA,UAAd26C,OAAc,uEAAJ,EAAI;;AACtD,aAAO,IAAItc,OAAJ,CAAY,UAACmlC,OAAD,EAAUC,MAAV,EAAqB;AACtC,YAAI,CAAC+lB,KAAL,EAAY;AACVnzF,wBAAc,2BAAd;AACD;AACD,YAAM8lD,MAAMovE,mBACV,CACElB,OADF,EAEErqH,MAAM+9F,GAAN,CAAU2tB,QAFZ,EAGE/wE,QAAQsvE,WAAR,GAAyBjqH,MAAM+9F,GAAN,CAAUn2F,EAAnC,WAA6C5H,MAAM+9F,GAAN,CAAUn2F,EAHzD,EAIEzM,IAJF,CAIO,GAJP,CADU,CAAZ;;AAQA,YAAI,EAAEgwH,YAAF,KAAmB,CAAnB,IAAwBpnH,SAASioH,UAArC,EAAiD;AAC/CjoH,mBAASioH,UAAT,CAAoB,IAApB;AACD;;AAED,iBAASyC,WAAT,GAAuB;AACrB;AACA,iBAAOzuH,MAAM+9F,GAAb;AACA,cAAI,EAAEotB,YAAF,KAAmB,CAAnB,IAAwBpnH,SAASioH,UAArC,EAAiD;AAC/CjoH,qBAASioH,UAAT,CAAoB,KAApB;AACD;AACD,cAAIjoH,SAAShH,QAAb,EAAuB;AACrBgH,qBAAShH,QAAT;AACD;AACDymE,kBAAQxjE,KAAR;AACD;;AAED,YAAM0uH,YACJ1uH,MAAMokB,QAAN,KAAmB,QAAnB,IAA+B,CAACu2B,QAAQsvE,WAAxC,GACI,QADJ,GAEI,YAHN;AAIA,YAAM0E,gBAAgBZ,SAASW,SAAT,EACpB1uH,KADoB,EAEpB26C,QAAQsvE,WAFY,EAGpBwE,WAHoB,CAAtB;;AAMAR,gBACGW,IADH,CACQzyE,GADR,EAEG0yE,KAFH,CAESH,SAFT,EAGGpwF,IAHH,CAGQqwF,aAHR;AAID,OA1CM,CAAP;AA2CD,KA7CI;AA+CLjE,aA/CK,uBA+CuC;AAAA,UAAlC3mH,QAAkC,uEAAvB,EAAuB;AAAA,UAAnBo4C,GAAmB;AAAA,UAAdxB,OAAc,uEAAJ,EAAI;;AAC1C,UAAMiwE,OAAOW,mBAAmBpvE,GAAnB,CAAb;AACA,UAAI,CAACqtC,KAAL,EAAY;AACVnzF,sBAAc,2BAAd;AACD;;AAED,UAAIskD,QAAQsvE,WAAZ,EAAyB;AACvB,YAAItvE,QAAQsvE,WAAR,KAAwB,IAA5B,EAAkC;AAChC,iBAAOgE,QACJW,IADI,CACChE,IADD,EAEJiE,KAFI,CAEE,YAFF,EAGJvwF,IAHI,CAGC,UAACwtF,UAAD,EAAgB;AACpB,gBAAMzyH,MAAM,eAAK+oD,OAAL,CAAa0pE,UAAb,EAAyB,EAAED,IAAI,QAAN,EAAzB,CAAZ;AACA,mBAAOxtF,QAAQmlC,OAAR,CAAgB19D,KAAKC,KAAL,CAAW1M,GAAX,CAAhB,CAAP;AACD,WANI,CAAP;AAOD;AACD,eAAOglC,QAAQolC,MAAR,CAAe,IAAI3kE,KAAJ,CAAU,qBAAV,CAAf,CAAP;AACD;;AAED,aAAOmvH,QACJW,IADI,CACChE,IADD,EAEJiE,KAFI,CAEE,QAFF,EAGJvwF,IAHI,CAGC,UAACjlC,GAAD;AAAA,eAASglC,QAAQmlC,OAAR,CAAgB19D,KAAKC,KAAL,CAAW1M,GAAX,CAAhB,CAAT;AAAA,OAHD,CAAP;AAID,KAtEI;AAwELmyH,aAxEK,uBAwEuC;AAAA,UAAlCznH,QAAkC,uEAAvB,EAAuB;AAAA,UAAnBo4C,GAAmB;AAAA,UAAdxB,OAAc,uEAAJ,EAAI;;AAC1C,UAAMiwE,OAAOW,mBAAmBpvE,GAAnB,CAAb;AACA,UAAI,CAACqtC,KAAL,EAAY;AACVnzF,sBAAc,2BAAd;AACD;;AAED,UAAIskD,QAAQsvE,WAAZ,EAAyB;AACvB,YAAItvE,QAAQsvE,WAAR,KAAwB,IAA5B,EAAkC;AAChC,iBAAOgE,QACJW,IADI,CACChE,IADD,EAEJiE,KAFI,CAEE,YAFF,EAGJvwF,IAHI,CAGC,UAACwtF,UAAD,EAAgB;AACpB,gBAAMzyH,MAAM,eAAK+oD,OAAL,CAAa0pE,UAAb,EAAyB,EAAED,IAAI,QAAN,EAAzB,CAAZ;AACA,mBAAOxtF,QAAQmlC,OAAR,CAAgBnqE,GAAhB,CAAP;AACD,WANI,CAAP;AAOD;AACD,eAAOglC,QAAQolC,MAAR,CAAe,IAAI3kE,KAAJ,CAAU,qBAAV,CAAf,CAAP;AACD;;AAED,aAAOmvH,QACJW,IADI,CACChE,IADD,EAEJiE,KAFI,CAEE,QAFF,EAGJvwF,IAHI,CAGC,UAACjlC,GAAD;AAAA,eAASglC,QAAQmlC,OAAR,CAAgBnqE,GAAhB,CAAT;AAAA,OAHD,CAAP;AAID;AA/FI,GAAP;AAiGD;;kBAEc;AACb89C;AADa,C;;;;;;;ACtMf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB,IAAI;AAC1B,8BAA8B;AAC9B;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,qCAAqC;AAChD,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA,8CAA8C;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB;AACA,YAAY,OAAO;AACnB;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;;AAGL;AACA;AACA,eAAe,SAAS;AACxB,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF;AACpF,uCAAuC;AACvC;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,SAAS;AACxB,sCAAsC;AACtC;AACA,gBAAgB,MAAM;AACtB;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;;AAEA,SAAS;AACT;AACA,KAAK;;AAEL;AACA;AACA,iBAAiB,cAAc;AAC/B;AACA,iBAAiB,qCAAqC;AACtD,iBAAiB,OAAO;AACxB,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,kBAAkB;AAClB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,iBAAiB,cAAc;AAC/B,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,OAAO;AACtB,gBAAgB,MAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,2BAA2B,iBAAiB;AAC5C;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA,gBAAgB,0CAA0C;AAC1D;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpYA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC,SAAS;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C,UAAU;AACpD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;ACtJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,QAAQ,WAAW;;AAEnB;AACA;AACA;AACA,QAAQ,WAAW;;AAEnB;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA,QAAQ,WAAW;;AAEnB;AACA;AACA,QAAQ,UAAU;;AAElB;AACA;;;;;;;ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;AAIA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;;;;;;AC9HA,e;;;;;;;ACAA;;AAEA;;AAEA,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB,gDAAgD;AAChD;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC,G;;;;;;;ACxED;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,E;;;;;;AC9CA;;;;;;;ACAA;;;;;;;ACAA;;;;;;;ACAA;;;;;;;ACAA;AACA,uD;;;;;;ACDA;AACA;AACA;AACA;AACA;AACA,CAAC,E;;;;;;ACLD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE;AACnE;AACA,qFAAqF;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,eAAe;AACf,eAAe;AACf,eAAe;AACf,gBAAgB;AAChB,yB;;;;;;AC5DA;AACA;AACA;AACA,E;;;;;;ACHA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,E;;;;;;ACPA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,UAAU;AACb;AACA;AACA;AACA,E;;;;;;ACfA;AACA;AACA;AACA;AACA,E;;;;;;ACJA;AACA,sEAAsE,gBAAgB,UAAU,GAAG;AACnG,CAAC,E;;;;;;ACFD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,E;;;;;;ACfA,+E;;;;;;ACAA,iBAAiB;;AAEjB;AACA;AACA,E;;;;;;;ACJA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;8CC5PA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA,mCAAmC;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;ACzBA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU,aAAa;AACvB,UAAU,OAAO;AACjB,UAAU,SAAS;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;;;AAGA;AACA;AACA;;AAEA;;;;;;;;ACzCA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,qCAAqC;AAChD,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,cAAc,2BAA2B;AACzC;AACA;AACA;;;;;;;;AC3HA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;;AAEA;AACA;;;;;;;;ACxDA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;;;;;;;;ACpFA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,KAAK,OAAO;AACZ,+BAA+B;AAC/B;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,YAAY,OAAO;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,4BAA4B;AAC9C;AACA;AACA,oBAAoB;AACpB,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA,gBAAgB;AAChB,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oBAAoB;AACtC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oBAAoB;AACtC;AACA;AACA;;AAEA;;;;;;;;AC3hBA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;;;;;;;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;;AAEA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;;;;;;;;ACjFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,gBAAgB,MAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gDAAgD;AAChD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,qCAAqC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;;;;;;;;ACrQA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrCA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mCAAmC;AACnC;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,WAAW;AAC1B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;QCrMgBxzC,M,GAAAA,M;;AA9FhB;;;;;;AAEA,IAAM+d,eAAe,EAArB;;AAEA;AACA;AACA;;AAEA,SAASwnG,cAAT,CAAwB/sH,SAAxB,EAAmCd,KAAnC,EAA0C;AACxC;AACAA,QAAMkB,cAAN,CAAqBxB,IAArB,CAA0B,gBAA1B;;AAEA;AACA;AACA;AACAoB,YAAUonB,YAAV,GAAyB,UAACC,QAAD;AAAA,QAAWC,OAAX,uEAAqB,CAArB;AAAA,WACvBpoB,MAAMyN,MAAN,CAAa0a,WAAWnoB,MAAM0mB,kBAAjB,GAAsC0B,OAAnD,CADuB;AAAA,GAAzB;;AAGA;AACA;AACA;AACA;AACA;AACA;AACAtnB,YAAUunB,YAAV,GAAyB,UAACF,QAAD,EAAWC,OAAX,EAAoBlpB,KAApB,EAA8B;AACrD,QAAIA,UAAUc,MAAMyN,MAAN,CAAa0a,WAAWnoB,MAAM0mB,kB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,KAVO,CAAV;AAWA3mB,YAAQM,GAAR,CAAY01D,CAAZ;AACAA,MAAE5R,IAAF,CAAO,YAAM;AACTA;AACD,KAFH;AAGD,GAhBM,CAAP;AAiBD,C;;;;;;;;;;;;;;;ACnFD;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB,YAAY;AAC/B;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,aAAa;AAChC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,0DAA0D;AAC1D;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AAAA;AAAA;;AAEA,gEAAgB;;;;;;;;;;;;;;;;;AClEhB;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB;AACxB,8BAA8B;AAC9B,wBAAwB;AACxB,wCAAwC;AACxC,wBAAwB;AACxB,8BAA8B;AAC9B,wBAAwB;AACxB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;A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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd,wBAAwB;AACxB;AACA,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB;AACpB,KAAK;AACL;AACA;AACA,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,uBAAuB,IAAI,YAAY,IAAI,YAAY,IAAI;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,wBAAwB,IAAI,YAAY,IAAI,YAAY,IAAI;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,0BAA0B,EAAE,cAAc,EAAE,cAAc,EAAE;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,cAAc;AAC3B,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;;AAEA,KAAK;AACL,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,SAAS;AACT,0CAA0C;AAC1C,SAAS;AACT,0CAA0C;AAC1C,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6DAA6D;;AAE7D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS,OAAO;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA,CAAC;;;;;;;AC9yCD,yC","file":"contour.bundle.js","sourcesContent":["import vtk from './vtk';\n\nlet globalMTime = 0;\n\nexport const VOID = Symbol('void');\n\nfunction getCurrentGlobalMTime() {\n return globalMTime;\n}\n\n// ----------------------------------------------------------------------------\n// Logging function calls\n// ----------------------------------------------------------------------------\n/* eslint-disable no-prototype-builtins */\n\nconst fakeConsole = {};\n\nfunction noOp() {}\n\nconst consoleMethods = [\n 'log',\n 'debug',\n 'info',\n 'warn',\n 'error',\n 'time',\n 'timeEnd',\n 'group',\n 'groupEnd',\n];\nconsoleMethods.forEach((methodName) => {\n fakeConsole[methodName] = noOp;\n});\n\nglobal.console = console.hasOwnProperty('log') ? console : fakeConsole;\n\nconst loggerFunctions = {\n debug: noOp, // Don't print debug by default\n error: global.console.error || noOp,\n info: global.console.info || noOp,\n log: global.console.log || noOp,\n warn: global.console.warn || noOp,\n};\n\nexport function setLoggerFunction(name, fn) {\n if (loggerFunctions[name]) {\n loggerFunctions[name] = fn || noOp;\n }\n}\n\nexport function vtkLogMacro(...args) {\n loggerFunctions.log(...args);\n}\n\nexport function vtkInfoMacro(...args) {\n loggerFunctions.info(...args);\n}\n\nexport function vtkDebugMacro(...args) {\n loggerFunctions.debug(...args);\n}\n\nexport function vtkErrorMacro(...args) {\n loggerFunctions.error(...args);\n}\n\nexport function vtkWarningMacro(...args) {\n loggerFunctions.warn(...args);\n}\n\nconst ERROR_ONCE_MAP = {};\nexport function vtkOnceErrorMacro(str) {\n if (!ERROR_ONCE_MAP[str]) {\n loggerFunctions.error(str);\n ERROR_ONCE_MAP[str] = true;\n }\n}\n\n// ----------------------------------------------------------------------------\n// TypedArray\n// ----------------------------------------------------------------------------\n\nexport const TYPED_ARRAYS = {\n Float32Array,\n Float64Array,\n Uint8Array,\n Int8Array,\n Uint16Array,\n Int16Array,\n Uint32Array,\n Int32Array,\n};\n\n// ----------------------------------------------------------------------------\n// capitilze provided string\n// ----------------------------------------------------------------------------\n\nexport function capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n\nexport function uncapitalize(str) {\n return str.charAt(0).toLowerCase() + str.slice(1);\n}\n\n// ----------------------------------------------------------------------------\n// Convert byte size into a well formatted string\n// ----------------------------------------------------------------------------\n\nexport function formatBytesToProperUnit(size, precision = 2, chunkSize = 1000) {\n const units = ['TB', 'GB', 'MB', 'KB'];\n let value = Number(size);\n let currentUnit = 'B';\n while (value > chunkSize) {\n value /= chunkSize;\n currentUnit = units.pop();\n }\n return `${value.toFixed(precision)} ${currentUnit}`;\n}\n// ----------------------------------------------------------------------------\n// Convert thousand number with proper seperator\n// ----------------------------------------------------------------------------\n\nexport function formatNumbersWithThousandSeparator(n, separator = ' ') {\n const sections = [];\n let size = n;\n while (size > 1000) {\n sections.push(`000${size % 1000}`.slice(-3));\n size = Math.floor(size / 1000);\n }\n if (size > 0) {\n sections.push(size);\n }\n sections.reverse();\n return sections.join(separator);\n}\n\n// ----------------------------------------------------------------------------\n// Array helper\n// ----------------------------------------------------------------------------\n\nfunction safeArrays(model) {\n Object.keys(model).forEach((key) => {\n if (Array.isArray(model[key])) {\n model[key] = [].concat(model[key]);\n }\n });\n}\n\n// ----------------------------------------------------------------------------\n\nfunction enumToString(e, value) {\n return Object.keys(e).find((key) => e[key] === value);\n}\n\nfunction getStateArrayMapFunc(item) {\n if (item.isA) {\n return item.getState();\n }\n return item;\n}\n\n// ----------------------------------------------------------------------------\n// vtkObject: modified(), onModified(callback), delete()\n// ----------------------------------------------------------------------------\n\nexport function obj(publicAPI = {}, model = {}) {\n // Ensure each instance as a unique ref of array\n safeArrays(model);\n\n const callbacks = [];\n if (!Number.isInteger(model.mtime)) {\n model.mtime = ++globalMTime;\n }\n model.classHierarchy = ['vtkObject'];\n\n function off(index) {\n callbacks[index] = null;\n }\n\n function on(index) {\n function unsubscribe() {\n off(index);\n }\n return Object.freeze({\n unsubscribe,\n });\n }\n\n publicAPI.isDeleted = () => !!model.deleted;\n\n publicAPI.modified = (otherMTime) => {\n if (model.deleted) {\n vtkErrorMacro('instance deleted - cannot call any method');\n return;\n }\n\n if (otherMTime && otherMTime < publicAPI.getMTime()) {\n return;\n }\n\n model.mtime = ++globalMTime;\n callbacks.forEach((callback) => callback && callback(publicAPI));\n };\n\n publicAPI.onModified = (callback) => {\n if (model.deleted) {\n vtkErrorMacro('instance deleted - cannot call any method');\n return null;\n }\n\n const index = callbacks.length;\n callbacks.push(callback);\n return on(index);\n };\n\n publicAPI.getMTime = () => model.mtime;\n\n publicAPI.isA = (className) => {\n let count = model.classHierarchy.length;\n // we go backwards as that is more likely for\n // early termination\n while (count--) {\n if (model.classHierarchy[count] === className) {\n return true;\n }\n }\n return false;\n };\n\n publicAPI.getClassName = (depth = 0) =>\n model.classHierarchy[model.classHierarchy.length - 1 - depth];\n\n publicAPI.set = (map = {}, noWarning = false, noFunction = false) => {\n let ret = false;\n Object.keys(map).forEach((name) => {\n const fn = noFunction ? null : publicAPI[`set${capitalize(name)}`];\n if (fn && Array.isArray(map[name]) && fn.length > 1) {\n ret = fn(...map[name]) || ret;\n } else if (fn) {\n ret = fn(map[name]) || ret;\n } else {\n // Set data on model directly\n if (['mtime'].indexOf(name) === -1 && !noWarning) {\n vtkWarningMacro(\n `Warning: Set value to model directly ${name}, ${map[name]}`\n );\n }\n model[name] = map[name];\n ret = true;\n }\n });\n return ret;\n };\n\n publicAPI.get = (...list) => {\n if (!list.length) {\n return model;\n }\n const subset = {};\n list.forEach((name) => {\n subset[name] = model[name];\n });\n return subset;\n };\n\n publicAPI.getReferenceByName = (val) => model[val];\n\n publicAPI.delete = () => {\n Object.keys(model).forEach((field) => delete model[field]);\n callbacks.forEach((el, index) => off(index));\n\n // Flag the instance being deleted\n model.deleted = true;\n };\n\n // Add serialization support\n publicAPI.getState = () => {\n const jsonArchive = Object.assign({}, model, {\n vtkClass: publicAPI.getClassName(),\n });\n\n // Convert every vtkObject to its serializable form\n Object.keys(jsonArchive).forEach((keyName) => {\n if (jsonArchive[keyName] === null || jsonArchive[keyName] === undefined) {\n delete jsonArchive[keyName];\n } else if (jsonArchive[keyName].isA) {\n jsonArchive[keyName] = jsonArchive[keyName].getState();\n } else if (Array.isArray(jsonArchive[keyName])) {\n jsonArchive[keyName] = jsonArchive[keyName].map(getStateArrayMapFunc);\n }\n });\n\n // Sort resulting object by key name\n const sortedObj = {};\n Object.keys(jsonArchive)\n .sort()\n .forEach((name) => {\n sortedObj[name] = jsonArchive[name];\n });\n\n // Remove mtime\n if (sortedObj.mtime) {\n delete sortedObj.mtime;\n }\n\n return sortedObj;\n };\n\n // Add shallowCopy(otherInstance) support\n publicAPI.shallowCopy = (other, debug = false) => {\n if (other.getClassName() !== publicAPI.getClassName()) {\n throw new Error(\n `Cannot ShallowCopy ${other.getClassName()} into ${publicAPI.getClassName()}`\n );\n }\n const otherModel = other.get();\n\n const keyList = Object.keys(model).sort();\n const otherKeyList = Object.keys(otherModel).sort();\n\n otherKeyList.forEach((key) => {\n const keyIdx = keyList.indexOf(key);\n if (keyIdx === -1) {\n if (debug) {\n vtkDebugMacro(`add ${key} in shallowCopy`);\n }\n } else {\n keyList.splice(keyIdx, 1);\n }\n model[key] = otherModel[key];\n });\n if (keyList.length && debug) {\n vtkDebugMacro(`Untouched keys: ${keyList.join(', ')}`);\n }\n\n publicAPI.modified();\n };\n\n // Allow usage as decorator\n return publicAPI;\n}\n\n// ----------------------------------------------------------------------------\n// getXXX: add getters\n// ----------------------------------------------------------------------------\n\nexport function get(publicAPI, model, fieldNames) {\n fieldNames.forEach((field) => {\n if (typeof field === 'object') {\n publicAPI[`get${capitalize(field.name)}`] = () => model[field.name];\n } else {\n publicAPI[`get${capitalize(field)}`] = () => model[field];\n }\n });\n}\n\n// ----------------------------------------------------------------------------\n// setXXX: add setters\n// ----------------------------------------------------------------------------\n\nconst objectSetterMap = {\n enum(publicAPI, model, field) {\n return (value) => {\n if (typeof value === 'string') {\n if (field.enum[value] !== undefined) {\n if (model[field.name] !== field.enum[value]) {\n model[field.name] = field.enum[value];\n publicAPI.modified();\n return true;\n }\n return false;\n }\n vtkErrorMacro(`Set Enum with invalid argument ${field}, ${value}`);\n throw new RangeError('Set Enum with invalid string argument');\n }\n if (typeof value === 'number') {\n if (model[field.name] !== value) {\n if (\n Object.keys(field.enum)\n .map((key) => field.enum[key])\n .indexOf(value) !== -1\n ) {\n model[field.name] = value;\n publicAPI.modified();\n return true;\n }\n vtkErrorMacro(`Set Enum outside numeric range ${field}, ${value}`);\n throw new RangeError('Set Enum outside numeric range');\n }\n return false;\n }\n vtkErrorMacro(\n `Set Enum with invalid argument (String/Number) ${field}, ${value}`\n );\n throw new TypeError('Set Enum with invalid argument (String/Number)');\n };\n },\n};\n\nfunction findSetter(field) {\n if (typeof field === 'object') {\n const fn = objectSetterMap[field.type];\n if (fn) {\n return (publicAPI, model) => fn(publicAPI, model, field);\n }\n\n vtkErrorMacro(`No setter for field ${field}`);\n throw new TypeError('No setter for field');\n }\n return function getSetter(publicAPI, model) {\n return function setter(value) {\n if (model.deleted) {\n vtkErrorMacro('instance deleted - cannot call any method');\n return false;\n }\n\n if (model[field] !== value) {\n model[field] = value;\n publicAPI.modified();\n return true;\n }\n return false;\n };\n };\n}\n\nexport function set(publicAPI, model, fields) {\n fields.forEach((field) => {\n if (typeof field === 'object') {\n publicAPI[`set${capitalize(field.name)}`] = findSetter(field)(\n publicAPI,\n model\n );\n } else {\n publicAPI[`set${capitalize(field)}`] = findSetter(field)(\n publicAPI,\n model\n );\n }\n });\n}\n\n// ----------------------------------------------------------------------------\n// set/get XXX: add both setters and getters\n// ----------------------------------------------------------------------------\n\nexport function setGet(publicAPI, model, fieldNames) {\n get(publicAPI, model, fieldNames);\n set(publicAPI, model, fieldNames);\n}\n\n// ----------------------------------------------------------------------------\n// getXXX: add getters for object of type array with copy to be safe\n// getXXXByReference: add getters for object of type array without copy\n// ----------------------------------------------------------------------------\n\nexport function getArray(publicAPI, model, fieldNames) {\n fieldNames.forEach((field) => {\n publicAPI[`get${capitalize(field)}`] = () => [].concat(model[field]);\n publicAPI[`get${capitalize(field)}ByReference`] = () => model[field];\n });\n}\n\n// ----------------------------------------------------------------------------\n// setXXX: add setter for object of type array\n// if 'defaultVal' is supplied, shorter arrays will be padded to 'size' with 'defaultVal'\n// set...From: fast path to copy the content of an array to the current one without call to modified.\n// ----------------------------------------------------------------------------\n\nexport function setArray(\n publicAPI,\n model,\n fieldNames,\n size,\n defaultVal = undefined\n) {\n fieldNames.forEach((field) => {\n publicAPI[`set${capitalize(field)}`] = (...args) => {\n if (model.deleted) {\n vtkErrorMacro('instance deleted - cannot call any method');\n return false;\n }\n\n let array = args;\n // allow an array passed as a single arg.\n if (array.length === 1 && Array.isArray(array[0])) {\n /* eslint-disable prefer-destructuring */\n array = array[0];\n /* eslint-enable prefer-destructuring */\n }\n\n if (array.length !== size) {\n if (array.length < size && defaultVal !== undefined) {\n array = [].concat(array);\n while (array.length < size) array.push(defaultVal);\n } else {\n throw new RangeError('Invalid number of values for array setter');\n }\n }\n let changeDetected = false;\n model[field].forEach((item, index) => {\n if (item !== array[index]) {\n if (changeDetected) {\n return;\n }\n changeDetected = true;\n }\n });\n\n if (changeDetected || model[field].length !== array.length) {\n model[field] = [].concat(array);\n publicAPI.modified();\n }\n return true;\n };\n\n publicAPI[`set${capitalize(field)}From`] = (otherArray) => {\n const target = model[field];\n otherArray.forEach((v, i) => {\n target[i] = v;\n });\n };\n });\n}\n\n// ----------------------------------------------------------------------------\n// set/get XXX: add setter and getter for object of type array\n// ----------------------------------------------------------------------------\n\nexport function setGetArray(\n publicAPI,\n model,\n fieldNames,\n size,\n defaultVal = undefined\n) {\n getArray(publicAPI, model, fieldNames);\n setArray(publicAPI, model, fieldNames, size, defaultVal);\n}\n\n// ----------------------------------------------------------------------------\n// vtkAlgorithm: setInputData(), setInputConnection(), getOutputData(), getOutputPort()\n// ----------------------------------------------------------------------------\n\nexport function algo(publicAPI, model, numberOfInputs, numberOfOutputs) {\n if (model.inputData) {\n model.inputData = model.inputData.map(vtk);\n } else {\n model.inputData = [];\n }\n\n if (model.inputConnection) {\n model.inputConnection = model.inputConnection.map(vtk);\n } else {\n model.inputConnection = [];\n }\n\n if (model.output) {\n model.output = model.output.map(vtk);\n } else {\n model.output = [];\n }\n\n if (model.inputArrayToProcess) {\n model.inputArrayToProcess = model.inputArrayToProcess.map(vtk);\n } else {\n model.inputArrayToProcess = [];\n }\n\n // Cache the argument for later manipulation\n model.numberOfInputs = numberOfInputs;\n\n // Methods\n function setInputData(dataset, port = 0) {\n if (model.deleted) {\n vtkErrorMacro('instance deleted - cannot call any method');\n return;\n }\n if (port >= model.numberOfInputs) {\n let msg = `algorithm ${publicAPI.getClassName()} only has `;\n msg += `${model.numberOfInputs}`;\n msg += ' input ports. To add more input ports, use addInputData()';\n vtkErrorMacro(msg);\n return;\n }\n if (model.inputData[port] !== dataset || model.inputConnection[port]) {\n model.inputData[port] = dataset;\n model.inputConnection[port] = null;\n if (publicAPI.modified) {\n publicAPI.modified();\n }\n }\n }\n\n function getInputData(port = 0) {\n if (model.inputConnection[port]) {\n model.inputData[port] = model.inputConnection[port]();\n }\n return model.inputData[port];\n }\n\n function setInputConnection(outputPort, port = 0) {\n if (model.deleted) {\n vtkErrorMacro('instance deleted - cannot call any method');\n return;\n }\n if (port >= model.numberOfInputs) {\n let msg = `algorithm ${publicAPI.getClassName()} only has `;\n msg += `${model.numberOfInputs}`;\n msg += ' input ports. To add more input ports, use addInputConnection()';\n vtkErrorMacro(msg);\n return;\n }\n model.inputData[port] = null;\n model.inputConnection[port] = outputPort;\n }\n\n function getInputConnection(port = 0) {\n return model.inputConnection[port];\n }\n\n function addInputConnection(outputPort) {\n if (model.deleted) {\n vtkErrorMacro('instance deleted - cannot call any method');\n return;\n }\n model.numberOfInputs++;\n setInputConnection(outputPort, model.numberOfInputs - 1);\n }\n\n function addInputData(dataset) {\n if (model.deleted) {\n vtkErrorMacro('instance deleted - cannot call any method');\n return;\n }\n model.numberOfInputs++;\n setInputData(dataset, model.numberOfInputs - 1);\n }\n\n function getOutputData(port = 0) {\n if (model.deleted) {\n vtkErrorMacro('instance deleted - cannot call any method');\n return null;\n }\n if (publicAPI.shouldUpdate()) {\n publicAPI.update();\n }\n return model.output[port];\n }\n\n publicAPI.shouldUpdate = () => {\n const localMTime = publicAPI.getMTime();\n let count = numberOfOutputs;\n let minOutputMTime = Infinity;\n while (count--) {\n if (!model.output[count]) {\n return true;\n }\n const mt = model.output[count].getMTime();\n if (mt < localMTime) {\n return true;\n }\n if (mt < minOutputMTime) {\n minOutputMTime = mt;\n }\n }\n\n count = model.numberOfInputs;\n while (count--) {\n if (\n model.inputConnection[count] &&\n model.inputConnection[count].filter.shouldUpdate()\n ) {\n return true;\n }\n }\n\n count = model.numberOfInputs;\n while (count--) {\n if (\n publicAPI.getInputData(count) &&\n publicAPI.getInputData(count).getMTime() > minOutputMTime\n ) {\n return true;\n }\n }\n return false;\n };\n\n function getOutputPort(port = 0) {\n const outputPortAccess = () => getOutputData(port);\n // Add reference to filter\n outputPortAccess.filter = publicAPI;\n return outputPortAccess;\n }\n\n // Handle input if needed\n if (model.numberOfInputs) {\n // Reserve inputs\n let count = model.numberOfInputs;\n while (count--) {\n model.inputData.push(null);\n model.inputConnection.push(null);\n }\n\n // Expose public methods\n publicAPI.setInputData = setInputData;\n publicAPI.setInputConnection = setInputConnection;\n publicAPI.addInputData = addInputData;\n publicAPI.addInputConnection = addInputConnection;\n publicAPI.getInputData = getInputData;\n publicAPI.getInputConnection = getInputConnection;\n }\n\n if (numberOfOutputs) {\n publicAPI.getOutputData = getOutputData;\n publicAPI.getOutputPort = getOutputPort;\n }\n\n publicAPI.update = () => {\n const ins = [];\n if (model.numberOfInputs) {\n let count = 0;\n while (count < model.numberOfInputs) {\n ins[count] = publicAPI.getInputData(count);\n count++;\n }\n }\n if (publicAPI.shouldUpdate() && publicAPI.requestData) {\n publicAPI.requestData(ins, model.output);\n }\n };\n\n publicAPI.getNumberOfInputPorts = () => model.numberOfInputs;\n publicAPI.getNumberOfOutputPorts = () => numberOfOutputs;\n\n publicAPI.getInputArrayToProcess = (inputPort) => {\n const arrayDesc = model.inputArrayToProcess[inputPort];\n const ds = model.inputData[inputPort];\n if (arrayDesc && ds) {\n return ds[`get${arrayDesc.fieldAssociation}`]().getArray(\n arrayDesc.arrayName\n );\n }\n return null;\n };\n publicAPI.setInputArrayToProcess = (\n inputPort,\n arrayName,\n fieldAssociation,\n attributeType = 'Scalars'\n ) => {\n while (model.inputArrayToProcess.length < inputPort) {\n model.inputArrayToProcess.push(null);\n }\n model.inputArrayToProcess[inputPort] = {\n arrayName,\n fieldAssociation,\n attributeType,\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n// Event handling: onXXX(callback), invokeXXX(args...)\n// ----------------------------------------------------------------------------\n\nexport const EVENT_ABORT = Symbol('Event abort');\n\nexport function event(publicAPI, model, eventName) {\n const callbacks = [];\n const previousDelete = publicAPI.delete;\n let curCallbackID = 1;\n\n function off(callbackID) {\n for (let i = 0; i < callbacks.length; ++i) {\n const [cbID] = callbacks[i];\n if (cbID === callbackID) {\n callbacks.splice(i, 1);\n return;\n }\n }\n }\n\n function on(callbackID) {\n function unsubscribe() {\n off(callbackID);\n }\n return Object.freeze({\n unsubscribe,\n });\n }\n\n function invoke() {\n if (model.deleted) {\n vtkErrorMacro('instance deleted - cannot call any method');\n return;\n }\n /* eslint-disable prefer-rest-params */\n // Go through a copy of the callbacks array in case new callbacks\n // get prepended within previous callbacks\n const currentCallbacks = callbacks.slice();\n for (let index = 0; index < currentCallbacks.length; ++index) {\n const [, cb, priority] = currentCallbacks[index];\n if (priority < 0) {\n setTimeout(() => cb.apply(publicAPI, arguments), 1 - priority);\n } else if (cb) {\n // Abort only if the callback explicitly returns false\n const continueNext = cb.apply(publicAPI, arguments);\n if (continueNext === EVENT_ABORT) {\n break;\n }\n }\n }\n /* eslint-enable prefer-rest-params */\n }\n\n publicAPI[`invoke${capitalize(eventName)}`] = invoke;\n\n publicAPI[`on${capitalize(eventName)}`] = (callback, priority = 0.0) => {\n if (model.deleted) {\n vtkErrorMacro('instance deleted - cannot call any method');\n return null;\n }\n\n const callbackID = curCallbackID++;\n callbacks.push([callbackID, callback, priority]);\n callbacks.sort((cb1, cb2) => cb2[2] - cb1[2]);\n return on(callbackID);\n };\n\n publicAPI.delete = () => {\n previousDelete();\n callbacks.forEach(([cbID]) => off(cbID));\n };\n}\n\n// ----------------------------------------------------------------------------\n// newInstance\n// ----------------------------------------------------------------------------\n\nexport function newInstance(extend, className) {\n const constructor = (initialValues = {}) => {\n const model = {};\n const publicAPI = {};\n extend(publicAPI, model, initialValues);\n return Object.freeze(publicAPI);\n };\n\n // Register constructor to factory\n if (className) {\n vtk.register(className, constructor);\n }\n\n return constructor;\n}\n\n// ----------------------------------------------------------------------------\n// Chain function calls\n// ----------------------------------------------------------------------------\n\nexport function chain(...fn) {\n return (...args) => fn.filter((i) => !!i).forEach((i) => i(...args));\n}\n\n// ----------------------------------------------------------------------------\n// Some utility methods for vtk objects\n// ----------------------------------------------------------------------------\n\nexport function isVtkObject(instance) {\n return instance && instance.isA && instance.isA('vtkObject');\n}\n\nexport function traverseInstanceTree(\n instance,\n extractFunction,\n accumulator = [],\n visitedInstances = []\n) {\n if (isVtkObject(instance)) {\n if (visitedInstances.indexOf(instance) >= 0) {\n // avoid cycles\n return accumulator;\n }\n\n visitedInstances.push(instance);\n const result = extractFunction(instance);\n if (result !== undefined) {\n accumulator.push(result);\n }\n\n // Now go through this instance's model\n const model = instance.get();\n Object.keys(model).forEach((key) => {\n const modelObj = model[key];\n if (Array.isArray(modelObj)) {\n modelObj.forEach((subObj) => {\n traverseInstanceTree(\n subObj,\n extractFunction,\n accumulator,\n visitedInstances\n );\n });\n } else {\n traverseInstanceTree(\n modelObj,\n extractFunction,\n accumulator,\n visitedInstances\n );\n }\n });\n }\n\n return accumulator;\n}\n\n// ----------------------------------------------------------------------------\n// Returns a function, that, as long as it continues to be invoked, will not\n// be triggered. The function will be called after it stops being called for\n// N milliseconds. If `immediate` is passed, trigger the function on the\n// leading edge, instead of the trailing.\n\nexport function debounce(func, wait, immediate) {\n let timeout;\n return (...args) => {\n const context = this;\n const later = () => {\n timeout = null;\n if (!immediate) {\n func.apply(context, args);\n }\n };\n const callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) {\n func.apply(context, args);\n }\n };\n}\n\n// ----------------------------------------------------------------------------\n// Creates a throttled function that only invokes `func` at most once per\n// every `wait` milliseconds.\n\nexport function throttle(callback, delay) {\n let isThrottled = false;\n let argsToUse = null;\n\n function next() {\n isThrottled = false;\n if (argsToUse !== null) {\n wrapper(...argsToUse); // eslint-disable-line\n argsToUse = null;\n }\n }\n\n function wrapper(...args) {\n if (isThrottled) {\n argsToUse = args;\n return;\n }\n isThrottled = true;\n callback(...args);\n setTimeout(next, delay);\n }\n\n return wrapper;\n}\n\n// ----------------------------------------------------------------------------\n// keystore(publicAPI, model, initialKeystore)\n//\n// - initialKeystore: Initial keystore. This can be either a Map or an\n// object.\n//\n// Generated API\n// setKey(key, value) : mixed (returns value)\n// getKey(key) : mixed\n// getAllKeys() : [mixed]\n// deleteKey(key) : Boolean\n// ----------------------------------------------------------------------------\n\nexport function keystore(publicAPI, model, initialKeystore = {}) {\n model.keystore = Object.assign(model.keystore || {}, initialKeystore);\n\n publicAPI.setKey = (key, value) => {\n model.keystore[key] = value;\n };\n publicAPI.getKey = (key, value) => model.keystore[key];\n publicAPI.getAllKeys = (key, value) => Object.keys(model.keystore);\n publicAPI.deleteKey = (key, value) => delete model.keystore[key];\n publicAPI.clearKeystore = () =>\n publicAPI.getAllKeys().forEach((key) => delete model.keystore[key]);\n}\n\n// ----------------------------------------------------------------------------\n// proxy(publicAPI, model, sectionName, propertyUI)\n//\n// - sectionName: Name of the section for UI\n// - propertyUI: List of props with their UI description\n//\n// Generated API\n// getProxyId() : String\n// listProxyProperties() : [string]\n// updateProxyProperty(name, prop)\n// getProxySection() => List of properties for UI generation\n// ----------------------------------------------------------------------------\nlet nextProxyId = 1;\nconst ROOT_GROUP_NAME = '__root__';\n\nexport function proxy(publicAPI, model) {\n // Proxies are keystores\n keystore(publicAPI, model);\n\n const parentDelete = publicAPI.delete;\n\n // getProxyId\n model.proxyId = `${nextProxyId++}`;\n\n // ui handling\n model.ui = JSON.parse(JSON.stringify(model.ui || [])); // deep copy\n get(publicAPI, model, ['proxyId', 'proxyGroup', 'proxyName']);\n setGet(publicAPI, model, ['proxyManager']);\n\n // group properties\n const propertyMap = {};\n const groupChildrenNames = {};\n\n function registerProperties(descriptionList, currentGroupName) {\n if (!groupChildrenNames[currentGroupName]) {\n groupChildrenNames[currentGroupName] = [];\n }\n const childrenNames = groupChildrenNames[currentGroupName];\n\n for (let i = 0; i < descriptionList.length; i++) {\n childrenNames.push(descriptionList[i].name);\n propertyMap[descriptionList[i].name] = descriptionList[i];\n if (descriptionList[i].children && descriptionList[i].children.length) {\n registerProperties(\n descriptionList[i].children,\n descriptionList[i].name\n );\n }\n }\n }\n registerProperties(model.ui, ROOT_GROUP_NAME);\n\n publicAPI.updateUI = (ui) => {\n model.ui = JSON.parse(JSON.stringify(ui || [])); // deep copy\n Object.keys(propertyMap).forEach((k) => delete propertyMap[k]);\n Object.keys(groupChildrenNames).forEach(\n (k) => delete groupChildrenNames[k]\n );\n registerProperties(model.ui, ROOT_GROUP_NAME);\n publicAPI.modified();\n };\n\n function listProxyProperties(gName = ROOT_GROUP_NAME) {\n return groupChildrenNames[gName];\n }\n\n publicAPI.updateProxyProperty = (propertyName, propUI) => {\n const prop = propertyMap[propertyName];\n if (prop) {\n Object.assign(prop, propUI);\n } else {\n propertyMap[propertyName] = Object.assign({}, propUI);\n }\n };\n\n publicAPI.activate = () => {\n if (model.proxyManager) {\n const setActiveMethod = `setActive${capitalize(\n publicAPI.getProxyGroup().slice(0, -1)\n )}`;\n if (model.proxyManager[setActiveMethod]) {\n model.proxyManager[setActiveMethod](publicAPI);\n }\n }\n };\n\n // property link\n model.propertyLinkSubscribers = {};\n publicAPI.registerPropertyLinkForGC = (otherLink, type) => {\n if (!(type in model.propertyLinkSubscribers)) {\n model.propertyLinkSubscribers[type] = [];\n }\n model.propertyLinkSubscribers[type].push(otherLink);\n };\n\n publicAPI.gcPropertyLinks = (type) => {\n const subscribers = model.propertyLinkSubscribers[type] || [];\n while (subscribers.length) {\n subscribers.pop().unbind(publicAPI);\n }\n };\n\n model.propertyLinkMap = {};\n publicAPI.getPropertyLink = (id, persistent = false) => {\n if (model.propertyLinkMap[id]) {\n return model.propertyLinkMap[id];\n }\n let value = null;\n const links = [];\n let count = 0;\n let updateInProgress = false;\n\n function update(source, force = false) {\n if (updateInProgress) {\n return null;\n }\n\n const needUpdate = [];\n let sourceLink = null;\n count = links.length;\n while (count--) {\n const link = links[count];\n if (link.instance === source) {\n sourceLink = link;\n } else {\n needUpdate.push(link);\n }\n }\n\n if (!sourceLink) {\n return null;\n }\n\n const newValue = sourceLink.instance[\n `get${capitalize(sourceLink.propertyName)}`\n ]();\n if (newValue !== value || force) {\n value = newValue;\n updateInProgress = true;\n while (needUpdate.length) {\n const linkToUpdate = needUpdate.pop();\n linkToUpdate.instance.set({\n [linkToUpdate.propertyName]: value,\n });\n }\n updateInProgress = false;\n }\n\n if (model.propertyLinkMap[id].persistent) {\n model.propertyLinkMap[id].value = newValue;\n }\n\n return newValue;\n }\n\n function unbind(instance, propertyName) {\n const indexToDelete = [];\n count = links.length;\n while (count--) {\n const link = links[count];\n if (\n link.instance === instance &&\n (link.propertyName === propertyName || propertyName === undefined)\n ) {\n link.subscription.unsubscribe();\n indexToDelete.push(count);\n }\n }\n while (indexToDelete.length) {\n links.splice(indexToDelete.pop(), 1);\n }\n }\n\n function bind(instance, propertyName, updateMe = false) {\n const subscription = instance.onModified(update);\n const other = links[0];\n links.push({\n instance,\n propertyName,\n subscription,\n });\n if (updateMe) {\n if (\n model.propertyLinkMap[id].persistent &&\n model.propertyLinkMap[id].value !== undefined\n ) {\n instance.set({\n [propertyName]: model.propertyLinkMap[id].value,\n });\n } else if (other) {\n update(other.instance, true);\n }\n }\n return {\n unsubscribe: () => unbind(instance, propertyName),\n };\n }\n\n function unsubscribe() {\n while (links.length) {\n links.pop().subscription.unsubscribe();\n }\n }\n\n const linkHandler = {\n bind,\n unbind,\n unsubscribe,\n persistent,\n };\n model.propertyLinkMap[id] = linkHandler;\n return linkHandler;\n };\n\n // extract values\n function getProperties(groupName = ROOT_GROUP_NAME) {\n const values = [];\n const id = model.proxyId;\n const propertyNames = listProxyProperties(groupName) || [];\n for (let i = 0; i < propertyNames.length; i++) {\n const name = propertyNames[i];\n const method = publicAPI[`get${capitalize(name)}`];\n const value = method ? method() : undefined;\n const prop = {\n id,\n name,\n value,\n };\n const children = getProperties(name);\n if (children.length) {\n prop.children = children;\n }\n values.push(prop);\n }\n return values;\n }\n\n publicAPI.listPropertyNames = () => getProperties().map((p) => p.name);\n\n publicAPI.getPropertyByName = (name) =>\n getProperties().find((p) => p.name === name);\n\n publicAPI.getPropertyDomainByName = (name) => propertyMap[name].domain;\n\n // ui section\n publicAPI.getProxySection = () => ({\n id: model.proxyId,\n name: model.proxyGroup,\n ui: model.ui,\n properties: getProperties(),\n });\n\n // free resources\n publicAPI.delete = () => {\n const list = Object.keys(model.propertyLinkMap);\n let count = list.length;\n while (count--) {\n model.propertyLinkMap[list[count]].unsubscribe();\n }\n Object.keys(model.propertyLinkSubscribers).forEach(\n publicAPI.gcPropertyLinks\n );\n parentDelete();\n };\n\n function registerLinks() {\n // Allow dynamic registration of links at the application level\n if (model.links) {\n for (let i = 0; i < model.links.length; i++) {\n const { link, property, persistent, updateOnBind, type } = model.links[\n i\n ];\n if (type === 'application') {\n const sLink = model.proxyManager.getPropertyLink(link, persistent);\n publicAPI.registerPropertyLinkForGC(sLink, 'application');\n sLink.bind(publicAPI, property, updateOnBind);\n }\n }\n }\n }\n setImmediate(registerLinks);\n}\n\n// ----------------------------------------------------------------------------\n// proxyPropertyMapping(publicAPI, model, map)\n//\n// map = {\n// opacity: { modelKey: 'property', property: 'opacity' },\n// }\n//\n// Generated API:\n// Elevate set/get methods from internal object stored in the model to current one\n// ----------------------------------------------------------------------------\n\nexport function proxyPropertyMapping(publicAPI, model, map) {\n const parentDelete = publicAPI.delete;\n const subscriptions = [];\n\n const propertyNames = Object.keys(map);\n let count = propertyNames.length;\n while (count--) {\n const propertyName = propertyNames[count];\n const { modelKey, property, modified = true } = map[propertyName];\n const methodSrc = capitalize(property);\n const methodDst = capitalize(propertyName);\n publicAPI[`get${methodDst}`] = model[modelKey][`get${methodSrc}`];\n publicAPI[`set${methodDst}`] = model[modelKey][`set${methodSrc}`];\n if (modified) {\n subscriptions.push(model[modelKey].onModified(publicAPI.modified));\n }\n }\n\n publicAPI.delete = () => {\n while (subscriptions.length) {\n subscriptions.pop().unsubscribe();\n }\n parentDelete();\n };\n}\n\n// ----------------------------------------------------------------------------\n// proxyPropertyState(publicAPI, model, state, defaults)\n//\n// state = {\n// representation: {\n// 'Surface with edges': { property: { edgeVisibility: true, representation: 2 } },\n// Surface: { property: { edgeVisibility: false, representation: 2 } },\n// Wireframe: { property: { edgeVisibility: false, representation: 1 } },\n// Points: { property: { edgeVisibility: false, representation: 0 } },\n// },\n// }\n//\n// defaults = {\n// representation: 'Surface',\n// }\n//\n// Generated API\n// get / set Representation ( string ) => push state to various internal objects\n// ----------------------------------------------------------------------------\n\nexport function proxyPropertyState(\n publicAPI,\n model,\n state = {},\n defaults = {}\n) {\n model.this = publicAPI;\n\n function applyState(map) {\n const modelKeys = Object.keys(map);\n let count = modelKeys.length;\n while (count--) {\n const modelKey = modelKeys[count];\n model[modelKey].set(map[modelKey]);\n }\n }\n\n const modelKeys = Object.keys(defaults);\n let count = modelKeys.length;\n while (count--) {\n // Add default\n const key = modelKeys[count];\n model[key] = defaults[key];\n\n // Add set method\n const mapping = state[key];\n publicAPI[`set${capitalize(key)}`] = (value) => {\n if (value !== model[key]) {\n model[key] = value;\n const propValues = mapping[value];\n applyState(propValues);\n publicAPI.modified();\n }\n };\n }\n\n // Add getter\n if (modelKeys.length) {\n get(publicAPI, model, modelKeys);\n }\n}\n\n// ----------------------------------------------------------------------------\n// From : https://github.com/facebookarchive/fixed-data-table/blob/master/src/vendor_upstream/dom/normalizeWheel.js\n//\n//\n// Copyright (c) 2015, Facebook, Inc.\n// All rights reserved.\n//\n// This source code is licensed under the BSD-style license found in the\n// LICENSE file in the root directory of this source tree. An additional grant\n// of patent rights can be found in the PATENTS file in the same directory.\n//\n//\n// Mouse wheel (and 2-finger trackpad) support on the web sucks. It is\n// complicated, thus this doc is long and (hopefully) detailed enough to answer\n// your questions.\n//\n// If you need to react to the mouse wheel in a predictable way, this code is\n// like your bestest friend.// hugs//\n//\n// As of today, there are 4 DOM event types you can listen to:\n//\n// 'wheel' -- Chrome(31+), FF(17+), IE(9+)\n// 'mousewheel' -- Chrome, IE(6+), Opera, Safari\n// 'MozMousePixelScroll' -- FF(3.5 only!) (2010-2013) -- don't bother!\n// 'DOMMouseScroll' -- FF(0.9.7+) since 2003\n//\n// So what to do? The is the best:\n//\n// normalizeWheel.getEventType();\n//\n// In your event callback, use this code to get sane interpretation of the\n// deltas. This code will return an object with properties:\n//\n// spinX -- normalized spin speed (use for zoom) - x plane\n// spinY -- \" - y plane\n// pixelX -- normalized distance (to pixels) - x plane\n// pixelY -- \" - y plane\n//\n// Wheel values are provided by the browser assuming you are using the wheel to\n// scroll a web page by a number of lines or pixels (or pages). Values can vary\n// significantly on different platforms and browsers, forgetting that you can\n// scroll at different speeds. Some devices (like trackpads) emit more events\n// at smaller increments with fine granularity, and some emit massive jumps with\n// linear speed or acceleration.\n//\n// This code does its best to normalize the deltas for you:\n//\n// - spin is trying to normalize how far the wheel was spun (or trackpad\n// dragged). This is super useful for zoom support where you want to\n// throw away the chunky scroll steps on the PC and make those equal to\n// the slow and smooth tiny steps on the Mac. Key data: This code tries to\n// resolve a single slow step on a wheel to 1.\n//\n// - pixel is normalizing the desired scroll delta in pixel units. You'll\n// get the crazy differences between browsers, but at least it'll be in\n// pixels!\n//\n// - positive value indicates scrolling DOWN/RIGHT, negative UP/LEFT. This\n// should translate to positive value zooming IN, negative zooming OUT.\n// This matches the newer 'wheel' event.\n//\n// Why are there spinX, spinY (or pixels)?\n//\n// - spinX is a 2-finger side drag on the trackpad, and a shift + wheel turn\n// with a mouse. It results in side-scrolling in the browser by default.\n//\n// - spinY is what you expect -- it's the classic axis of a mouse wheel.\n//\n// - I dropped spinZ/pixelZ. It is supported by the DOM 3 'wheel' event and\n// probably is by browsers in conjunction with fancy 3D controllers .. but\n// you know.\n//\n// Implementation info:\n//\n// Examples of 'wheel' event if you scroll slowly (down) by one step with an\n// average mouse:\n//\n// OS X + Chrome (mouse) - 4 pixel delta (wheelDelta -120)\n// OS X + Safari (mouse) - N/A pixel delta (wheelDelta -12)\n// OS X + Firefox (mouse) - 0.1 line delta (wheelDelta N/A)\n// Win8 + Chrome (mouse) - 100 pixel delta (wheelDelta -120)\n// Win8 + Firefox (mouse) - 3 line delta (wheelDelta -120)\n//\n// On the trackpad:\n//\n// OS X + Chrome (trackpad) - 2 pixel delta (wheelDelta -6)\n// OS X + Firefox (trackpad) - 1 pixel delta (wheelDelta N/A)\n//\n// On other/older browsers.. it's more complicated as there can be multiple and\n// also missing delta values.\n//\n// The 'wheel' event is more standard:\n//\n// http://www.w3.org/TR/DOM-Level-3-Events/#events-wheelevents\n//\n// The basics is that it includes a unit, deltaMode (pixels, lines, pages), and\n// deltaX, deltaY and deltaZ. Some browsers provide other values to maintain\n// backward compatibility with older events. Those other values help us\n// better normalize spin speed. Example of what the browsers provide:\n//\n// | event.wheelDelta | event.detail\n// ------------------+------------------+--------------\n// Safari v5/OS X | -120 | 0\n// Safari v5/Win7 | -120 | 0\n// Chrome v17/OS X | -120 | 0\n// Chrome v17/Win7 | -120 | 0\n// IE9/Win7 | -120 | undefined\n// Firefox v4/OS X | undefined | 1\n// Firefox v4/Win7 | undefined | 3\n//\n// ----------------------------------------------------------------------------\n\n// Reasonable defaults\nconst PIXEL_STEP = 10;\nconst LINE_HEIGHT = 40;\nconst PAGE_HEIGHT = 800;\n\nexport function normalizeWheel(wheelEvent) {\n let sX = 0; // spinX\n let sY = 0; // spinY\n let pX = 0; // pixelX\n let pY = 0; // pixelY\n\n // Legacy\n if ('detail' in wheelEvent) {\n sY = wheelEvent.detail;\n }\n if ('wheelDelta' in wheelEvent) {\n sY = -wheelEvent.wheelDelta / 120;\n }\n if ('wheelDeltaY' in wheelEvent) {\n sY = -wheelEvent.wheelDeltaY / 120;\n }\n if ('wheelDeltaX' in wheelEvent) {\n sX = -wheelEvent.wheelDeltaX / 120;\n }\n\n // side scrolling on FF with DOMMouseScroll\n if ('axis' in wheelEvent && wheelEvent.axis === wheelEvent.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n\n if ('deltaY' in wheelEvent) {\n pY = wheelEvent.deltaY;\n }\n if ('deltaX' in wheelEvent) {\n pX = wheelEvent.deltaX;\n }\n\n if ((pX || pY) && wheelEvent.deltaMode) {\n if (wheelEvent.deltaMode === 1) {\n // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n\n // Fall-back if spin cannot be determined\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY,\n };\n}\n\n// ----------------------------------------------------------------------------\n// Default export\n// ----------------------------------------------------------------------------\n\nexport default {\n EVENT_ABORT,\n VOID,\n TYPED_ARRAYS,\n algo,\n capitalize,\n uncapitalize,\n chain,\n enumToString,\n event,\n get,\n getArray,\n getCurrentGlobalMTime,\n getStateArrayMapFunc,\n isVtkObject,\n keystore,\n newInstance,\n obj,\n safeArrays,\n set,\n setArray,\n setGet,\n setGetArray,\n setLoggerFunction,\n traverseInstanceTree,\n vtkDebugMacro,\n vtkErrorMacro,\n vtkOnceErrorMacro,\n vtkInfoMacro,\n vtkLogMacro,\n vtkWarningMacro,\n debounce,\n throttle,\n proxy,\n proxyPropertyMapping,\n proxyPropertyState,\n formatBytesToProperUnit,\n formatNumbersWithThousandSeparator,\n normalizeWheel,\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/Sources/macro.js","import seedrandom from 'seedrandom';\nimport macro from 'vtk.js/Sources/macro';\n\nconst { vtkErrorMacro, vtkWarningMacro } = macro;\n\n// ----------------------------------------------------------------------------\n/* eslint-disable camelcase */\n/* eslint-disable no-cond-assign */\n/* eslint-disable no-bitwise */\n/* eslint-disable no-multi-assign */\n// ----------------------------------------------------------------------------\nlet randomSeedValue = 0;\nconst VTK_MAX_ROTATIONS = 20;\nconst VTK_SMALL_NUMBER = 1.0e-12;\n\nfunction notImplemented(method) {\n return () => vtkErrorMacro(`vtkMath::${method} - NOT IMPLEMENTED`);\n}\n\nfunction vtkSwapVectors3(v1, v2) {\n for (let i = 0; i < 3; i++) {\n const tmp = v1[i];\n v1[i] = v2[i];\n v2[i] = tmp;\n }\n}\n\nfunction createArray(size = 3) {\n const array = [];\n while (array.length < size) {\n array.push(0);\n }\n return array;\n}\n\n// ----------------------------------------------------------------------------\n// Global methods\n// ----------------------------------------------------------------------------\n\nconst Pi = () => Math.PI;\nconst radiansFromDegrees = (deg) => deg / 180 * Math.PI;\nconst degreesFromRadians = (rad) => rad * 180 / Math.PI;\nconst { round, floor, ceil, min, max } = Math;\n\nfunction arrayMin(arr) {\n let minValue = Infinity;\n for (let i = 0, len = arr.length; i < len; ++i) {\n if (arr[i] < minValue) {\n minValue = arr[i];\n }\n }\n\n return minValue;\n}\n\nfunction arrayMax(arr) {\n let maxValue = -Infinity;\n for (let i = 0, len = arr.length; i < len; ++i) {\n if (maxValue < arr[i]) {\n maxValue = arr[i];\n }\n }\n\n return maxValue;\n}\n\nconst ceilLog2 = notImplemented('ceilLog2');\nconst factorial = notImplemented('factorial');\n\nfunction nearestPowerOfTwo(xi) {\n let v = 1;\n while (v < xi) {\n v *= 2;\n }\n return v;\n}\n\nfunction isPowerOfTwo(x) {\n return x === nearestPowerOfTwo(x);\n}\n\nfunction binomial(m, n) {\n let r = 1;\n for (let i = 1; i <= n; ++i) {\n r *= (m - i + 1) / i;\n }\n return Math.floor(r);\n}\n\nfunction beginCombination(m, n) {\n if (m < n) {\n return 0;\n }\n\n const r = createArray(n);\n for (let i = 0; i < n; ++i) {\n r[i] = i;\n }\n return r;\n}\n\nfunction nextCombination(m, n, r) {\n let status = 0;\n for (let i = n - 1; i >= 0; --i) {\n if (r[i] < m - n + i) {\n let j = r[i] + 1;\n while (i < n) {\n r[i++] = j++;\n }\n status = 1;\n break;\n }\n }\n return status;\n}\n\nconst randomSeed = (seed) => {\n seedrandom(`${seed}`, { global: true });\n randomSeedValue = seed;\n};\n\nconst getSeed = () => randomSeedValue;\n\nfunction random(minValue = 0, maxValue = 1) {\n const delta = maxValue - minValue;\n return minValue + delta * Math.random();\n}\n\nconst gaussian = notImplemented('gaussian');\n\n// Vect3 operations\nfunction add(a, b, out) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n}\n\nfunction subtract(a, b, out) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n}\n\nfunction multiplyScalar(vec, scalar) {\n vec[0] *= scalar;\n vec[1] *= scalar;\n vec[2] *= scalar;\n}\n\nfunction multiplyScalar2D(vec, scalar) {\n vec[0] *= scalar;\n vec[1] *= scalar;\n}\n\nfunction dot(x, y) {\n return x[0] * y[0] + x[1] * y[1] + x[2] * y[2];\n}\n\nfunction outer(x, y, out_3x3) {\n for (let i = 0; i < 3; i++) {\n for (let j = 0; j < 3; j++) {\n out_3x3[i][j] = x[i] * y[j];\n }\n }\n}\n\nfunction cross(x, y, out) {\n const Zx = x[1] * y[2] - x[2] * y[1];\n const Zy = x[2] * y[0] - x[0] * y[2];\n const Zz = x[0] * y[1] - x[1] * y[0];\n out[0] = Zx;\n out[1] = Zy;\n out[2] = Zz;\n}\n\nfunction norm(x, n = 3) {\n switch (n) {\n case 1:\n return Math.abs(x);\n case 2:\n return Math.sqrt(x[0] * x[0] + x[1] * x[1]);\n case 3:\n return Math.sqrt(x[0] * x[0] + x[1] * x[1] + x[2] * x[2]);\n default: {\n let sum = 0;\n for (let i = 0; i < n; i++) {\n sum += x[i] * x[i];\n }\n return Math.sqrt(sum);\n }\n }\n}\n\nfunction normalize(x) {\n const den = norm(x);\n if (den !== 0.0) {\n x[0] /= den;\n x[1] /= den;\n x[2] /= den;\n }\n return den;\n}\n\nfunction perpendiculars(x, y, z, theta) {\n const x2 = x[0] * x[0];\n const y2 = x[1] * x[1];\n const z2 = x[2] * x[2];\n const r = Math.sqrt(x2 + y2 + z2);\n\n let dx;\n let dy;\n let dz;\n\n // transpose the vector to avoid divide-by-zero error\n if (x2 > y2 && x2 > z2) {\n dx = 0;\n dy = 1;\n dz = 2;\n } else if (y2 > z2) {\n dx = 1;\n dy = 2;\n dz = 0;\n } else {\n dx = 2;\n dy = 0;\n dz = 1;\n }\n\n const a = x[dx] / r;\n const b = x[dy] / r;\n const c = x[dz] / r;\n const tmp = Math.sqrt(a * a + c * c);\n\n if (theta !== 0) {\n const sintheta = Math.sin(theta);\n const costheta = Math.cos(theta);\n\n if (y) {\n y[dx] = (c * costheta - a * b * sintheta) / tmp;\n y[dy] = sintheta * tmp;\n y[dz] = (-(a * costheta) - b * c * sintheta) / tmp;\n }\n\n if (z) {\n z[dx] = (-(c * sintheta) - a * b * costheta) / tmp;\n z[dy] = costheta * tmp;\n z[dz] = (a * sintheta - b * c * costheta) / tmp;\n }\n } else {\n if (y) {\n y[dx] = c / tmp;\n y[dy] = 0;\n y[dz] = -a / tmp;\n }\n\n if (z) {\n z[dx] = -a * b / tmp;\n z[dy] = tmp;\n z[dz] = -b * c / tmp;\n }\n }\n}\n\nfunction projectVector(a, b, projection) {\n const bSquared = dot(b, b);\n\n if (bSquared === 0) {\n projection[0] = 0;\n projection[1] = 0;\n projection[2] = 0;\n return false;\n }\n\n const scale = dot(a, b) / bSquared;\n\n for (let i = 0; i < 3; i++) {\n projection[i] = b[i];\n }\n multiplyScalar(projection, scale);\n\n return true;\n}\n\nfunction dot2D(x, y) {\n return x[0] * y[0] + x[1] * y[1];\n}\n\nfunction projectVector2D(a, b, projection) {\n const bSquared = dot2D(b, b);\n\n if (bSquared === 0) {\n projection[0] = 0;\n projection[1] = 0;\n return false;\n }\n\n const scale = dot2D(a, b) / bSquared;\n\n for (let i = 0; i < 2; i++) {\n projection[i] = b[i];\n }\n multiplyScalar2D(projection, scale);\n\n return true;\n}\n\nfunction distance2BetweenPoints(x, y) {\n return (\n (x[0] - y[0]) * (x[0] - y[0]) +\n (x[1] - y[1]) * (x[1] - y[1]) +\n (x[2] - y[2]) * (x[2] - y[2])\n );\n}\n\nfunction angleBetweenVectors(v1, v2) {\n const crossVect = [0, 0, 0];\n cross(v1, v2, crossVect);\n return Math.atan2(norm(crossVect), dot(v1, v2));\n}\n\nfunction gaussianAmplitude(mean, variance, position) {\n const distanceFromMean = Math.abs(mean - position);\n return (\n 1 /\n Math.sqrt(2 * Math.PI * variance) *\n Math.exp(-(distanceFromMean ** 2) / (2 * variance))\n );\n}\n\nfunction gaussianWeight(mean, variance, position) {\n const distanceFromMean = Math.abs(mean - position);\n return Math.exp(-(distanceFromMean ** 2) / (2 * variance));\n}\n\nfunction outer2D(x, y, out_2x2) {\n for (let i = 0; i < 2; i++) {\n for (let j = 0; j < 2; j++) {\n out_2x2[i][j] = x[i] * y[j];\n }\n }\n}\n\nfunction norm2D(x2D) {\n return Math.sqrt(x2D[0] * x2D[0] + x2D[1] * x2D[1]);\n}\n\nfunction normalize2D(x) {\n const den = norm2D(x);\n if (den !== 0.0) {\n x[0] /= den;\n x[1] /= den;\n }\n return den;\n}\n\nfunction determinant2x2(...args) {\n if (args.length === 2) {\n return args[0][0] * args[1][1] - args[1][0] * args[0][1];\n }\n if (args.length === 4) {\n return args[0] * args[3] - args[1] * args[2];\n }\n return Number.NaN;\n}\n\nfunction LUFactor3x3(mat_3x3, index_3) {\n let maxI;\n let tmp;\n let largest;\n const scale = [0, 0, 0];\n\n // Loop over rows to get implicit scaling information\n for (let i = 0; i < 3; i++) {\n largest = Math.abs(mat_3x3[i][0]);\n if ((tmp = Math.abs(mat_3x3[i][1])) > largest) {\n largest = tmp;\n }\n if ((tmp = Math.abs(mat_3x3[i][2])) > largest) {\n largest = tmp;\n }\n scale[i] = 1 / largest;\n }\n\n // Loop over all columns using Crout's method\n\n // first column\n largest = scale[0] * Math.abs(mat_3x3[0][0]);\n maxI = 0;\n if ((tmp = scale[1] * Math.abs(mat_3x3[1][0])) >= largest) {\n largest = tmp;\n maxI = 1;\n }\n if ((tmp = scale[2] * Math.abs(mat_3x3[2][0])) >= largest) {\n maxI = 2;\n }\n if (maxI !== 0) {\n vtkSwapVectors3(mat_3x3[maxI], mat_3x3[0]);\n scale[maxI] = scale[0];\n }\n index_3[0] = maxI;\n\n mat_3x3[1][0] /= mat_3x3[0][0];\n mat_3x3[2][0] /= mat_3x3[0][0];\n\n // second column\n mat_3x3[1][1] -= mat_3x3[1][0] * mat_3x3[0][1];\n mat_3x3[2][1] -= mat_3x3[2][0] * mat_3x3[0][1];\n largest = scale[1] * Math.abs(mat_3x3[1][1]);\n maxI = 1;\n if ((tmp = scale[2] * Math.abs(mat_3x3[2][1])) >= largest) {\n maxI = 2;\n vtkSwapVectors3(mat_3x3[2], mat_3x3[1]);\n scale[2] = scale[1];\n }\n index_3[1] = maxI;\n mat_3x3[2][1] /= mat_3x3[1][1];\n\n // third column\n mat_3x3[1][2] -= mat_3x3[1][0] * mat_3x3[0][2];\n mat_3x3[2][2] -=\n mat_3x3[2][0] * mat_3x3[0][2] + mat_3x3[2][1] * mat_3x3[1][2];\n index_3[2] = 2;\n}\n\nfunction LUSolve3x3(mat_3x3, index_3, x_3) {\n // forward substitution\n let sum = x_3[index_3[0]];\n x_3[index_3[0]] = x_3[0];\n x_3[0] = sum;\n\n sum = x_3[index_3[1]];\n x_3[index_3[1]] = x_3[1];\n x_3[1] = sum - mat_3x3[1][0] * x_3[0];\n\n sum = x_3[index_3[2]];\n x_3[index_3[2]] = x_3[2];\n x_3[2] = sum - mat_3x3[2][0] * x_3[0] - mat_3x3[2][1] * x_3[1];\n\n // back substitution\n x_3[2] /= mat_3x3[2][2];\n x_3[1] = (x_3[1] - mat_3x3[1][2] * x_3[2]) / mat_3x3[1][1];\n x_3[0] =\n (x_3[0] - mat_3x3[0][1] * x_3[1] - mat_3x3[0][2] * x_3[2]) / mat_3x3[0][0];\n}\n\nfunction linearSolve3x3(mat_3x3, x_3, y_3) {\n const a1 = mat_3x3[0][0];\n const b1 = mat_3x3[0][1];\n const c1 = mat_3x3[0][2];\n const a2 = mat_3x3[1][0];\n const b2 = mat_3x3[1][1];\n const c2 = mat_3x3[1][2];\n const a3 = mat_3x3[2][0];\n const b3 = mat_3x3[2][1];\n const c3 = mat_3x3[2][2];\n\n // Compute the adjoint\n const d1 = +determinant2x2(b2, b3, c2, c3);\n const d2 = -determinant2x2(a2, a3, c2, c3);\n const d3 = +determinant2x2(a2, a3, b2, b3);\n\n const e1 = -determinant2x2(b1, b3, c1, c3);\n const e2 = +determinant2x2(a1, a3, c1, c3);\n const e3 = -determinant2x2(a1, a3, b1, b3);\n\n const f1 = +determinant2x2(b1, b2, c1, c2);\n const f2 = -determinant2x2(a1, a2, c1, c2);\n const f3 = +determinant2x2(a1, a2, b1, b2);\n\n // Compute the determinant\n const det = a1 * d1 + b1 * d2 + c1 * d3;\n\n // Multiply by the adjoint\n const v1 = d1 * x_3[0] + e1 * x_3[1] + f1 * x_3[2];\n const v2 = d2 * x_3[0] + e2 * x_3[1] + f2 * x_3[2];\n const v3 = d3 * x_3[0] + e3 * x_3[1] + f3 * x_3[2];\n\n // Divide by the determinant\n y_3[0] = v1 / det;\n y_3[1] = v2 / det;\n y_3[2] = v3 / det;\n}\n\nfunction multiply3x3_vect3(mat_3x3, in_3, out_3) {\n const x =\n mat_3x3[0][0] * in_3[0] + mat_3x3[0][1] * in_3[1] + mat_3x3[0][2] * in_3[2];\n const y =\n mat_3x3[1][0] * in_3[0] + mat_3x3[1][1] * in_3[1] + mat_3x3[1][2] * in_3[2];\n const z =\n mat_3x3[2][0] * in_3[0] + mat_3x3[2][1] * in_3[1] + mat_3x3[2][2] * in_3[2];\n\n out_3[0] = x;\n out_3[1] = y;\n out_3[2] = z;\n}\n\nfunction multiply3x3_mat3(a_3x3, b_3x3, out_3x3) {\n const tmp = [[0, 0, 0], [0, 0, 0], [0, 0, 0]];\n\n for (let i = 0; i < 3; i++) {\n tmp[0][i] =\n a_3x3[0][0] * b_3x3[0][i] +\n a_3x3[0][1] * b_3x3[1][i] +\n a_3x3[0][2] * b_3x3[2][i];\n tmp[1][i] =\n a_3x3[1][0] * b_3x3[0][i] +\n a_3x3[1][1] * b_3x3[1][i] +\n a_3x3[1][2] * b_3x3[2][i];\n tmp[2][i] =\n a_3x3[2][0] * b_3x3[0][i] +\n a_3x3[2][1] * b_3x3[1][i] +\n a_3x3[2][2] * b_3x3[2][i];\n }\n\n for (let j = 0; j < 3; j++) {\n out_3x3[j][0] = tmp[j][0];\n out_3x3[j][1] = tmp[j][1];\n out_3x3[j][2] = tmp[j][2];\n }\n}\n\nfunction multiplyMatrix(a, b, rowA, colA, rowB, colB, out_rowXcol) {\n // we need colA == rowB\n if (colA !== rowB) {\n vtkErrorMacro('Number of columns of A must match number of rows of B.');\n }\n\n // output matrix is rowA*colB\n // output row\n for (let i = 0; i < rowA; i++) {\n // output col\n for (let j = 0; j < colB; j++) {\n out_rowXcol[i][j] = 0;\n // sum for this point\n for (let k = 0; k < colA; k++) {\n out_rowXcol[i][j] += a[i][k] * b[k][j];\n }\n }\n }\n}\n\nfunction transpose3x3(in_3x3, outT_3x3) {\n let tmp;\n tmp = in_3x3[1][0];\n outT_3x3[1][0] = in_3x3[0][1];\n outT_3x3[0][1] = tmp;\n tmp = in_3x3[2][0];\n outT_3x3[2][0] = in_3x3[0][2];\n outT_3x3[0][2] = tmp;\n tmp = in_3x3[2][1];\n outT_3x3[2][1] = in_3x3[1][2];\n outT_3x3[1][2] = tmp;\n\n outT_3x3[0][0] = in_3x3[0][0];\n outT_3x3[1][1] = in_3x3[1][1];\n outT_3x3[2][2] = in_3x3[2][2];\n}\n\nfunction invert3x3(in_3x3, outI_3x3) {\n const a1 = in_3x3[0][0];\n const b1 = in_3x3[0][1];\n const c1 = in_3x3[0][2];\n const a2 = in_3x3[1][0];\n const b2 = in_3x3[1][1];\n const c2 = in_3x3[1][2];\n const a3 = in_3x3[2][0];\n const b3 = in_3x3[2][1];\n const c3 = in_3x3[2][2];\n\n // Compute the adjoint\n const d1 = +determinant2x2(b2, b3, c2, c3);\n const d2 = -determinant2x2(a2, a3, c2, c3);\n const d3 = +determinant2x2(a2, a3, b2, b3);\n\n const e1 = -determinant2x2(b1, b3, c1, c3);\n const e2 = +determinant2x2(a1, a3, c1, c3);\n const e3 = -determinant2x2(a1, a3, b1, b3);\n\n const f1 = +determinant2x2(b1, b2, c1, c2);\n const f2 = -determinant2x2(a1, a2, c1, c2);\n const f3 = +determinant2x2(a1, a2, b1, b2);\n\n // Divide by the determinant\n const det = a1 * d1 + b1 * d2 + c1 * d3;\n\n outI_3x3[0][0] = d1 / det;\n outI_3x3[1][0] = d2 / det;\n outI_3x3[2][0] = d3 / det;\n\n outI_3x3[0][1] = e1 / det;\n outI_3x3[1][1] = e2 / det;\n outI_3x3[2][1] = e3 / det;\n\n outI_3x3[0][2] = f1 / det;\n outI_3x3[1][2] = f2 / det;\n outI_3x3[2][2] = f3 / det;\n}\n\nfunction identity3x3(mat_3x3) {\n for (let i = 0; i < 3; i++) {\n mat_3x3[i][0] = mat_3x3[i][1] = mat_3x3[i][2] = 0;\n mat_3x3[i][i] = 1;\n }\n}\n\nfunction determinant3x3(mat_3x3) {\n return (\n mat_3x3[0][0] * mat_3x3[1][1] * mat_3x3[2][2] +\n mat_3x3[1][0] * mat_3x3[2][1] * mat_3x3[0][2] +\n mat_3x3[2][0] * mat_3x3[0][1] * mat_3x3[1][2] -\n mat_3x3[0][0] * mat_3x3[2][1] * mat_3x3[1][2] -\n mat_3x3[1][0] * mat_3x3[0][1] * mat_3x3[2][2] -\n mat_3x3[2][0] * mat_3x3[1][1] * mat_3x3[0][2]\n );\n}\n\nfunction quaternionToMatrix3x3(quat_4, mat_3x3) {\n const ww = quat_4[0] * quat_4[0];\n const wx = quat_4[0] * quat_4[1];\n const wy = quat_4[0] * quat_4[2];\n const wz = quat_4[0] * quat_4[3];\n\n const xx = quat_4[1] * quat_4[1];\n const yy = quat_4[2] * quat_4[2];\n const zz = quat_4[3] * quat_4[3];\n\n const xy = quat_4[1] * quat_4[2];\n const xz = quat_4[1] * quat_4[3];\n const yz = quat_4[2] * quat_4[3];\n\n const rr = xx + yy + zz;\n // normalization factor, just in case quaternion was not normalized\n let f = 1 / (ww + rr);\n const s = (ww - rr) * f;\n f *= 2;\n\n mat_3x3[0][0] = xx * f + s;\n mat_3x3[1][0] = (xy + wz) * f;\n mat_3x3[2][0] = (xz - wy) * f;\n\n mat_3x3[0][1] = (xy - wz) * f;\n mat_3x3[1][1] = yy * f + s;\n mat_3x3[2][1] = (yz + wx) * f;\n\n mat_3x3[0][2] = (xz + wy) * f;\n mat_3x3[1][2] = (yz - wx) * f;\n mat_3x3[2][2] = zz * f + s;\n}\n\nfunction areMatricesEqual(matA, matB) {\n if (!matA.length === matB.length) {\n return false;\n }\n\n function isEqual(element, index) {\n return element === matB[index];\n }\n return matA.every(isEqual);\n}\n\nfunction jacobiN(a, n, w, v) {\n let i;\n let j;\n let k;\n let iq;\n let ip;\n let numPos;\n let tresh;\n let theta;\n let t;\n let tau;\n let sm;\n let s;\n let h;\n let g;\n let c;\n let tmp;\n const b = createArray(n);\n const z = createArray(n);\n\n const vtkROTATE = (aa, ii, jj, kk, ll) => {\n g = aa[ii][jj];\n h = aa[kk][ll];\n aa[ii][jj] = g - s * (h + g * tau);\n aa[kk][ll] = h + s * (g - h * tau);\n };\n\n // initialize\n for (ip = 0; ip < n; ip++) {\n for (iq = 0; iq < n; iq++) {\n v[ip][iq] = 0.0;\n }\n v[ip][ip] = 1.0;\n }\n for (ip = 0; ip < n; ip++) {\n b[ip] = w[ip] = a[ip][ip];\n z[ip] = 0.0;\n }\n\n // begin rotation sequence\n for (i = 0; i < VTK_MAX_ROTATIONS; i++) {\n sm = 0.0;\n for (ip = 0; ip < n - 1; ip++) {\n for (iq = ip + 1; iq < n; iq++) {\n sm += Math.abs(a[ip][iq]);\n }\n }\n if (sm === 0.0) {\n break;\n }\n\n // first 3 sweeps\n if (i < 3) {\n tresh = 0.2 * sm / (n * n);\n } else {\n tresh = 0.0;\n }\n\n for (ip = 0; ip < n - 1; ip++) {\n for (iq = ip + 1; iq < n; iq++) {\n g = 100.0 * Math.abs(a[ip][iq]);\n\n // after 4 sweeps\n if (\n i > 3 &&\n Math.abs(w[ip]) + g === Math.abs(w[ip]) &&\n Math.abs(w[iq]) + g === Math.abs(w[iq])\n ) {\n a[ip][iq] = 0.0;\n } else if (Math.abs(a[ip][iq]) > tresh) {\n h = w[iq] - w[ip];\n if (Math.abs(h) + g === Math.abs(h)) {\n t = a[ip][iq] / h;\n } else {\n theta = 0.5 * h / a[ip][iq];\n t = 1.0 / (Math.abs(theta) + Math.sqrt(1.0 + theta * theta));\n if (theta < 0.0) {\n t = -t;\n }\n }\n c = 1.0 / Math.sqrt(1 + t * t);\n s = t * c;\n tau = s / (1.0 + c);\n h = t * a[ip][iq];\n z[ip] -= h;\n z[iq] += h;\n w[ip] -= h;\n w[iq] += h;\n a[ip][iq] = 0.0;\n\n // ip already shifted left by 1 unit\n for (j = 0; j <= ip - 1; j++) {\n vtkROTATE(a, j, ip, j, iq);\n }\n // ip and iq already shifted left by 1 unit\n for (j = ip + 1; j <= iq - 1; j++) {\n vtkROTATE(a, ip, j, j, iq);\n }\n // iq already shifted left by 1 unit\n for (j = iq + 1; j < n; j++) {\n vtkROTATE(a, ip, j, iq, j);\n }\n for (j = 0; j < n; j++) {\n vtkROTATE(v, j, ip, j, iq);\n }\n }\n }\n }\n\n for (ip = 0; ip < n; ip++) {\n b[ip] += z[ip];\n w[ip] = b[ip];\n z[ip] = 0.0;\n }\n }\n\n // this is NEVER called\n if (i >= VTK_MAX_ROTATIONS) {\n vtkWarningMacro('vtkMath::Jacobi: Error extracting eigenfunctions');\n return 0;\n }\n\n // sort eigenfunctions: these changes do not affect accuracy\n for (j = 0; j < n - 1; j++) {\n // boundary incorrect\n k = j;\n tmp = w[k];\n for (i = j + 1; i < n; i++) {\n // boundary incorrect, shifted already\n if (w[i] >= tmp) {\n // why exchange if same?\n k = i;\n tmp = w[k];\n }\n }\n if (k !== j) {\n w[k] = w[j];\n w[j] = tmp;\n for (i = 0; i < n; i++) {\n tmp = v[i][j];\n v[i][j] = v[i][k];\n v[i][k] = tmp;\n }\n }\n }\n // ensure eigenvector consistency (i.e., Jacobi can compute vectors that\n // are negative of one another (.707,.707,0) and (-.707,-.707,0). This can\n // reek havoc in hyperstreamline/other stuff. We will select the most\n // positive eigenvector.\n const ceil_half_n = (n >> 1) + (n & 1);\n for (j = 0; j < n; j++) {\n for (numPos = 0, i = 0; i < n; i++) {\n if (v[i][j] >= 0.0) {\n numPos++;\n }\n }\n // if ( numPos < ceil(double(n)/double(2.0)) )\n if (numPos < ceil_half_n) {\n for (i = 0; i < n; i++) {\n v[i][j] *= -1.0;\n }\n }\n }\n return 1;\n}\n\nfunction matrix3x3ToQuaternion(mat_3x3, quat_4) {\n const tmp = [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]];\n\n // on-diagonal elements\n tmp[0][0] = mat_3x3[0][0] + mat_3x3[1][1] + mat_3x3[2][2];\n tmp[1][1] = mat_3x3[0][0] - mat_3x3[1][1] - mat_3x3[2][2];\n tmp[2][2] = -mat_3x3[0][0] + mat_3x3[1][1] - mat_3x3[2][2];\n tmp[3][3] = -mat_3x3[0][0] - mat_3x3[1][1] + mat_3x3[2][2];\n\n // off-diagonal elements\n tmp[0][1] = tmp[1][0] = mat_3x3[2][1] - mat_3x3[1][2];\n tmp[0][2] = tmp[2][0] = mat_3x3[0][2] - mat_3x3[2][0];\n tmp[0][3] = tmp[3][0] = mat_3x3[1][0] - mat_3x3[0][1];\n\n tmp[1][2] = tmp[2][1] = mat_3x3[1][0] + mat_3x3[0][1];\n tmp[1][3] = tmp[3][1] = mat_3x3[0][2] + mat_3x3[2][0];\n tmp[2][3] = tmp[3][2] = mat_3x3[2][1] + mat_3x3[1][2];\n\n const eigenvectors = [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]];\n const eigenvalues = [0, 0, 0, 0];\n\n // convert into format that JacobiN can use,\n // then use Jacobi to find eigenvalues and eigenvectors\n const NTemp = [0, 0, 0, 0];\n const eigenvectorsTemp = [0, 0, 0, 0];\n for (let i = 0; i < 4; i++) {\n NTemp[i] = tmp[i];\n eigenvectorsTemp[i] = eigenvectors[i];\n }\n jacobiN(NTemp, 4, eigenvalues, eigenvectorsTemp);\n\n // the first eigenvector is the one we want\n quat_4[0] = eigenvectors[0][0];\n quat_4[1] = eigenvectors[1][0];\n quat_4[2] = eigenvectors[2][0];\n quat_4[3] = eigenvectors[3][0];\n}\n\nfunction multiplyQuaternion(quat_1, quat_2, quat_out) {\n const ww = quat_1[0] * quat_2[0];\n const wx = quat_1[0] * quat_2[1];\n const wy = quat_1[0] * quat_2[2];\n const wz = quat_1[0] * quat_2[3];\n\n const xw = quat_1[1] * quat_2[0];\n const xx = quat_1[1] * quat_2[1];\n const xy = quat_1[1] * quat_2[2];\n const xz = quat_1[1] * quat_2[3];\n\n const yw = quat_1[2] * quat_2[0];\n const yx = quat_1[2] * quat_2[1];\n const yy = quat_1[2] * quat_2[2];\n const yz = quat_1[2] * quat_2[3];\n\n const zw = quat_1[3] * quat_2[0];\n const zx = quat_1[3] * quat_2[1];\n const zy = quat_1[3] * quat_2[2];\n const zz = quat_1[3] * quat_2[3];\n\n quat_out[0] = ww - xx - yy - zz;\n quat_out[1] = wx + xw + yz - zy;\n quat_out[2] = wy - xz + yw + zx;\n quat_out[3] = wz + xy - yx + zw;\n}\n\nfunction orthogonalize3x3(a_3x3, out_3x3) {\n // copy the matrix\n for (let i = 0; i < 3; i++) {\n out_3x3[0][i] = a_3x3[0][i];\n out_3x3[1][i] = a_3x3[1][i];\n out_3x3[2][i] = a_3x3[2][i];\n }\n\n // Pivot the matrix to improve accuracy\n const scale = createArray(3);\n const index = createArray(3);\n let largest;\n\n // Loop over rows to get implicit scaling information\n for (let i = 0; i < 3; i++) {\n const x1 = Math.abs(out_3x3[i][0]);\n const x2 = Math.abs(out_3x3[i][1]);\n const x3 = Math.abs(out_3x3[i][2]);\n largest = x2 > x1 ? x2 : x1;\n largest = x3 > largest ? x3 : largest;\n scale[i] = 1;\n if (largest !== 0) {\n scale[i] /= largest;\n }\n }\n\n // first column\n const x1 = Math.abs(out_3x3[0][0]) * scale[0];\n const x2 = Math.abs(out_3x3[1][0]) * scale[1];\n const x3 = Math.abs(out_3x3[2][0]) * scale[2];\n index[0] = 0;\n largest = x1;\n if (x2 >= largest) {\n largest = x2;\n index[0] = 1;\n }\n if (x3 >= largest) {\n index[0] = 2;\n }\n if (index[0] !== 0) {\n vtkSwapVectors3(out_3x3[index[0]], out_3x3[0]);\n scale[index[0]] = scale[0];\n }\n\n // second column\n const y2 = Math.abs(out_3x3[1][1]) * scale[1];\n const y3 = Math.abs(out_3x3[2][1]) * scale[2];\n index[1] = 1;\n largest = y2;\n if (y3 >= largest) {\n index[1] = 2;\n vtkSwapVectors3(out_3x3[2], out_3x3[1]);\n }\n\n // third column\n index[2] = 2;\n\n // A quaternion can only describe a pure rotation, not\n // a rotation with a flip, therefore the flip must be\n // removed before the matrix is converted to a quaternion.\n let flip = 0;\n if (determinant3x3(out_3x3) < 0) {\n flip = 1;\n for (let i = 0; i < 3; i++) {\n out_3x3[0][i] = -out_3x3[0][i];\n out_3x3[1][i] = -out_3x3[1][i];\n out_3x3[2][i] = -out_3x3[2][i];\n }\n }\n\n // Do orthogonalization using a quaternion intermediate\n // (this, essentially, does the orthogonalization via\n // diagonalization of an appropriately constructed symmetric\n // 4x4 matrix rather than by doing SVD of the 3x3 matrix)\n const quat = createArray(4);\n matrix3x3ToQuaternion(out_3x3, quat);\n quaternionToMatrix3x3(quat, out_3x3);\n\n // Put the flip back into the orthogonalized matrix.\n if (flip) {\n for (let i = 0; i < 3; i++) {\n out_3x3[0][i] = -out_3x3[0][i];\n out_3x3[1][i] = -out_3x3[1][i];\n out_3x3[2][i] = -out_3x3[2][i];\n }\n }\n\n // Undo the pivoting\n if (index[1] !== 1) {\n vtkSwapVectors3(out_3x3[index[1]], out_3x3[1]);\n }\n if (index[0] !== 0) {\n vtkSwapVectors3(out_3x3[index[0]], out_3x3[0]);\n }\n}\n\nfunction diagonalize3x3(a_3x3, w_3, v_3x3) {\n let i;\n let j;\n let k;\n let maxI;\n let tmp;\n let maxVal;\n\n // do the matrix[3][3] to **matrix conversion for Jacobi\n const C = [createArray(3), createArray(3), createArray(3)];\n const ATemp = createArray(3);\n const VTemp = createArray(3);\n for (i = 0; i < 3; i++) {\n C[i][0] = a_3x3[i][0];\n C[i][1] = a_3x3[i][1];\n C[i][2] = a_3x3[i][2];\n ATemp[i] = C[i];\n VTemp[i] = v_3x3[i];\n }\n\n // diagonalize using Jacobi\n jacobiN(ATemp, 3, w_3, VTemp);\n\n // if all the eigenvalues are the same, return identity matrix\n if (w_3[0] === w_3[1] && w_3[0] === w_3[2]) {\n identity3x3(v_3x3);\n return;\n }\n\n // transpose temporarily, it makes it easier to sort the eigenvectors\n transpose3x3(v_3x3, v_3x3);\n\n // if two eigenvalues are the same, re-orthogonalize to optimally line\n // up the eigenvectors with the x, y, and z axes\n for (i = 0; i < 3; i++) {\n // two eigenvalues are the same\n if (w_3[(i + 1) % 3] === w_3[(i + 2) % 3]) {\n // find maximum element of the independent eigenvector\n maxVal = Math.abs(v_3x3[i][0]);\n maxI = 0;\n for (j = 1; j < 3; j++) {\n if (maxVal < (tmp = Math.abs(v_3x3[i][j]))) {\n maxVal = tmp;\n maxI = j;\n }\n }\n // swap the eigenvector into its proper position\n if (maxI !== i) {\n tmp = w_3[maxI];\n w_3[maxI] = w_3[i];\n w_3[i] = tmp;\n vtkSwapVectors3(v_3x3[i], v_3x3[maxI]);\n }\n // maximum element of eigenvector should be positive\n if (v_3x3[maxI][maxI] < 0) {\n v_3x3[maxI][0] = -v_3x3[maxI][0];\n v_3x3[maxI][1] = -v_3x3[maxI][1];\n v_3x3[maxI][2] = -v_3x3[maxI][2];\n }\n\n // re-orthogonalize the other two eigenvectors\n j = (maxI + 1) % 3;\n k = (maxI + 2) % 3;\n\n v_3x3[j][0] = 0.0;\n v_3x3[j][1] = 0.0;\n v_3x3[j][2] = 0.0;\n v_3x3[j][j] = 1.0;\n cross(v_3x3[maxI], v_3x3[j], v_3x3[k]);\n normalize(v_3x3[k]);\n cross(v_3x3[k], v_3x3[maxI], v_3x3[j]);\n\n // transpose vectors back to columns\n transpose3x3(v_3x3, v_3x3);\n return;\n }\n }\n\n // the three eigenvalues are different, just sort the eigenvectors\n // to align them with the x, y, and z axes\n\n // find the vector with the largest x element, make that vector\n // the first vector\n maxVal = Math.abs(v_3x3[0][0]);\n maxI = 0;\n for (i = 1; i < 3; i++) {\n if (maxVal < (tmp = Math.abs(v_3x3[i][0]))) {\n maxVal = tmp;\n maxI = i;\n }\n }\n // swap eigenvalue and eigenvector\n if (maxI !== 0) {\n tmp = w_3[maxI];\n w_3[maxI] = w_3[0];\n w_3[0] = tmp;\n vtkSwapVectors3(v_3x3[maxI], v_3x3[0]);\n }\n // do the same for the y element\n if (Math.abs(v_3x3[1][1]) < Math.abs(v_3x3[2][1])) {\n tmp = w_3[2];\n w_3[2] = w_3[1];\n w_3[1] = tmp;\n vtkSwapVectors3(v_3x3[2], v_3x3[1]);\n }\n\n // ensure that the sign of the eigenvectors is correct\n for (i = 0; i < 2; i++) {\n if (v_3x3[i][i] < 0) {\n v_3x3[i][0] = -v_3x3[i][0];\n v_3x3[i][1] = -v_3x3[i][1];\n v_3x3[i][2] = -v_3x3[i][2];\n }\n }\n // set sign of final eigenvector to ensure that determinant is positive\n if (determinant3x3(v_3x3) < 0) {\n v_3x3[2][0] = -v_3x3[2][0];\n v_3x3[2][1] = -v_3x3[2][1];\n v_3x3[2][2] = -v_3x3[2][2];\n }\n\n // transpose the eigenvectors back again\n transpose3x3(v_3x3, v_3x3);\n}\n\nfunction singularValueDecomposition3x3(a_3x3, u_3x3, w_3, vT_3x3) {\n let i;\n const B = [createArray(3), createArray(3), createArray(3)];\n\n // copy so that A can be used for U or VT without risk\n for (i = 0; i < 3; i++) {\n B[0][i] = a_3x3[0][i];\n B[1][i] = a_3x3[1][i];\n B[2][i] = a_3x3[2][i];\n }\n\n // temporarily flip if determinant is negative\n const d = determinant3x3(B);\n if (d < 0) {\n for (i = 0; i < 3; i++) {\n B[0][i] = -B[0][i];\n B[1][i] = -B[1][i];\n B[2][i] = -B[2][i];\n }\n }\n\n // orthogonalize, diagonalize, etc.\n orthogonalize3x3(B, u_3x3);\n transpose3x3(B, B);\n multiply3x3_mat3(B, u_3x3, vT_3x3);\n diagonalize3x3(vT_3x3, w_3, vT_3x3);\n multiply3x3_mat3(u_3x3, vT_3x3, u_3x3);\n transpose3x3(vT_3x3, vT_3x3);\n\n // re-create the flip\n if (d < 0) {\n w_3[0] = -w_3[0];\n w_3[1] = -w_3[1];\n w_3[2] = -w_3[2];\n }\n}\n\nfunction luFactorLinearSystem(A, index, size) {\n let i;\n let j;\n let k;\n let largest;\n let maxI = 0;\n let sum;\n let temp1;\n let temp2;\n const scale = createArray(size);\n\n //\n // Loop over rows to get implicit scaling information\n //\n for (i = 0; i < size; i++) {\n for (largest = 0.0, j = 0; j < size; j++) {\n if ((temp2 = Math.abs(A[i][j])) > largest) {\n largest = temp2;\n }\n }\n\n if (largest === 0.0) {\n vtkWarningMacro('Unable to factor linear system');\n return 0;\n }\n scale[i] = 1.0 / largest;\n }\n //\n // Loop over all columns using Crout's method\n //\n for (j = 0; j < size; j++) {\n for (i = 0; i < j; i++) {\n sum = A[i][j];\n for (k = 0; k < i; k++) {\n sum -= A[i][k] * A[k][j];\n }\n A[i][j] = sum;\n }\n //\n // Begin search for largest pivot element\n //\n for (largest = 0.0, i = j; i < size; i++) {\n sum = A[i][j];\n for (k = 0; k < j; k++) {\n sum -= A[i][k] * A[k][j];\n }\n A[i][j] = sum;\n\n if ((temp1 = scale[i] * Math.abs(sum)) >= largest) {\n largest = temp1;\n maxI = i;\n }\n }\n //\n // Check for row interchange\n //\n if (j !== maxI) {\n for (k = 0; k < size; k++) {\n temp1 = A[maxI][k];\n A[maxI][k] = A[j][k];\n A[j][k] = temp1;\n }\n scale[maxI] = scale[j];\n }\n //\n // Divide by pivot element and perform elimination\n //\n index[j] = maxI;\n\n if (Math.abs(A[j][j]) <= VTK_SMALL_NUMBER) {\n vtkWarningMacro('Unable to factor linear system');\n return 0;\n }\n\n if (j !== size - 1) {\n temp1 = 1.0 / A[j][j];\n for (i = j + 1; i < size; i++) {\n A[i][j] *= temp1;\n }\n }\n }\n return 1;\n}\n\nfunction luSolveLinearSystem(A, index, x, size) {\n let i;\n let j;\n let ii;\n let idx;\n let sum;\n //\n // Proceed with forward and backsubstitution for L and U\n // matrices. First, forward substitution.\n //\n for (ii = -1, i = 0; i < size; i++) {\n idx = index[i];\n sum = x[idx];\n x[idx] = x[i];\n\n if (ii >= 0) {\n for (j = ii; j <= i - 1; j++) {\n sum -= A[i][j] * x[j];\n }\n } else if (sum !== 0.0) {\n ii = i;\n }\n\n x[i] = sum;\n }\n //\n // Now, back substitution\n //\n for (i = size - 1; i >= 0; i--) {\n sum = x[i];\n for (j = i + 1; j < size; j++) {\n sum -= A[i][j] * x[j];\n }\n x[i] = sum / A[i][i];\n }\n}\n\nfunction solveLinearSystem(A, x, size) {\n // if we solving something simple, just solve it\n if (size === 2) {\n const y = createArray(2);\n const det = determinant2x2(A[0][0], A[0][1], A[1][0], A[1][1]);\n\n if (det === 0.0) {\n // Unable to solve linear system\n return 0;\n }\n\n y[0] = (A[1][1] * x[0] - A[0][1] * x[1]) / det;\n y[1] = (-(A[1][0] * x[0]) + A[0][0] * x[1]) / det;\n\n x[0] = y[0];\n x[1] = y[1];\n return 1;\n } else if (size === 1) {\n if (A[0][0] === 0.0) {\n // Unable to solve linear system\n return 0;\n }\n\n x[0] /= A[0][0];\n return 1;\n }\n\n //\n // System of equations is not trivial, use Crout's method\n //\n\n // Check on allocation of working vectors\n const index = createArray(size);\n\n // Factor and solve matrix\n if (luFactorLinearSystem(A, index, size) === 0) {\n return 0;\n }\n luSolveLinearSystem(A, index, x, size);\n\n return 1;\n}\n\nfunction invertMatrix(A, AI, size, index = null, column = null) {\n const tmp1Size = index || createArray(size);\n const tmp2Size = column || createArray(size);\n\n // Factor matrix; then begin solving for inverse one column at a time.\n // Note: tmp1Size returned value is used later, tmp2Size is just working\n // memory whose values are not used in LUSolveLinearSystem\n if (luFactorLinearSystem(A, tmp1Size, size, tmp2Size) === 0) {\n return 0;\n }\n\n for (let j = 0; j < size; j++) {\n for (let i = 0; i < size; i++) {\n tmp2Size[i] = 0.0;\n }\n tmp2Size[j] = 1.0;\n\n luSolveLinearSystem(A, tmp1Size, tmp2Size, size);\n\n for (let i = 0; i < size; i++) {\n AI[i][j] = tmp2Size[i];\n }\n }\n\n return 1;\n}\n\nfunction estimateMatrixCondition(A, size) {\n let minValue = +Number.MAX_VALUE;\n let maxValue = -Number.MAX_VALUE;\n\n // find the maximum value\n for (let i = 0; i < size; i++) {\n for (let j = i; j < size; j++) {\n if (Math.abs(A[i][j]) > max) {\n maxValue = Math.abs(A[i][j]);\n }\n }\n }\n\n // find the minimum diagonal value\n for (let i = 0; i < size; i++) {\n if (Math.abs(A[i][i]) < min) {\n minValue = Math.abs(A[i][i]);\n }\n }\n\n if (minValue === 0.0) {\n return Number.MAX_VALUE;\n }\n return maxValue / minValue;\n}\n\nfunction jacobi(a_3x3, w, v) {\n return jacobiN(a_3x3, 3, w, v);\n}\n\nfunction solveHomogeneousLeastSquares(numberOfSamples, xt, xOrder, mt) {\n // check dimensional consistency\n if (numberOfSamples < xOrder) {\n vtkWarningMacro('Insufficient number of samples. Underdetermined.');\n return 0;\n }\n\n let i;\n let j;\n let k;\n\n // set up intermediate variables\n // Allocate matrix to hold X times transpose of X\n const XXt = createArray(xOrder); // size x by x\n // Allocate the array of eigenvalues and eigenvectors\n const eigenvals = createArray(xOrder);\n const eigenvecs = createArray(xOrder);\n\n // Clear the upper triangular region (and btw, allocate the eigenvecs as well)\n for (i = 0; i < xOrder; i++) {\n eigenvecs[i] = createArray(xOrder);\n XXt[i] = createArray(xOrder);\n for (j = 0; j < xOrder; j++) {\n XXt[i][j] = 0.0;\n }\n }\n\n // Calculate XXt upper half only, due to symmetry\n for (k = 0; k < numberOfSamples; k++) {\n for (i = 0; i < xOrder; i++) {\n for (j = i; j < xOrder; j++) {\n XXt[i][j] += xt[k][i] * xt[k][j];\n }\n }\n }\n\n // now fill in the lower half of the XXt matrix\n for (i = 0; i < xOrder; i++) {\n for (j = 0; j < i; j++) {\n XXt[i][j] = XXt[j][i];\n }\n }\n\n // Compute the eigenvectors and eigenvalues\n jacobiN(XXt, xOrder, eigenvals, eigenvecs);\n\n // Smallest eigenval is at the end of the list (xOrder-1), and solution is\n // corresponding eigenvec.\n for (i = 0; i < xOrder; i++) {\n mt[i][0] = eigenvecs[i][xOrder - 1];\n }\n\n return 1;\n}\n\nfunction solveLeastSquares(\n numberOfSamples,\n xt,\n xOrder,\n yt,\n yOrder,\n mt,\n checkHomogeneous = true\n) {\n // check dimensional consistency\n if (numberOfSamples < xOrder || numberOfSamples < yOrder) {\n vtkWarningMacro('Insufficient number of samples. Underdetermined.');\n return 0;\n }\n\n const homogenFlags = createArray(yOrder);\n let allHomogeneous = 1;\n let hmt;\n let homogRC = 0;\n let i;\n let j;\n let k;\n let someHomogeneous = 0;\n\n // Ok, first init some flags check and see if all the systems are homogeneous\n if (checkHomogeneous) {\n // If Y' is zero, it's a homogeneous system and can't be solved via\n // the pseudoinverse method. Detect this case, warn the user, and\n // invoke SolveHomogeneousLeastSquares instead. Note that it doesn't\n // really make much sense for yOrder to be greater than one in this case,\n // since that's just yOrder occurrences of a 0 vector on the RHS, but\n // we allow it anyway. N\n\n // Initialize homogeneous flags on a per-right-hand-side basis\n for (j = 0; j < yOrder; j++) {\n homogenFlags[j] = 1;\n }\n for (i = 0; i < numberOfSamples; i++) {\n for (j = 0; j < yOrder; j++) {\n if (Math.abs(yt[i][j]) > VTK_SMALL_NUMBER) {\n allHomogeneous = 0;\n homogenFlags[j] = 0;\n }\n }\n }\n\n // If we've got one system, and it's homogeneous, do it and bail out quickly.\n if (allHomogeneous && yOrder === 1) {\n vtkWarningMacro(\n 'Detected homogeneous system (Y=0), calling SolveHomogeneousLeastSquares()'\n );\n return solveHomogeneousLeastSquares(numberOfSamples, xt, xOrder, mt);\n }\n\n // Ok, we've got more than one system of equations.\n // Figure out if we need to calculate the homogeneous equation solution for\n // any of them.\n if (allHomogeneous) {\n someHomogeneous = 1;\n } else {\n for (j = 0; j < yOrder; j++) {\n if (homogenFlags[j]) {\n someHomogeneous = 1;\n }\n }\n }\n }\n\n // If necessary, solve the homogeneous problem\n if (someHomogeneous) {\n // hmt is the homogeneous equation version of mt, the general solution.\n hmt = createArray(xOrder);\n for (j = 0; j < xOrder; j++) {\n // Only allocate 1 here, not yOrder, because here we're going to solve\n // just the one homogeneous equation subset of the entire problem\n hmt[j] = [0];\n }\n\n // Ok, solve the homogeneous problem\n homogRC = solveHomogeneousLeastSquares(numberOfSamples, xt, xOrder, hmt);\n }\n\n // set up intermediate variables\n const XXt = createArray(xOrder); // size x by x\n const XXtI = createArray(xOrder); // size x by x\n const XYt = createArray(xOrder); // size x by y\n for (i = 0; i < xOrder; i++) {\n XXt[i] = createArray(xOrder);\n XXtI[i] = createArray(xOrder);\n\n for (j = 0; j < xOrder; j++) {\n XXt[i][j] = 0.0;\n XXtI[i][j] = 0.0;\n }\n\n XYt[i] = createArray(yOrder);\n for (j = 0; j < yOrder; j++) {\n XYt[i][j] = 0.0;\n }\n }\n\n // first find the pseudoinverse matrix\n for (k = 0; k < numberOfSamples; k++) {\n for (i = 0; i < xOrder; i++) {\n // first calculate the XXt matrix, only do the upper half (symmetrical)\n for (j = i; j < xOrder; j++) {\n XXt[i][j] += xt[k][i] * xt[k][j];\n }\n\n // now calculate the XYt matrix\n for (j = 0; j < yOrder; j++) {\n XYt[i][j] += xt[k][i] * yt[k][j];\n }\n }\n }\n\n // now fill in the lower half of the XXt matrix\n for (i = 0; i < xOrder; i++) {\n for (j = 0; j < i; j++) {\n XXt[i][j] = XXt[j][i];\n }\n }\n\n const successFlag = invertMatrix(XXt, XXtI, xOrder);\n\n // next get the inverse of XXt\n if (successFlag) {\n for (i = 0; i < xOrder; i++) {\n for (j = 0; j < yOrder; j++) {\n mt[i][j] = 0.0;\n for (k = 0; k < xOrder; k++) {\n mt[i][j] += XXtI[i][k] * XYt[k][j];\n }\n }\n }\n }\n\n // Fix up any of the solutions that correspond to the homogeneous equation\n // problem.\n if (someHomogeneous) {\n for (j = 0; j < yOrder; j++) {\n if (homogenFlags[j]) {\n // Fix this one\n for (i = 0; i < xOrder; i++) {\n mt[i][j] = hmt[i][0];\n }\n }\n }\n }\n\n if (someHomogeneous) {\n return homogRC && successFlag;\n }\n\n return successFlag;\n}\n\nfunction hex2float(hexStr, outFloatArray = [0, 0.5, 1]) {\n switch (hexStr.length) {\n case 3: // abc => #aabbcc\n outFloatArray[0] = parseInt(hexStr[0], 16) * 17 / 255;\n outFloatArray[1] = parseInt(hexStr[1], 16) * 17 / 255;\n outFloatArray[2] = parseInt(hexStr[2], 16) * 17 / 255;\n return outFloatArray;\n case 4: // #abc => #aabbcc\n outFloatArray[0] = parseInt(hexStr[1], 16) * 17 / 255;\n outFloatArray[1] = parseInt(hexStr[2], 16) * 17 / 255;\n outFloatArray[2] = parseInt(hexStr[3], 16) * 17 / 255;\n return outFloatArray;\n case 6: // ab01df => #ab01df\n outFloatArray[0] = parseInt(hexStr.substr(0, 2), 16) / 255;\n outFloatArray[1] = parseInt(hexStr.substr(2, 2), 16) / 255;\n outFloatArray[2] = parseInt(hexStr.substr(4, 2), 16) / 255;\n return outFloatArray;\n case 7: // #ab01df\n outFloatArray[0] = parseInt(hexStr.substr(1, 2), 16) / 255;\n outFloatArray[1] = parseInt(hexStr.substr(3, 2), 16) / 255;\n outFloatArray[2] = parseInt(hexStr.substr(5, 2), 16) / 255;\n return outFloatArray;\n case 9: // #ab01df00\n outFloatArray[0] = parseInt(hexStr.substr(1, 2), 16) / 255;\n outFloatArray[1] = parseInt(hexStr.substr(3, 2), 16) / 255;\n outFloatArray[2] = parseInt(hexStr.substr(5, 2), 16) / 255;\n outFloatArray[3] = parseInt(hexStr.substr(7, 2), 16) / 255;\n return outFloatArray;\n default:\n return outFloatArray;\n }\n}\n\nfunction rgb2hsv(rgb, hsv) {\n let h;\n let s;\n const [r, g, b] = rgb;\n const onethird = 1.0 / 3.0;\n const onesixth = 1.0 / 6.0;\n const twothird = 2.0 / 3.0;\n\n let cmax = r;\n let cmin = r;\n\n if (g > cmax) {\n cmax = g;\n } else if (g < cmin) {\n cmin = g;\n }\n if (b > cmax) {\n cmax = b;\n } else if (b < cmin) {\n cmin = b;\n }\n const v = cmax;\n\n if (v > 0.0) {\n s = (cmax - cmin) / cmax;\n } else {\n s = 0.0;\n }\n if (s > 0) {\n if (r === cmax) {\n h = onesixth * (g - b) / (cmax - cmin);\n } else if (g === cmax) {\n h = onethird + onesixth * (b - r) / (cmax - cmin);\n } else {\n h = twothird + onesixth * (r - g) / (cmax - cmin);\n }\n if (h < 0.0) {\n h += 1.0;\n }\n } else {\n h = 0.0;\n }\n\n // Set the values back to the array\n hsv[0] = h;\n hsv[1] = s;\n hsv[2] = v;\n}\n\nfunction hsv2rgb(hsv, rgb) {\n const [h, s, v] = hsv;\n const onethird = 1.0 / 3.0;\n const onesixth = 1.0 / 6.0;\n const twothird = 2.0 / 3.0;\n const fivesixth = 5.0 / 6.0;\n let r;\n let g;\n let b;\n\n // compute RGB from HSV\n if (h > onesixth && h <= onethird) {\n // green/red\n g = 1.0;\n r = (onethird - h) / onesixth;\n b = 0.0;\n } else if (h > onethird && h <= 0.5) {\n // green/blue\n g = 1.0;\n b = (h - onethird) / onesixth;\n r = 0.0;\n } else if (h > 0.5 && h <= twothird) {\n // blue/green\n b = 1.0;\n g = (twothird - h) / onesixth;\n r = 0.0;\n } else if (h > twothird && h <= fivesixth) {\n // blue/red\n b = 1.0;\n r = (h - twothird) / onesixth;\n g = 0.0;\n } else if (h > fivesixth && h <= 1.0) {\n // red/blue\n r = 1.0;\n b = (1.0 - h) / onesixth;\n g = 0.0;\n } else {\n // red/green\n r = 1.0;\n g = h / onesixth;\n b = 0.0;\n }\n\n // add Saturation to the equation.\n r = s * r + (1.0 - s);\n g = s * g + (1.0 - s);\n b = s * b + (1.0 - s);\n\n r *= v;\n g *= v;\n b *= v;\n\n // Assign back to the array\n rgb[0] = r;\n rgb[1] = g;\n rgb[2] = b;\n}\n\nfunction lab2xyz(lab, xyz) {\n // LAB to XYZ\n const [L, a, b] = lab;\n let var_Y = (L + 16) / 116;\n let var_X = a / 500 + var_Y;\n let var_Z = var_Y - b / 200;\n\n if (var_Y ** 3 > 0.008856) {\n var_Y **= 3;\n } else {\n var_Y = (var_Y - 16.0 / 116.0) / 7.787;\n }\n\n if (var_X ** 3 > 0.008856) {\n var_X **= 3;\n } else {\n var_X = (var_X - 16.0 / 116.0) / 7.787;\n }\n\n if (var_Z ** 3 > 0.008856) {\n var_Z **= 3;\n } else {\n var_Z = (var_Z - 16.0 / 116.0) / 7.787;\n }\n const ref_X = 0.9505;\n const ref_Y = 1.0;\n const ref_Z = 1.089;\n xyz[0] = ref_X * var_X; // ref_X = 0.9505 Observer= 2 deg Illuminant= D65\n xyz[1] = ref_Y * var_Y; // ref_Y = 1.000\n xyz[2] = ref_Z * var_Z; // ref_Z = 1.089\n}\n\nfunction xyz2lab(xyz, lab) {\n const [x, y, z] = xyz;\n const ref_X = 0.9505;\n const ref_Y = 1.0;\n const ref_Z = 1.089;\n let var_X = x / ref_X; // ref_X = 0.9505 Observer= 2 deg, Illuminant= D65\n let var_Y = y / ref_Y; // ref_Y = 1.000\n let var_Z = z / ref_Z; // ref_Z = 1.089\n\n if (var_X > 0.008856) var_X **= 1.0 / 3.0;\n else var_X = 7.787 * var_X + 16.0 / 116.0;\n if (var_Y > 0.008856) var_Y **= 1.0 / 3.0;\n else var_Y = 7.787 * var_Y + 16.0 / 116.0;\n if (var_Z > 0.008856) var_Z **= 1.0 / 3.0;\n else var_Z = 7.787 * var_Z + 16.0 / 116.0;\n\n lab[0] = 116 * var_Y - 16;\n lab[1] = 500 * (var_X - var_Y);\n lab[2] = 200 * (var_Y - var_Z);\n}\n\nfunction xyz2rgb(xyz, rgb) {\n const [x, y, z] = xyz;\n let r = x * 3.2406 + y * -1.5372 + z * -0.4986;\n let g = x * -0.9689 + y * 1.8758 + z * 0.0415;\n let b = x * 0.0557 + y * -0.204 + z * 1.057;\n\n // The following performs a \"gamma correction\" specified by the sRGB color\n // space. sRGB is defined by a canonical definition of a display monitor and\n // has been standardized by the International Electrotechnical Commission (IEC\n // 61966-2-1). The nonlinearity of the correction is designed to make the\n // colors more perceptually uniform. This color space has been adopted by\n // several applications including Adobe Photoshop and Microsoft Windows color\n // management. OpenGL is agnostic on its RGB color space, but it is reasonable\n // to assume it is close to this one.\n if (r > 0.0031308) r = 1.055 * r ** (1 / 2.4) - 0.055;\n else r *= 12.92;\n if (g > 0.0031308) g = 1.055 * g ** (1 / 2.4) - 0.055;\n else g *= 12.92;\n if (b > 0.0031308) b = 1.055 * b ** (1 / 2.4) - 0.055;\n else b *= 12.92;\n\n // Clip colors. ideally we would do something that is perceptually closest\n // (since we can see colors outside of the display gamut), but this seems to\n // work well enough.\n let maxVal = r;\n if (maxVal < g) maxVal = g;\n if (maxVal < b) maxVal = b;\n if (maxVal > 1.0) {\n r /= maxVal;\n g /= maxVal;\n b /= maxVal;\n }\n if (r < 0) r = 0;\n if (g < 0) g = 0;\n if (b < 0) b = 0;\n\n // Push values back to array\n rgb[0] = r;\n rgb[1] = g;\n rgb[2] = b;\n}\n\nfunction rgb2xyz(rgb, xyz) {\n let [r, g, b] = rgb;\n // The following performs a \"gamma correction\" specified by the sRGB color\n // space. sRGB is defined by a canonical definition of a display monitor and\n // has been standardized by the International Electrotechnical Commission (IEC\n // 61966-2-1). The nonlinearity of the correction is designed to make the\n // colors more perceptually uniform. This color space has been adopted by\n // several applications including Adobe Photoshop and Microsoft Windows color\n // management. OpenGL is agnostic on its RGB color space, but it is reasonable\n // to assume it is close to this one.\n if (r > 0.04045) r = ((r + 0.055) / 1.055) ** 2.4;\n else r /= 12.92;\n if (g > 0.04045) g = ((g + 0.055) / 1.055) ** 2.4;\n else g /= 12.92;\n if (b > 0.04045) b = ((b + 0.055) / 1.055) ** 2.4;\n else b /= 12.92;\n\n // Observer. = 2 deg, Illuminant = D65\n xyz[0] = r * 0.4124 + g * 0.3576 + b * 0.1805;\n xyz[1] = r * 0.2126 + g * 0.7152 + b * 0.0722;\n xyz[2] = r * 0.0193 + g * 0.1192 + b * 0.9505;\n}\n\nfunction rgb2lab(rgb, lab) {\n const xyz = [0, 0, 0];\n rgb2xyz(rgb, xyz);\n xyz2lab(xyz, lab);\n}\n\nfunction lab2rgb(lab, rgb) {\n const xyz = [0, 0, 0];\n lab2xyz(lab, xyz);\n xyz2rgb(xyz, rgb);\n}\n\nfunction uninitializeBounds(bounds) {\n bounds[0] = 1.0;\n bounds[1] = -1.0;\n bounds[2] = 1.0;\n bounds[3] = -1.0;\n bounds[4] = 1.0;\n bounds[5] = -1.0;\n}\n\nfunction areBoundsInitialized(bounds) {\n return !(bounds[1] - bounds[0] < 0.0);\n}\n\nfunction clampValue(value, minValue, maxValue) {\n if (value < minValue) {\n return minValue;\n }\n if (value > maxValue) {\n return maxValue;\n }\n return value;\n}\n\nfunction clampAndNormalizeValue(value, range) {\n let result = 0;\n if (range[0] !== range[1]) {\n // clamp\n if (value < range[0]) {\n result = range[0];\n } else if (value > range[1]) {\n result = range[1];\n } else {\n result = value;\n }\n // normalize\n result = (result - range[0]) / (range[1] - range[0]);\n }\n\n return result;\n}\n\nconst getScalarTypeFittingRange = notImplemented('GetScalarTypeFittingRange');\nconst getAdjustedScalarRange = notImplemented('GetAdjustedScalarRange');\n\nfunction extentIsWithinOtherExtent(extent1, extent2) {\n if (!extent1 || !extent2) {\n return 0;\n }\n\n for (let i = 0; i < 6; i += 2) {\n if (\n extent1[i] < extent2[i] ||\n extent1[i] > extent2[i + 1] ||\n extent1[i + 1] < extent2[i] ||\n extent1[i + 1] > extent2[i + 1]\n ) {\n return 0;\n }\n }\n\n return 1;\n}\n\nfunction boundsIsWithinOtherBounds(bounds1_6, bounds2_6, delta_3) {\n if (!bounds1_6 || !bounds2_6) {\n return 0;\n }\n for (let i = 0; i < 6; i += 2) {\n if (\n bounds1_6[i] + delta_3[i / 2] < bounds2_6[i] ||\n bounds1_6[i] - delta_3[i / 2] > bounds2_6[i + 1] ||\n bounds1_6[i + 1] + delta_3[i / 2] < bounds2_6[i] ||\n bounds1_6[i + 1] - delta_3[i / 2] > bounds2_6[i + 1]\n ) {\n return 0;\n }\n }\n return 1;\n}\n\nfunction pointIsWithinBounds(point_3, bounds_6, delta_3) {\n if (!point_3 || !bounds_6 || !delta_3) {\n return 0;\n }\n for (let i = 0; i < 3; i++) {\n if (\n point_3[i] + delta_3[i] < bounds_6[2 * i] ||\n point_3[i] - delta_3[i] > bounds_6[2 * i + 1]\n ) {\n return 0;\n }\n }\n return 1;\n}\n\nfunction solve3PointCircle(p1, p2, p3, center) {\n const v21 = createArray(3);\n const v32 = createArray(3);\n const v13 = createArray(3);\n const v12 = createArray(3);\n const v23 = createArray(3);\n const v31 = createArray(3);\n\n for (let i = 0; i < 3; ++i) {\n v21[i] = p1[i] - p2[i];\n v32[i] = p2[i] - p3[i];\n v13[i] = p3[i] - p1[i];\n v12[i] = -v21[i];\n v23[i] = -v32[i];\n v31[i] = -v13[i];\n }\n\n const norm12 = norm(v12);\n const norm23 = norm(v23);\n const norm13 = norm(v13);\n\n const crossv21v32 = createArray(3);\n cross(v21, v32, crossv21v32);\n const normCross = norm(crossv21v32);\n\n const radius = norm12 * norm23 * norm13 / (2 * normCross);\n\n const normCross22 = 2 * normCross * normCross;\n const alpha = norm23 * norm23 * dot(v21, v31) / normCross22;\n const beta = norm13 * norm13 * dot(v12, v32) / normCross22;\n const gamma = norm12 * norm12 * dot(v13, v23) / normCross22;\n\n for (let i = 0; i < 3; ++i) {\n center[i] = alpha * p1[i] + beta * p2[i] + gamma * p3[i];\n }\n return radius;\n}\n\nconst inf = Infinity;\nconst negInf = -Infinity;\n\nconst isInf = (value) => !Number.isFinite(value);\nconst { isFinite, isNaN } = Number;\n\n// JavaScript - add-on ----------------------\n\nfunction createUninitializedBounds() {\n return [].concat([\n Number.MAX_VALUE,\n -Number.MAX_VALUE, // X\n Number.MAX_VALUE,\n -Number.MAX_VALUE, // Y\n Number.MAX_VALUE,\n -Number.MAX_VALUE, // Z\n ]);\n}\n\nfunction getMajorAxisIndex(vector) {\n let maxValue = -1;\n let axisIndex = -1;\n for (let i = 0; i < vector.length; i++) {\n const value = Math.abs(vector[i]);\n if (value > maxValue) {\n axisIndex = i;\n maxValue = value;\n }\n }\n\n return axisIndex;\n}\n\n// ----------------------------------------------------------------------------\n// Only Static API\n// ----------------------------------------------------------------------------\n\nexport default {\n Pi,\n radiansFromDegrees,\n degreesFromRadians,\n round,\n floor,\n ceil,\n ceilLog2,\n min,\n max,\n arrayMin,\n arrayMax,\n isPowerOfTwo,\n nearestPowerOfTwo,\n factorial,\n binomial,\n beginCombination,\n nextCombination,\n randomSeed,\n getSeed,\n random,\n gaussian,\n add,\n subtract,\n multiplyScalar,\n multiplyScalar2D,\n dot,\n outer,\n cross,\n norm,\n normalize,\n perpendiculars,\n projectVector,\n projectVector2D,\n distance2BetweenPoints,\n angleBetweenVectors,\n gaussianAmplitude,\n gaussianWeight,\n dot2D,\n outer2D,\n norm2D,\n normalize2D,\n determinant2x2,\n LUFactor3x3,\n LUSolve3x3,\n linearSolve3x3,\n multiply3x3_vect3,\n multiply3x3_mat3,\n multiplyMatrix,\n transpose3x3,\n invert3x3,\n identity3x3,\n determinant3x3,\n quaternionToMatrix3x3,\n areMatricesEqual,\n matrix3x3ToQuaternion,\n multiplyQuaternion,\n orthogonalize3x3,\n diagonalize3x3,\n singularValueDecomposition3x3,\n solveLinearSystem,\n invertMatrix,\n luFactorLinearSystem,\n luSolveLinearSystem,\n estimateMatrixCondition,\n jacobi,\n jacobiN,\n solveHomogeneousLeastSquares,\n solveLeastSquares,\n hex2float,\n rgb2hsv,\n hsv2rgb,\n lab2xyz,\n xyz2lab,\n xyz2rgb,\n rgb2xyz,\n rgb2lab,\n lab2rgb,\n uninitializeBounds,\n areBoundsInitialized,\n clampValue,\n clampAndNormalizeValue,\n getScalarTypeFittingRange,\n getAdjustedScalarRange,\n extentIsWithinOtherExtent,\n boundsIsWithinOtherBounds,\n pointIsWithinBounds,\n solve3PointCircle,\n inf,\n negInf,\n isInf,\n isNan: isNaN,\n isNaN,\n isFinite,\n\n // JS add-on\n createUninitializedBounds,\n getMajorAxisIndex,\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/Sources/Common/Core/Math/index.js","'use strict';\n\nvar support = require('./support');\nvar base64 = require('./base64');\nvar nodejsUtils = require('./nodejsUtils');\nvar setImmediate = require('core-js/library/fn/set-immediate');\nvar external = require(\"./external\");\n\n\n/**\n * Convert a string that pass as a \"binary string\": it should represent a byte\n * array but may have > 255 char codes. Be sure to take only the first byte\n * and returns the byte array.\n * @param {String} str the string to transform.\n * @return {Array|Uint8Array} the string in a binary format.\n */\nfunction string2binary(str) {\n var result = null;\n if (support.uint8array) {\n result = new Uint8Array(str.length);\n } else {\n result = new Array(str.length);\n }\n return stringToArrayLike(str, result);\n}\n\n/**\n * Create a new blob with the given content and the given type.\n * @param {Array[String|ArrayBuffer]} parts the content to put in the blob. DO NOT use\n * an Uint8Array because the stock browser of android 4 won't accept it (it\n * will be silently converted to a string, \"[object Uint8Array]\").\n * @param {String} type the mime type of the blob.\n * @return {Blob} the created blob.\n */\nexports.newBlob = function(parts, type) {\n exports.checkSupport(\"blob\");\n\n try {\n // Blob constructor\n return new Blob(parts, {\n type: type\n });\n }\n catch (e) {\n\n try {\n // deprecated, browser only, old way\n var Builder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder || window.MSBlobBuilder;\n var builder = new Builder();\n for (var i = 0; i < parts.length; i++) {\n builder.append(parts[i]);\n }\n return builder.getBlob(type);\n }\n catch (e) {\n\n // well, fuck ?!\n throw new Error(\"Bug : can't construct the Blob.\");\n }\n }\n\n\n};\n/**\n * The identity function.\n * @param {Object} input the input.\n * @return {Object} the same input.\n */\nfunction identity(input) {\n return input;\n}\n\n/**\n * Fill in an array with a string.\n * @param {String} str the string to use.\n * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to fill in (will be mutated).\n * @return {Array|ArrayBuffer|Uint8Array|Buffer} the updated array.\n */\nfunction stringToArrayLike(str, array) {\n for (var i = 0; i < str.length; ++i) {\n array[i] = str.charCodeAt(i) & 0xFF;\n }\n return array;\n}\n\n/**\n * An helper for the function arrayLikeToString.\n * This contains static informations and functions that\n * can be optimized by the browser JIT compiler.\n */\nvar arrayToStringHelper = {\n /**\n * Transform an array of int into a string, chunk by chunk.\n * See the performances notes on arrayLikeToString.\n * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to transform.\n * @param {String} type the type of the array.\n * @param {Integer} chunk the chunk size.\n * @return {String} the resulting string.\n * @throws Error if the chunk is too big for the stack.\n */\n stringifyByChunk: function(array, type, chunk) {\n var result = [], k = 0, len = array.length;\n // shortcut\n if (len <= chunk) {\n return String.fromCharCode.apply(null, array);\n }\n while (k < len) {\n if (type === \"array\" || type === \"nodebuffer\") {\n result.push(String.fromCharCode.apply(null, array.slice(k, Math.min(k + chunk, len))));\n }\n else {\n result.push(String.fromCharCode.apply(null, array.subarray(k, Math.min(k + chunk, len))));\n }\n k += chunk;\n }\n return result.join(\"\");\n },\n /**\n * Call String.fromCharCode on every item in the array.\n * This is the naive implementation, which generate A LOT of intermediate string.\n * This should be used when everything else fail.\n * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to transform.\n * @return {String} the result.\n */\n stringifyByChar: function(array){\n var resultStr = \"\";\n for(var i = 0; i < array.length; i++) {\n resultStr += String.fromCharCode(array[i]);\n }\n return resultStr;\n },\n applyCanBeUsed : {\n /**\n * true if the browser accepts to use String.fromCharCode on Uint8Array\n */\n uint8array : (function () {\n try {\n return support.uint8array && String.fromCharCode.apply(null, new Uint8Array(1)).length === 1;\n } catch (e) {\n return false;\n }\n })(),\n /**\n * true if the browser accepts to use String.fromCharCode on nodejs Buffer.\n */\n nodebuffer : (function () {\n try {\n return support.nodebuffer && String.fromCharCode.apply(null, nodejsUtils.newBuffer(1)).length === 1;\n } catch (e) {\n return false;\n }\n })()\n }\n};\n\n/**\n * Transform an array-like object to a string.\n * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to transform.\n * @return {String} the result.\n */\nfunction arrayLikeToString(array) {\n // Performances notes :\n // --------------------\n // String.fromCharCode.apply(null, array) is the fastest, see\n // see http://jsperf.com/converting-a-uint8array-to-a-string/2\n // but the stack is limited (and we can get huge arrays !).\n //\n // result += String.fromCharCode(array[i]); generate too many strings !\n //\n // This code is inspired by http://jsperf.com/arraybuffer-to-string-apply-performance/2\n // TODO : we now have workers that split the work. Do we still need that ?\n var chunk = 65536,\n type = exports.getTypeOf(array),\n canUseApply = true;\n if (type === \"uint8array\") {\n canUseApply = arrayToStringHelper.applyCanBeUsed.uint8array;\n } else if (type === \"nodebuffer\") {\n canUseApply = arrayToStringHelper.applyCanBeUsed.nodebuffer;\n }\n\n if (canUseApply) {\n while (chunk > 1) {\n try {\n return arrayToStringHelper.stringifyByChunk(array, type, chunk);\n } catch (e) {\n chunk = Math.floor(chunk / 2);\n }\n }\n }\n\n // no apply or chunk error : slow and painful algorithm\n // default browser on android 4.*\n return arrayToStringHelper.stringifyByChar(array);\n}\n\nexports.applyFromCharCode = arrayLikeToString;\n\n\n/**\n * Copy the data from an array-like to an other array-like.\n * @param {Array|ArrayBuffer|Uint8Array|Buffer} arrayFrom the origin array.\n * @param {Array|ArrayBuffer|Uint8Array|Buffer} arrayTo the destination array which will be mutated.\n * @return {Array|ArrayBuffer|Uint8Array|Buffer} the updated destination array.\n */\nfunction arrayLikeToArrayLike(arrayFrom, arrayTo) {\n for (var i = 0; i < arrayFrom.length; i++) {\n arrayTo[i] = arrayFrom[i];\n }\n return arrayTo;\n}\n\n// a matrix containing functions to transform everything into everything.\nvar transform = {};\n\n// string to ?\ntransform[\"string\"] = {\n \"string\": identity,\n \"array\": function(input) {\n return stringToArrayLike(input, new Array(input.length));\n },\n \"arraybuffer\": function(input) {\n return transform[\"string\"][\"uint8array\"](input).buffer;\n },\n \"uint8array\": function(input) {\n return stringToArrayLike(input, new Uint8Array(input.length));\n },\n \"nodebuffer\": function(input) {\n return stringToArrayLike(input, nodejsUtils.newBuffer(input.length));\n }\n};\n\n// array to ?\ntransform[\"array\"] = {\n \"string\": arrayLikeToString,\n \"array\": identity,\n \"arraybuffer\": function(input) {\n return (new Uint8Array(input)).buffer;\n },\n \"uint8array\": function(input) {\n return new Uint8Array(input);\n },\n \"nodebuffer\": function(input) {\n return nodejsUtils.newBuffer(input);\n }\n};\n\n// arraybuffer to ?\ntransform[\"arraybuffer\"] = {\n \"string\": function(input) {\n return arrayLikeToString(new Uint8Array(input));\n },\n \"array\": function(input) {\n return arrayLikeToArrayLike(new Uint8Array(input), new Array(input.byteLength));\n },\n \"arraybuffer\": identity,\n \"uint8array\": function(input) {\n return new Uint8Array(input);\n },\n \"nodebuffer\": function(input) {\n return nodejsUtils.newBuffer(new Uint8Array(input));\n }\n};\n\n// uint8array to ?\ntransform[\"uint8array\"] = {\n \"string\": arrayLikeToString,\n \"array\": function(input) {\n return arrayLikeToArrayLike(input, new Array(input.length));\n },\n \"arraybuffer\": function(input) {\n // copy the uint8array: DO NOT propagate the original ArrayBuffer, it\n // can be way larger (the whole zip file for example).\n var copy = new Uint8Array(input.length);\n if (input.length) {\n copy.set(input, 0);\n }\n return copy.buffer;\n },\n \"uint8array\": identity,\n \"nodebuffer\": function(input) {\n return nodejsUtils.newBuffer(input);\n }\n};\n\n// nodebuffer to ?\ntransform[\"nodebuffer\"] = {\n \"string\": arrayLikeToString,\n \"array\": function(input) {\n return arrayLikeToArrayLike(input, new Array(input.length));\n },\n \"arraybuffer\": function(input) {\n return transform[\"nodebuffer\"][\"uint8array\"](input).buffer;\n },\n \"uint8array\": function(input) {\n return arrayLikeToArrayLike(input, new Uint8Array(input.length));\n },\n \"nodebuffer\": identity\n};\n\n/**\n * Transform an input into any type.\n * The supported output type are : string, array, uint8array, arraybuffer, nodebuffer.\n * If no output type is specified, the unmodified input will be returned.\n * @param {String} outputType the output type.\n * @param {String|Array|ArrayBuffer|Uint8Array|Buffer} input the input to convert.\n * @throws {Error} an Error if the browser doesn't support the requested output type.\n */\nexports.transformTo = function(outputType, input) {\n if (!input) {\n // undefined, null, etc\n // an empty string won't harm.\n input = \"\";\n }\n if (!outputType) {\n return input;\n }\n exports.checkSupport(outputType);\n var inputType = exports.getTypeOf(input);\n var result = transform[inputType][outputType](input);\n return result;\n};\n\n/**\n * Return the type of the input.\n * The type will be in a format valid for JSZip.utils.transformTo : string, array, uint8array, arraybuffer.\n * @param {Object} input the input to identify.\n * @return {String} the (lowercase) type of the input.\n */\nexports.getTypeOf = function(input) {\n if (typeof input === \"string\") {\n return \"string\";\n }\n if (Object.prototype.toString.call(input) === \"[object Array]\") {\n return \"array\";\n }\n if (support.nodebuffer && nodejsUtils.isBuffer(input)) {\n return \"nodebuffer\";\n }\n if (support.uint8array && input instanceof Uint8Array) {\n return \"uint8array\";\n }\n if (support.arraybuffer && input instanceof ArrayBuffer) {\n return \"arraybuffer\";\n }\n};\n\n/**\n * Throw an exception if the type is not supported.\n * @param {String} type the type to check.\n * @throws {Error} an Error if the browser doesn't support the requested type.\n */\nexports.checkSupport = function(type) {\n var supported = support[type.toLowerCase()];\n if (!supported) {\n throw new Error(type + \" is not supported by this platform\");\n }\n};\n\nexports.MAX_VALUE_16BITS = 65535;\nexports.MAX_VALUE_32BITS = -1; // well, \"\\xFF\\xFF\\xFF\\xFF\\xFF\\xFF\\xFF\\xFF\" is parsed as -1\n\n/**\n * Prettify a string read as binary.\n * @param {string} str the string to prettify.\n * @return {string} a pretty string.\n */\nexports.pretty = function(str) {\n var res = '',\n code, i;\n for (i = 0; i < (str || \"\").length; i++) {\n code = str.charCodeAt(i);\n res += '\\\\x' + (code < 16 ? \"0\" : \"\") + code.toString(16).toUpperCase();\n }\n return res;\n};\n\n/**\n * Defer the call of a function.\n * @param {Function} callback the function to call asynchronously.\n * @param {Array} args the arguments to give to the callback.\n */\nexports.delay = function(callback, args, self) {\n setImmediate(function () {\n callback.apply(self || null, args || []);\n });\n};\n\n/**\n * Extends a prototype with an other, without calling a constructor with\n * side effects. Inspired by nodejs' `utils.inherits`\n * @param {Function} ctor the constructor to augment\n * @param {Function} superCtor the parent constructor to use\n */\nexports.inherits = function (ctor, superCtor) {\n var Obj = function() {};\n Obj.prototype = superCtor.prototype;\n ctor.prototype = new Obj();\n};\n\n/**\n * Merge the objects passed as parameters into a new one.\n * @private\n * @param {...Object} var_args All objects to merge.\n * @return {Object} a new object with the data of the others.\n */\nexports.extend = function() {\n var result = {}, i, attr;\n for (i = 0; i < arguments.length; i++) { // arguments is not enumerable in some browsers\n for (attr in arguments[i]) {\n if (arguments[i].hasOwnProperty(attr) && typeof result[attr] === \"undefined\") {\n result[attr] = arguments[i][attr];\n }\n }\n }\n return result;\n};\n\n/**\n * Transform arbitrary content into a Promise.\n * @param {String} name a name for the content being processed.\n * @param {Object} inputData the content to process.\n * @param {Boolean} isBinary true if the content is not an unicode string\n * @param {Boolean} isOptimizedBinaryString true if the string content only has one byte per character.\n * @param {Boolean} isBase64 true if the string content is encoded with base64.\n * @return {Promise} a promise in a format usable by JSZip.\n */\nexports.prepareContent = function(name, inputData, isBinary, isOptimizedBinaryString, isBase64) {\n\n // if inputData is already a promise, this flatten it.\n var promise = external.Promise.resolve(inputData).then(function(data) {\n \n \n var isBlob = support.blob && (data instanceof Blob || ['[object File]', '[object Blob]'].indexOf(Object.prototype.toString.call(data)) !== -1);\n\n if (isBlob && typeof FileReader !== \"undefined\") {\n return new external.Promise(function (resolve, reject) {\n var reader = new FileReader();\n\n reader.onload = function(e) {\n resolve(e.target.result);\n };\n reader.onerror = function(e) {\n reject(e.target.error);\n };\n reader.readAsArrayBuffer(data);\n });\n } else {\n return data;\n }\n });\n\n return promise.then(function(data) {\n var dataType = exports.getTypeOf(data);\n\n if (!dataType) {\n return external.Promise.reject(\n new Error(\"The data of '\" + name + \"' is in an unsupported format !\")\n );\n }\n // special case : it's way easier to work with Uint8Array than with ArrayBuffer\n if (dataType === \"arraybuffer\") {\n data = exports.transformTo(\"uint8array\", data);\n } else if (dataType === \"string\") {\n if (isBase64) {\n data = base64.decode(data);\n }\n else if (isBinary) {\n // optimizedBinaryString === true means that the file has already been filtered with a 0xFF mask\n if (isOptimizedBinaryString !== true) {\n // this is a string, not in a base64 format.\n // Be sure that this is a correct \"binary string\"\n data = string2binary(data);\n }\n }\n }\n return data;\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/jszip/lib/utils.js\n// module id = 11\n// module chunks = 1","/**\r\n * @fileoverview gl-matrix - High performance matrix and vector operations\r\n * @author Brandon Jones\r\n * @author Colin MacKenzie IV\r\n * @version 2.4.0\r\n */\r\n\r\n/* Copyright (c) 2015, Brandon Jones, Colin MacKenzie IV.\r\n\r\nPermission is hereby granted, free of charge, to any person obtaining a copy\r\nof this software and associated documentation files (the \"Software\"), to deal\r\nin the Software without restriction, including without limitation the rights\r\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\ncopies of the Software, and to permit persons to whom the Software is\r\nfurnished to do so, subject to the following conditions:\r\n\r\nThe above copyright notice and this permission notice shall be included in\r\nall copies or substantial portions of the Software.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\nTHE SOFTWARE. */\r\n// END HEADER\r\n\r\nimport * as glMatrix from \"./gl-matrix/common.js\";\r\nimport * as mat2 from \"./gl-matrix/mat2.js\";\r\nimport * as mat2d from \"./gl-matrix/mat2d.js\";\r\nimport * as mat3 from \"./gl-matrix/mat3.js\";\r\nimport * as mat4 from \"./gl-matrix/mat4.js\";\r\nimport * as quat from \"./gl-matrix/quat.js\";\r\nimport * as quat2 from \"./gl-matrix/quat2.js\";\r\nimport * as vec2 from \"./gl-matrix/vec2.js\";\r\nimport * as vec3 from \"./gl-matrix/vec3.js\";\r\nimport * as vec4 from \"./gl-matrix/vec4.js\";\r\n\r\nexport {\r\n glMatrix,\r\n mat2, mat2d, mat3, mat4,\r\n quat, quat2,\r\n vec2, vec3, vec4,\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/node_modules/gl-matrix/src/gl-matrix.js","import Constants from 'vtk.js/Sources/Common/Core/DataArray/Constants';\nimport macro from 'vtk.js/Sources/macro';\nimport vtkMath from 'vtk.js/Sources/Common/Core/Math';\n\nconst { DefaultDataType } = Constants;\nconst TUPLE_HOLDER = [];\n\n// ----------------------------------------------------------------------------\n// Global methods\n// ----------------------------------------------------------------------------\n\nfunction createRangeHelper() {\n let min = Number.MAX_VALUE;\n let max = -Number.MAX_VALUE;\n let count = 0;\n let sum = 0;\n\n return {\n add(value) {\n if (min > value) {\n min = value;\n }\n if (max < value) {\n max = value;\n }\n count++;\n sum += value;\n },\n get() {\n return { min, max, count, sum, mean: sum / count };\n },\n getRange() {\n return { min, max };\n },\n };\n}\n\nfunction computeRange(values, component = 0, numberOfComponents = 1) {\n const helper = createRangeHelper();\n const size = values.length;\n let value = 0;\n\n if (component < 0 && numberOfComponents > 1) {\n // Compute magnitude\n for (let i = 0; i < size; i += numberOfComponents) {\n value = 0;\n for (let j = 0; j < numberOfComponents; j++) {\n value += values[i + j] * values[i + j];\n }\n value **= 0.5;\n helper.add(value);\n }\n return helper.getRange();\n }\n\n const offset = component < 0 ? 0 : component;\n for (let i = offset; i < size; i += numberOfComponents) {\n helper.add(values[i]);\n }\n\n return helper.getRange();\n}\n\nfunction ensureRangeSize(rangeArray, size = 0) {\n const ranges = rangeArray || [];\n // Pad ranges with null value to get the\n while (ranges.length <= size) {\n ranges.push(null);\n }\n return ranges;\n}\n\nfunction getDataType(typedArray) {\n return Object.prototype.toString\n .call(typedArray)\n .split(' ')[1]\n .slice(0, -1);\n}\n\nfunction getMaxNorm(normArray) {\n const numComps = normArray.getNumberOfComponents();\n let maxNorm = 0.0;\n for (let i = 0; i < normArray.getNumberOfTuples(); ++i) {\n const norm = vtkMath.norm(normArray.getTuple(i), numComps);\n if (norm > maxNorm) {\n maxNorm = norm;\n }\n }\n return maxNorm;\n}\n\n// ----------------------------------------------------------------------------\n// Static API\n// ----------------------------------------------------------------------------\n\nexport const STATIC = {\n computeRange,\n createRangeHelper,\n getDataType,\n getMaxNorm,\n};\n\n// ----------------------------------------------------------------------------\n// vtkDataArray methods\n// ----------------------------------------------------------------------------\n\nfunction vtkDataArray(publicAPI, model) {\n // Set our className\n model.classHierarchy.push('vtkDataArray');\n\n function dataChange() {\n model.ranges = null;\n publicAPI.modified();\n }\n\n publicAPI.getElementComponentSize = () => model.values.BYTES_PER_ELEMENT;\n\n // Description:\n // Return the data component at the location specified by tupleIdx and\n // compIdx.\n publicAPI.getComponent = (tupleIdx, compIdx = 0) =>\n model.values[tupleIdx * model.numberOfComponents + compIdx];\n\n // Description:\n // Set the data component at the location specified by tupleIdx and compIdx\n // to value.\n // Note that i is less than NumberOfTuples and j is less than\n // NumberOfComponents. Make sure enough memory has been allocated\n // (use SetNumberOfTuples() and SetNumberOfComponents()).\n publicAPI.setComponent = (tupleIdx, compIdx, value) => {\n if (value !== model.values[tupleIdx * model.numberOfComponents + compIdx]) {\n model.values[tupleIdx * model.numberOfComponents + compIdx] = value;\n dataChange();\n }\n };\n\n publicAPI.getData = () => model.values;\n\n publicAPI.getRange = (componentIndex = -1) => {\n const rangeIdx =\n componentIndex < 0 ? model.numberOfComponents : componentIndex;\n let range = null;\n\n if (!model.ranges) {\n model.ranges = ensureRangeSize(model.ranges, model.numberOfComponents);\n }\n range = model.ranges[rangeIdx];\n\n if (range) {\n model.rangeTuple[0] = range.min;\n model.rangeTuple[1] = range.max;\n return model.rangeTuple;\n }\n\n // Need to compute ranges...\n range = computeRange(\n model.values,\n componentIndex,\n model.numberOfComponents\n );\n model.ranges[rangeIdx] = range;\n model.rangeTuple[0] = range.min;\n model.rangeTuple[1] = range.max;\n return model.rangeTuple;\n };\n\n publicAPI.setTuple = (idx, tuple) => {\n const offset = idx * model.numberOfComponents;\n for (let i = 0; i < model.numberOfComponents; i++) {\n model.values[offset + i] = tuple[i];\n }\n };\n\n publicAPI.getTuple = (idx, tupleToFill = TUPLE_HOLDER) => {\n const numberOfComponents = model.numberOfComponents || 1;\n if (tupleToFill.length !== numberOfComponents) {\n tupleToFill.length = numberOfComponents;\n }\n const offset = idx * numberOfComponents;\n // Check most common component sizes first\n // to avoid doing a for loop if possible\n if (numberOfComponents === 1) {\n tupleToFill[0] = model.values[offset];\n } else if (numberOfComponents === 2) {\n tupleToFill[0] = model.values[offset];\n tupleToFill[1] = model.values[offset + 1];\n } else if (numberOfComponents === 3) {\n tupleToFill[0] = model.values[offset];\n tupleToFill[1] = model.values[offset + 1];\n tupleToFill[2] = model.values[offset + 2];\n } else if (numberOfComponents === 4) {\n tupleToFill[0] = model.values[offset];\n tupleToFill[1] = model.values[offset + 1];\n tupleToFill[2] = model.values[offset + 2];\n tupleToFill[3] = model.values[offset + 3];\n } else {\n for (let i = 0; i < numberOfComponents; i++) {\n tupleToFill[i] = model.values[offset + i];\n }\n }\n return tupleToFill;\n };\n\n publicAPI.getTupleLocation = (idx = 1) => idx * model.numberOfComponents;\n publicAPI.getNumberOfComponents = () => model.numberOfComponents;\n publicAPI.getNumberOfValues = () => model.values.length;\n publicAPI.getNumberOfTuples = () =>\n model.values.length / model.numberOfComponents;\n publicAPI.getDataType = () => model.dataType;\n /* eslint-disable no-use-before-define */\n publicAPI.newClone = () =>\n newInstance({\n empty: true,\n name: model.name,\n dataType: model.dataType,\n numberOfComponents: model.numberOfComponents,\n });\n /* eslint-enable no-use-before-define */\n\n publicAPI.getName = () => {\n if (!model.name) {\n publicAPI.modified();\n model.name = `vtkDataArray${publicAPI.getMTime()}`;\n }\n return model.name;\n };\n\n publicAPI.setData = (typedArray, numberOfComponents) => {\n model.values = typedArray;\n model.size = typedArray.length;\n model.dataType = getDataType(typedArray);\n if (numberOfComponents) {\n model.numberOfComponents = numberOfComponents;\n }\n if (model.size % model.numberOfComponents !== 0) {\n model.numberOfComponents = 1;\n }\n dataChange();\n };\n\n /* eslint-disable no-use-before-define */\n publicAPI.shallowCopy = () => newInstance(Object.assign({}, model));\n /* eslint-enable no-use-before-define */\n\n // Override serialization support\n publicAPI.getState = () => {\n const jsonArchive = Object.assign({}, model, {\n vtkClass: publicAPI.getClassName(),\n });\n\n // Convert typed array to regular array\n jsonArchive.values = Array.from(jsonArchive.values);\n delete jsonArchive.buffer;\n\n // Clean any empty data\n Object.keys(jsonArchive).forEach((keyName) => {\n if (!jsonArchive[keyName]) {\n delete jsonArchive[keyName];\n }\n });\n\n // Sort resulting object by key name\n const sortedObj = {};\n Object.keys(jsonArchive)\n .sort()\n .forEach((name) => {\n sortedObj[name] = jsonArchive[name];\n });\n\n // Remove mtime\n if (sortedObj.mtime) {\n delete sortedObj.mtime;\n }\n\n return sortedObj;\n };\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n name: '',\n numberOfComponents: 1,\n size: 0,\n dataType: DefaultDataType,\n rangeTuple: [0, 0],\n // values: null,\n // ranges: null,\n};\n\n// ----------------------------------------------------------------------------\n\nexport function extend(publicAPI, model, initialValues = {}) {\n Object.assign(model, DEFAULT_VALUES, initialValues);\n\n if (!model.empty && !model.values && !model.size) {\n throw new TypeError(\n 'Cannot create vtkDataArray object without: size > 0, values'\n );\n }\n\n if (!model.values) {\n model.values = new window[model.dataType](model.size);\n } else if (Array.isArray(model.values)) {\n model.values = window[model.dataType].from(model.values);\n }\n\n if (model.values) {\n model.size = model.values.length;\n model.dataType = getDataType(model.values);\n }\n\n // Object methods\n macro.obj(publicAPI, model);\n macro.set(publicAPI, model, ['name', 'numberOfComponents']);\n\n // Object specific methods\n vtkDataArray(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\n\nexport const newInstance = macro.newInstance(extend, 'vtkDataArray');\n\n// ----------------------------------------------------------------------------\n\nexport default Object.assign({ newInstance, extend }, STATIC, Constants);\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/Sources/Common/Core/DataArray/index.js","import macro from 'vtk.js/Sources/macro';\n\nconst { vtkErrorMacro } = macro;\n\nconst PASS_TYPES = ['Build', 'Render'];\n\n// ----------------------------------------------------------------------------\n// vtkViewNode methods\n// ----------------------------------------------------------------------------\n\nfunction vtkViewNode(publicAPI, model) {\n // Set our className\n model.classHierarchy.push('vtkViewNode');\n\n // Builds myself.\n publicAPI.build = (prepass) => {};\n\n // Renders myself\n publicAPI.render = (prepass) => {};\n\n publicAPI.traverse = (renderPass) => {\n // we can choose to do special\n // traversal here based on pass\n const passTraversal = renderPass.getTraverseOperation();\n const fn = publicAPI[passTraversal];\n if (fn) {\n fn(renderPass);\n return;\n }\n\n // default traversal\n publicAPI.apply(renderPass, true);\n\n for (let index = 0; index < model.children.length; index++) {\n model.children[index].traverse(renderPass);\n }\n\n publicAPI.apply(renderPass, false);\n };\n\n publicAPI.apply = (renderPass, prepass) => {\n const customRenderPass = publicAPI[renderPass.getOperation()];\n if (customRenderPass) {\n customRenderPass(prepass, renderPass);\n }\n };\n\n publicAPI.getViewNodeFor = (dataObject) => {\n if (model.renderable === dataObject) {\n return publicAPI;\n }\n\n for (let index = 0; index < model.children.length; ++index) {\n const child = model.children[index];\n const vn = child.getViewNodeFor(dataObject);\n if (vn) {\n return vn;\n }\n }\n return undefined;\n };\n\n publicAPI.getFirstAncestorOfType = (type) => {\n if (!model.parent) {\n return null;\n }\n if (model.parent.isA(type)) {\n return model.parent;\n }\n return model.parent.getFirstAncestorOfType(type);\n };\n\n publicAPI.addMissingNode = (dobj) => {\n if (!dobj) {\n return;\n }\n const result = model.renderableChildMap.get(dobj);\n // if found just mark as visited\n if (result !== undefined) {\n result.setVisited(true);\n } else {\n // otherwise create a node\n const newNode = publicAPI.createViewNode(dobj);\n if (newNode) {\n newNode.setParent(publicAPI);\n newNode.setVisited(true);\n model.renderableChildMap.set(dobj, newNode);\n model.children.push(newNode);\n }\n }\n };\n\n publicAPI.addMissingNodes = (dataObjs) => {\n if (!dataObjs || !dataObjs.length) {\n return;\n }\n\n for (let index = 0; index < dataObjs.length; ++index) {\n const dobj = dataObjs[index];\n const result = model.renderableChildMap.get(dobj);\n // if found just mark as visited\n if (result !== undefined) {\n result.setVisited(true);\n } else {\n // otherwise create a node\n const newNode = publicAPI.createViewNode(dobj);\n if (newNode) {\n newNode.setParent(publicAPI);\n newNode.setVisited(true);\n model.renderableChildMap.set(dobj, newNode);\n model.children.push(newNode);\n }\n }\n }\n };\n\n publicAPI.prepareNodes = () => {\n for (let index = 0; index < model.children.length; ++index) {\n model.children[index].setVisited(false);\n }\n };\n\n publicAPI.setVisited = (val) => {\n model.visited = val;\n };\n\n publicAPI.removeUnusedNodes = () => {\n let deleted = null;\n for (let index = 0; index < model.children.length; ++index) {\n const child = model.children[index];\n const visited = child.getVisited();\n if (!visited) {\n const renderable = child.getRenderable();\n if (renderable) {\n model.renderableChildMap.delete(renderable);\n }\n if (!deleted) {\n deleted = [];\n }\n deleted.push(child);\n } else {\n child.setVisited(false);\n }\n }\n\n if (deleted) {\n // slow does alloc but not as common\n model.children = model.children.filter((el) => !deleted.includes(el));\n }\n };\n\n publicAPI.createViewNode = (dataObj) => {\n if (!model.myFactory) {\n vtkErrorMacro('Cannot create view nodes without my own factory');\n return null;\n }\n const ret = model.myFactory.createNode(dataObj);\n if (ret) {\n ret.setRenderable(dataObj);\n }\n return ret;\n };\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n parent: null,\n renderable: null,\n myFactory: null,\n children: [],\n visited: false,\n};\n\n// ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model, initialValues = {}) {\n Object.assign(model, DEFAULT_VALUES, initialValues);\n\n // Build VTK API\n macro.obj(publicAPI, model);\n macro.event(publicAPI, model, 'event');\n\n model.renderableChildMap = new Map();\n\n macro.get(publicAPI, model, ['visited']);\n macro.setGet(publicAPI, model, ['parent', 'renderable', 'myFactory']);\n macro.getArray(publicAPI, model, ['children']);\n\n // Object methods\n vtkViewNode(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\n\nconst newInstance = macro.newInstance(extend, 'vtkViewNode');\n\n// ----------------------------------------------------------------------------\n\nexport default { newInstance, extend, PASS_TYPES };\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/Sources/Rendering/SceneGraph/ViewNode/index.js","module.exports = function() {\r\n\tthrow new Error(\"define cannot be used indirect\");\r\n};\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/amd-define.js\n// module id = 28\n// module chunks = 1","'use strict';\n\n/**\n * A worker that does nothing but passing chunks to the next one. This is like\n * a nodejs stream but with some differences. On the good side :\n * - it works on IE 6-9 without any issue / polyfill\n * - it weights less than the full dependencies bundled with browserify\n * - it forwards errors (no need to declare an error handler EVERYWHERE)\n *\n * A chunk is an object with 2 attributes : `meta` and `data`. The former is an\n * object containing anything (`percent` for example), see each worker for more\n * details. The latter is the real data (String, Uint8Array, etc).\n *\n * @constructor\n * @param {String} name the name of the stream (mainly used for debugging purposes)\n */\nfunction GenericWorker(name) {\n // the name of the worker\n this.name = name || \"default\";\n // an object containing metadata about the workers chain\n this.streamInfo = {};\n // an error which happened when the worker was paused\n this.generatedError = null;\n // an object containing metadata to be merged by this worker into the general metadata\n this.extraStreamInfo = {};\n // true if the stream is paused (and should not do anything), false otherwise\n this.isPaused = true;\n // true if the stream is finished (and should not do anything), false otherwise\n this.isFinished = false;\n // true if the stream is locked to prevent further structure updates (pipe), false otherwise\n this.isLocked = false;\n // the event listeners\n this._listeners = {\n 'data':[],\n 'end':[],\n 'error':[]\n };\n // the previous worker, if any\n this.previous = null;\n}\n\nGenericWorker.prototype = {\n /**\n * Push a chunk to the next workers.\n * @param {Object} chunk the chunk to push\n */\n push : function (chunk) {\n this.emit(\"data\", chunk);\n },\n /**\n * End the stream.\n * @return {Boolean} true if this call ended the worker, false otherwise.\n */\n end : function () {\n if (this.isFinished) {\n return false;\n }\n\n this.flush();\n try {\n this.emit(\"end\");\n this.cleanUp();\n this.isFinished = true;\n } catch (e) {\n this.emit(\"error\", e);\n }\n return true;\n },\n /**\n * End the stream with an error.\n * @param {Error} e the error which caused the premature end.\n * @return {Boolean} true if this call ended the worker with an error, false otherwise.\n */\n error : function (e) {\n if (this.isFinished) {\n return false;\n }\n\n if(this.isPaused) {\n this.generatedError = e;\n } else {\n this.isFinished = true;\n\n this.emit(\"error\", e);\n\n // in the workers chain exploded in the middle of the chain,\n // the error event will go downward but we also need to notify\n // workers upward that there has been an error.\n if(this.previous) {\n this.previous.error(e);\n }\n\n this.cleanUp();\n }\n return true;\n },\n /**\n * Add a callback on an event.\n * @param {String} name the name of the event (data, end, error)\n * @param {Function} listener the function to call when the event is triggered\n * @return {GenericWorker} the current object for chainability\n */\n on : function (name, listener) {\n this._listeners[name].push(listener);\n return this;\n },\n /**\n * Clean any references when a worker is ending.\n */\n cleanUp : function () {\n this.streamInfo = this.generatedError = this.extraStreamInfo = null;\n this._listeners = [];\n },\n /**\n * Trigger an event. This will call registered callback with the provided arg.\n * @param {String} name the name of the event (data, end, error)\n * @param {Object} arg the argument to call the callback with.\n */\n emit : function (name, arg) {\n if (this._listeners[name]) {\n for(var i = 0; i < this._listeners[name].length; i++) {\n this._listeners[name][i].call(this, arg);\n }\n }\n },\n /**\n * Chain a worker with an other.\n * @param {Worker} next the worker receiving events from the current one.\n * @return {worker} the next worker for chainability\n */\n pipe : function (next) {\n return next.registerPrevious(this);\n },\n /**\n * Same as `pipe` in the other direction.\n * Using an API with `pipe(next)` is very easy.\n * Implementing the API with the point of view of the next one registering\n * a source is easier, see the ZipFileWorker.\n * @param {Worker} previous the previous worker, sending events to this one\n * @return {Worker} the current worker for chainability\n */\n registerPrevious : function (previous) {\n if (this.isLocked) {\n throw new Error(\"The stream '\" + this + \"' has already been used.\");\n }\n\n // sharing the streamInfo...\n this.streamInfo = previous.streamInfo;\n // ... and adding our own bits\n this.mergeStreamInfo();\n this.previous = previous;\n var self = this;\n previous.on('data', function (chunk) {\n self.processChunk(chunk);\n });\n previous.on('end', function () {\n self.end();\n });\n previous.on('error', function (e) {\n self.error(e);\n });\n return this;\n },\n /**\n * Pause the stream so it doesn't send events anymore.\n * @return {Boolean} true if this call paused the worker, false otherwise.\n */\n pause : function () {\n if(this.isPaused || this.isFinished) {\n return false;\n }\n this.isPaused = true;\n\n if(this.previous) {\n this.previous.pause();\n }\n return true;\n },\n /**\n * Resume a paused stream.\n * @return {Boolean} true if this call resumed the worker, false otherwise.\n */\n resume : function () {\n if(!this.isPaused || this.isFinished) {\n return false;\n }\n this.isPaused = false;\n\n // if true, the worker tried to resume but failed\n var withError = false;\n if(this.generatedError) {\n this.error(this.generatedError);\n withError = true;\n }\n if(this.previous) {\n this.previous.resume();\n }\n\n return !withError;\n },\n /**\n * Flush any remaining bytes as the stream is ending.\n */\n flush : function () {},\n /**\n * Process a chunk. This is usually the method overridden.\n * @param {Object} chunk the chunk to process.\n */\n processChunk : function(chunk) {\n this.push(chunk);\n },\n /**\n * Add a key/value to be added in the workers chain streamInfo once activated.\n * @param {String} key the key to use\n * @param {Object} value the associated value\n * @return {Worker} the current worker for chainability\n */\n withStreamInfo : function (key, value) {\n this.extraStreamInfo[key] = value;\n this.mergeStreamInfo();\n return this;\n },\n /**\n * Merge this worker's streamInfo into the chain's streamInfo.\n */\n mergeStreamInfo : function () {\n for(var key in this.extraStreamInfo) {\n if (!this.extraStreamInfo.hasOwnProperty(key)) {\n continue;\n }\n this.streamInfo[key] = this.extraStreamInfo[key];\n }\n },\n\n /**\n * Lock the stream to prevent further updates on the workers chain.\n * After calling this method, all calls to pipe will fail.\n */\n lock: function () {\n if (this.isLocked) {\n throw new Error(\"The stream '\" + this + \"' has already been used.\");\n }\n this.isLocked = true;\n if (this.previous) {\n this.previous.lock();\n }\n },\n\n /**\n *\n * Pretty print the workers chain.\n */\n toString : function () {\n var me = \"Worker \" + this.name;\n if (this.previous) {\n return this.previous + \" -> \" + me;\n } else {\n return me;\n }\n }\n};\n\nmodule.exports = GenericWorker;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/jszip/lib/stream/GenericWorker.js\n// module id = 29\n// module chunks = 1","export const DataTypeByteSize = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8,\n};\n\nexport const VtkDataTypes = {\n VOID: '', // not sure to know what that shoud be\n CHAR: 'Int8Array',\n SIGNED_CHAR: 'Int8Array',\n UNSIGNED_CHAR: 'Uint8Array',\n SHORT: 'Int16Array',\n UNSIGNED_SHORT: 'Uint16Array',\n INT: 'Int32Array',\n UNSIGNED_INT: 'Uint32Array',\n FLOAT: 'Float32Array',\n DOUBLE: 'Float64Array',\n};\n\nexport const DefaultDataType = VtkDataTypes.FLOAT;\n\nexport default {\n DefaultDataType,\n DataTypeByteSize,\n VtkDataTypes,\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/Sources/Common/Core/DataArray/Constants.js","import macro from 'vtk.js/Sources/macro';\nimport vtk from 'vtk.js/Sources/vtk';\nimport vtkCellArray from 'vtk.js/Sources/Common/Core/CellArray';\nimport vtkPointSet from 'vtk.js/Sources/Common/DataModel/PointSet';\n\nconst POLYDATA_FIELDS = ['verts', 'lines', 'polys', 'strips'];\n\n// ----------------------------------------------------------------------------\n// vtkPolyData methods\n// ----------------------------------------------------------------------------\n\nfunction vtkPolyData(publicAPI, model) {\n // Set our className\n model.classHierarchy.push('vtkPolyData');\n\n function camelize(str) {\n return str\n .replace(/(?:^\\w|[A-Z]|\\b\\w)/g, (letter) => letter.toUpperCase())\n .replace(/\\s+/g, '');\n }\n\n // build empty cell arrays and set methods\n POLYDATA_FIELDS.forEach((type) => {\n publicAPI[`getNumberOf${camelize(type)}`] = () =>\n model[type].getNumberOfCells();\n if (!model[type]) {\n model[type] = vtkCellArray.newInstance();\n } else {\n model[type] = vtk(model[type]);\n }\n });\n\n publicAPI.getNumberOfCells = () =>\n POLYDATA_FIELDS.reduce(\n (num, cellType) => num + model[cellType].getNumberOfCells(),\n 0\n );\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n // verts: null,\n // lines: null,\n // polys: null,\n // strips: null,\n};\n\n// ----------------------------------------------------------------------------\n\nexport function extend(publicAPI, model, initialValues = {}) {\n Object.assign(model, DEFAULT_VALUES, initialValues);\n\n // Inheritance\n vtkPointSet.extend(publicAPI, model, initialValues);\n macro.setGet(publicAPI, model, ['verts', 'lines', 'polys', 'strips']);\n\n // Object specific methods\n vtkPolyData(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\n\nexport const newInstance = macro.newInstance(extend, 'vtkPolyData');\n\n// ----------------------------------------------------------------------------\n\nexport default { newInstance, extend };\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/Sources/Common/DataModel/PolyData/index.js","/* Copyright (c) 2015, Brandon Jones, Colin MacKenzie IV.\r\n\r\nPermission is hereby granted, free of charge, to any person obtaining a copy\r\nof this software and associated documentation files (the \"Software\"), to deal\r\nin the Software without restriction, including without limitation the rights\r\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\ncopies of the Software, and to permit persons to whom the Software is\r\nfurnished to do so, subject to the following conditions:\r\n\r\nThe above copyright notice and this permission notice shall be included in\r\nall copies or substantial portions of the Software.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\nTHE SOFTWARE. */\r\n\r\n/**\r\n * Common utilities\r\n * @module glMatrix\r\n */\r\n\r\n// Configuration Constants\r\nexport const EPSILON = 0.000001;\r\nexport let ARRAY_TYPE = (typeof Float32Array !== 'undefined') ? Float32Array : Array;\r\nexport const RANDOM = Math.random;\r\n\r\n/**\r\n * Sets the type of array used when creating new vectors and matrices\r\n *\r\n * @param {Type} type Array type, such as Float32Array or Array\r\n */\r\nexport function setMatrixArrayType(type) {\r\n ARRAY_TYPE = type;\r\n}\r\n\r\nconst degree = Math.PI / 180;\r\n\r\n/**\r\n * Convert Degree To Radian\r\n *\r\n * @param {Number} a Angle in Degrees\r\n */\r\nexport function toRadian(a) {\r\n return a * degree;\r\n}\r\n\r\n/**\r\n * Tests whether or not the arguments have approximately the same value, within an absolute\r\n * or relative tolerance of glMatrix.EPSILON (an absolute tolerance is used for values less\r\n * than or equal to 1.0, and a relative tolerance is used for larger values)\r\n *\r\n * @param {Number} a The first number to test.\r\n * @param {Number} b The second number to test.\r\n * @returns {Boolean} True if the numbers are approximately equal, false otherwise.\r\n */\r\nexport function equals(a, b) {\r\n return Math.abs(a - b) <= EPSILON*Math.max(1.0, Math.abs(a), Math.abs(b));\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/node_modules/gl-matrix/src/gl-matrix/common.js","import macro from 'vtk.js/Sources/macro';\nimport vtkShader from 'vtk.js/Sources/Rendering/OpenGL/Shader';\n\nconst { vtkErrorMacro } = macro;\n\n// perform in place string substitutions, indicate if a substitution was done\n// this is useful for building up shader strings which typically involve\n// lots of string substitutions. Return true if a substitution was done.\nfunction substitute(source, search, replace, all = true) {\n const replaceStr = Array.isArray(replace) ? replace.join('\\n') : replace;\n let replaced = false;\n if (source.search(search) !== -1) {\n replaced = true;\n }\n let gflag = '';\n if (all) {\n gflag = 'g';\n }\n const regex = new RegExp(search, gflag);\n const resultstr = source.replace(regex, replaceStr);\n return { replace: replaced, result: resultstr };\n}\n\n// ----------------------------------------------------------------------------\n// vtkShaderProgram methods\n// ----------------------------------------------------------------------------\n\nfunction vtkShaderProgram(publicAPI, model) {\n // Set our className\n model.classHierarchy.push('vtkShaderProgram');\n\n publicAPI.compileShader = () => {\n if (!model.vertexShader.compile()) {\n vtkErrorMacro(\n model.vertexShader\n .getSource()\n .split('\\n')\n .map((line, index) => `${index}: ${line}`)\n .join('\\n')\n );\n vtkErrorMacro(model.vertexShader.getError());\n return 0;\n }\n if (!model.fragmentShader.compile()) {\n vtkErrorMacro(\n model.fragmentShader\n .getSource()\n .split('\\n')\n .map((line, index) => `${index}: ${line}`)\n .join('\\n')\n );\n vtkErrorMacro(model.fragmentShader.getError());\n return 0;\n }\n // skip geometry for now\n if (!publicAPI.attachShader(model.vertexShader)) {\n vtkErrorMacro(model.error);\n return 0;\n }\n if (!publicAPI.attachShader(model.fragmentShader)) {\n vtkErrorMacro(model.error);\n return 0;\n }\n\n if (!publicAPI.link()) {\n vtkErrorMacro(`Links failed: ${model.error}`);\n return 0;\n }\n\n publicAPI.setCompiled(true);\n return 1;\n };\n\n publicAPI.cleanup = () => {\n if (model.shaderType === 'Unknown' || model.handle === 0) {\n return;\n }\n\n model.context.deleteShader(model.handle);\n model.handle = 0;\n };\n\n publicAPI.bind = () => {\n if (!model.linked && !model.link()) {\n return false;\n }\n\n model.context.useProgram(model.handle);\n publicAPI.setBound(true);\n return true;\n };\n\n publicAPI.isBound = () => !!model.bound;\n\n publicAPI.release = () => {\n model.context.useProgram(null);\n publicAPI.setBound(false);\n };\n\n publicAPI.setContext = (ctx) => {\n model.vertexShader.setContext(ctx);\n model.fragmentShader.setContext(ctx);\n model.geometryShader.setContext(ctx);\n };\n\n publicAPI.link = () => {\n if (model.inked) {\n return true;\n }\n\n if (model.handle === 0) {\n model.error =\n 'Program has not been initialized, and/or does not have shaders.';\n return false;\n }\n\n // clear out the list of uniforms used\n model.uniformLocs = {};\n\n model.context.linkProgram(model.handle);\n const isCompiled = model.context.getProgramParameter(\n model.handle,\n model.context.LINK_STATUS\n );\n if (!isCompiled) {\n const lastError = model.context.getProgramInfoLog(model.handle);\n vtkErrorMacro(`Error linking shader ${lastError}`);\n model.handle = 0;\n return false;\n }\n\n publicAPI.setLinked(true);\n model.attributeLocs = {};\n return true;\n };\n\n publicAPI.setUniformMatrix = (name, v) => {\n const location = publicAPI.findUniform(name);\n if (location === -1) {\n model.error = `Could not set uniform ${name} . No such uniform.`;\n return false;\n }\n model.context.uniformMatrix4fv(location, false, v);\n return true;\n };\n\n publicAPI.setUniformMatrix3x3 = (name, v) => {\n const location = publicAPI.findUniform(name);\n if (location === -1) {\n model.error = `Could not set uniform ${name} . No such uniform.`;\n return false;\n }\n model.context.uniformMatrix3fv(location, false, v);\n return true;\n };\n\n publicAPI.setUniformf = (name, v) => {\n const location = publicAPI.findUniform(name);\n if (location === -1) {\n model.error = `Could not set uniform ${name} . No such uniform.`;\n return false;\n }\n model.context.uniform1f(location, v);\n return true;\n };\n\n publicAPI.setUniformfv = (name, v) => {\n const location = publicAPI.findUniform(name);\n if (location === -1) {\n model.error = `Could not set uniform ${name} . No such uniform.`;\n return false;\n }\n model.context.uniform1fv(location, v);\n return true;\n };\n\n publicAPI.setUniformi = (name, v) => {\n const location = publicAPI.findUniform(name);\n if (location === -1) {\n model.error = `Could not set uniform ${name} . No such uniform.`;\n return false;\n }\n model.context.uniform1i(location, v);\n return true;\n };\n\n publicAPI.setUniformiv = (name, v) => {\n const location = publicAPI.findUniform(name);\n if (location === -1) {\n model.error = `Could not set uniform ${name} . No such uniform.`;\n return false;\n }\n model.context.uniform1iv(location, v);\n return true;\n };\n\n publicAPI.setUniform2f = (name, v1, v2) => {\n const location = publicAPI.findUniform(name);\n if (location === -1) {\n model.error = `Could not set uniform ${name} . No such uniform.`;\n return false;\n }\n if (v2 === undefined) {\n throw new RangeError('Invalid number of values for array');\n }\n model.context.uniform2f(location, v1, v2);\n return true;\n };\n\n publicAPI.setUniform2fv = (name, v) => {\n const location = publicAPI.findUniform(name);\n if (location === -1) {\n model.error = `Could not set uniform ${name} . No such uniform.`;\n return false;\n }\n model.context.uniform2fv(location, v);\n return true;\n };\n\n publicAPI.setUniform2i = (name, v1, v2) => {\n const location = publicAPI.findUniform(name);\n if (location === -1) {\n model.error = `Could not set uniform ${name} . No such uniform.`;\n return false;\n }\n if (v2 === undefined) {\n throw new RangeError('Invalid number of values for array');\n }\n model.context.uniform2i(location, v1, v2);\n return true;\n };\n\n publicAPI.setUniform2iv = (name, v) => {\n const location = publicAPI.findUniform(name);\n if (location === -1) {\n model.error = `Could not set uniform ${name} . No such uniform.`;\n return false;\n }\n model.context.uniform2iv(location, v);\n return true;\n };\n\n publicAPI.setUniform3f = (name, a1, a2, a3) => {\n const location = publicAPI.findUniform(name);\n if (location === -1) {\n model.error = `Could not set uniform ${name} . No such uniform.`;\n return false;\n }\n if (a3 === undefined) {\n throw new RangeError('Invalid number of values for array');\n }\n model.context.uniform3f(location, a1, a2, a3);\n return true;\n };\n\n publicAPI.setUniform3fArray = (name, a) => {\n const location = publicAPI.findUniform(name);\n if (location === -1) {\n model.error = `Could not set uniform ${name} . No such uniform.`;\n return false;\n }\n if (!Array.isArray(a) || a.length !== 3) {\n throw new RangeError('Invalid number of values for array');\n }\n model.context.uniform3f(location, a[0], a[1], a[2]);\n return true;\n };\n\n publicAPI.setUniform3fv = (name, v) => {\n const location = publicAPI.findUniform(name);\n if (location === -1) {\n model.error = `Could not set uniform ${name} . No such uniform.`;\n return false;\n }\n model.context.uniform3fv(location, v);\n return true;\n };\n\n publicAPI.setUniform3i = (name, ...args) => {\n const location = publicAPI.findUniform(name);\n if (location === -1) {\n model.error = `Could not set uniform ${name} . No such uniform.`;\n return false;\n }\n let array = args;\n // allow an array passed as a single argument\n if (array.length === 1 && Array.isArray(array[0])) {\n array = array[0];\n }\n if (array.length !== 3) {\n throw new RangeError('Invalid number of values for array');\n }\n model.context.uniform3i(location, array[0], array[1], array[2]);\n return true;\n };\n\n publicAPI.setUniform3iv = (name, v) => {\n const location = publicAPI.findUniform(name);\n if (location === -1) {\n model.error = `Could not set uniform ${name} . No such uniform.`;\n return false;\n }\n model.context.uniform3iv(location, v);\n return true;\n };\n\n publicAPI.setUniform4f = (name, ...args) => {\n const location = publicAPI.findUniform(name);\n if (location === -1) {\n model.error = `Could not set uniform ${name} . No such uniform.`;\n return false;\n }\n let array = args;\n // allow an array passed as a single argument\n if (array.length === 1 && Array.isArray(array[0])) {\n array = array[0];\n }\n if (array.length !== 4) {\n throw new RangeError('Invalid number of values for array');\n }\n model.context.uniform4f(location, array[0], array[1], array[2], array[3]);\n return true;\n };\n\n publicAPI.setUniform4fv = (name, v) => {\n const location = publicAPI.findUniform(name);\n if (location === -1) {\n model.error = `Could not set uniform ${name} . No such uniform.`;\n return false;\n }\n model.context.uniform4fv(location, v);\n return true;\n };\n\n publicAPI.setUniform4i = (name, ...args) => {\n const location = publicAPI.findUniform(name);\n if (location === -1) {\n model.error = `Could not set uniform ${name} . No such uniform.`;\n return false;\n }\n let array = args;\n // allow an array passed as a single argument\n if (array.length === 1 && Array.isArray(array[0])) {\n array = array[0];\n }\n if (array.length !== 4) {\n throw new RangeError('Invalid number of values for array');\n }\n model.context.uniform4i(location, array[0], array[1], array[2], array[3]);\n return true;\n };\n\n publicAPI.setUniform4iv = (name, v) => {\n const location = publicAPI.findUniform(name);\n if (location === -1) {\n model.error = `Could not set uniform ${name} . No such uniform.`;\n return false;\n }\n model.context.uniform4iv(location, v);\n return true;\n };\n\n publicAPI.setUniform4fv = (name, count, v) => {\n const location = publicAPI.findUniform(name);\n if (location === -1) {\n model.error = `Could not set uniform ${name} . No such uniform.`;\n return false;\n }\n model.context.uniform4fv(location, v);\n return true;\n };\n\n publicAPI.findUniform = (name) => {\n if (!name || !model.linked) {\n return -1;\n }\n\n // see if we have cached the result\n let loc = model.uniformLocs[name];\n if (loc !== undefined) {\n return loc;\n }\n\n loc = model.context.getUniformLocation(model.handle, name);\n if (loc === null) {\n model.error = `Uniform ${name} not found in current shader program.`;\n model.uniformLocs[name] = -1;\n return -1;\n }\n\n model.uniformLocs[name] = loc;\n return loc;\n };\n\n publicAPI.isUniformUsed = (name) => {\n if (!name) {\n return false;\n }\n\n // see if we have cached the result\n let loc = model.uniformLocs[name];\n if (loc !== undefined) {\n return loc !== null;\n }\n\n if (!model.linked) {\n vtkErrorMacro(\n 'attempt to find uniform when the shader program is not linked'\n );\n return false;\n }\n\n loc = model.context.getUniformLocation(model.handle, name);\n model.uniformLocs[name] = loc;\n\n if (loc === null) {\n return false;\n }\n\n return true;\n };\n\n publicAPI.isAttributeUsed = (name) => {\n if (!name) {\n return false;\n }\n\n // see if we have cached the result\n let loc = Object.keys(model.attributeLocs).indexOf(name);\n if (loc !== -1) {\n return true;\n }\n\n if (!model.linked) {\n vtkErrorMacro(\n 'attempt to find uniform when the shader program is not linked'\n );\n return false;\n }\n\n loc = model.context.getAttribLocation(model.handle, name);\n if (loc === -1) {\n return false;\n }\n model.attributeLocs[name] = loc;\n\n return true;\n };\n\n publicAPI.attachShader = (shader) => {\n if (shader.getHandle() === 0) {\n model.error = 'Shader object was not initialized, cannot attach it.';\n return false;\n }\n if (shader.getShaderType() === 'Unknown') {\n model.error = 'Shader object is of type Unknown and cannot be used.';\n return false;\n }\n\n if (model.handle === 0) {\n const thandle = model.context.createProgram();\n if (thandle === 0) {\n model.error = 'Could not create shader program.';\n return false;\n }\n model.handle = thandle;\n model.linked = false;\n }\n\n if (shader.getShaderType() === 'Vertex') {\n if (model.vertexShaderHandle !== 0) {\n model.comntext.detachShader(model.handle, model.vertexShaderHandle);\n }\n model.vertexShaderHandle = shader.getHandle();\n }\n if (shader.getShaderType() === 'Fragment') {\n if (model.fragmentShaderHandle !== 0) {\n model.context.detachShader(model.handle, model.fragmentShaderHandle);\n }\n model.fragmentShaderHandle = shader.getHandle();\n }\n\n model.context.attachShader(model.handle, shader.getHandle());\n publicAPI.setLinked(false);\n return true;\n };\n\n publicAPI.detachShader = (shader) => {\n if (shader.getHandle() === 0) {\n model.error = 'shader object was not initialized, cannot attach it.';\n return false;\n }\n if (shader.getShaderType() === 'Unknown') {\n model.error = 'Shader object is of type Unknown and cannot be used.';\n return false;\n }\n if (model.handle === 0) {\n model.errror = 'This shader prorgram has not been initialized yet.';\n }\n\n switch (shader.getShaderType()) {\n case 'Vertex':\n if (model.vertexShaderHandle !== shader.getHandle()) {\n model.error = 'The supplied shader was not attached to this program.';\n return false;\n }\n model.context.detachShader(model.handle, shader.getHandle());\n model.vertexShaderHandle = 0;\n model.linked = false;\n return true;\n case 'Fragment':\n if (model.fragmentShaderHandle !== shader.getHandle()) {\n model.error = 'The supplied shader was not attached to this program.';\n return false;\n }\n model.context.detachShader(model.handle, shader.getHandle());\n model.fragmentShaderHandle = 0;\n model.linked = false;\n return true;\n default:\n return false;\n }\n };\n\n publicAPI.setContext = (ctx) => {\n model.context = ctx;\n model.vertexShader.setContext(ctx);\n model.fragmentShader.setContext(ctx);\n model.geometryShader.setContext(ctx);\n };\n\n publicAPI.setLastCameraMTime = (mtime) => {\n model.lastCameraMTime = mtime;\n };\n\n // publicAPI.enableAttributeArray = (name) => {\n // const location = publicAPI.findAttributeArray(name);\n // if (location === -1) {\n // model.error = `Could not enable attribute ${name} No such attribute.`;\n // return false;\n // }\n // model.context.enableVertexAttribArray(location);\n // return true;\n // };\n\n // publicAPI.disableAttributeArray = (name) => {\n // const location = publicAPI.findAttributeArray(name);\n // if (location === -1) {\n // model.error = `Could not enable attribute ${name} No such attribute.`;\n // return false;\n // }\n // model.context.disableVertexAttribArray(location);\n // return true;\n // };\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n vertexShaderHandle: 0,\n fragmentShaderHandle: 0,\n geometryShaderHandle: 0,\n vertexShader: null,\n fragmentShader: null,\n geometryShader: null,\n\n linked: false,\n bound: false,\n compiled: false,\n error: '',\n handle: 0,\n numberOfOutputs: 0,\n attributesLocs: null,\n uniformLocs: null,\n md5Hash: 0,\n context: null,\n lastCameraMTime: null,\n};\n\n// ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model, initialValues = {}) {\n Object.assign(model, DEFAULT_VALUES, initialValues);\n\n // Instanciate internal objects\n model.attributesLocs = {};\n model.uniformLocs = {};\n model.vertexShader = vtkShader.newInstance();\n model.vertexShader.setShaderType('Vertex');\n model.fragmentShader = vtkShader.newInstance();\n model.fragmentShader.setShaderType('Fragment');\n model.geometryShader = vtkShader.newInstance();\n model.geometryShader.setShaderType('Geometry');\n\n // Build VTK API\n macro.obj(publicAPI, model);\n macro.get(publicAPI, model, ['lastCameraMTime']);\n macro.setGet(publicAPI, model, [\n 'error',\n 'handle',\n 'compiled',\n 'bound',\n 'md5Hash',\n 'vertexShader',\n 'fragmentShader',\n 'geometryShader',\n 'linked',\n ]);\n\n // Object methods\n vtkShaderProgram(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\n\nconst newInstance = macro.newInstance(extend, 'vtkShaderProgram');\n\n// ----------------------------------------------------------------------------\n\nexport default { newInstance, extend, substitute };\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/Sources/Rendering/OpenGL/ShaderProgram/index.js","'use strict';\n\n\nvar TYPED_OK = (typeof Uint8Array !== 'undefined') &&\n (typeof Uint16Array !== 'undefined') &&\n (typeof Int32Array !== 'undefined');\n\nfunction _has(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n\nexports.assign = function (obj /*from1, from2, from3, ...*/) {\n var sources = Array.prototype.slice.call(arguments, 1);\n while (sources.length) {\n var source = sources.shift();\n if (!source) { continue; }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be non-object');\n }\n\n for (var p in source) {\n if (_has(source, p)) {\n obj[p] = source[p];\n }\n }\n }\n\n return obj;\n};\n\n\n// reduce buffer size, avoiding mem copy\nexports.shrinkBuf = function (buf, size) {\n if (buf.length === size) { return buf; }\n if (buf.subarray) { return buf.subarray(0, size); }\n buf.length = size;\n return buf;\n};\n\n\nvar fnTyped = {\n arraySet: function (dest, src, src_offs, len, dest_offs) {\n if (src.subarray && dest.subarray) {\n dest.set(src.subarray(src_offs, src_offs + len), dest_offs);\n return;\n }\n // Fallback to ordinary array\n for (var i = 0; i < len; i++) {\n dest[dest_offs + i] = src[src_offs + i];\n }\n },\n // Join array of chunks to single array.\n flattenChunks: function (chunks) {\n var i, l, len, pos, chunk, result;\n\n // calculate data length\n len = 0;\n for (i = 0, l = chunks.length; i < l; i++) {\n len += chunks[i].length;\n }\n\n // join chunks\n result = new Uint8Array(len);\n pos = 0;\n for (i = 0, l = chunks.length; i < l; i++) {\n chunk = chunks[i];\n result.set(chunk, pos);\n pos += chunk.length;\n }\n\n return result;\n }\n};\n\nvar fnUntyped = {\n arraySet: function (dest, src, src_offs, len, dest_offs) {\n for (var i = 0; i < len; i++) {\n dest[dest_offs + i] = src[src_offs + i];\n }\n },\n // Join array of chunks to single array.\n flattenChunks: function (chunks) {\n return [].concat.apply([], chunks);\n }\n};\n\n\n// Enable/Disable typed arrays use, for testing\n//\nexports.setTyped = function (on) {\n if (on) {\n exports.Buf8 = Uint8Array;\n exports.Buf16 = Uint16Array;\n exports.Buf32 = Int32Array;\n exports.assign(exports, fnTyped);\n } else {\n exports.Buf8 = Array;\n exports.Buf16 = Array;\n exports.Buf32 = Array;\n exports.assign(exports, fnUntyped);\n }\n};\n\nexports.setTyped(TYPED_OK);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/pako/lib/utils/common.js\n// module id = 43\n// module chunks = 1","'use strict';\n\nexports.base64 = true;\nexports.array = true;\nexports.string = true;\nexports.arraybuffer = typeof ArrayBuffer !== \"undefined\" && typeof Uint8Array !== \"undefined\";\nexports.nodebuffer = typeof Buffer !== \"undefined\";\n// contains true if JSZip can read/generate Uint8Array, false otherwise.\nexports.uint8array = typeof Uint8Array !== \"undefined\";\n\nif (typeof ArrayBuffer === \"undefined\") {\n exports.blob = false;\n}\nelse {\n var buffer = new ArrayBuffer(0);\n try {\n exports.blob = new Blob([buffer], {\n type: \"application/zip\"\n }).size === 0;\n }\n catch (e) {\n try {\n var Builder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder || window.MSBlobBuilder;\n var builder = new Builder();\n builder.append(buffer);\n exports.blob = builder.getBlob('application/zip').size === 0;\n }\n catch (e) {\n exports.blob = false;\n }\n }\n}\n\ntry {\n exports.nodestream = !!require('readable-stream').Readable;\n} catch(e) {\n exports.nodestream = false;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/jszip/lib/support.js\n// module id = 44\n// module chunks = 1","// removed by extract-text-webpack-plugin\n\n\n// WEBPACK FOOTER //\n// ./external_modules/helpers/helper.less","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\n\nvar processNextTick = require('process-nextick-args');\n/**/\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/**/\n\nmodule.exports = Duplex;\n\n/**/\nvar util = require('core-util-is');\nutil.inherits = require('inherits');\n/**/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\nvar keys = objectKeys(Writable.prototype);\nfor (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n processNextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n processNextTick(cb, err);\n};\n\nfunction forEach(xs, f) {\n for (var i = 0, l = xs.length; i < l; i++) {\n f(xs[i], i);\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/readable-stream/lib/_stream_duplex.js\n// module id = 53\n// module chunks = 1","const factoryMapping = {\n vtkObject: () => null,\n};\n\nexport default function vtk(obj) {\n if (obj === null || obj === undefined) {\n return obj;\n }\n if (obj.isA) {\n return obj;\n }\n if (!obj.vtkClass) {\n if (global.console && global.console.error) {\n global.console.error('Invalid VTK object');\n }\n return null;\n }\n const constructor = factoryMapping[obj.vtkClass];\n if (!constructor) {\n if (global.console && global.console.error) {\n global.console.error(\n `No vtk class found for Object of type ${obj.vtkClass}`\n );\n }\n return null;\n }\n\n // Shallow copy object\n const model = Object.assign({}, obj);\n\n // Convert into vtkObject any nested key\n Object.keys(model).forEach((keyName) => {\n if (\n model[keyName] &&\n typeof model[keyName] === 'object' &&\n model[keyName].vtkClass\n ) {\n model[keyName] = vtk(model[keyName]);\n }\n });\n\n // Return the root\n const newInst = constructor(model);\n if (newInst && newInst.modified) {\n newInst.modified();\n }\n return newInst;\n}\n\nfunction register(vtkClassName, constructor) {\n factoryMapping[vtkClassName] = constructor;\n}\n\n// Nest register method under the vtk function\nvtk.register = register;\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/Sources/vtk.js","module.exports = function(module) {\r\n\tif(!module.webpackPolyfill) {\r\n\t\tmodule.deprecate = function() {};\r\n\t\tmodule.paths = [];\r\n\t\t// module.parent = undefined by default\r\n\t\tif(!module.children) module.children = [];\r\n\t\tObject.defineProperty(module, \"loaded\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.l;\r\n\t\t\t}\r\n\t\t});\r\n\t\tObject.defineProperty(module, \"id\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.i;\r\n\t\t\t}\r\n\t\t});\r\n\t\tmodule.webpackPolyfill = 1;\r\n\t}\r\n\treturn module;\r\n};\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/module.js\n// module id = 64\n// module chunks = 1","/* globals __webpack_amd_options__ */\r\nmodule.exports = __webpack_amd_options__;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/amd-options.js\n// module id = 65\n// module chunks = 1","export const Shading = {\n FLAT: 0,\n GOURAUD: 1,\n PHONG: 2,\n};\n\nexport const Representation = {\n POINTS: 0,\n WIREFRAME: 1,\n SURFACE: 2,\n};\n\nexport const Interpolation = Shading;\n\nexport default {\n Shading,\n Representation,\n Interpolation,\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/Sources/Rendering/Core/Property/Constants.js","import WebworkerPromise from 'webworker-promise';\n\nimport Constants from 'vtk.js/Sources/Rendering/OpenGL/Texture/Constants';\nimport macro from 'vtk.js/Sources/macro';\nimport vtkDataArray from 'vtk.js/Sources/Common/Core/DataArray';\nimport vtkMath from 'vtk.js/Sources/Common/Core/Math';\nimport vtkViewNode from 'vtk.js/Sources/Rendering/SceneGraph/ViewNode';\n\nimport ComputeGradientsWorker from './ComputeGradients.worker';\n\nconst { Wrap, Filter } = Constants;\nconst { VtkDataTypes } = vtkDataArray;\nconst { vtkDebugMacro, vtkErrorMacro, vtkWarningMacro } = macro;\n\n// ----------------------------------------------------------------------------\n// vtkOpenGLTexture methods\n// ----------------------------------------------------------------------------\n\nfunction vtkOpenGLTexture(publicAPI, model) {\n // Set our className\n model.classHierarchy.push('vtkOpenGLTexture');\n // Renders myself\n publicAPI.render = (renWin = null) => {\n if (renWin) {\n model.openGLRenderWindow = renWin;\n } else {\n model.openGLRenderer = publicAPI.getFirstAncestorOfType(\n 'vtkOpenGLRenderer'\n );\n // sync renderable properties\n model.openGLRenderWindow = model.openGLRenderer.getParent();\n }\n model.context = model.openGLRenderWindow.getContext();\n if (model.renderable.getInterpolate()) {\n if (model.generateMipmap) {\n publicAPI.setMinificationFilter(Filter.LINEAR_MIPMAP_LINEAR);\n } else {\n publicAPI.setMinificationFilter(Filter.LINEAR);\n }\n publicAPI.setMagnificationFilter(Filter.LINEAR);\n } else {\n publicAPI.setMinificationFilter(Filter.NEAREST);\n publicAPI.setMagnificationFilter(Filter.NEAREST);\n }\n if (model.renderable.getRepeat()) {\n publicAPI.setWrapR(Wrap.REPEAT);\n publicAPI.setWrapS(Wrap.REPEAT);\n publicAPI.setWrapT(Wrap.REPEAT);\n }\n // clear image if input data is set\n if (model.renderable.getInputData()) {\n model.renderable.setImage(null);\n }\n // create the texture if it is not done already\n if (\n !model.handle ||\n model.renderable.getMTime() > model.textureBuildTime.getMTime()\n ) {\n // if we have an Image\n if (model.renderable.getImage() !== null) {\n if (model.renderable.getInterpolate()) {\n model.generateMipmap = true;\n publicAPI.setMinificationFilter(Filter.LINEAR_MIPMAP_LINEAR);\n }\n // Have an Image which may not be complete\n if (model.renderable.getImage() && model.renderable.getImageLoaded()) {\n publicAPI.create2DFromImage(model.renderable.getImage());\n publicAPI.activate();\n publicAPI.sendParameters();\n model.textureBuildTime.modified();\n }\n }\n // if we have Inputdata\n const input = model.renderable.getInputData(0);\n if (input && input.getPointData().getScalars()) {\n const ext = input.getExtent();\n const inScalars = input.getPointData().getScalars();\n\n // do we have a cube map? Six inputs\n const data = [];\n for (let i = 0; i < model.renderable.getNumberOfInputPorts(); ++i) {\n const indata = model.renderable.getInputData(i);\n const scalars = indata\n ? indata\n .getPointData()\n .getScalars()\n .getData()\n : null;\n if (scalars) {\n data.push(scalars);\n }\n }\n if (\n model.renderable.getInterpolate() &&\n inScalars.getNumberOfComponents() === 4\n ) {\n model.generateMipmap = true;\n publicAPI.setMinificationFilter(Filter.LINEAR_MIPMAP_LINEAR);\n }\n if (data.length % 6 === 0) {\n publicAPI.createCubeFromRaw(\n ext[1] - ext[0] + 1,\n ext[3] - ext[2] + 1,\n inScalars.getNumberOfComponents(),\n inScalars.getDataType(),\n data\n );\n } else {\n publicAPI.create2DFromRaw(\n ext[1] - ext[0] + 1,\n ext[3] - ext[2] + 1,\n inScalars.getNumberOfComponents(),\n inScalars.getDataType(),\n inScalars.getData()\n );\n }\n publicAPI.activate();\n publicAPI.sendParameters();\n model.textureBuildTime.modified();\n }\n }\n if (model.handle) {\n publicAPI.activate();\n }\n };\n\n //----------------------------------------------------------------------------\n publicAPI.destroyTexture = () => {\n // deactivate it first\n publicAPI.deactivate();\n\n if (model.context && model.handle) {\n model.context.deleteTexture(model.handle);\n }\n model.handle = 0;\n model.numberOfDimensions = 0;\n model.target = 0;\n model.components = 0;\n model.width = 0;\n model.height = 0;\n model.depth = 0;\n publicAPI.resetFormatAndType();\n };\n\n //----------------------------------------------------------------------------\n publicAPI.createTexture = () => {\n // reuse the existing handle if we have one\n if (!model.handle) {\n model.handle = model.context.createTexture();\n\n if (model.target) {\n model.context.bindTexture(model.target, model.handle);\n\n // See: http://www.openmodel.context..org/wiki/Common_Mistakes#Creating_a_complete_texture\n // turn off mip map filter or set the base and max level correctly. here\n // both are done.\n model.context.texParameteri(\n model.target,\n model.context.TEXTURE_MIN_FILTER,\n publicAPI.getOpenGLFilterMode(model.minificationFilter)\n );\n model.context.texParameteri(\n model.target,\n model.context.TEXTURE_MAG_FILTER,\n publicAPI.getOpenGLFilterMode(model.magnificationFilter)\n );\n\n model.context.texParameteri(\n model.target,\n model.context.TEXTURE_WRAP_S,\n publicAPI.getOpenGLWrapMode(model.wrapS)\n );\n model.context.texParameteri(\n model.target,\n model.context.TEXTURE_WRAP_T,\n publicAPI.getOpenGLWrapMode(model.wrapT)\n );\n\n model.context.bindTexture(model.target, null);\n }\n }\n };\n\n //---------------------------------------------------------------------------\n publicAPI.getTextureUnit = () => {\n if (model.openGLRenderWindow) {\n return model.openGLRenderWindow.getTextureUnitForTexture(publicAPI);\n }\n return -1;\n };\n\n //---------------------------------------------------------------------------\n publicAPI.activate = () => {\n // activate a free texture unit for this texture\n model.openGLRenderWindow.activateTexture(publicAPI);\n publicAPI.bind();\n };\n\n //---------------------------------------------------------------------------\n publicAPI.deactivate = () => {\n if (model.openGLRenderWindow) {\n model.openGLRenderWindow.deactivateTexture(publicAPI);\n }\n };\n\n //---------------------------------------------------------------------------\n publicAPI.releaseGraphicsResources = (rwin) => {\n if (rwin && model.handle) {\n rwin.activateTexture(publicAPI);\n rwin.deactivateTexture(publicAPI);\n model.context.deleteTexture(model.handle);\n model.handle = 0;\n model.numberOfDimensions = 0;\n model.target = 0;\n model.internalFormat = 0;\n model.format = 0;\n model.openGLDataType = 0;\n model.components = 0;\n model.width = 0;\n model.height = 0;\n model.depth = 0;\n }\n if (model.shaderProgram) {\n model.shaderProgram.releaseGraphicsResources(rwin);\n model.shaderProgram = null;\n }\n };\n\n //----------------------------------------------------------------------------\n publicAPI.bind = () => {\n model.context.bindTexture(model.target, model.handle);\n if (\n model.autoParameters &&\n publicAPI.getMTime() > model.sendParametersTime.getMTime()\n ) {\n publicAPI.sendParameters();\n }\n };\n\n //----------------------------------------------------------------------------\n publicAPI.isBound = () => {\n let result = false;\n if (model.context && model.handle) {\n let target = 0;\n switch (model.target) {\n case model.context.TEXTURE_2D:\n target = model.context.TEXTURE_BINDING_2D;\n break;\n default:\n vtkWarningMacro('impossible case');\n break;\n }\n const oid = model.context.getIntegerv(target);\n result = oid === model.handle;\n }\n return result;\n };\n\n //----------------------------------------------------------------------------\n publicAPI.sendParameters = () => {\n model.context.texParameteri(\n model.target,\n model.context.TEXTURE_WRAP_S,\n publicAPI.getOpenGLWrapMode(model.wrapS)\n );\n model.context.texParameteri(\n model.target,\n model.context.TEXTURE_WRAP_T,\n publicAPI.getOpenGLWrapMode(model.wrapT)\n );\n if (model.openGLRenderWindow.getWebgl2()) {\n model.context.texParameteri(\n model.target,\n model.context.TEXTURE_WRAP_R,\n publicAPI.getOpenGLWrapMode(model.wrapR)\n );\n }\n\n model.context.texParameteri(\n model.target,\n model.context.TEXTURE_MIN_FILTER,\n publicAPI.getOpenGLFilterMode(model.minificationFilter)\n );\n\n model.context.texParameteri(\n model.target,\n model.context.TEXTURE_MAG_FILTER,\n publicAPI.getOpenGLFilterMode(model.magnificationFilter)\n );\n\n model.context.texParameteri(\n model.target,\n model.context.TEXTURE_BASE_LEVEL,\n model.baseLevel\n );\n\n model.context.texParameteri(\n model.target,\n model.context.TEXTURE_MAX_LEVEL,\n model.maxLevel\n );\n\n // model.context.texParameterf(model.target, model.context.TEXTURE_MIN_LOD, model.minLOD);\n // model.context.texParameterf(model.target, model.context.TEXTURE_MAX_LOD, model.maxLOD);\n\n model.sendParametersTime.modified();\n };\n\n //----------------------------------------------------------------------------\n publicAPI.getInternalFormat = (vtktype, numComps) => {\n if (model.internalFormat) {\n return model.internalFormat;\n }\n\n model.internalFormat = publicAPI.getDefaultInternalFormat(\n vtktype,\n numComps\n );\n\n if (!model.internalFormat) {\n vtkDebugMacro(\n `Unable to find suitable internal format for T=${vtktype} NC= ${numComps}`\n );\n }\n\n return model.internalFormat;\n };\n\n //----------------------------------------------------------------------------\n publicAPI.getDefaultInternalFormat = (vtktype, numComps) => {\n let result = 0;\n\n // try default next\n result = model.openGLRenderWindow.getDefaultTextureInternalFormat(\n vtktype,\n numComps,\n false\n );\n if (result) {\n return result;\n }\n\n // try floating point\n result = this.openGLRenderWindow.getDefaultTextureInternalFormat(\n vtktype,\n numComps,\n true\n );\n\n if (!result) {\n vtkDebugMacro('Unsupported internal texture type!');\n vtkDebugMacro(\n `Unable to find suitable internal format for T=${vtktype} NC= ${numComps}`\n );\n }\n\n return result;\n };\n\n //----------------------------------------------------------------------------\n publicAPI.setInternalFormat = (iFormat) => {\n if (iFormat !== model.context.InternalFormat) {\n model.internalFormat = iFormat;\n publicAPI.modified();\n }\n };\n\n //----------------------------------------------------------------------------\n publicAPI.getFormat = (vtktype, numComps) => {\n if (!model.format) {\n model.format = publicAPI.getDefaultFormat(vtktype, numComps);\n }\n return model.format;\n };\n\n //----------------------------------------------------------------------------\n publicAPI.getDefaultFormat = (vtktype, numComps) => {\n if (model.openGLRenderWindow.getWebgl2()) {\n switch (numComps) {\n case 1:\n return model.context.RED;\n case 2:\n return model.context.RG;\n case 3:\n return model.context.RGB;\n case 4:\n return model.context.RGBA;\n default:\n return model.context.RGB;\n }\n } else {\n switch (numComps) {\n case 1:\n return model.context.LUMINANCE;\n case 2:\n return model.context.LUMINANCE_ALPHA;\n case 3:\n return model.context.RGB;\n case 4:\n return model.context.RGBA;\n default:\n return model.context.RGB;\n }\n }\n };\n\n //----------------------------------------------------------------------------\n publicAPI.resetFormatAndType = () => {\n model.format = 0;\n model.internalFormat = 0;\n model.openGLDataType = 0;\n };\n\n //----------------------------------------------------------------------------\n publicAPI.getDefaultDataType = (vtkScalarType) => {\n // DON'T DEAL with VTK_CHAR as this is platform dependent.\n if (model.openGLRenderWindow.getWebgl2()) {\n switch (vtkScalarType) {\n // case VtkDataTypes.SIGNED_CHAR:\n // return model.context.BYTE;\n case VtkDataTypes.UNSIGNED_CHAR:\n return model.context.UNSIGNED_BYTE;\n // case VtkDataTypes.SHORT:\n // return model.context.SHORT;\n // case VtkDataTypes.UNSIGNED_SHORT:\n // return model.context.UNSIGNED_SHORT;\n // case VtkDataTypes.INT:\n // return model.context.INT;\n // case VtkDataTypes.UNSIGNED_INT:\n // return model.context.UNSIGNED_INT;\n case VtkDataTypes.FLOAT:\n case VtkDataTypes.VOID: // used for depth component textures.\n default:\n return model.context.FLOAT;\n }\n }\n\n switch (vtkScalarType) {\n // case VtkDataTypes.SIGNED_CHAR:\n // return model.context.BYTE;\n case VtkDataTypes.UNSIGNED_CHAR:\n return model.context.UNSIGNED_BYTE;\n // case VtkDataTypes.SHORT:\n // return model.context.SHORT;\n // case VtkDataTypes.UNSIGNED_SHORT:\n // return model.context.UNSIGNED_SHORT;\n // case VtkDataTypes.INT:\n // return model.context.INT;\n // case VtkDataTypes.UNSIGNED_INT:\n // return model.context.UNSIGNED_INT;\n case VtkDataTypes.FLOAT:\n case VtkDataTypes.VOID: // used for depth component textures.\n default:\n if (\n model.context.getExtension('OES_texture_float') &&\n model.context.getExtension('OES_texture_float_linear')\n ) {\n return model.context.FLOAT;\n }\n return model.context.UNSIGNED_BYTE;\n }\n };\n\n //----------------------------------------------------------------------------\n publicAPI.getOpenGLDataType = (vtkScalarType) => {\n if (!model.openGLDataType) {\n model.openGLDataType = publicAPI.getDefaultDataType(vtkScalarType);\n }\n\n return model.openGLDataType;\n };\n\n publicAPI.getShiftAndScale = () => {\n let shift = 0.0;\n let scale = 1.0;\n\n // for all float type internal formats\n switch (model.openGLDataType) {\n case model.context.BYTE:\n scale = 127.5;\n shift = scale - 128.0;\n break;\n case model.context.UNSIGNED_BYTE:\n scale = 255.0;\n shift = 0.0;\n break;\n case model.context.SHORT:\n scale = 32767.5;\n shift = scale - 32768.0;\n break;\n case model.context.UNSIGNED_SHORT:\n scale = 65536.0;\n shift = 0.0;\n break;\n case model.context.INT:\n scale = 2147483647.5;\n shift = scale - 2147483648.0;\n break;\n case model.context.UNSIGNED_INT:\n scale = 4294967295.0;\n shift = 0.0;\n break;\n case model.context.FLOAT:\n default:\n break;\n }\n return { shift, scale };\n };\n\n //----------------------------------------------------------------------------\n publicAPI.getOpenGLFilterMode = (emode) => {\n switch (emode) {\n case Filter.NEAREST:\n return model.context.NEAREST;\n case Filter.LINEAR:\n return model.context.LINEAR;\n case Filter.NEAREST_MIPMAP_NEAREST:\n return model.context.NEAREST_MIPMAP_NEAREST;\n case Filter.NEAREST_MIPMAP_LINEAR:\n return model.context.NEAREST_MIPMAP_LINEAR;\n case Filter.LINEAR_MIPMAP_NEAREST:\n return model.context.LINEAR_MIPMAP_NEAREST;\n case Filter.LINEAR_MIPMAP_LINEAR:\n return model.context.LINEAR_MIPMAP_LINEAR;\n default:\n return model.context.NEAREST;\n }\n };\n\n //----------------------------------------------------------------------------\n publicAPI.getOpenGLWrapMode = (vtktype) => {\n switch (vtktype) {\n case Wrap.CLAMP_TO_EDGE:\n return model.context.CLAMP_TO_EDGE;\n case Wrap.REPEAT:\n return model.context.REPEAT;\n case Wrap.MIRRORED_REPEAT:\n return model.context.MIRRORED_REPEAT;\n default:\n return model.context.CLAMP_TO_EDGE;\n }\n };\n\n //----------------------------------------------------------------------------\n function updateArrayDataType(dataType, data) {\n const pixData = [];\n // if the opengl data type is float\n // then the data array must be float\n if (\n dataType !== VtkDataTypes.FLOAT &&\n model.openGLDataType === model.context.FLOAT\n ) {\n const pixCount = model.width * model.height * model.components;\n for (let idx = 0; idx < data.length; idx++) {\n const newArray = new Float32Array(pixCount);\n for (let i = 0; i < pixCount; i++) {\n newArray[i] = data[idx][i];\n }\n pixData.push(newArray);\n }\n }\n\n // if the opengl data type is ubyte\n // then the data array must be u8, we currently simply truncate the data\n if (\n dataType !== VtkDataTypes.UNSIGNED_CHAR &&\n model.openGLDataType === model.context.UNSIGNED_BYTE\n ) {\n const pixCount = model.width * model.height * model.components;\n for (let idx = 0; idx < data.length; idx++) {\n const newArray = new Uint8Array(pixCount);\n for (let i = 0; i < pixCount; i++) {\n newArray[i] = data[idx][i];\n }\n pixData.push(newArray);\n }\n }\n\n // The output has to be filled\n if (pixData.length === 0) {\n for (let i = 0; i < data.length; i++) {\n pixData.push(data[i]);\n }\n }\n\n return pixData;\n }\n\n //----------------------------------------------------------------------------\n function scaleTextureToHighestPowerOfTwo(data) {\n if (model.openGLRenderWindow.getWebgl2()) {\n // No need if webGL2\n return data;\n }\n const pixData = [];\n const width = model.width;\n const height = model.height;\n const numComps = model.components;\n if (\n data &&\n (!vtkMath.isPowerOfTwo(width) || !vtkMath.isPowerOfTwo(height))\n ) {\n // Scale up the texture to the next highest power of two dimensions.\n const newWidth = vtkMath.nearestPowerOfTwo(width);\n const newHeight = vtkMath.nearestPowerOfTwo(height);\n const pixCount = newWidth * newHeight * model.components;\n for (let idx = 0; idx < data.length; idx++) {\n if (data[idx] !== null) {\n let newArray = null;\n switch (model.openGLDataType) {\n case model.context.FLOAT:\n newArray = new Float32Array(pixCount);\n break;\n default:\n case model.context.UNSIGNED_BYTE:\n newArray = new Uint8Array(pixCount);\n break;\n }\n const jFactor = height / newHeight;\n const iFactor = width / newWidth;\n for (let j = 0; j < newHeight; j++) {\n const joff = j * newWidth * numComps;\n const jidx = j * jFactor;\n let jlow = Math.floor(jidx);\n let jhi = Math.ceil(jidx);\n if (jhi >= height) {\n jhi = height - 1;\n }\n const jmix = jidx - jlow;\n const jmix1 = 1.0 - jmix;\n jlow = jlow * width * numComps;\n jhi = jhi * width * numComps;\n for (let i = 0; i < newWidth; i++) {\n const ioff = i * numComps;\n const iidx = i * iFactor;\n let ilow = Math.floor(iidx);\n let ihi = Math.ceil(iidx);\n if (ihi >= width) {\n ihi = width - 1;\n }\n const imix = iidx - ilow;\n ilow *= numComps;\n ihi *= numComps;\n for (let c = 0; c < numComps; c++) {\n newArray[joff + ioff + c] =\n data[idx][jlow + ilow + c] * jmix1 * (1.0 - imix) +\n data[idx][jlow + ihi + c] * jmix1 * imix +\n data[idx][jhi + ilow + c] * jmix * (1.0 - imix) +\n data[idx][jhi + ihi + c] * jmix * imix;\n }\n }\n }\n pixData.push(newArray);\n model.width = newWidth;\n model.height = newHeight;\n } else {\n pixData.push(null);\n }\n }\n }\n\n // The output has to be filled\n if (pixData.length === 0) {\n for (let i = 0; i < data.length; i++) {\n pixData.push(data[i]);\n }\n }\n\n return pixData;\n }\n\n //----------------------------------------------------------------------------\n publicAPI.create2DFromRaw = (width, height, numComps, dataType, data) => {\n // Now determine the texture parameters using the arguments.\n publicAPI.getOpenGLDataType(dataType);\n publicAPI.getInternalFormat(dataType, numComps);\n publicAPI.getFormat(dataType, numComps);\n\n if (!model.internalFormat || !model.format || !model.openGLDataType) {\n vtkErrorMacro('Failed to determine texture parameters.');\n return false;\n }\n\n model.target = model.context.TEXTURE_2D;\n model.components = numComps;\n model.width = width;\n model.height = height;\n model.depth = 1;\n model.numberOfDimensions = 2;\n model.openGLRenderWindow.activateTexture(publicAPI);\n publicAPI.createTexture();\n publicAPI.bind();\n\n // Create an array of texture with one texture\n const dataArray = [data];\n const pixData = updateArrayDataType(dataType, dataArray);\n const scaledData = scaleTextureToHighestPowerOfTwo(pixData);\n\n // Source texture data from the PBO.\n // model.context.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, true);\n model.context.pixelStorei(model.context.UNPACK_ALIGNMENT, 1);\n\n model.context.texImage2D(\n model.target,\n 0,\n model.internalFormat,\n model.width,\n model.height,\n 0,\n model.format,\n model.openGLDataType,\n scaledData[0]\n );\n\n if (model.generateMipmap) {\n model.context.generateMipmap(model.target);\n }\n\n publicAPI.deactivate();\n return true;\n };\n\n //----------------------------------------------------------------------------\n publicAPI.createCubeFromRaw = (width, height, numComps, dataType, data) => {\n // Now determine the texture parameters using the arguments.\n publicAPI.getOpenGLDataType(dataType);\n publicAPI.getInternalFormat(dataType, numComps);\n publicAPI.getFormat(dataType, numComps);\n\n if (!model.internalFormat || !model.format || !model.openGLDataType) {\n vtkErrorMacro('Failed to determine texture parameters.');\n return false;\n }\n\n model.target = model.context.TEXTURE_CUBE_MAP;\n model.components = numComps;\n model.width = width;\n model.height = height;\n model.depth = 1;\n model.numberOfDimensions = 2;\n model.openGLRenderWindow.activateTexture(publicAPI);\n model.maxLevel = data.length / 6 - 1;\n publicAPI.createTexture();\n publicAPI.bind();\n\n const pixData = updateArrayDataType(dataType, data);\n const scaledData = scaleTextureToHighestPowerOfTwo(pixData);\n\n // invert the data because opengl is messed up with cube maps\n // and uses the old renderman standard with Y going down\n // even though it is completely at odds with OpenGL standards\n const invertedData = [];\n let widthLevel = model.width;\n let heightLevel = model.height;\n for (let i = 0; i < scaledData.length; i++) {\n if (i % 6 === 0 && i !== 0) {\n widthLevel /= 2;\n heightLevel /= 2;\n }\n invertedData[i] = new window[dataType](\n heightLevel * widthLevel * model.components\n );\n for (let y = 0; y < heightLevel; ++y) {\n const row1 = y * widthLevel * model.components;\n const row2 = (heightLevel - y - 1) * widthLevel * model.components;\n invertedData[i].set(\n scaledData[i].slice(row2, row2 + widthLevel * model.components),\n row1\n );\n }\n }\n\n // Source texture data from the PBO.\n model.context.pixelStorei(model.context.UNPACK_ALIGNMENT, 1);\n\n // We get the 6 images\n for (let i = 0; i < 6; i++) {\n // For each mipmap level\n for (let j = 0; j <= model.maxLevel; j++) {\n if (invertedData[6 * j + i]) {\n const w = model.width / 2 ** j;\n const h = model.height / 2 ** j;\n model.context.texImage2D(\n model.context.TEXTURE_CUBE_MAP_POSITIVE_X + i,\n j,\n model.internalFormat,\n w,\n h,\n 0,\n model.format,\n model.openGLDataType,\n invertedData[6 * j + i]\n );\n }\n }\n }\n\n // generateMipmap must not be called here because we manually upload all levels\n // if it is called, all levels will be overwritten\n\n publicAPI.deactivate();\n return true;\n };\n\n //----------------------------------------------------------------------------\n publicAPI.createDepthFromRaw = (width, height, dataType, data) => {\n // Now determine the texture parameters using the arguments.\n publicAPI.getOpenGLDataType(dataType);\n model.format = model.context.DEPTH_COMPONENT;\n model.internalFormat = model.context.DEPTH_COMPONENT;\n\n if (!model.internalFormat || !model.format || !model.openGLDataType) {\n vtkErrorMacro('Failed to determine texture parameters.');\n return false;\n }\n\n model.target = model.context.TEXTURE_2D;\n model.components = 1;\n model.width = width;\n model.height = height;\n model.depth = 1;\n model.numberOfDimensions = 2;\n model.openGLRenderWindow.activateTexture(publicAPI);\n publicAPI.createTexture();\n publicAPI.bind();\n\n // Source texture data from the PBO.\n // model.context.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, true);\n model.context.pixelStorei(model.context.UNPACK_ALIGNMENT, 1);\n\n model.context.texImage2D(\n model.target,\n 0,\n model.internalFormat,\n model.width,\n model.height,\n 0,\n model.format,\n model.openGLDataType,\n data\n );\n\n if (model.generateMipmap) {\n model.context.generateMipmap(model.target);\n }\n\n publicAPI.deactivate();\n return true;\n };\n\n //----------------------------------------------------------------------------\n publicAPI.create2DFromImage = (image) => {\n // Now determine the texture parameters using the arguments.\n publicAPI.getOpenGLDataType(VtkDataTypes.UNSIGNED_CHAR);\n publicAPI.getInternalFormat(VtkDataTypes.UNSIGNED_CHAR, 4);\n publicAPI.getFormat(VtkDataTypes.UNSIGNED_CHAR, 4);\n\n if (!model.internalFormat || !model.format || !model.openGLDataType) {\n vtkErrorMacro('Failed to determine texture parameters.');\n return false;\n }\n\n model.target = model.context.TEXTURE_2D;\n model.components = 4;\n model.width = image.width;\n model.height = image.height;\n model.depth = 1;\n model.numberOfDimensions = 2;\n model.openGLRenderWindow.activateTexture(publicAPI);\n publicAPI.createTexture();\n publicAPI.bind();\n\n // Source texture data from the PBO.\n // model.context.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, true);\n model.context.pixelStorei(model.context.UNPACK_ALIGNMENT, 1);\n\n // Scale up the texture to the next highest power of two dimensions (if needed) and flip y.\n const needNearestPowerOfTwo =\n !vtkMath.isPowerOfTwo(image.width) || !vtkMath.isPowerOfTwo(image.height);\n const canvas = document.createElement('canvas');\n canvas.width = needNearestPowerOfTwo\n ? vtkMath.nearestPowerOfTwo(image.width)\n : image.width;\n canvas.height = needNearestPowerOfTwo\n ? vtkMath.nearestPowerOfTwo(image.height)\n : image.height;\n const ctx = canvas.getContext('2d');\n ctx.translate(0, canvas.height);\n ctx.scale(1, -1);\n ctx.drawImage(\n image,\n 0,\n 0,\n image.width,\n image.height,\n 0,\n 0,\n canvas.width,\n canvas.height\n );\n const safeImage = canvas;\n\n model.context.texImage2D(\n model.target,\n 0,\n model.internalFormat,\n model.format,\n model.openGLDataType,\n safeImage\n );\n\n if (model.generateMipmap) {\n model.context.generateMipmap(model.target);\n }\n\n publicAPI.deactivate();\n return true;\n };\n\n //----------------------------------------------------------------------------\n publicAPI.create3DFromRaw = (\n width,\n height,\n depth,\n numComps,\n dataType,\n data\n ) => {\n // Now determine the texture parameters using the arguments.\n publicAPI.getOpenGLDataType(dataType);\n publicAPI.getInternalFormat(dataType, numComps);\n publicAPI.getFormat(dataType, numComps);\n\n if (!model.internalFormat || !model.format || !model.openGLDataType) {\n vtkErrorMacro('Failed to determine texture parameters.');\n return false;\n }\n\n model.target = model.context.TEXTURE_3D;\n model.components = numComps;\n model.width = width;\n model.height = height;\n model.depth = depth;\n model.numberOfDimensions = 3;\n model.openGLRenderWindow.activateTexture(publicAPI);\n publicAPI.createTexture();\n publicAPI.bind();\n\n // Source texture data from the PBO.\n // model.context.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, true);\n // model.context.pixelStorei(model.context.UNPACK_ALIGNMENT, 1);\n\n model.context.texImage3D(\n model.target,\n 0,\n model.internalFormat,\n model.width,\n model.height,\n model.depth,\n 0,\n model.format,\n model.openGLDataType,\n data\n );\n\n if (model.generateMipmap) {\n model.context.generateMipmap(model.target);\n }\n\n publicAPI.deactivate();\n return true;\n };\n\n //----------------------------------------------------------------------------\n // This method simulates a 3D texture using 2D\n publicAPI.create3DOneComponentFromRaw = (\n width,\n height,\n depth,\n dataType,\n data\n ) => {\n const numPixelsIn = width * height * depth;\n\n // compute min and max values\n const min = vtkMath.arrayMin(data);\n let max = vtkMath.arrayMax(data);\n if (min === max) {\n max = min + 1.0;\n }\n\n // store the information, we will need it later\n model.volumeInfo = { min, max, width, height, depth };\n\n let volCopyData = (outArray, outIdx, inValue, smin, smax) => {\n outArray[outIdx] = inValue;\n };\n let dataTypeToUse = VtkDataTypes.UNSIGNED_CHAR;\n let numCompsToUse = 1;\n let encodedScalars = false;\n if (dataType === VtkDataTypes.UNSIGNED_CHAR) {\n model.volumeInfo.min = 0.0;\n model.volumeInfo.max = 255.0;\n } else if (\n model.openGLRenderWindow.getWebgl2() ||\n (model.context.getExtension('OES_texture_float') &&\n model.context.getExtension('OES_texture_float_linear'))\n ) {\n dataTypeToUse = VtkDataTypes.FLOAT;\n volCopyData = (outArray, outIdx, inValue, smin, smax) => {\n outArray[outIdx] = (inValue - smin) / (smax - smin);\n };\n } else {\n encodedScalars = true;\n dataTypeToUse = VtkDataTypes.UNSIGNED_CHAR;\n numCompsToUse = 4;\n volCopyData = (outArray, outIdx, inValue, smin, smax) => {\n let fval = (inValue - smin) / (smax - smin);\n const r = Math.floor(fval * 255.0);\n fval = fval * 255.0 - r;\n outArray[outIdx] = r;\n const g = Math.floor(fval * 255.0);\n fval = fval * 255.0 - g;\n outArray[outIdx + 1] = g;\n const b = Math.floor(fval * 255.0);\n outArray[outIdx + 2] = b;\n };\n }\n\n // WebGL2\n if (model.openGLRenderWindow.getWebgl2()) {\n if (dataType !== VtkDataTypes.UNSIGNED_CHAR) {\n const newArray = new Float32Array(numPixelsIn);\n for (let i = 0; i < numPixelsIn; ++i) {\n newArray[i] = (data[i] - min) / (max - min);\n }\n return publicAPI.create3DFromRaw(\n width,\n height,\n depth,\n 1,\n VtkDataTypes.FLOAT,\n newArray\n );\n }\n return publicAPI.create3DFromRaw(width, height, depth, 1, dataType, data);\n }\n\n // WebGL1\n // Now determine the texture parameters using the arguments.\n publicAPI.getOpenGLDataType(dataTypeToUse);\n publicAPI.getInternalFormat(dataTypeToUse, numCompsToUse);\n publicAPI.getFormat(dataTypeToUse, numCompsToUse);\n\n if (!model.internalFormat || !model.format || !model.openGLDataType) {\n vtkErrorMacro('Failed to determine texture parameters.');\n return false;\n }\n\n // have to pack this 3D texture into pot 2D texture\n model.target = model.context.TEXTURE_2D;\n model.components = numCompsToUse;\n model.depth = 1;\n model.numberOfDimensions = 2;\n\n // MAX_TEXTURE_SIZE gives the max dimensions that can be supported by the GPU,\n // but it doesn't mean it will fit in memory. If we have to use a float data type\n // or 4 components, there are good chances that the texture size will blow up\n // and could not fit in the GPU memory. Use a smaller texture size in that case,\n // which will force a downsampling of the dataset.\n // That problem does not occur when using webGL2 since we can pack the data in\n // denser textures based on our data type.\n // TODO: try to fit in the biggest supported texture, catch the gl error if it\n // does not fix (OUT_OF_MEMORY), then attempt with smaller texture\n let maxTexDim = model.context.getParameter(model.context.MAX_TEXTURE_SIZE);\n if (\n maxTexDim > 4096 &&\n (dataTypeToUse === VtkDataTypes.FLOAT || numCompsToUse === 4)\n ) {\n maxTexDim = 4096;\n }\n\n // compute estimate for XY subsample\n let xstride = 1;\n let ystride = 1;\n if (numPixelsIn > maxTexDim * maxTexDim) {\n xstride = Math.ceil(Math.sqrt(numPixelsIn / (maxTexDim * maxTexDim)));\n ystride = xstride;\n }\n let targetWidth = Math.sqrt(numPixelsIn) / xstride;\n targetWidth = vtkMath.nearestPowerOfTwo(targetWidth);\n // determine X reps\n const xreps = Math.floor(targetWidth * xstride / width);\n const yreps = Math.ceil(depth / xreps);\n const targetHeight = vtkMath.nearestPowerOfTwo(height * yreps / ystride);\n\n model.width = targetWidth;\n model.height = targetHeight;\n model.openGLRenderWindow.activateTexture(publicAPI);\n publicAPI.createTexture();\n publicAPI.bind();\n\n // store the information, we will need it later\n model.volumeInfo = {\n encodedScalars,\n min,\n max,\n width,\n height,\n depth,\n xreps,\n yreps,\n xstride,\n ystride,\n };\n\n // OK stuff the data into the 2d TEXTURE\n\n // first allocate the new texture\n let newArray;\n const pixCount = targetWidth * targetHeight * numCompsToUse;\n if (dataTypeToUse === VtkDataTypes.FLOAT) {\n newArray = new Float32Array(pixCount);\n } else {\n newArray = new Uint8Array(pixCount);\n }\n\n // then stuff the data into it, nothing fancy right now\n // for stride\n let outIdx = 0;\n\n for (let yRep = 0; yRep < yreps; yRep++) {\n const xrepsThisRow = Math.min(xreps, depth - yRep * xreps);\n const outXContIncr =\n model.width - xrepsThisRow * Math.floor(width / xstride);\n for (let inY = 0; inY < height; inY += ystride) {\n for (let xRep = 0; xRep < xrepsThisRow; xRep++) {\n const inOffset = (yRep * xreps + xRep) * width * height + inY * width;\n for (let inX = 0; inX < width; inX += xstride) {\n // copy value\n volCopyData(newArray, outIdx, data[inOffset + inX], min, max);\n outIdx += numCompsToUse;\n }\n }\n outIdx += outXContIncr * numCompsToUse;\n }\n }\n\n // Source texture data from the PBO.\n // model.context.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, true);\n model.context.pixelStorei(model.context.UNPACK_ALIGNMENT, 1);\n\n model.context.texImage2D(\n model.target,\n 0,\n model.internalFormat,\n model.width,\n model.height,\n 0,\n model.format,\n model.openGLDataType,\n newArray\n );\n\n publicAPI.deactivate();\n return true;\n };\n\n //----------------------------------------------------------------------------\n // This method creates a normal/gradient texture for 3D volume\n // rendering\n publicAPI.create3DLighting = (scalarTexture, data, spacing) => {\n model.computedGradients = false;\n const vinfo = scalarTexture.getVolumeInfo();\n\n const width = vinfo.width;\n const height = vinfo.height;\n const depth = vinfo.depth;\n\n const haveWebgl2 = model.openGLRenderWindow.getWebgl2();\n\n let reformatGradientsFunction;\n if (haveWebgl2) {\n reformatGradientsFunction = (workerResults) => {\n const numVoxelsIn = width * height * depth;\n const reformattedGradients = new Uint8Array(numVoxelsIn * 4);\n const maxMag = model.volumeInfo.max;\n\n workerResults.forEach(\n ({\n subGradients,\n subMagnitudes,\n subMinMag,\n subMaxMag,\n subDepthStart,\n subDepthEnd,\n }) => {\n let inIdx = 0;\n let inMagIdx = 0;\n let outIdx = subDepthStart * width * height * 4;\n // start and end depths are inclusive\n const numWorkerVoxels =\n width * height * (subDepthEnd - subDepthStart + 1);\n for (let vp = 0; vp < numWorkerVoxels; ++vp) {\n reformattedGradients[outIdx++] = subGradients[inIdx++];\n reformattedGradients[outIdx++] = subGradients[inIdx++];\n reformattedGradients[outIdx++] = subGradients[inIdx++];\n reformattedGradients[outIdx++] =\n 255.0 * Math.sqrt(subMagnitudes[inMagIdx++] / maxMag);\n }\n }\n );\n\n return publicAPI.create3DFromRaw(\n width,\n height,\n depth,\n 4,\n VtkDataTypes.UNSIGNED_CHAR,\n reformattedGradients\n );\n };\n } else {\n // Now determine the texture parameters using the arguments.\n publicAPI.getOpenGLDataType(VtkDataTypes.UNSIGNED_CHAR);\n publicAPI.getInternalFormat(VtkDataTypes.UNSIGNED_CHAR, 4);\n publicAPI.getFormat(VtkDataTypes.UNSIGNED_CHAR, 4);\n\n if (!model.internalFormat || !model.format || !model.openGLDataType) {\n vtkErrorMacro('Failed to determine texture parameters.');\n return;\n }\n\n model.target = model.context.TEXTURE_2D;\n model.components = 4;\n model.depth = 1;\n model.numberOfDimensions = 2;\n model.width = scalarTexture.getWidth();\n model.height = scalarTexture.getHeight();\n\n reformatGradientsFunction = (workerResults) => {\n // now store the computed values into the packed 2D\n // texture using the same packing as volumeInfo\n const reformattedGradients = new Uint8Array(\n model.width * model.height * 4\n );\n const maxMag = model.volumeInfo.max;\n\n workerResults.forEach(\n ({\n subGradients,\n subMagnitudes,\n subMinMag,\n subMaxMag,\n subDepthStart,\n subDepthEnd,\n }) => {\n // start and end depths are inclusive\n for (let zpin = subDepthStart; zpin <= subDepthEnd; ++zpin) {\n // map xyz to 2d x y\n let zyout = Math.floor(zpin / vinfo.xreps); // y offset in reps\n let zxout = zpin - zyout * vinfo.xreps; // x offset in reps\n zxout *= Math.floor(width / vinfo.xstride); // in pixels\n zyout *= Math.floor(height / vinfo.ystride); // in pixels\n let ypout = zyout;\n for (\n let ypin = 0;\n ypin < height;\n ypin += vinfo.ystride, ypout++\n ) {\n let outIdx = (ypout * model.width + zxout) * 4;\n let inMagIdx = ((zpin - subDepthStart) * height + ypin) * width;\n let inIdx = inMagIdx * 3;\n for (let xpin = 0; xpin < width; xpin += vinfo.xstride) {\n reformattedGradients[outIdx++] = subGradients[inIdx];\n reformattedGradients[outIdx++] = subGradients[inIdx + 1];\n reformattedGradients[outIdx++] = subGradients[inIdx + 2];\n reformattedGradients[outIdx++] =\n 255.0 * Math.sqrt(subMagnitudes[inMagIdx] / maxMag);\n inMagIdx += vinfo.xstride;\n inIdx += 3 * vinfo.xstride;\n }\n }\n }\n }\n );\n\n model.openGLRenderWindow.activateTexture(publicAPI);\n publicAPI.createTexture();\n publicAPI.bind();\n\n // Source texture data from the PBO.\n // model.context.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, true);\n model.context.pixelStorei(model.context.UNPACK_ALIGNMENT, 1);\n\n model.context.texImage2D(\n model.target,\n 0,\n model.internalFormat,\n model.width,\n model.height,\n 0,\n model.format,\n model.openGLDataType,\n reformattedGradients\n );\n\n publicAPI.deactivate();\n return true;\n };\n }\n\n const maxNumberOfWorkers = 4;\n const depthStride = Math.ceil(depth / maxNumberOfWorkers);\n const workerPromises = [];\n const workers = [];\n let depthIndex = 0;\n while (depthIndex < depth - 1) {\n const worker = new ComputeGradientsWorker();\n const workerPromise = new WebworkerPromise(worker);\n const depthStart = depthIndex;\n let depthEnd = depthIndex + depthStride; // no -1 to include one more slice to compute gradient\n depthEnd = Math.min(depthEnd, depth - 1);\n const subData = new data.constructor(\n data.slice(depthStart * width * height, (depthEnd + 1) * width * height) // +1 to include data from slice at depthEnd\n );\n workers.push(worker);\n workerPromises.push(\n workerPromise.postMessage(\n {\n width,\n height,\n depth,\n spacing,\n data: subData,\n haveWebgl2,\n depthStart,\n depthEnd,\n },\n [subData.buffer]\n )\n );\n depthIndex += depthStride;\n }\n Promise.all(workerPromises).then((workerResults) => {\n // close workers\n workers.forEach((worker) => worker.terminate());\n\n // compute min/max across all workers\n let minMag = Infinity;\n let maxMag = -Infinity;\n workerResults.forEach(\n ({\n subGradients,\n subMagnitudes,\n subMinMag,\n subMaxMag,\n subDepthStart,\n subDepthEnd,\n }) => {\n minMag = Math.min(subMinMag, minMag);\n maxMag = Math.max(subMaxMag, maxMag);\n }\n );\n\n // store the information, we will need it later\n model.volumeInfo = { min: minMag, max: maxMag };\n\n // copy the data and create the texture\n model.computedGradients = reformatGradientsFunction(workerResults);\n if (model.computedGradients) {\n model.gradientsBuildTime.modified();\n }\n return model.computedGradients;\n });\n };\n\n publicAPI.setOpenGLRenderWindow = (rw) => {\n if (model.openGLRenderWindow === rw) {\n return;\n }\n publicAPI.releaseGraphicsResources();\n model.openGLRenderWindow = rw;\n model.context = null;\n if (rw) {\n model.context = model.openGLRenderWindow.getContext();\n }\n };\n\n //----------------------------------------------------------------------------\n publicAPI.getMaximumTextureSize = (ctx) => {\n if (ctx && ctx.isCurrent()) {\n return ctx.getIntegerv(ctx.MAX_TEXTURE_SIZE);\n }\n\n return -1;\n };\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n openGLRenderWindow: null,\n context: null,\n handle: 0,\n sendParametersTime: null,\n textureBuildTime: null,\n numberOfDimensions: 0,\n target: 0,\n format: 0,\n openGLDataType: 0,\n components: 0,\n width: 0,\n height: 0,\n depth: 0,\n autoParameters: true,\n wrapS: Wrap.CLAMP_TO_EDGE,\n wrapT: Wrap.CLAMP_TO_EDGE,\n wrapR: Wrap.CLAMP_TO_EDGE,\n minificationFilter: Filter.NEAREST,\n magnificationFilter: Filter.NEAREST,\n minLOD: -1000.0,\n maxLOD: 1000.0,\n baseLevel: 0,\n maxLevel: 1000,\n generateMipmap: false,\n computedGradients: false,\n};\n\n// ----------------------------------------------------------------------------\n\nexport function extend(publicAPI, model, initialValues = {}) {\n Object.assign(model, DEFAULT_VALUES, initialValues);\n\n // Inheritance\n vtkViewNode.extend(publicAPI, model, initialValues);\n\n model.sendParametersTime = {};\n macro.obj(model.sendParametersTime, { mtime: 0 });\n\n model.textureBuildTime = {};\n macro.obj(model.textureBuildTime, { mtime: 0 });\n\n model.gradientsBuildTime = {};\n macro.obj(model.gradientsBuildTime, { mtime: 0 });\n\n // Build VTK API\n macro.set(publicAPI, model, ['format', 'openGLDataType']);\n\n macro.setGet(publicAPI, model, [\n 'keyMatrixTime',\n 'minificationFilter',\n 'magnificationFilter',\n 'wrapS',\n 'wrapT',\n 'wrapR',\n 'generateMipmap',\n ]);\n\n macro.get(publicAPI, model, [\n 'width',\n 'height',\n 'volumeInfo',\n 'components',\n 'handle',\n 'target',\n 'computedGradients',\n 'gradientsBuildTime',\n ]);\n\n // Object methods\n vtkOpenGLTexture(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\n\nexport const newInstance = macro.newInstance(extend, 'vtkOpenGLTexture');\n\n// ----------------------------------------------------------------------------\n\nexport default Object.assign({ newInstance, extend }, Constants);\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/Sources/Rendering/OpenGL/Texture/index.js","import macro from 'vtk.js/Sources/macro';\nimport vtkAbstractMapper3D from 'vtk.js/Sources/Rendering/Core/AbstractMapper3D';\nimport vtkDataArray from 'vtk.js/Sources/Common/Core/DataArray';\nimport vtkImageData from 'vtk.js/Sources/Common/DataModel/ImageData';\nimport vtkLookupTable from 'vtk.js/Sources/Common/Core/LookupTable';\nimport vtkMath from 'vtk.js/Sources/Common/Core/Math';\nimport vtkScalarsToColors from 'vtk.js/Sources/Common/Core/ScalarsToColors/Constants'; // Need to go inside Constants otherwise dependency loop\n\nimport CoincidentTopologyHelper from 'vtk.js/Sources/Rendering/Core/Mapper/CoincidentTopologyHelper';\nimport otherStaticMethods from 'vtk.js/Sources/Rendering/Core/Mapper/Static';\nimport Constants from 'vtk.js/Sources/Rendering/Core/Mapper/Constants';\n\nconst { ColorMode, ScalarMode, GetArray } = Constants;\nconst { VectorMode } = vtkScalarsToColors;\n\n// ----------------------------------------------------------------------------\n\nfunction notImplemented(method) {\n return () => macro.vtkErrorMacro(`vtkMapper::${method} - NOT IMPLEMENTED`);\n}\n\n// CoincidentTopology static methods ------------------------------------------\n/* eslint-disable arrow-body-style */\n\nconst staticOffsetModel = {\n Polygon: { factor: 2, offset: 0 },\n Line: { factor: 1, offset: -1 },\n Point: { factor: 0, offset: -2 },\n};\nconst staticOffsetAPI = {};\n\nCoincidentTopologyHelper.addCoincidentTopologyMethods(\n staticOffsetAPI,\n staticOffsetModel,\n CoincidentTopologyHelper.CATEGORIES.map((key) => ({\n key,\n method: `ResolveCoincidentTopology${key}OffsetParameters`,\n }))\n);\n\n// ----------------------------------------------------------------------------\n// vtkMapper methods\n// ----------------------------------------------------------------------------\n\nfunction vtkMapper(publicAPI, model) {\n // Set our className\n model.classHierarchy.push('vtkMapper');\n\n publicAPI.getBounds = () => {\n const input = publicAPI.getInputData();\n if (!input) {\n model.bounds = vtkMath.createUninitializedBounds();\n } else {\n if (!model.static) {\n publicAPI.update();\n }\n model.bounds = input.getBounds();\n }\n return model.bounds;\n };\n\n publicAPI.setForceCompileOnly = (v) => {\n model.forceCompileOnly = v;\n // make sure we do NOT call modified()\n };\n\n publicAPI.createDefaultLookupTable = () => {\n model.lookupTable = vtkLookupTable.newInstance();\n };\n\n publicAPI.getColorModeAsString = () =>\n macro.enumToString(ColorMode, model.colorMode);\n\n publicAPI.setColorModeToDefault = () => publicAPI.setColorMode(0);\n publicAPI.setColorModeToMapScalars = () => publicAPI.setColorMode(1);\n publicAPI.setColorModeToDirectScalars = () => publicAPI.setColorMode(2);\n\n publicAPI.getScalarModeAsString = () =>\n macro.enumToString(ScalarMode, model.scalarMode);\n\n publicAPI.setScalarModeToDefault = () => publicAPI.setScalarMode(0);\n publicAPI.setScalarModeToUsePointData = () => publicAPI.setScalarMode(1);\n publicAPI.setScalarModeToUseCellData = () => publicAPI.setScalarMode(2);\n publicAPI.setScalarModeToUsePointFieldData = () => publicAPI.setScalarMode(3);\n publicAPI.setScalarModeToUseCellFieldData = () => publicAPI.setScalarMode(4);\n publicAPI.setScalarModeToUseFieldData = () => publicAPI.setScalarMode(5);\n\n // Add Static methods to our instance\n Object.keys(otherStaticMethods).forEach((methodName) => {\n publicAPI[methodName] = otherStaticMethods[methodName];\n });\n Object.keys(staticOffsetAPI).forEach((methodName) => {\n publicAPI[methodName] = staticOffsetAPI[methodName];\n });\n\n // Relative metods\n /* eslint-disable arrow-body-style */\n model.topologyOffset = {\n Polygon: { factor: 0, offset: 0 },\n Line: { factor: 0, offset: 0 },\n Point: { factor: 0, offset: 0 },\n };\n CoincidentTopologyHelper.addCoincidentTopologyMethods(\n publicAPI,\n model.topologyOffset,\n CoincidentTopologyHelper.CATEGORIES.map((key) => ({\n key,\n method: `RelativeCoincidentTopology${key}OffsetParameters`,\n }))\n );\n /* eslint-enable arrow-body-style */\n\n publicAPI.getCoincidentTopologyPolygonOffsetParameters = () => {\n const globalValue = staticOffsetAPI.getResolveCoincidentTopologyPolygonOffsetParameters();\n const localValue = publicAPI.getRelativeCoincidentTopologyPolygonOffsetParameters();\n return {\n factor: globalValue.factor + localValue.factor,\n offset: globalValue.offset + localValue.offset,\n };\n };\n\n publicAPI.getCoincidentTopologyLineOffsetParameters = () => {\n const globalValue = staticOffsetAPI.getResolveCoincidentTopologyLineOffsetParameters();\n const localValue = publicAPI.getRelativeCoincidentTopologyLineOffsetParameters();\n return {\n factor: globalValue.factor + localValue.factor,\n offset: globalValue.offset + localValue.offset,\n };\n };\n\n publicAPI.getCoincidentTopologyPointOffsetParameter = () => {\n const globalValue = staticOffsetAPI.getResolveCoincidentTopologyPointOffsetParameters();\n const localValue = publicAPI.getRelativeCoincidentTopologyPointOffsetParameters();\n return {\n factor: globalValue.factor + localValue.factor,\n offset: globalValue.offset + localValue.offset,\n };\n };\n\n publicAPI.getAbstractScalars = (\n input,\n scalarMode,\n arrayAccessMode,\n arrayId,\n arrayName\n ) => {\n // make sure we have an input\n if (!input || !model.scalarVisibility) {\n return null;\n }\n\n let scalars = null;\n\n // get and scalar data according to scalar mode\n if (scalarMode === ScalarMode.DEFAULT) {\n scalars = input.getPointData().getScalars();\n if (!scalars) {\n scalars = input.getCellData().getScalars();\n }\n } else if (scalarMode === ScalarMode.USE_POINT_DATA) {\n scalars = input.getPointData().getScalars();\n } else if (scalarMode === ScalarMode.USE_CELL_DATA) {\n scalars = input.getCellData().getScalars();\n } else if (scalarMode === ScalarMode.USE_POINT_FIELD_DATA) {\n const pd = input.getPointData();\n if (arrayAccessMode === GetArray.BY_ID) {\n scalars = pd.getArrayByIndex(arrayId);\n } else {\n scalars = pd.getArrayByName(arrayName);\n }\n } else if (scalarMode === ScalarMode.USE_CELL_FIELD_DATA) {\n const cd = input.getCellData();\n if (arrayAccessMode === GetArray.BY_ID) {\n scalars = cd.getArrayByIndex(arrayId);\n } else {\n scalars = cd.getArrayByName(arrayName);\n }\n } else if (scalarMode === ScalarMode.USE_FIELD_DATA) {\n const fd = input.getFieldData();\n if (arrayAccessMode === GetArray.BY_ID) {\n scalars = fd.getArrayByIndex(arrayId);\n } else {\n scalars = fd.getArrayByName(arrayName);\n }\n }\n\n return scalars;\n };\n\n publicAPI.mapScalars = (input, alpha) => {\n const scalars = publicAPI.getAbstractScalars(\n input,\n model.scalarMode,\n model.arrayAccessMode,\n model.arrayId,\n model.colorByArrayName\n );\n\n if (!scalars) {\n model.colorCoordinates = null;\n model.colorTextureMap = null;\n model.colorMapColors = null;\n return;\n }\n\n if (!model.useLookupTableScalarRange) {\n publicAPI\n .getLookupTable()\n .setRange(model.scalarRange[0], model.scalarRange[1]);\n }\n\n // Decide betweeen texture color or vertex color.\n // Cell data always uses vertex color.\n // Only point data can use both texture and vertex coloring.\n if (publicAPI.canUseTextureMapForColoring(input)) {\n publicAPI.mapScalarsToTexture(scalars, alpha);\n return;\n }\n\n model.colorCoordinates = null;\n model.colorTextureMap = null;\n\n const lut = publicAPI.getLookupTable();\n if (lut) {\n // Ensure that the lookup table is built\n lut.build();\n model.colorMapColors = lut.mapScalars(scalars, model.colorMode, 0);\n }\n };\n\n //-----------------------------------------------------------------------------\n publicAPI.scalarToTextureCoordinate = (\n scalarValue, // Input scalar\n rangeMin, // range[0]\n invRangeWidth\n ) => {\n // 1/(range[1]-range[0])\n let texCoordS = 0.5; // Scalar value is arbitrary when NaN\n let texCoordT = 1.0; // 1.0 in t coordinate means NaN\n if (!vtkMath.isNan(scalarValue)) {\n // 0.0 in t coordinate means not NaN. So why am I setting it to 0.49?\n // Because when you are mapping scalars and you have a NaN adjacent to\n // anything else, the interpolation everywhere should be NaN. Thus, I\n // want the NaN color everywhere except right on the non-NaN neighbors.\n // To simulate this, I set the t coord for the real numbers close to\n // the threshold so that the interpolation almost immediately looks up\n // the NaN value.\n texCoordT = 0.49;\n\n texCoordS = (scalarValue - rangeMin) * invRangeWidth;\n\n // Some implementations apparently don't handle relatively large\n // numbers (compared to the range [0.0, 1.0]) very well. In fact,\n // values above 1122.0f appear to cause texture wrap-around on\n // some systems even when edge clamping is enabled. Why 1122.0f? I\n // don't know. For safety, we'll clamp at +/- 1000. This will\n // result in incorrect images when the texture value should be\n // above or below 1000, but I don't have a better solution.\n if (texCoordS > 1000.0) {\n texCoordS = 1000.0;\n } else if (texCoordS < -1000.0) {\n texCoordS = -1000.0;\n }\n }\n return { texCoordS, texCoordT };\n };\n\n //-----------------------------------------------------------------------------\n publicAPI.createColorTextureCoordinates = (\n input,\n output,\n numScalars,\n numComps,\n component,\n range,\n tableRange,\n tableNumberOfColors,\n useLogScale\n ) => {\n // We have to change the range used for computing texture\n // coordinates slightly to accomodate the special above- and\n // below-range colors that are the first and last texels,\n // respectively.\n const scalarTexelWidth = (range[1] - range[0]) / tableNumberOfColors;\n\n const paddedRange = [];\n paddedRange[0] = range[0] - scalarTexelWidth;\n paddedRange[1] = range[1] + scalarTexelWidth;\n const invRangeWidth = 1.0 / (paddedRange[1] - paddedRange[0]);\n\n const outputV = output.getData();\n const inputV = input.getData();\n\n let count = 0;\n let outputCount = 0;\n if (component < 0 || component >= numComps) {\n for (let scalarIdx = 0; scalarIdx < numScalars; ++scalarIdx) {\n let sum = 0;\n for (let compIdx = 0; compIdx < numComps; ++compIdx) {\n sum += inputV[count] * inputV[count];\n count++;\n }\n let magnitude = Math.sqrt(sum);\n if (useLogScale) {\n magnitude = vtkLookupTable.applyLogScale(\n magnitude,\n tableRange,\n range\n );\n }\n const outputs = publicAPI.scalarToTextureCoordinate(\n magnitude,\n paddedRange[0],\n invRangeWidth\n );\n outputV[outputCount] = outputs.texCoordS;\n outputV[outputCount + 1] = outputs.texCoordT;\n outputCount += 2;\n }\n } else {\n count += component;\n for (let scalarIdx = 0; scalarIdx < numScalars; ++scalarIdx) {\n let inputValue = inputV[count];\n if (useLogScale) {\n inputValue = vtkLookupTable.applyLogScale(\n inputValue,\n tableRange,\n range\n );\n }\n const outputs = publicAPI.scalarToTextureCoordinate(\n inputValue,\n paddedRange[0],\n invRangeWidth\n );\n outputV[outputCount] = outputs.texCoordS;\n outputV[outputCount + 1] = outputs.texCoordT;\n outputCount += 2;\n count += numComps;\n }\n }\n };\n\n publicAPI.mapScalarsToTexture = (scalars, alpha) => {\n const range = model.lookupTable.getRange();\n const useLogScale = model.lookupTable.usingLogScale();\n if (useLogScale) {\n // convert range to log.\n vtkLookupTable.getLogRange(range, range);\n }\n\n const origAlpha = model.lookupTable.getAlpha();\n\n // Get rid of vertex color array. Only texture or vertex coloring\n // can be active at one time. The existence of the array is the\n // signal to use that technique.\n model.colorMapColors = null;\n\n // If the lookup table has changed, then recreate the color texture map.\n // Set a new lookup table changes this->MTime.\n if (\n model.colorTextureMap == null ||\n publicAPI.getMTime() > model.colorTextureMap.getMTime() ||\n model.lookupTable.getMTime() > model.colorTextureMap.getMTime() ||\n model.lookupTable.getAlpha() !== alpha\n ) {\n model.lookupTable.setAlpha(alpha);\n model.colorTextureMap = null;\n\n // Get the texture map from the lookup table.\n // Create a dummy ramp of scalars.\n // In the future, we could extend vtkScalarsToColors.\n model.lookupTable.build();\n let numberOfColors = model.lookupTable.getNumberOfAvailableColors();\n if (numberOfColors > 4094) {\n numberOfColors = 4094;\n }\n numberOfColors += 2;\n const k = (range[1] - range[0]) / (numberOfColors - 1 - 2);\n\n const newArray = new Float64Array(numberOfColors * 2);\n\n for (let i = 0; i < numberOfColors; ++i) {\n newArray[i] = range[0] + i * k - k; // minus k to start at below range color\n if (useLogScale) {\n newArray[i] = 10.0 ** newArray[i];\n }\n }\n // Dimension on NaN.\n for (let i = 0; i < numberOfColors; ++i) {\n newArray[i + numberOfColors] = NaN;\n }\n\n model.colorTextureMap = vtkImageData.newInstance();\n model.colorTextureMap.setExtent(0, numberOfColors - 1, 0, 1, 0, 0);\n\n const tmp = vtkDataArray.newInstance({\n numberOfComponents: 1,\n values: newArray,\n });\n\n model.colorTextureMap\n .getPointData()\n .setScalars(model.lookupTable.mapScalars(tmp, model.colorMode, 0));\n model.lookupTable.setAlpha(origAlpha);\n }\n\n // Create new coordinates if necessary.\n // Need to compare lookup table incase the range has changed.\n if (\n !model.colorCoordinates ||\n publicAPI.getMTime() > model.colorCoordinates.getMTime() ||\n publicAPI.getInputData(0).getMTime() >\n model.colorCoordinates.getMTime() ||\n model.lookupTable.getMTime() > model.colorCoordinates.getMTime()\n ) {\n // Get rid of old colors\n model.colorCoordinates = null;\n\n // Now create the color texture coordinates.\n const numComps = scalars.getNumberOfComponents();\n const num = scalars.getNumberOfTuples();\n\n // const fArray = new FloatArray(num * 2);\n model.colorCoordinates = vtkDataArray.newInstance({\n numberOfComponents: 2,\n values: new Float32Array(num * 2),\n });\n\n let scalarComponent = model.lookupTable.getVectorComponent();\n // Although I like the feature of applying magnitude to single component\n // scalars, it is not how the old MapScalars for vertex coloring works.\n if (\n model.lookupTable.getVectorMode() === VectorMode.MAGNITUDE &&\n scalars.getNumberOfComponents() > 1\n ) {\n scalarComponent = -1;\n }\n\n publicAPI.createColorTextureCoordinates(\n scalars,\n model.colorCoordinates,\n num,\n numComps,\n scalarComponent,\n range,\n model.lookupTable.getRange(),\n model.colorTextureMap\n .getPointData()\n .getScalars()\n .getNumberOfTuples() /\n 2 -\n 2,\n useLogScale\n );\n }\n };\n\n publicAPI.getIsOpaque = () => {\n const lut = publicAPI.getLookupTable();\n if (lut) {\n // Ensure that the lookup table is built\n lut.build();\n return lut.isOpaque();\n }\n return true;\n };\n\n publicAPI.canUseTextureMapForColoring = (input) => {\n if (!model.interpolateScalarsBeforeMapping) {\n return false; // user doesn't want us to use texture maps at all.\n }\n\n // index color does not use textures\n if (model.lookupTable && model.lookupTable.getIndexedLookup()) {\n return false;\n }\n\n return true;\n };\n\n publicAPI.clearColorArrays = () => {\n model.colorMapColors = null;\n model.colorCoordinates = null;\n model.colorTextureMap = null;\n };\n\n publicAPI.getLookupTable = () => {\n if (!model.lookupTable) {\n publicAPI.createDefaultLookupTable();\n }\n return model.lookupTable;\n };\n\n publicAPI.getMTime = () => {\n let mt = model.mtime;\n if (model.lookupTable !== null) {\n const time = model.lookupTable.getMTime();\n mt = time > mt ? time : mt;\n }\n return mt;\n };\n\n publicAPI.getPrimitiveCount = () => {\n const input = publicAPI.getInputData();\n const pcount = {\n points: input.getPoints().getNumberOfValues() / 3,\n verts:\n input.getVerts().getNumberOfValues() -\n input.getVerts().getNumberOfCells(),\n lines:\n input.getLines().getNumberOfValues() -\n 2 * input.getLines().getNumberOfCells(),\n triangles:\n input.getPolys().getNumberOfValues() -\n 3 * input.getLines().getNumberOfCells(),\n };\n return pcount;\n };\n\n publicAPI.acquireInvertibleLookupTable = notImplemented(\n 'AcquireInvertibleLookupTable'\n );\n publicAPI.valueToColor = notImplemented('ValueToColor');\n publicAPI.colorToValue = notImplemented('ColorToValue');\n publicAPI.useInvertibleColorFor = notImplemented('UseInvertibleColorFor');\n publicAPI.clearInvertibleColor = notImplemented('ClearInvertibleColor');\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n colorMapColors: null, // Same as this->Colors\n\n static: false,\n lookupTable: null,\n\n scalarVisibility: true,\n scalarRange: [0, 1],\n useLookupTableScalarRange: false,\n\n colorMode: 0,\n scalarMode: 0,\n arrayAccessMode: 1, // By_NAME\n\n renderTime: 0,\n\n colorByArrayName: null,\n\n fieldDataTupleId: -1,\n\n interpolateScalarsBeforeMapping: false,\n colorCoordinates: null,\n colorTextureMap: null,\n\n forceCompileOnly: 0,\n\n useInvertibleColors: false,\n invertibleScalars: null,\n resolveCoincidentTopology: false,\n\n viewSpecificProperties: null,\n};\n\n// ----------------------------------------------------------------------------\n\nexport function extend(publicAPI, model, initialValues = {}) {\n Object.assign(model, DEFAULT_VALUES, initialValues);\n\n // Inheritance\n vtkAbstractMapper3D.extend(publicAPI, model, initialValues);\n\n macro.get(publicAPI, model, [\n 'colorCoordinates',\n 'colorMapColors',\n 'colorTextureMap',\n ]);\n macro.setGet(publicAPI, model, [\n 'colorByArrayName',\n 'arrayAccessMode',\n 'colorMode',\n 'fieldDataTupleId',\n 'interpolateScalarsBeforeMapping',\n 'lookupTable',\n 'renderTime',\n 'resolveCoincidentTopology',\n 'scalarMode',\n 'scalarVisibility',\n 'static',\n 'useLookupTableScalarRange',\n 'viewSpecificProperties',\n ]);\n macro.setGetArray(publicAPI, model, ['scalarRange'], 2);\n\n if (!model.viewSpecificProperties) {\n model.viewSpecificProperties = {};\n }\n\n // Object methods\n vtkMapper(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\n\nexport const newInstance = macro.newInstance(extend, 'vtkMapper');\n\n// ----------------------------------------------------------------------------\n\nexport default Object.assign(\n { newInstance, extend },\n staticOffsetAPI,\n otherStaticMethods,\n Constants\n);\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/Sources/Rendering/Core/Mapper/index.js","'use strict';\n\nvar utils = require('./utils');\nvar support = require('./support');\nvar nodejsUtils = require('./nodejsUtils');\nvar GenericWorker = require('./stream/GenericWorker');\n\n/**\n * The following functions come from pako, from pako/lib/utils/strings\n * released under the MIT license, see pako https://github.com/nodeca/pako/\n */\n\n// Table with utf8 lengths (calculated by first byte of sequence)\n// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,\n// because max possible codepoint is 0x10ffff\nvar _utf8len = new Array(256);\nfor (var i=0; i<256; i++) {\n _utf8len[i] = (i >= 252 ? 6 : i >= 248 ? 5 : i >= 240 ? 4 : i >= 224 ? 3 : i >= 192 ? 2 : 1);\n}\n_utf8len[254]=_utf8len[254]=1; // Invalid sequence start\n\n// convert string to array (typed, when possible)\nvar string2buf = function (str) {\n var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;\n\n // count binary size\n for (m_pos = 0; m_pos < str_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos+1 < str_len)) {\n c2 = str.charCodeAt(m_pos+1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;\n }\n\n // allocate buffer\n if (support.uint8array) {\n buf = new Uint8Array(buf_len);\n } else {\n buf = new Array(buf_len);\n }\n\n // convert\n for (i=0, m_pos = 0; i < buf_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos+1 < str_len)) {\n c2 = str.charCodeAt(m_pos+1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n if (c < 0x80) {\n /* one byte */\n buf[i++] = c;\n } else if (c < 0x800) {\n /* two bytes */\n buf[i++] = 0xC0 | (c >>> 6);\n buf[i++] = 0x80 | (c & 0x3f);\n } else if (c < 0x10000) {\n /* three bytes */\n buf[i++] = 0xE0 | (c >>> 12);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n } else {\n /* four bytes */\n buf[i++] = 0xf0 | (c >>> 18);\n buf[i++] = 0x80 | (c >>> 12 & 0x3f);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n }\n }\n\n return buf;\n};\n\n// Calculate max possible position in utf8 buffer,\n// that will not break sequence. If that's not possible\n// - (very small limits) return max size as is.\n//\n// buf[] - utf8 bytes array\n// max - length limit (mandatory);\nvar utf8border = function(buf, max) {\n var pos;\n\n max = max || buf.length;\n if (max > buf.length) { max = buf.length; }\n\n // go back from last position, until start of sequence found\n pos = max-1;\n while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }\n\n // Fuckup - very small and broken sequence,\n // return max, because we should return something anyway.\n if (pos < 0) { return max; }\n\n // If we came to start of buffer - that means vuffer is too small,\n // return max too.\n if (pos === 0) { return max; }\n\n return (pos + _utf8len[buf[pos]] > max) ? pos : max;\n};\n\n// convert array to string\nvar buf2string = function (buf) {\n var str, i, out, c, c_len;\n var len = buf.length;\n\n // Reserve max possible length (2 words per char)\n // NB: by unknown reasons, Array is significantly faster for\n // String.fromCharCode.apply than Uint16Array.\n var utf16buf = new Array(len*2);\n\n for (out=0, i=0; i 4) { utf16buf[out++] = 0xfffd; i += c_len-1; continue; }\n\n // apply mask on first byte\n c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;\n // join the rest\n while (c_len > 1 && i < len) {\n c = (c << 6) | (buf[i++] & 0x3f);\n c_len--;\n }\n\n // terminated by end of string?\n if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }\n\n if (c < 0x10000) {\n utf16buf[out++] = c;\n } else {\n c -= 0x10000;\n utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);\n utf16buf[out++] = 0xdc00 | (c & 0x3ff);\n }\n }\n\n // shrinkBuf(utf16buf, out)\n if (utf16buf.length !== out) {\n if(utf16buf.subarray) {\n utf16buf = utf16buf.subarray(0, out);\n } else {\n utf16buf.length = out;\n }\n }\n\n // return String.fromCharCode.apply(null, utf16buf);\n return utils.applyFromCharCode(utf16buf);\n};\n\n\n// That's all for the pako functions.\n\n\n/**\n * Transform a javascript string into an array (typed if possible) of bytes,\n * UTF-8 encoded.\n * @param {String} str the string to encode\n * @return {Array|Uint8Array|Buffer} the UTF-8 encoded string.\n */\nexports.utf8encode = function utf8encode(str) {\n if (support.nodebuffer) {\n return nodejsUtils.newBuffer(str, \"utf-8\");\n }\n\n return string2buf(str);\n};\n\n\n/**\n * Transform a bytes array (or a representation) representing an UTF-8 encoded\n * string into a javascript string.\n * @param {Array|Uint8Array|Buffer} buf the data de decode\n * @return {String} the decoded string.\n */\nexports.utf8decode = function utf8decode(buf) {\n if (support.nodebuffer) {\n return utils.transformTo(\"nodebuffer\", buf).toString(\"utf-8\");\n }\n\n buf = utils.transformTo(support.uint8array ? \"uint8array\" : \"array\", buf);\n\n return buf2string(buf);\n};\n\n/**\n * A worker to decode utf8 encoded binary chunks into string chunks.\n * @constructor\n */\nfunction Utf8DecodeWorker() {\n GenericWorker.call(this, \"utf-8 decode\");\n // the last bytes if a chunk didn't end with a complete codepoint.\n this.leftOver = null;\n}\nutils.inherits(Utf8DecodeWorker, GenericWorker);\n\n/**\n * @see GenericWorker.processChunk\n */\nUtf8DecodeWorker.prototype.processChunk = function (chunk) {\n\n var data = utils.transformTo(support.uint8array ? \"uint8array\" : \"array\", chunk.data);\n\n // 1st step, re-use what's left of the previous chunk\n if (this.leftOver && this.leftOver.length) {\n if(support.uint8array) {\n var previousData = data;\n data = new Uint8Array(previousData.length + this.leftOver.length);\n data.set(this.leftOver, 0);\n data.set(previousData, this.leftOver.length);\n } else {\n data = this.leftOver.concat(data);\n }\n this.leftOver = null;\n }\n\n var nextBoundary = utf8border(data);\n var usableData = data;\n if (nextBoundary !== data.length) {\n if (support.uint8array) {\n usableData = data.subarray(0, nextBoundary);\n this.leftOver = data.subarray(nextBoundary, data.length);\n } else {\n usableData = data.slice(0, nextBoundary);\n this.leftOver = data.slice(nextBoundary, data.length);\n }\n }\n\n this.push({\n data : exports.utf8decode(usableData),\n meta : chunk.meta\n });\n};\n\n/**\n * @see GenericWorker.flush\n */\nUtf8DecodeWorker.prototype.flush = function () {\n if(this.leftOver && this.leftOver.length) {\n this.push({\n data : exports.utf8decode(this.leftOver),\n meta : {}\n });\n this.leftOver = null;\n }\n};\nexports.Utf8DecodeWorker = Utf8DecodeWorker;\n\n/**\n * A worker to endcode string chunks into utf8 encoded binary chunks.\n * @constructor\n */\nfunction Utf8EncodeWorker() {\n GenericWorker.call(this, \"utf-8 encode\");\n}\nutils.inherits(Utf8EncodeWorker, GenericWorker);\n\n/**\n * @see GenericWorker.processChunk\n */\nUtf8EncodeWorker.prototype.processChunk = function (chunk) {\n this.push({\n data : exports.utf8encode(chunk.data),\n meta : chunk.meta\n });\n};\nexports.Utf8EncodeWorker = Utf8EncodeWorker;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/jszip/lib/utf8.js\n// module id = 69\n// module chunks = 1","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/inherits/inherits_browser.js\n// module id = 70\n// module chunks = 1","import $ from 'jquery';\nimport 'bootstrap';\n\nrequire.resolve('./helper.less');\n\nexport function ensure(dlg, do_show, immediate, hide_func) {\n $(dlg).on('hidden.bs.modal', function(event) {\n var body = $('body');\n\n $(this).removeClass('fv-modal-stack');\n body.data('fv_open_modals', body.data('fv_open_modals') - 1);\n });\n\n $(dlg).on('shown.bs.modal', function(event) {\n var body = $('body');\n\n if (typeof body.data('fv_open_modals') == 'undefined')\n body.data('fv_open_modals', 0);\n\n if ($(this).hasClass('fv-modal-stack')) return;\n\n $(this).addClass('fv-modal-stack');\n body.data('fv_open_modals', body.data('fv_open_modals') + 1);\n $(this).css('z-index', 1040 + 10 * body.data('fv_open_modals'));\n\n $('.modal-backdrop')\n .not('.fv-modal-stack')\n .css('z-index', 1039 + 10 * body.data('fv_open_modals'))\n .addClass('fv-modal-stack');\n });\n\n var delay = immediate ? 0 : 500;\n dlg.data(\n 'timed-dialog',\n setTimeout(function() {\n do_show();\n }, delay)\n );\n dlg.data('multi-hide-function', function() {\n if (hide_func) hide_func();\n else dlg.modal('hide');\n });\n}\n\nexport function end(dlg) {\n clearTimeout(dlg.data('timed-dialog'));\n dlg.data('multi-hide-function')();\n}\n\n\n\n// WEBPACK FOOTER //\n// ./external_modules/helpers/multimodal.js","import $ from 'jquery';\nimport 'bootstrap';\nimport * as multi from 'helpers/multimodal';\n\nrequire.resolve('./helper.less');\n\nlet code = [\n '
',\n '
',\n '
',\n '
',\n '',\n '

Error

',\n '
',\n '
',\n '
',\n '
',\n '',\n '
',\n '
',\n '
',\n '
',\n].join('');\nlet errorDialog = $(code);\n\nexport function show(msg) {\n console.log('Show error dialog with ' + msg);\n $('.modal-body', errorDialog).text(msg);\n multi.ensure(errorDialog, function() {\n errorDialog.modal();\n });\n}\n\nexport function hide() {\n multi.end(errorDialog);\n errorDialog.modal('hide');\n}\n\n\n\n// WEBPACK FOOTER //\n// ./external_modules/helpers/error.js","define(['jquery'], function($) {\n var self = this;\n\n self.queryString = (function(paramsArray) {\n let params = {};\n\n for (let i = 0; i < paramsArray.length; ++i) {\n let param = paramsArray[i].split('=', 2);\n\n if (param.length !== 2) continue;\n\n params[param[0]] = decodeURIComponent(param[1].replace(/\\+/g, ' '));\n }\n\n return params;\n })(window.location.search.substr(1).split('&'));\n\n self.addNewState = function() {\n console.log(self.queryString);\n history.pushState({}, '', '?' + $.param(self.queryString));\n };\n\n return self;\n});\n\n\n\n// WEBPACK FOOTER //\n// ./external_modules/helpers/params.js","export const ObjectType = {\n ARRAY_BUFFER: 0,\n ELEMENT_ARRAY_BUFFER: 1,\n TEXTURE_BUFFER: 2,\n};\n\nexport default {\n ObjectType,\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/Sources/Rendering/OpenGL/BufferObject/Constants.js","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/buffer/index.js\n// module id = 89\n// module chunks = 1","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-util-is/lib/util.js\n// module id = 90\n// module chunks = 1","/* global Promise */\n'use strict';\n\n// load the global object first:\n// - it should be better integrated in the system (unhandledRejection in node)\n// - the environment may have a custom Promise implementation (see zone.js)\nvar ES6Promise = null;\nif (typeof Promise !== \"undefined\") {\n ES6Promise = Promise;\n} else {\n ES6Promise = require(\"lie\");\n}\n\n/**\n * Let the user use/change some implementations.\n */\nmodule.exports = {\n Promise: ES6Promise\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/jszip/lib/external.js\n// module id = 91\n// module chunks = 1","export const Wrap = {\n CLAMP_TO_EDGE: 0,\n REPEAT: 1,\n MIRRORED_REPEAT: 2,\n};\n\nexport const Filter = {\n NEAREST: 0,\n LINEAR: 1,\n NEAREST_MIPMAP_NEAREST: 2,\n NEAREST_MIPMAP_LINEAR: 3,\n LINEAR_MIPMAP_NEAREST: 4,\n LINEAR_MIPMAP_LINEAR: 5,\n};\n\nexport default {\n Wrap,\n Filter,\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/Sources/Rendering/OpenGL/Texture/Constants.js","import macro from 'vtk.js/Sources/macro';\nimport Constants from 'vtk.js/Sources/Rendering/OpenGL/BufferObject/Constants';\n\nconst { ObjectType } = Constants;\n\n// ----------------------------------------------------------------------------\n// Global methods\n// ----------------------------------------------------------------------------\n\n// ----------------------------------------------------------------------------\n// Static API\n// ----------------------------------------------------------------------------\n\nexport const STATIC = {};\n\n// ----------------------------------------------------------------------------\n// vtkOpenGLBufferObject methods\n// ----------------------------------------------------------------------------\n\nfunction vtkOpenGLBufferObject(publicAPI, model) {\n // Set our className\n model.classHierarchy.push('vtkOpenGLBufferObject');\n\n // Class-specific private functions\n function convertType(type) {\n switch (type) {\n case ObjectType.ELEMENT_ARRAY_BUFFER:\n return model.context.ELEMENT_ARRAY_BUFFER;\n case ObjectType.TEXTURE_BUFFER:\n if ('TEXTURE_BUFFER' in model.context) {\n return model.context.TEXTURE_BUFFER;\n }\n /* eslint-disable no-fallthrough */\n // Intentional fallthrough in case there is no TEXTURE_BUFFER in WebGL\n default:\n /* eslint-enable no-fallthrough */\n case ObjectType.ARRAY_BUFFER:\n return model.context.ARRAY_BUFFER;\n }\n }\n\n let internalType = null;\n let internalHandle = null;\n let dirty = true;\n let error = '';\n\n // Public API methods\n publicAPI.getType = () => internalType;\n\n publicAPI.setType = (value) => {\n internalType = value;\n };\n\n publicAPI.getHandle = () => internalHandle;\n publicAPI.isReady = () => dirty === false;\n\n publicAPI.generateBuffer = (type) => {\n const objectTypeGL = convertType(type);\n if (internalHandle === null) {\n internalHandle = model.context.createBuffer();\n internalType = type;\n }\n return convertType(internalType) === objectTypeGL;\n };\n\n publicAPI.upload = (data, type) => {\n // buffer, size, type\n const alreadyGenerated = publicAPI.generateBuffer(type);\n if (!alreadyGenerated) {\n error = 'Trying to upload array buffer to incompatible buffer.';\n return false;\n }\n model.context.bindBuffer(convertType(internalType), internalHandle);\n model.context.bufferData(\n convertType(internalType),\n data,\n model.context.STATIC_DRAW\n );\n dirty = false;\n return true;\n };\n\n publicAPI.bind = () => {\n if (!internalHandle) {\n return false;\n }\n model.context.bindBuffer(convertType(internalType), internalHandle);\n return true;\n };\n\n publicAPI.release = () => {\n if (!internalHandle) {\n return false;\n }\n model.context.bindBuffer(convertType(internalType), null);\n return true;\n };\n\n publicAPI.releaseGraphicsResources = () => {\n if (internalHandle !== null) {\n model.context.bindBuffer(convertType(internalType), null);\n model.context.deleteBuffer(internalHandle);\n internalHandle = null;\n }\n };\n\n publicAPI.setOpenGLRenderWindow = (rw) => {\n if (model.openGLRenderWindow === rw) {\n return;\n }\n publicAPI.releaseGraphicsResources();\n model.openGLRenderWindow = rw;\n model.context = null;\n if (rw) {\n model.context = model.openGLRenderWindow.getContext();\n }\n };\n\n publicAPI.getError = () => error;\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n objectType: ObjectType.ARRAY_BUFFER,\n openGLRenderWindow: null,\n context: null,\n};\n\n// ----------------------------------------------------------------------------\n\nexport function extend(publicAPI, model, initialValues = {}) {\n Object.assign(model, DEFAULT_VALUES, initialValues);\n\n // Object methods\n macro.obj(publicAPI, model);\n\n macro.get(publicAPI, model, ['openGLRenderWindow']);\n\n vtkOpenGLBufferObject(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\n\nexport const newInstance = macro.newInstance(extend);\n\n// ----------------------------------------------------------------------------\n\nexport default Object.assign({ newInstance, extend }, STATIC, Constants);\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/Sources/Rendering/OpenGL/BufferObject/index.js","import { mat3, mat4, vec3 } from 'gl-matrix';\n\nimport macro from 'vtk.js/Sources/macro';\nimport vtkHardwareSelector from 'vtk.js/Sources/Rendering/OpenGL/HardwareSelector';\nimport vtkHelper from 'vtk.js/Sources/Rendering/OpenGL/Helper';\nimport vtkMapper from 'vtk.js/Sources/Rendering/Core/Mapper';\nimport vtkMath from 'vtk.js/Sources/Common/Core/Math';\nimport vtkOpenGLTexture from 'vtk.js/Sources/Rendering/OpenGL/Texture';\nimport vtkProperty from 'vtk.js/Sources/Rendering/Core/Property';\nimport vtkShaderProgram from 'vtk.js/Sources/Rendering/OpenGL/ShaderProgram';\nimport vtkViewNode from 'vtk.js/Sources/Rendering/SceneGraph/ViewNode';\n\nimport vtkPolyDataVS from 'vtk.js/Sources/Rendering/OpenGL/glsl/vtkPolyDataVS.glsl';\nimport vtkPolyDataFS from 'vtk.js/Sources/Rendering/OpenGL/glsl/vtkPolyDataFS.glsl';\n\n/* eslint-disable no-lonely-if */\n\nconst primTypes = {\n Start: 0,\n Points: 0,\n Lines: 1,\n Tris: 2,\n TriStrips: 3,\n TrisEdges: 4,\n TriStripsEdges: 5,\n End: 6,\n};\n\nconst { Representation, Shading } = vtkProperty;\nconst { ScalarMode } = vtkMapper;\nconst { Filter, Wrap } = vtkOpenGLTexture;\nconst { PassTypes } = vtkHardwareSelector;\nconst { vtkErrorMacro } = macro;\n\nconst StartEvent = { type: 'StartEvent' };\nconst EndEvent = { type: 'EndEvent' };\n\n// ----------------------------------------------------------------------------\n// vtkOpenGLPolyDataMapper methods\n// ----------------------------------------------------------------------------\n\nfunction vtkOpenGLPolyDataMapper(publicAPI, model) {\n // Set our className\n model.classHierarchy.push('vtkOpenGLPolyDataMapper');\n\n publicAPI.buildPass = (prepass) => {\n if (prepass) {\n model.openGLActor = publicAPI.getFirstAncestorOfType('vtkOpenGLActor');\n model.openGLRenderer = model.openGLActor.getFirstAncestorOfType(\n 'vtkOpenGLRenderer'\n );\n model.openGLRenderWindow = model.openGLRenderer.getParent();\n model.openGLCamera = model.openGLRenderer.getViewNodeFor(\n model.openGLRenderer.getRenderable().getActiveCamera()\n );\n }\n };\n\n // Renders myself\n publicAPI.translucentPass = (prepass) => {\n if (prepass) {\n publicAPI.render();\n }\n };\n\n publicAPI.opaqueZBufferPass = (prepass) => {\n if (prepass) {\n model.haveSeenDepthRequest = true;\n model.renderDepth = true;\n publicAPI.render();\n model.renderDepth = false;\n }\n };\n\n publicAPI.opaquePass = (prepass) => {\n if (prepass) {\n publicAPI.render();\n }\n };\n\n publicAPI.render = () => {\n const ctx = model.openGLRenderWindow.getContext();\n if (model.context !== ctx) {\n model.context = ctx;\n for (let i = primTypes.Start; i < primTypes.End; i++) {\n model.primitives[i].setOpenGLRenderWindow(model.openGLRenderWindow);\n }\n }\n const actor = model.openGLActor.getRenderable();\n const ren = model.openGLRenderer.getRenderable();\n publicAPI.renderPiece(ren, actor);\n };\n\n publicAPI.buildShaders = (shaders, ren, actor) => {\n publicAPI.getShaderTemplate(shaders, ren, actor);\n\n // user specified pre replacements\n const openGLSpec = model.renderable.getViewSpecificProperties().OpenGL;\n let shaderReplacements = null;\n if (openGLSpec) {\n shaderReplacements = openGLSpec.ShaderReplacements;\n }\n\n if (shaderReplacements) {\n for (let i = 0; i < shaderReplacements.length; i++) {\n const currReplacement = shaderReplacements[i];\n if (currReplacement.replaceFirst) {\n const shaderType = currReplacement.shaderType;\n const ssrc = shaders[shaderType];\n const substituteRes = vtkShaderProgram.substitute(\n ssrc,\n currReplacement.originalValue,\n currReplacement.replacementValue,\n currReplacement.replaceAll\n );\n shaders[shaderType] = substituteRes.result;\n }\n }\n }\n\n publicAPI.replaceShaderValues(shaders, ren, actor);\n\n // user specified post replacements\n if (shaderReplacements) {\n for (let i = 0; i < shaderReplacements.length; i++) {\n const currReplacement = shaderReplacements[i];\n if (!currReplacement.replaceFirst) {\n const shaderType = currReplacement.shaderType;\n const ssrc = shaders[shaderType];\n const substituteRes = vtkShaderProgram.substitute(\n ssrc,\n currReplacement.originalValue,\n currReplacement.replacementValue,\n currReplacement.replaceAll\n );\n shaders[shaderType] = substituteRes.result;\n }\n }\n }\n };\n\n publicAPI.getShaderTemplate = (shaders, ren, actor) => {\n const openGLSpecProp = model.renderable.getViewSpecificProperties().OpenGL;\n\n let vertexShaderCode = vtkPolyDataVS;\n if (openGLSpecProp) {\n const vertexSpecProp = openGLSpecProp.VertexShaderCode;\n if (vertexSpecProp !== undefined && vertexSpecProp !== '') {\n vertexShaderCode = vertexSpecProp;\n }\n }\n shaders.Vertex = vertexShaderCode;\n\n let fragmentShaderCode = vtkPolyDataFS;\n if (openGLSpecProp) {\n const fragmentSpecProp = openGLSpecProp.FragmentShaderCode;\n if (fragmentSpecProp !== undefined && fragmentSpecProp !== '') {\n fragmentShaderCode = fragmentSpecProp;\n }\n }\n shaders.Fragment = fragmentShaderCode;\n\n let geometryShaderCode = '';\n if (openGLSpecProp) {\n const geometrySpecProp = openGLSpecProp.GeometryShaderCode;\n if (geometrySpecProp !== undefined) {\n geometryShaderCode = geometrySpecProp;\n }\n }\n shaders.Geometry = geometryShaderCode;\n };\n\n publicAPI.replaceShaderColor = (shaders, ren, actor) => {\n let VSSource = shaders.Vertex;\n let GSSource = shaders.Geometry;\n let FSSource = shaders.Fragment;\n\n const lastLightComplexity = model.lastBoundBO.getReferenceByName(\n 'lastLightComplexity'\n );\n\n // create the material/color property declarations, and VS implementation\n // these are always defined\n let colorDec = [\n 'uniform float ambient;',\n 'uniform float diffuse;',\n 'uniform float specular;',\n 'uniform float opacityUniform; // the fragment opacity',\n 'uniform vec3 ambientColorUniform;',\n 'uniform vec3 diffuseColorUniform;',\n ];\n // add more for specular\n if (lastLightComplexity) {\n colorDec = colorDec.concat([\n 'uniform vec3 specularColorUniform;',\n 'uniform float specularPowerUniform;',\n ]);\n }\n\n // now handle the more complex fragment shader implementation\n // the following are always defined variables. We start\n // by assiging a default value from the uniform\n let colorImpl = [\n 'vec3 ambientColor;',\n ' vec3 diffuseColor;',\n ' float opacity;',\n ];\n if (lastLightComplexity) {\n colorImpl = colorImpl.concat([\n ' vec3 specularColor;',\n ' float specularPower;',\n ]);\n }\n colorImpl = colorImpl.concat([\n ' ambientColor = ambientColorUniform;',\n ' diffuseColor = diffuseColorUniform;',\n ' opacity = opacityUniform;',\n ]);\n if (lastLightComplexity) {\n colorImpl = colorImpl.concat([\n ' specularColor = specularColorUniform;',\n ' specularPower = specularPowerUniform;',\n ]);\n }\n\n // add scalar vertex coloring\n if (\n model.lastBoundBO.getCABO().getColorComponents() !== 0 &&\n !model.drawingEdges\n ) {\n colorDec = colorDec.concat(['varying vec4 vertexColorVSOutput;']);\n VSSource = vtkShaderProgram.substitute(VSSource, '//VTK::Color::Dec', [\n 'attribute vec4 scalarColor;',\n 'varying vec4 vertexColorVSOutput;',\n ]).result;\n VSSource = vtkShaderProgram.substitute(VSSource, '//VTK::Color::Impl', [\n 'vertexColorVSOutput = scalarColor;',\n ]).result;\n GSSource = vtkShaderProgram.substitute(GSSource, '//VTK::Color::Dec', [\n 'in vec4 vertexColorVSOutput[];',\n 'out vec4 vertexColorGSOutput;',\n ]).result;\n GSSource = vtkShaderProgram.substitute(GSSource, '//VTK::Color::Impl', [\n 'vertexColorGSOutput = vertexColorVSOutput[i];',\n ]).result;\n }\n\n if (\n model.lastBoundBO.getCABO().getColorComponents() !== 0 &&\n !model.drawingEdges\n ) {\n FSSource = vtkShaderProgram.substitute(\n FSSource,\n '//VTK::Color::Impl',\n colorImpl.concat([\n ' diffuseColor = vertexColorVSOutput.rgb;',\n ' ambientColor = vertexColorVSOutput.rgb;',\n ' opacity = opacity*vertexColorVSOutput.a;',\n ])\n ).result;\n } else {\n if (\n model.renderable.getInterpolateScalarsBeforeMapping() &&\n model.renderable.getColorCoordinates() &&\n !model.drawingEdges\n ) {\n FSSource = vtkShaderProgram.substitute(\n FSSource,\n '//VTK::Color::Impl',\n colorImpl.concat([\n ' vec4 texColor = texture2D(texture1, tcoordVCVSOutput.st);',\n ' diffuseColor = texColor.rgb;',\n ' ambientColor = texColor.rgb;',\n ' opacity = opacity*texColor.a;',\n ])\n ).result;\n } else {\n FSSource = vtkShaderProgram.substitute(\n FSSource,\n '//VTK::Color::Impl',\n colorImpl\n ).result;\n }\n }\n\n FSSource = vtkShaderProgram.substitute(\n FSSource,\n '//VTK::Color::Dec',\n colorDec\n ).result;\n\n shaders.Vertex = VSSource;\n shaders.Geometry = GSSource;\n shaders.Fragment = FSSource;\n };\n\n publicAPI.replaceShaderLight = (shaders, ren, actor) => {\n let FSSource = shaders.Fragment;\n\n // check for shadow maps\n const shadowFactor = '';\n\n const lastLightComplexity = model.lastBoundBO.getReferenceByName(\n 'lastLightComplexity'\n );\n\n const lastLightCount = model.lastBoundBO.getReferenceByName(\n 'lastLightCount'\n );\n\n let sstring = [];\n\n switch (lastLightComplexity) {\n case 0: // no lighting or RENDER_VALUES\n FSSource = vtkShaderProgram.substitute(\n FSSource,\n '//VTK::Light::Impl',\n [\n ' gl_FragData[0] = vec4(ambientColor * ambient + diffuseColor * diffuse, opacity);',\n ' //VTK::Light::Impl',\n ],\n false\n ).result;\n break;\n\n case 1: // headlight\n FSSource = vtkShaderProgram.substitute(\n FSSource,\n '//VTK::Light::Impl',\n [\n ' float df = max(0.0, normalVCVSOutput.z);',\n ' float sf = pow(df, specularPower);',\n ' vec3 diffuseL = df * diffuseColor;',\n ' vec3 specularL = sf * specularColor;',\n ' gl_FragData[0] = vec4(ambientColor * ambient + diffuseL * diffuse + specularL * specular, opacity);',\n ' //VTK::Light::Impl',\n ],\n false\n ).result;\n break;\n\n case 2: // light kit\n for (let lc = 0; lc < lastLightCount; ++lc) {\n sstring = sstring.concat([\n `uniform vec3 lightColor${lc};`,\n `uniform vec3 lightDirectionVC${lc}; // normalized`,\n `uniform vec3 lightHalfAngleVC${lc}; // normalized`,\n ]);\n }\n FSSource = vtkShaderProgram.substitute(\n FSSource,\n '//VTK::Light::Dec',\n sstring\n ).result;\n\n sstring = [\n 'vec3 diffuseL = vec3(0,0,0);',\n ' vec3 specularL = vec3(0,0,0);',\n ' float df;',\n ];\n for (let lc = 0; lc < lastLightCount; ++lc) {\n sstring = sstring.concat([\n ` df = max(0.0, dot(normalVCVSOutput, -lightDirectionVC${lc}));`,\n ` diffuseL += ((df${shadowFactor}) * lightColor${lc});`,\n ` if (dot(normalVCVSOutput, lightDirectionVC${lc}) < 0.0)`,\n ' {',\n ` float sf = pow( max(0.0, dot(lightHalfAngleVC${lc},normalVCVSOutput)), specularPower);`,\n ` specularL += ((sf${shadowFactor}) * lightColor${lc});`,\n ' }',\n ]);\n }\n sstring = sstring.concat([\n ' diffuseL = diffuseL * diffuseColor;',\n ' specularL = specularL * specularColor;',\n ' gl_FragData[0] = vec4(ambientColor * ambient + diffuseL * diffuse + specularL * specular, opacity);',\n ' //VTK::Light::Impl',\n ]);\n FSSource = vtkShaderProgram.substitute(\n FSSource,\n '//VTK::Light::Impl',\n sstring,\n false\n ).result;\n break;\n\n case 3: // positional\n for (let lc = 0; lc < lastLightCount; ++lc) {\n sstring = sstring.concat([\n `uniform vec3 lightColor${lc};`,\n `uniform vec3 lightDirectionVC${lc}; // normalized`,\n `uniform vec3 lightHalfAngleVC${lc}; // normalized`,\n `uniform vec3 lightPositionVC${lc};`,\n `uniform vec3 lightAttenuation${lc};`,\n `uniform float lightConeAngle${lc};`,\n `uniform float lightExponent${lc};`,\n `uniform int lightPositional${lc};`,\n ]);\n }\n FSSource = vtkShaderProgram.substitute(\n FSSource,\n '//VTK::Light::Dec',\n sstring\n ).result;\n\n sstring = [\n 'vec3 diffuseL = vec3(0,0,0);',\n ' vec3 specularL = vec3(0,0,0);',\n ' vec3 vertLightDirectionVC;',\n ' float attenuation;',\n ' float df;',\n ];\n for (let lc = 0; lc < lastLightCount; ++lc) {\n sstring = sstring.concat([\n ' attenuation = 1.0;',\n ` if (lightPositional${lc} == 0)`,\n ' {',\n ` vertLightDirectionVC = lightDirectionVC${lc};`,\n ' }',\n ' else',\n ' {',\n ` vertLightDirectionVC = vertexVC.xyz - lightPositionVC${lc};`,\n ' float distanceVC = length(vertLightDirectionVC);',\n ' vertLightDirectionVC = normalize(vertLightDirectionVC);',\n ' attenuation = 1.0 /',\n ` (lightAttenuation${lc}.x`,\n ` + lightAttenuation${lc}.y * distanceVC`,\n ` + lightAttenuation${lc}.z * distanceVC * distanceVC);`,\n ' // per OpenGL standard cone angle is 90 or less for a spot light',\n ` if (lightConeAngle${lc} <= 90.0)`,\n ' {',\n ` float coneDot = dot(vertLightDirectionVC, lightDirectionVC${lc});`,\n ' // if inside the cone',\n ` if (coneDot >= cos(radians(lightConeAngle${lc})))`,\n ' {',\n ` attenuation = attenuation * pow(coneDot, lightExponent${lc});`,\n ' }',\n ' else',\n ' {',\n ' attenuation = 0.0;',\n ' }',\n ' }',\n ' }',\n ' df = max(0.0, attenuation*dot(normalVCVSOutput, -vertLightDirectionVC));',\n ` diffuseL += ((df${shadowFactor}) * lightColor${lc});`,\n ' if (dot(normalVCVSOutput, vertLightDirectionVC) < 0.0)',\n ' {',\n ` float sf = attenuation*pow( max(0.0, dot(lightHalfAngleVC${lc},normalVCVSOutput)), specularPower);`,\n ` specularL += ((sf${shadowFactor}) * lightColor${lc});`,\n ' }',\n ]);\n }\n sstring = sstring.concat([\n ' diffuseL = diffuseL * diffuseColor;',\n ' specularL = specularL * specularColor;',\n ' gl_FragData[0] = vec4(ambientColor * ambient + diffuseL * diffuse + specularL * specular, opacity);',\n ' //VTK::Light::Impl',\n ]);\n FSSource = vtkShaderProgram.substitute(\n FSSource,\n '//VTK::Light::Impl',\n sstring,\n false\n ).result;\n break;\n default:\n vtkErrorMacro('bad light complexity');\n }\n\n shaders.Fragment = FSSource;\n };\n\n publicAPI.replaceShaderNormal = (shaders, ren, actor) => {\n const lastLightComplexity = model.lastBoundBO.getReferenceByName(\n 'lastLightComplexity'\n );\n\n if (lastLightComplexity > 0) {\n let VSSource = shaders.Vertex;\n let GSSource = shaders.Geometry;\n let FSSource = shaders.Fragment;\n\n if (model.lastBoundBO.getCABO().getNormalOffset()) {\n VSSource = vtkShaderProgram.substitute(VSSource, '//VTK::Normal::Dec', [\n 'attribute vec3 normalMC;',\n 'uniform mat3 normalMatrix;',\n 'varying vec3 normalVCVSOutput;',\n ]).result;\n VSSource = vtkShaderProgram.substitute(\n VSSource,\n '//VTK::Normal::Impl',\n ['normalVCVSOutput = normalMatrix * normalMC;']\n ).result;\n GSSource = vtkShaderProgram.substitute(GSSource, '//VTK::Normal::Dec', [\n 'in vec3 normalVCVSOutput[];',\n 'out vec3 normalVCGSOutput;',\n ]).result;\n GSSource = vtkShaderProgram.substitute(\n GSSource,\n '//VTK::Normal::Impl',\n ['normalVCGSOutput = normalVCVSOutput[i];']\n ).result;\n FSSource = vtkShaderProgram.substitute(FSSource, '//VTK::Normal::Dec', [\n 'varying vec3 normalVCVSOutput;',\n ]).result;\n FSSource = vtkShaderProgram.substitute(\n FSSource,\n '//VTK::Normal::Impl',\n [\n 'vec3 normalVCVSOutput = normalize(normalVCVSOutput);',\n // if (!gl_FrontFacing) does not work in intel hd4000 mac\n // if (int(gl_FrontFacing) == 0) does not work on mesa\n ' if (gl_FrontFacing == false) { normalVCVSOutput = -normalVCVSOutput; }',\n ]\n ).result;\n } else {\n if (model.haveCellNormals) {\n FSSource = vtkShaderProgram.substitute(\n FSSource,\n '//VTK::Normal::Dec',\n ['uniform mat3 normalMatrix;', 'uniform samplerBuffer textureN;']\n ).result;\n FSSource = vtkShaderProgram.substitute(\n FSSource,\n '//VTK::Normal::Impl',\n [\n 'vec3 normalVCVSOutput = normalize(normalMatrix *',\n ' texelFetchBuffer(textureN, gl_PrimitiveID + PrimitiveIDOffset).xyz);',\n ' if (gl_FrontFacing == false) { normalVCVSOutput = -normalVCVSOutput; }',\n ]\n ).result;\n } else {\n if (\n publicAPI.getOpenGLMode(\n actor.getProperty().getRepresentation(),\n model.lastBoundBO.getPrimitiveType()\n ) === model.context.LINES\n ) {\n // generate a normal for lines, it will be perpendicular to the line\n // and maximally aligned with the camera view direction\n // no clue if this is the best way to do this.\n // the code below has been optimized a bit so what follows is\n // an explanation of the basic approach. Compute the gradient of the line\n // with respect to x and y, the the larger of the two\n // cross that with the camera view direction. That gives a vector\n // orthogonal to the camera view and the line. Note that the line and the camera\n // view are probably not orthogonal. Which is why when we cross result that with\n // the line gradient again we get a reasonable normal. It will be othogonal to\n // the line (which is a plane but maximally aligned with the camera view.\n FSSource = vtkShaderProgram.substitute(\n FSSource,\n '//VTK::UniformFlow::Impl',\n [\n ' vec3 fdx = vec3(dFdx(vertexVC.x),dFdx(vertexVC.y),dFdx(vertexVC.z));',\n ' vec3 fdy = vec3(dFdy(vertexVC.x),dFdy(vertexVC.y),dFdy(vertexVC.z));',\n ' //VTK::UniformFlow::Impl',\n ] // For further replacements\n ).result;\n FSSource = vtkShaderProgram.substitute(\n FSSource,\n '//VTK::Normal::Impl',\n [\n 'vec3 normalVCVSOutput;',\n ' fdx = normalize(fdx);',\n ' fdy = normalize(fdy);',\n ' if (abs(fdx.x) > 0.0)',\n ' { normalVCVSOutput = normalize(cross(vec3(fdx.y, -fdx.x, 0.0), fdx)); }',\n ' else { normalVCVSOutput = normalize(cross(vec3(fdy.y, -fdy.x, 0.0), fdy));}',\n ]\n ).result;\n } else {\n FSSource = vtkShaderProgram.substitute(\n FSSource,\n '//VTK::Normal::Dec',\n ['uniform int cameraParallel;']\n ).result;\n\n FSSource = vtkShaderProgram.substitute(\n FSSource,\n '//VTK::UniformFlow::Impl',\n [\n // ' vec3 fdx = vec3(dFdx(vertexVC.x),dFdx(vertexVC.y),dFdx(vertexVC.z));',\n // ' vec3 fdy = vec3(dFdy(vertexVC.x),dFdy(vertexVC.y),dFdy(vertexVC.z));',\n ' vec3 fdx = dFdx(vertexVC.xyz);',\n ' vec3 fdy = dFdy(vertexVC.xyz);',\n ' //VTK::UniformFlow::Impl',\n ] // For further replacements\n ).result;\n FSSource = vtkShaderProgram.substitute(\n FSSource,\n '//VTK::Normal::Impl',\n [\n ' fdx = normalize(fdx);',\n ' fdy = normalize(fdy);',\n ' vec3 normalVCVSOutput = normalize(cross(fdx,fdy));',\n // the code below is faster, but does not work on some devices\n // 'vec3 normalVC = normalize(cross(dFdx(vertexVC.xyz), dFdy(vertexVC.xyz)));',\n ' if (cameraParallel == 1 && normalVCVSOutput.z < 0.0) { normalVCVSOutput = -1.0*normalVCVSOutput; }',\n ' if (cameraParallel == 0 && dot(normalVCVSOutput,vertexVC.xyz) > 0.0) { normalVCVSOutput = -1.0*normalVCVSOutput; }',\n ]\n ).result;\n }\n }\n }\n shaders.Vertex = VSSource;\n shaders.Geometry = GSSource;\n shaders.Fragment = FSSource;\n }\n };\n\n publicAPI.replaceShaderPositionVC = (shaders, ren, actor) => {\n let VSSource = shaders.Vertex;\n let GSSource = shaders.Geometry;\n let FSSource = shaders.Fragment;\n\n // for points make sure to add in the point size\n if (\n actor.getProperty().getRepresentation() === Representation.POINTS ||\n model.lastBoundBO.getPrimitiveType() === primTypes.Points\n ) {\n VSSource = vtkShaderProgram.substitute(\n VSSource,\n '//VTK::PositionVC::Impl',\n [\n '//VTK::PositionVC::Impl',\n ` gl_PointSize = ${actor.getProperty().getPointSize()}.0;`,\n ],\n false\n ).result;\n }\n\n // do we need the vertex in the shader in View Coordinates\n const lastLightComplexity = model.lastBoundBO.getReferenceByName(\n 'lastLightComplexity'\n );\n if (lastLightComplexity > 0) {\n VSSource = vtkShaderProgram.substitute(\n VSSource,\n '//VTK::PositionVC::Dec',\n ['varying vec4 vertexVCVSOutput;']\n ).result;\n VSSource = vtkShaderProgram.substitute(\n VSSource,\n '//VTK::PositionVC::Impl',\n [\n 'vertexVCVSOutput = MCVCMatrix * vertexMC;',\n ' gl_Position = MCDCMatrix * vertexMC;',\n ]\n ).result;\n VSSource = vtkShaderProgram.substitute(VSSource, '//VTK::Camera::Dec', [\n 'uniform mat4 MCDCMatrix;',\n 'uniform mat4 MCVCMatrix;',\n ]).result;\n GSSource = vtkShaderProgram.substitute(\n GSSource,\n '//VTK::PositionVC::Dec',\n ['in vec4 vertexVCVSOutput[];', 'out vec4 vertexVCGSOutput;']\n ).result;\n GSSource = vtkShaderProgram.substitute(\n GSSource,\n '//VTK::PositionVC::Impl',\n ['vertexVCGSOutput = vertexVCVSOutput[i];']\n ).result;\n FSSource = vtkShaderProgram.substitute(\n FSSource,\n '//VTK::PositionVC::Dec',\n ['varying vec4 vertexVCVSOutput;']\n ).result;\n FSSource = vtkShaderProgram.substitute(\n FSSource,\n '//VTK::PositionVC::Impl',\n ['vec4 vertexVC = vertexVCVSOutput;']\n ).result;\n } else {\n VSSource = vtkShaderProgram.substitute(VSSource, '//VTK::Camera::Dec', [\n 'uniform mat4 MCDCMatrix;',\n ]).result;\n VSSource = vtkShaderProgram.substitute(\n VSSource,\n '//VTK::PositionVC::Impl',\n [' gl_Position = MCDCMatrix * vertexMC;']\n ).result;\n }\n shaders.Vertex = VSSource;\n shaders.Geometry = GSSource;\n shaders.Fragment = FSSource;\n };\n\n publicAPI.replaceShaderTCoord = (shaders, ren, actor) => {\n if (model.lastBoundBO.getCABO().getTCoordOffset()) {\n let VSSource = shaders.Vertex;\n let GSSource = shaders.Geometry;\n let FSSource = shaders.Fragment;\n\n if (model.drawingEdges) {\n return;\n }\n\n VSSource = vtkShaderProgram.substitute(\n VSSource,\n '//VTK::TCoord::Impl',\n 'tcoordVCVSOutput = tcoordMC;'\n ).result;\n\n // we only handle the first texture by default\n // additional textures are activated and we set the uniform\n // for the texture unit they are assigned to, but you have to\n // add in the shader code to do something with them\n const tus = model.openGLActor.getActiveTextures();\n let tNumComp = 2;\n let tcdim = 2;\n if (tus && tus.length > 0) {\n tNumComp = tus[0].getComponents();\n if (tus[0].getTarget() === model.context.TEXTURE_CUBE_MAP) {\n tcdim = 3;\n }\n }\n if (model.renderable.getColorTextureMap()) {\n tNumComp = model.renderable\n .getColorTextureMap()\n .getPointData()\n .getScalars()\n .getNumberOfComponents();\n tcdim = 2;\n }\n\n if (tcdim === 2) {\n VSSource = vtkShaderProgram.substitute(\n VSSource,\n '//VTK::TCoord::Dec',\n 'attribute vec2 tcoordMC; varying vec2 tcoordVCVSOutput;'\n ).result;\n GSSource = vtkShaderProgram.substitute(GSSource, '//VTK::TCoord::Dec', [\n 'in vec2 tcoordVCVSOutput[];',\n 'out vec2 tcoordVCGSOutput;',\n ]).result;\n GSSource = vtkShaderProgram.substitute(\n GSSource,\n '//VTK::TCoord::Impl',\n 'tcoordVCGSOutput = tcoordVCVSOutput[i];'\n ).result;\n FSSource = vtkShaderProgram.substitute(FSSource, '//VTK::TCoord::Dec', [\n 'varying vec2 tcoordVCVSOutput;',\n 'uniform sampler2D texture1;',\n ]).result;\n switch (tNumComp) {\n case 1:\n FSSource = vtkShaderProgram.substitute(\n FSSource,\n '//VTK::TCoord::Impl',\n [\n 'vec4 tcolor = texture2D(texture1, tcoordVCVSOutput);',\n 'gl_FragData[0] = clamp(gl_FragData[0],0.0,1.0)*',\n ' vec4(tcolor.r,tcolor.r,tcolor.r,1.0);',\n ]\n ).result;\n break;\n case 2:\n FSSource = vtkShaderProgram.substitute(\n FSSource,\n '//VTK::TCoord::Impl',\n [\n 'vec4 tcolor = texture2D(texture1, tcoordVCVSOutput);',\n 'gl_FragData[0] = clamp(gl_FragData[0],0.0,1.0)*',\n ' vec4(tcolor.r,tcolor.r,tcolor.r,tcolor.g);',\n ]\n ).result;\n break;\n default:\n FSSource = vtkShaderProgram.substitute(\n FSSource,\n '//VTK::TCoord::Impl',\n 'gl_FragData[0] = clamp(gl_FragData[0],0.0,1.0)*texture2D(texture1, tcoordVCVSOutput.st);'\n ).result;\n }\n } else {\n VSSource = vtkShaderProgram.substitute(\n VSSource,\n '//VTK::TCoord::Dec',\n 'attribute vec3 tcoordMC; varying vec3 tcoordVCVSOutput;'\n ).result;\n GSSource = vtkShaderProgram.substitute(GSSource, '//VTK::TCoord::Dec', [\n 'in vec3 tcoordVCVSOutput[];',\n 'out vec3 tcoordVCGSOutput;',\n ]).result;\n GSSource = vtkShaderProgram.substitute(\n GSSource,\n '//VTK::TCoord::Impl',\n 'tcoordVCGSOutput = tcoordVCVSOutput[i];'\n ).result;\n FSSource = vtkShaderProgram.substitute(FSSource, '//VTK::TCoord::Dec', [\n 'varying vec3 tcoordVCVSOutput;',\n 'uniform samplerCube texture1;',\n ]).result;\n switch (tNumComp) {\n case 1:\n FSSource = vtkShaderProgram.substitute(\n FSSource,\n '//VTK::TCoord::Impl',\n [\n 'vec4 tcolor = textureCube(texture1, tcoordVCVSOutput);',\n 'gl_FragData[0] = clamp(gl_FragData[0],0.0,1.0)*',\n ' vec4(tcolor.r,tcolor.r,tcolor.r,1.0);',\n ]\n ).result;\n break;\n case 2:\n FSSource = vtkShaderProgram.substitute(\n FSSource,\n '//VTK::TCoord::Impl',\n [\n 'vec4 tcolor = textureCube(texture1, tcoordVCVSOutput);',\n 'gl_FragData[0] = clamp(gl_FragData[0],0.0,1.0)*',\n ' vec4(tcolor.r,tcolor.r,tcolor.r,tcolor.g);',\n ]\n ).result;\n break;\n default:\n FSSource = vtkShaderProgram.substitute(\n FSSource,\n '//VTK::TCoord::Impl',\n 'gl_FragData[0] = clamp(gl_FragData[0],0.0,1.0)*textureCube(texture1, tcoordVCVSOutput);'\n ).result;\n }\n }\n shaders.Vertex = VSSource;\n shaders.Geometry = GSSource;\n shaders.Fragment = FSSource;\n }\n };\n\n publicAPI.replaceShaderClip = (shaders, ren, actor) => {\n let VSSource = shaders.Vertex;\n let FSSource = shaders.Fragment;\n\n if (model.renderable.getNumberOfClippingPlanes()) {\n let numClipPlanes = model.renderable.getNumberOfClippingPlanes();\n if (numClipPlanes > 6) {\n macro.vtkErrorMacro('OpenGL has a limit of 6 clipping planes');\n numClipPlanes = 6;\n }\n VSSource = vtkShaderProgram.substitute(VSSource, '//VTK::Clip::Dec', [\n 'uniform int numClipPlanes;',\n 'uniform vec4 clipPlanes[6];',\n 'varying float clipDistancesVSOutput[6];',\n ]).result;\n\n VSSource = vtkShaderProgram.substitute(VSSource, '//VTK::Clip::Impl', [\n 'for (int planeNum = 0; planeNum < 6; planeNum++)',\n ' {',\n ' if (planeNum >= numClipPlanes)',\n ' {',\n ' break;',\n ' }',\n ' clipDistancesVSOutput[planeNum] = dot(clipPlanes[planeNum], vertexMC);',\n ' }',\n ]).result;\n FSSource = vtkShaderProgram.substitute(FSSource, '//VTK::Clip::Dec', [\n 'uniform int numClipPlanes;',\n 'varying float clipDistancesVSOutput[6];',\n ]).result;\n\n FSSource = vtkShaderProgram.substitute(FSSource, '//VTK::Clip::Impl', [\n 'for (int planeNum = 0; planeNum < 6; planeNum++)',\n ' {',\n ' if (planeNum >= numClipPlanes)',\n ' {',\n ' break;',\n ' }',\n ' if (clipDistancesVSOutput[planeNum] < 0.0) discard;',\n ' }',\n ]).result;\n }\n shaders.Vertex = VSSource;\n shaders.Fragment = FSSource;\n };\n\n publicAPI.getCoincidentParameters = (ren, actor) => {\n // 1. ResolveCoincidentTopology is On and non zero for this primitive\n // type\n let cp = null;\n const prop = actor.getProperty();\n if (\n model.renderable.getResolveCoincidentTopology() ||\n (prop.getEdgeVisibility() &&\n prop.getRepresentation() === Representation.SURFACE)\n ) {\n const primType = model.lastBoundBO.getPrimitiveType();\n if (\n primType === primTypes.Points ||\n prop.getRepresentation() === Representation.POINTS\n ) {\n cp = model.renderable.getCoincidentTopologyPointOffsetParameter();\n } else if (\n primType === primTypes.Lines ||\n prop.getRepresentation() === Representation.WIREFRAME\n ) {\n cp = model.renderable.getCoincidentTopologyLineOffsetParameters();\n } else if (\n primType === primTypes.Tris ||\n primType === primTypes.TriStrips\n ) {\n cp = model.renderable.getCoincidentTopologyPolygonOffsetParameters();\n }\n if (\n primType === primTypes.TrisEdges ||\n primType === primTypes.TriStripsEdges\n ) {\n cp = model.renderable.getCoincidentTopologyPolygonOffsetParameters();\n cp.factor /= 2.0;\n cp.offset /= 2.0;\n }\n }\n\n // hardware picking always offset due to saved zbuffer\n // This gets you above the saved surface depth buffer.\n // vtkHardwareSelector* selector = ren->GetSelector();\n // if (selector &&\n // selector->GetFieldAssociation() == vtkDataObject::FIELD_ASSOCIATION_POINTS)\n // {\n // offset -= 2.0;\n // return;\n // }\n return cp;\n };\n\n publicAPI.replaceShaderCoincidentOffset = (shaders, ren, actor) => {\n const cp = publicAPI.getCoincidentParameters(ren, actor);\n\n // if we need an offset handle it here\n // The value of .000016 is suitable for depth buffers\n // of at least 16 bit depth. We do not query the depth\n // right now because we would need some mechanism to\n // cache the result taking into account FBO changes etc.\n if (cp && (cp.factor !== 0.0 || cp.offset !== 0.0)) {\n let FSSource = shaders.Fragment;\n\n FSSource = vtkShaderProgram.substitute(\n FSSource,\n '//VTK::Coincident::Dec',\n ['uniform float cfactor;', 'uniform float coffset;']\n ).result;\n\n if (model.context.getExtension('EXT_frag_depth')) {\n if (cp.factor !== 0.0) {\n FSSource = vtkShaderProgram.substitute(\n FSSource,\n '//VTK::UniformFlow::Impl',\n [\n 'float cscale = length(vec2(dFdx(gl_FragCoord.z),dFdy(gl_FragCoord.z)));',\n '//VTK::UniformFlow::Impl',\n ],\n false\n ).result;\n FSSource = vtkShaderProgram.substitute(\n FSSource,\n '//VTK::Depth::Impl',\n 'gl_FragDepthEXT = gl_FragCoord.z + cfactor*cscale + 0.000016*coffset;'\n ).result;\n } else {\n FSSource = vtkShaderProgram.substitute(\n FSSource,\n '//VTK::Depth::Impl',\n 'gl_FragDepthEXT = gl_FragCoord.z + 0.000016*coffset;'\n ).result;\n }\n }\n if (model.openGLRenderWindow.getWebgl2()) {\n if (cp.factor !== 0.0) {\n FSSource = vtkShaderProgram.substitute(\n FSSource,\n '//VTK::UniformFlow::Impl',\n [\n 'float cscale = length(vec2(dFdx(gl_FragCoord.z),dFdy(gl_FragCoord.z)));',\n '//VTK::UniformFlow::Impl',\n ],\n false\n ).result;\n FSSource = vtkShaderProgram.substitute(\n FSSource,\n '//VTK::Depth::Impl',\n 'gl_FragDepth = gl_FragCoord.z + cfactor*cscale + 0.000016*coffset;'\n ).result;\n } else {\n FSSource = vtkShaderProgram.substitute(\n FSSource,\n '//VTK::Depth::Impl',\n 'gl_FragDepth = gl_FragCoord.z + 0.000016*coffset;'\n ).result;\n }\n }\n shaders.Fragment = FSSource;\n }\n };\n\n publicAPI.replaceShaderPicking = (shaders, ren, actor) => {\n if (model.openGLRenderer.getSelector()) {\n let FSSource = shaders.Fragment;\n switch (model.openGLRenderer.getSelector().getCurrentPass()) {\n case PassTypes.ID_LOW24:\n // FSSource = vtkShaderProgram.substitute(FSSource,\n // '//VTK::Picking::Impl', [\n // ' int idx = gl_PrimitiveID + 1 + PrimitiveIDOffset;',\n // ' gl_FragData[0] = vec4(float(idx%256)/255.0, float((idx/256)%256)/255.0, float((idx/65536)%256)/255.0, 1.0);',\n // ], false).result;\n break;\n default:\n FSSource = vtkShaderProgram.substitute(\n FSSource,\n '//VTK::Picking::Dec',\n 'uniform vec3 mapperIndex;'\n ).result;\n FSSource = vtkShaderProgram.substitute(\n FSSource,\n '//VTK::Picking::Impl',\n ' gl_FragData[0] = vec4(mapperIndex,1.0);'\n ).result;\n }\n shaders.Fragment = FSSource;\n }\n };\n\n publicAPI.replaceShaderValues = (shaders, ren, actor) => {\n publicAPI.replaceShaderColor(shaders, ren, actor);\n publicAPI.replaceShaderNormal(shaders, ren, actor);\n publicAPI.replaceShaderLight(shaders, ren, actor);\n publicAPI.replaceShaderTCoord(shaders, ren, actor);\n publicAPI.replaceShaderPicking(shaders, ren, actor);\n publicAPI.replaceShaderClip(shaders, ren, actor);\n publicAPI.replaceShaderCoincidentOffset(shaders, ren, actor);\n publicAPI.replaceShaderPositionVC(shaders, ren, actor);\n\n if (model.haveSeenDepthRequest) {\n let FSSource = shaders.Fragment;\n FSSource = vtkShaderProgram.substitute(\n FSSource,\n '//VTK::ZBuffer::Dec',\n 'uniform int depthRequest;'\n ).result;\n FSSource = vtkShaderProgram.substitute(FSSource, '//VTK::ZBuffer::Impl', [\n 'if (depthRequest == 1) {',\n 'float iz = floor(gl_FragCoord.z*65535.0 + 0.1);',\n 'float rf = floor(iz/256.0)/255.0;',\n 'float gf = mod(iz,256.0)/255.0;',\n 'gl_FragData[0] = vec4(rf, gf, 0.0, 1.0); }',\n ]).result;\n shaders.Fragment = FSSource;\n }\n };\n\n publicAPI.getNeedToRebuildShaders = (cellBO, ren, actor) => {\n let lightComplexity = 0;\n let numberOfLights = 0;\n\n const primType = cellBO.getPrimitiveType();\n\n let needLighting = true;\n\n const poly = model.currentInput;\n\n let n =\n actor.getProperty().getInterpolation() !== Shading.FLAT\n ? poly.getPointData().getNormals()\n : null;\n if (n === null && poly.getCellData().getNormals()) {\n n = poly.getCellData().getNormals();\n }\n\n const haveNormals = n !== null;\n\n if (\n actor.getProperty().getRepresentation() === Representation.POINTS ||\n primType === primTypes.Points\n ) {\n needLighting = haveNormals;\n }\n\n // do we need lighting?\n if (actor.getProperty().getLighting() && needLighting) {\n // consider the lighting complexity to determine which case applies\n // simple headlight, Light Kit, the whole feature set of VTK\n lightComplexity = 0;\n const lights = ren.getLightsByReference();\n for (let index = 0; index < lights.length; ++index) {\n const light = lights[index];\n const status = light.getSwitch();\n if (status > 0) {\n numberOfLights++;\n if (lightComplexity === 0) {\n lightComplexity = 1;\n }\n }\n\n if (\n lightComplexity === 1 &&\n (numberOfLights > 1 ||\n light.getIntensity() !== 1.0 ||\n !light.lightTypeIsHeadLight())\n ) {\n lightComplexity = 2;\n }\n if (lightComplexity < 3 && light.getPositional()) {\n lightComplexity = 3;\n }\n }\n }\n\n let needRebuild = false;\n const lastLightComplexity = model.lastBoundBO.getReferenceByName(\n 'lastLightComplexity'\n );\n const lastLightCount = model.lastBoundBO.getReferenceByName(\n 'lastLightCount'\n );\n if (\n lastLightComplexity !== lightComplexity ||\n lastLightCount !== numberOfLights\n ) {\n model.lastBoundBO.set({ lastLightComplexity: lightComplexity }, true);\n model.lastBoundBO.set({ lastLightCount: numberOfLights }, true);\n needRebuild = true;\n }\n\n const selector = model.openGLRenderer.getSelector();\n const selectionPass = selector === null ? -1 : selector.getCurrentPass();\n if (\n model.lastBoundBO.getReferenceByName('lastSelectionPass') !==\n selectionPass\n ) {\n model.lastBoundBO.set({ lastSelectionPass: selectionPass }, true);\n needRebuild = true;\n }\n\n // has something changed that would require us to recreate the shader?\n // candidates are\n // property modified (representation interpolation and lighting)\n // input modified\n // light complexity changed\n if (\n model.lastHaveSeenDepthRequest !== model.haveSeenDepthRequest ||\n cellBO.getProgram() === 0 ||\n cellBO.getShaderSourceTime().getMTime() < publicAPI.getMTime() ||\n cellBO.getShaderSourceTime().getMTime() < actor.getMTime() ||\n cellBO.getShaderSourceTime().getMTime() < model.renderable.getMTime() ||\n cellBO.getShaderSourceTime().getMTime() < model.currentInput.getMTime() ||\n needRebuild\n ) {\n model.lastHaveSeenDepthRequest = model.haveSeenDepthRequest;\n return true;\n }\n\n return false;\n };\n\n publicAPI.updateShaders = (cellBO, ren, actor) => {\n model.lastBoundBO = cellBO;\n\n // has something changed that would require us to recreate the shader?\n if (publicAPI.getNeedToRebuildShaders(cellBO, ren, actor)) {\n const shaders = { Vertex: null, Fragment: null, Geometry: null };\n publicAPI.buildShaders(shaders, ren, actor);\n\n // compile and bind the program if needed\n const newShader = model.openGLRenderWindow\n .getShaderCache()\n .readyShaderProgramArray(\n shaders.Vertex,\n shaders.Fragment,\n shaders.Geometry\n );\n\n // if the shader changed reinitialize the VAO\n if (newShader !== cellBO.getProgram()) {\n cellBO.setProgram(newShader);\n // reset the VAO as the shader has changed\n cellBO.getVAO().releaseGraphicsResources();\n }\n\n cellBO.getShaderSourceTime().modified();\n } else {\n model.openGLRenderWindow\n .getShaderCache()\n .readyShaderProgram(cellBO.getProgram());\n }\n\n cellBO.getVAO().bind();\n\n publicAPI.setMapperShaderParameters(cellBO, ren, actor);\n publicAPI.setPropertyShaderParameters(cellBO, ren, actor);\n publicAPI.setCameraShaderParameters(cellBO, ren, actor);\n publicAPI.setLightingShaderParameters(cellBO, ren, actor);\n\n const listCallbacks = model.renderable.getViewSpecificProperties()\n .ShadersCallbacks;\n if (listCallbacks) {\n listCallbacks.forEach((object) => {\n object.callback(object.userData, cellBO, ren, actor);\n });\n }\n };\n\n publicAPI.setMapperShaderParameters = (cellBO, ren, actor) => {\n // Now to update the VAO too, if necessary.\n if (cellBO.getProgram().isUniformUsed('PrimitiveIDOffset')) {\n cellBO\n .getProgram()\n .setUniformi('PrimitiveIDOffset', model.primitiveIDOffset);\n }\n\n if (\n cellBO.getCABO().getElementCount() &&\n (model.VBOBuildTime.getMTime() >\n cellBO.getAttributeUpdateTime().getMTime() ||\n cellBO.getShaderSourceTime().getMTime() >\n cellBO.getAttributeUpdateTime().getMTime())\n ) {\n const lastLightComplexity = model.lastBoundBO.getReferenceByName(\n 'lastLightComplexity'\n );\n\n if (cellBO.getProgram().isAttributeUsed('vertexMC')) {\n if (\n !cellBO\n .getVAO()\n .addAttributeArray(\n cellBO.getProgram(),\n cellBO.getCABO(),\n 'vertexMC',\n cellBO.getCABO().getVertexOffset(),\n cellBO.getCABO().getStride(),\n model.context.FLOAT,\n 3,\n false\n )\n ) {\n vtkErrorMacro('Error setting vertexMC in shader VAO.');\n }\n }\n if (\n cellBO.getProgram().isAttributeUsed('normalMC') &&\n cellBO.getCABO().getNormalOffset() &&\n lastLightComplexity > 0\n ) {\n if (\n !cellBO\n .getVAO()\n .addAttributeArray(\n cellBO.getProgram(),\n cellBO.getCABO(),\n 'normalMC',\n cellBO.getCABO().getNormalOffset(),\n cellBO.getCABO().getStride(),\n model.context.FLOAT,\n 3,\n false\n )\n ) {\n vtkErrorMacro('Error setting normalMC in shader VAO.');\n }\n } else {\n cellBO.getVAO().removeAttributeArray('normalMC');\n }\n if (\n cellBO.getProgram().isAttributeUsed('tcoordMC') &&\n cellBO.getCABO().getTCoordOffset()\n ) {\n if (\n !cellBO\n .getVAO()\n .addAttributeArray(\n cellBO.getProgram(),\n cellBO.getCABO(),\n 'tcoordMC',\n cellBO.getCABO().getTCoordOffset(),\n cellBO.getCABO().getStride(),\n model.context.FLOAT,\n cellBO.getCABO().getTCoordComponents(),\n false\n )\n ) {\n vtkErrorMacro('Error setting tcoordMC in shader VAO.');\n }\n } else {\n cellBO.getVAO().removeAttributeArray('tcoordMC');\n }\n if (\n cellBO.getProgram().isAttributeUsed('scalarColor') &&\n cellBO.getCABO().getColorComponents()\n ) {\n if (\n !cellBO\n .getVAO()\n .addAttributeArray(\n cellBO.getProgram(),\n cellBO.getCABO().getColorBO(),\n 'scalarColor',\n cellBO.getCABO().getColorOffset(),\n cellBO.getCABO().getColorBOStride(),\n model.context.UNSIGNED_BYTE,\n 4,\n true\n )\n ) {\n vtkErrorMacro('Error setting scalarColor in shader VAO.');\n }\n } else {\n cellBO.getVAO().removeAttributeArray('scalarColor');\n }\n\n cellBO.getAttributeUpdateTime().modified();\n }\n\n if (model.renderable.getNumberOfClippingPlanes()) {\n // add all the clipping planes\n let numClipPlanes = model.renderable.getNumberOfClippingPlanes();\n if (numClipPlanes > 6) {\n macro.vtkErrorMacro('OpenGL has a limit of 6 clipping planes');\n numClipPlanes = 6;\n }\n const planeEquations = [];\n for (let i = 0; i < numClipPlanes; i++) {\n const planeEquation = [];\n model.renderable.getClippingPlaneInDataCoords(\n actor.getMatrix(),\n i,\n planeEquation\n );\n\n for (let j = 0; j < 4; j++) {\n planeEquations.push(planeEquation[j]);\n }\n }\n cellBO.getProgram().setUniformi('numClipPlanes', numClipPlanes);\n cellBO.getProgram().setUniform4fv('clipPlanes', 6, planeEquations);\n }\n\n if (\n model.internalColorTexture &&\n cellBO.getProgram().isUniformUsed('texture1')\n ) {\n cellBO\n .getProgram()\n .setUniformi('texture1', model.internalColorTexture.getTextureUnit());\n }\n const tus = model.openGLActor.getActiveTextures();\n if (tus) {\n for (let index = 0; index < tus.length; ++index) {\n const tex = tus[index];\n const texUnit = tex.getTextureUnit();\n const tname = `texture${texUnit + 1}`;\n if (cellBO.getProgram().isUniformUsed(tname)) {\n cellBO.getProgram().setUniformi(tname, texUnit);\n }\n }\n }\n\n // handle depth requests\n if (model.haveSeenDepthRequest) {\n cellBO\n .getProgram()\n .setUniformi('depthRequest', model.renderDepth ? 1 : 0);\n }\n\n // handle coincident\n if (cellBO.getProgram().isUniformUsed('coffset')) {\n const cp = publicAPI.getCoincidentParameters(ren, actor);\n cellBO.getProgram().setUniformf('coffset', cp.offset);\n // cfactor isn't always used when coffset is.\n if (cellBO.getProgram().isUniformUsed('cfactor')) {\n cellBO.getProgram().setUniformf('cfactor', cp.factor);\n }\n }\n\n const selector = model.openGLRenderer.getSelector();\n if (selector && cellBO.getProgram().isUniformUsed('mapperIndex')) {\n if (selector.getCurrentPass() < PassTypes.ID_LOW24) {\n cellBO\n .getProgram()\n .setUniform3fArray('mapperIndex', selector.getPropColorValue());\n }\n }\n };\n\n publicAPI.setLightingShaderParameters = (cellBO, ren, actor) => {\n // for unlit and headlight there are no lighting parameters\n const lastLightComplexity = model.lastBoundBO.getReferenceByName(\n 'lastLightComplexity'\n );\n if (lastLightComplexity < 2) {\n return;\n }\n\n const program = cellBO.getProgram();\n\n // bind some light settings\n let numberOfLights = 0;\n\n const lights = ren.getLightsByReference();\n for (let index = 0; index < lights.length; ++index) {\n const light = lights[index];\n const status = light.getSwitch();\n if (status > 0.0) {\n const dColor = light.getColorByReference();\n const intensity = light.getIntensity();\n model.lightColor[0] = dColor[0] * intensity;\n model.lightColor[1] = dColor[1] * intensity;\n model.lightColor[2] = dColor[2] * intensity;\n // get required info from light\n const ld = light.getDirection();\n model.lightDirection[0] = ld[0];\n model.lightDirection[1] = ld[1];\n model.lightDirection[2] = ld[2];\n model.lightHalfAngle[0] = -model.lightDirection[0];\n model.lightHalfAngle[1] = -model.lightDirection[1];\n model.lightHalfAngle[2] = -model.lightDirection[2] + 1.0;\n vtkMath.normalize(model.lightDirection);\n program.setUniform3fArray(\n `lightColor${numberOfLights}`,\n model.lightColor\n );\n program.setUniform3fArray(\n `lightDirectionVC${numberOfLights}`,\n model.lightDirection\n );\n program.setUniform3fArray(\n `lightHalfAngleVC${numberOfLights}`,\n model.lightHalfAngle\n );\n numberOfLights++;\n }\n }\n\n // we are done unless we have positional lights\n if (lastLightComplexity < 3) {\n return;\n }\n\n // for lightkit case there are some parameters to set\n const cam = ren.getActiveCamera();\n const viewTF = cam.getViewMatrix();\n mat4.transpose(viewTF, viewTF);\n\n numberOfLights = 0;\n\n for (let index = 0; index < lights.length; ++index) {\n const light = lights[index];\n const status = light.getSwitch();\n if (status > 0.0) {\n const lp = light.getTransformedPosition();\n const np = vec3.fromValues(lp[0], lp[1], lp[2]);\n vec3.transformMat4(np, np, viewTF);\n program.setUniform3fArray(\n `lightAttenuation${numberOfLights}`,\n light.getAttenuationValuesByReference()\n );\n program.setUniformi(\n `lightPositional${numberOfLights}`,\n light.getPositional()\n );\n program.setUniformf(\n `lightExponent${numberOfLights}`,\n light.getExponent()\n );\n program.setUniformf(\n `lightConeAngle${numberOfLights}`,\n light.getConeAngle()\n );\n program.setUniform3fArray(`lightPositionVC${numberOfLights}`, [\n np[0],\n np[1],\n np[2],\n ]);\n numberOfLights++;\n }\n }\n };\n\n publicAPI.setCameraShaderParameters = (cellBO, ren, actor) => {\n const program = cellBO.getProgram();\n\n // // [WMVD]C == {world, model, view, display} coordinates\n // // E.g., WCDC == world to display coordinate transformation\n const keyMats = model.openGLCamera.getKeyMatrices(ren);\n const cam = ren.getActiveCamera();\n\n const camm = model.openGLCamera.getKeyMatrixTime().getMTime();\n const progm = program.getLastCameraMTime();\n\n if (progm !== camm) {\n if (actor.getIsIdentity()) {\n program.setUniformMatrix('MCDCMatrix', keyMats.wcdc);\n if (program.isUniformUsed('MCVCMatrix')) {\n program.setUniformMatrix('MCVCMatrix', keyMats.wcvc);\n }\n if (program.isUniformUsed('normalMatrix')) {\n program.setUniformMatrix3x3('normalMatrix', keyMats.normalMatrix);\n }\n }\n if (program.isUniformUsed('cameraParallel')) {\n program.setUniformi('cameraParallel', cam.getParallelProjection());\n }\n program.setLastCameraMTime(camm);\n }\n\n if (!actor.getIsIdentity()) {\n const actMats = model.openGLActor.getKeyMatrices();\n if (program.isUniformUsed('normalMatrix')) {\n const anorms = mat3.create();\n mat3.multiply(anorms, keyMats.normalMatrix, actMats.normalMatrix);\n program.setUniformMatrix3x3('normalMatrix', anorms);\n }\n mat4.identity(model.tmpMat4);\n mat4.multiply(model.tmpMat4, keyMats.wcdc, actMats.mcwc);\n program.setUniformMatrix('MCDCMatrix', model.tmpMat4);\n if (program.isUniformUsed('MCVCMatrix')) {\n mat4.multiply(model.tmpMat4, keyMats.wcvc, actMats.mcwc);\n program.setUniformMatrix('MCVCMatrix', model.tmpMat4);\n }\n // reset the cam mtime as actor modified the shader values\n program.setLastCameraMTime(0);\n }\n };\n\n publicAPI.setPropertyShaderParameters = (cellBO, ren, actor) => {\n const program = cellBO.getProgram();\n\n const ppty = actor.getProperty();\n\n const opacity = ppty.getOpacity();\n program.setUniformf('opacityUniform', opacity);\n\n const aColor = model.drawingEdges\n ? ppty.getEdgeColorByReference()\n : ppty.getAmbientColorByReference();\n program.setUniform3fArray('ambientColorUniform', aColor);\n program.setUniformf('ambient', ppty.getAmbient());\n\n const dColor = model.drawingEdges\n ? ppty.getEdgeColorByReference()\n : ppty.getDiffuseColorByReference();\n program.setUniform3fArray('diffuseColorUniform', dColor);\n program.setUniformf('diffuse', ppty.getDiffuse());\n\n // we are done unless we have lighting\n const lastLightComplexity = model.lastBoundBO.getReferenceByName(\n 'lastLightComplexity'\n );\n if (lastLightComplexity < 1) {\n return;\n }\n const sColor = ppty.getSpecularColorByReference();\n program.setUniform3fArray('specularColorUniform', sColor);\n program.setUniformf('specular', ppty.getSpecular());\n program.setUniformf('specularPowerUniform', ppty.getSpecularPower());\n\n // // now set the backface properties if we have them\n // if (actor.getBackfaceProperty() && !model.DrawingEdges)\n // {\n // ppty = actor.getBackfaceProperty();\n\n // let opacity = static_cast(ppty.getOpacity());\n // double *aColor = ppty.getAmbientColor();\n // double aIntensity = ppty.getAmbient(); // ignoring renderer ambient\n // let ambientColor[3] = {static_cast(aColor[0] * aIntensity),\n // static_cast(aColor[1] * aIntensity),\n // static_cast(aColor[2] * aIntensity)};\n // double *dColor = ppty.getDiffuseColor();\n // double dIntensity = ppty.getDiffuse();\n // let diffuseColor[3] = {static_cast(dColor[0] * dIntensity),\n // static_cast(dColor[1] * dIntensity),\n // static_cast(dColor[2] * dIntensity)};\n // double *sColor = ppty.getSpecularColor();\n // double sIntensity = ppty.getSpecular();\n // let specularColor[3] = {static_cast(sColor[0] * sIntensity),\n // static_cast(sColor[1] * sIntensity),\n // static_cast(sColor[2] * sIntensity)};\n // double specularPower = ppty.getSpecularPower();\n\n // program.SetUniformf('opacityUniformBF', opacity);\n // program.SetUniform3f('ambientColorUniformBF', ambientColor);\n // program.SetUniform3f('diffuseColorUniformBF', diffuseColor);\n // // we are done unless we have lighting\n // if (model.LastLightComplexity[&cellBO] < 1)\n // {\n // return;\n // }\n // program.SetUniform3f('specularColorUniformBF', specularColor);\n // program.SetUniformf('specularPowerUniformBF', specularPower);\n // }\n };\n\n publicAPI.renderPieceStart = (ren, actor) => {\n model.primitiveIDOffset = 0;\n\n if (model.openGLRenderer.getSelector()) {\n switch (model.openGLRenderer.getSelector().getCurrentPass()) {\n default:\n model.openGLRenderer.getSelector().renderProp(actor);\n }\n }\n\n // make sure the BOs are up to date\n publicAPI.updateBufferObjects(ren, actor);\n\n // If we are coloring by texture, then load the texture map.\n // Use Map as indicator, because texture hangs around.\n if (model.renderable.getColorTextureMap()) {\n model.internalColorTexture.activate();\n }\n\n // Bind the OpenGL, this is shared between the different primitive/cell types.\n model.lastBoundBO = null;\n };\n\n publicAPI.renderPieceDraw = (ren, actor) => {\n const representation = actor.getProperty().getRepresentation();\n\n const gl = model.context;\n\n const drawSurfaceWithEdges =\n actor.getProperty().getEdgeVisibility() &&\n representation === Representation.SURFACE;\n\n // for every primitive type\n for (let i = primTypes.Start; i < primTypes.End; i++) {\n // if there are entries\n const cabo = model.primitives[i].getCABO();\n if (cabo.getElementCount()) {\n // are we drawing edges\n model.drawingEdges =\n drawSurfaceWithEdges &&\n (i === primTypes.TrisEdges || i === primTypes.TriStripsEdges);\n publicAPI.updateShaders(model.primitives[i], ren, actor);\n const mode = publicAPI.getOpenGLMode(representation, i);\n gl.drawArrays(mode, 0, cabo.getElementCount());\n\n const stride =\n (mode === gl.POINTS ? 1 : 0) || (mode === gl.LINES ? 2 : 3);\n model.primitiveIDOffset += cabo.getElementCount() / stride;\n }\n }\n };\n\n publicAPI.getOpenGLMode = (rep, type) => {\n if (rep === Representation.POINTS || type === primTypes.Points) {\n return model.context.POINTS;\n }\n if (\n rep === Representation.WIREFRAME ||\n type === primTypes.Lines ||\n type === primTypes.TrisEdges ||\n type === primTypes.TriStripsEdges\n ) {\n return model.context.LINES;\n }\n return model.context.TRIANGLES;\n };\n\n publicAPI.renderPieceFinish = (ren, actor) => {\n if (model.LastBoundBO) {\n model.LastBoundBO.getVAO().release();\n }\n if (model.renderable.getColorTextureMap()) {\n model.internalColorTexture.deactivate();\n }\n };\n\n publicAPI.renderPiece = (ren, actor) => {\n // Make sure that we have been properly initialized.\n // if (ren.getRenderWindow().checkAbortStatus()) {\n // return;\n // }\n\n publicAPI.invokeEvent(StartEvent);\n if (!model.renderable.getStatic()) {\n model.renderable.update();\n }\n model.currentInput = model.renderable.getInputData();\n publicAPI.invokeEvent(EndEvent);\n\n if (!model.currentInput) {\n vtkErrorMacro('No input!');\n return;\n }\n\n // if there are no points then we are done\n if (\n !model.currentInput.getPoints ||\n !model.currentInput.getPoints().getNumberOfValues()\n ) {\n return;\n }\n\n // apply faceCulling\n const gl = model.context;\n const backfaceCulling = actor.getProperty().getBackfaceCulling();\n const frontfaceCulling = actor.getProperty().getFrontfaceCulling();\n if (!backfaceCulling && !frontfaceCulling) {\n model.openGLRenderWindow.disableCullFace();\n } else if (frontfaceCulling) {\n model.openGLRenderWindow.enableCullFace();\n gl.cullFace(gl.FRONT);\n } else {\n model.openGLRenderWindow.enableCullFace();\n gl.cullFace(gl.BACK);\n }\n\n publicAPI.renderPieceStart(ren, actor);\n publicAPI.renderPieceDraw(ren, actor);\n publicAPI.renderPieceFinish(ren, actor);\n };\n\n publicAPI.computeBounds = (ren, actor) => {\n if (!publicAPI.getInput()) {\n vtkMath.uninitializeBounds(model.bounds);\n return;\n }\n model.bounds = publicAPI.getInput().getBounds();\n };\n\n publicAPI.updateBufferObjects = (ren, actor) => {\n // Rebuild buffers if needed\n if (publicAPI.getNeedToRebuildBufferObjects(ren, actor)) {\n publicAPI.buildBufferObjects(ren, actor);\n }\n };\n\n publicAPI.getNeedToRebuildBufferObjects = (ren, actor) => {\n // first do a coarse check\n // Note that the actor's mtime includes it's properties mtime\n const vmtime = model.VBOBuildTime.getMTime();\n if (\n vmtime < publicAPI.getMTime() ||\n vmtime < model.renderable.getMTime() ||\n vmtime < actor.getMTime() ||\n vmtime < model.currentInput.getMTime()\n ) {\n return true;\n }\n return false;\n };\n\n publicAPI.buildBufferObjects = (ren, actor) => {\n const poly = model.currentInput;\n\n if (poly === null) {\n return;\n }\n\n model.renderable.mapScalars(poly, 1.0);\n const c = model.renderable.getColorMapColors();\n\n model.haveCellScalars = false;\n const scalarMode = model.renderable.getScalarMode();\n if (model.renderable.getScalarVisibility()) {\n // We must figure out how the scalars should be mapped to the polydata.\n if (\n (scalarMode === ScalarMode.USE_CELL_DATA ||\n scalarMode === ScalarMode.USE_CELL_FIELD_DATA ||\n scalarMode === ScalarMode.USE_FIELD_DATA ||\n !poly.getPointData().getScalars()) &&\n scalarMode !== ScalarMode.USE_POINT_FIELD_DATA &&\n c\n ) {\n model.haveCellScalars = true;\n }\n }\n\n // Do we have normals?\n let n =\n actor.getProperty().getInterpolation() !== Shading.FLAT\n ? poly.getPointData().getNormals()\n : null;\n if (n === null && poly.getCellData().getNormals()) {\n model.haveCellNormals = true;\n n = poly.getCellData().getNormals();\n }\n\n // rebuild the VBO if the data has changed we create a string for the VBO what\n // can change the VBO? points normals tcoords colors so what can change those?\n // the input data is clearly one as it can change all four items tcoords may\n // haveTextures or not colors may change based on quite a few mapping\n // parameters in the mapper\n\n const representation = actor.getProperty().getRepresentation();\n\n let tcoords = poly.getPointData().getTCoords();\n if (!model.openGLActor.getActiveTextures()) {\n tcoords = null;\n }\n\n // handle color mapping via texture\n if (model.renderable.getColorCoordinates()) {\n tcoords = model.renderable.getColorCoordinates();\n if (!model.internalColorTexture) {\n model.internalColorTexture = vtkOpenGLTexture.newInstance();\n }\n const tex = model.internalColorTexture;\n // the following 4 lines allow for NPOT textures\n tex.setMinificationFilter(Filter.NEAREST);\n tex.setMagnificationFilter(Filter.NEAREST);\n tex.setWrapS(Wrap.CLAMP_TO_EDGE);\n tex.setWrapT(Wrap.CLAMP_TO_EDGE);\n tex.setOpenGLRenderWindow(model.openGLRenderWindow);\n\n const input = model.renderable.getColorTextureMap();\n const ext = input.getExtent();\n const inScalars = input.getPointData().getScalars();\n tex.create2DFromRaw(\n ext[1] - ext[0] + 1,\n ext[3] - ext[2] + 1,\n inScalars.getNumberOfComponents(),\n inScalars.getDataType(),\n inScalars.getData()\n );\n tex.activate();\n tex.sendParameters();\n tex.deactivate();\n }\n\n const toString =\n `${poly.getMTime()}A${representation}B${poly.getMTime()}` +\n `C${n ? n.getMTime() : 1}D${c ? c.getMTime() : 1}` +\n `E${actor.getProperty().getEdgeVisibility()}` +\n `F${tcoords ? tcoords.getMTime() : 1}`;\n if (model.VBOBuildString !== toString) {\n // Build the VBOs\n const points = poly.getPoints();\n const options = {\n points,\n normals: n,\n tcoords,\n colors: c,\n cellOffset: 0,\n haveCellScalars: model.haveCellScalars,\n haveCellNormals: model.haveCellNormals,\n };\n options.cellOffset += model.primitives[primTypes.Points]\n .getCABO()\n .createVBO(poly.getVerts(), 'verts', representation, options);\n options.cellOffset += model.primitives[primTypes.Lines]\n .getCABO()\n .createVBO(poly.getLines(), 'lines', representation, options);\n options.cellOffset += model.primitives[primTypes.Tris]\n .getCABO()\n .createVBO(poly.getPolys(), 'polys', representation, options);\n options.cellOffset += model.primitives[primTypes.TriStrips]\n .getCABO()\n .createVBO(poly.getStrips(), 'strips', representation, options);\n\n const drawSurfaceWithEdges =\n actor.getProperty().getEdgeVisibility() &&\n representation === Representation.SURFACE;\n\n // if we have edge visibility build the edge VBOs\n if (drawSurfaceWithEdges) {\n model.primitives[primTypes.TrisEdges]\n .getCABO()\n .createVBO(poly.getPolys(), 'polys', Representation.WIREFRAME, {\n points,\n normals: n,\n tcoords: null,\n colors: null,\n cellOffset: 0,\n haveCellScalars: false,\n haveCellNormals: false,\n });\n model.primitives[primTypes.TriStripsEdges]\n .getCABO()\n .createVBO(poly.getStrips(), 'strips', Representation.WIREFRAME, {\n points,\n normals: n,\n tcoords: null,\n colors: null,\n cellOffset: 0,\n haveCellScalars: false,\n haveCellNormals: false,\n });\n } else {\n // otherwise free them\n model.primitives[primTypes.TrisEdges].releaseGraphicsResources(\n model.openGLRenderWindow\n );\n model.primitives[primTypes.TriStripsEdges].releaseGraphicsResources(\n model.openGLRenderWindow\n );\n }\n\n model.VBOBuildTime.modified();\n model.VBOBuildString = toString;\n }\n };\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n context: null,\n VBOBuildTime: 0,\n VBOBuildString: null,\n primitives: null,\n primTypes: null,\n shaderRebuildString: null,\n tmpMat4: null,\n ambientColor: [], // used internally\n diffuseColor: [], // used internally\n specularColor: [], // used internally\n lightColor: [], // used internally\n lightHalfAngle: [], // used internally\n lightDirection: [], // used internally\n lastHaveSeenDepthRequest: false,\n haveSeenDepthRequest: false,\n};\n\n// ----------------------------------------------------------------------------\n\nexport function extend(publicAPI, model, initialValues = {}) {\n Object.assign(model, DEFAULT_VALUES, initialValues);\n\n // Inheritance\n vtkViewNode.extend(publicAPI, model, initialValues);\n\n model.primitives = [];\n model.primTypes = primTypes;\n\n model.tmpMat4 = mat4.create();\n\n for (let i = primTypes.Start; i < primTypes.End; i++) {\n model.primitives[i] = vtkHelper.newInstance();\n model.primitives[i].setPrimitiveType(i);\n model.primitives[i].set(\n { lastLightComplexity: 0, lastLightCount: 0, lastSelectionPass: -1 },\n true\n );\n }\n\n // Build VTK API\n macro.setGet(publicAPI, model, ['context']);\n\n model.VBOBuildTime = {};\n macro.obj(model.VBOBuildTime, { mtime: 0 });\n\n // Object methods\n vtkOpenGLPolyDataMapper(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\n\nexport const newInstance = macro.newInstance(extend, 'vtkOpenGLPolyDataMapper');\n\n// ----------------------------------------------------------------------------\n\nexport default { newInstance, extend };\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/Sources/Rendering/OpenGL/PolyDataMapper/index.js","import macro from 'vtk.js/Sources/macro';\nimport vtkCellArrayBufferObject from 'vtk.js/Sources/Rendering/OpenGL/CellArrayBufferObject';\nimport vtkShaderProgram from 'vtk.js/Sources/Rendering/OpenGL/ShaderProgram';\nimport vtkVertexArrayObject from 'vtk.js/Sources/Rendering/OpenGL/VertexArrayObject';\n\n// ----------------------------------------------------------------------------\n// vtkOpenGLHelper methods\n// ----------------------------------------------------------------------------\n\nfunction vtkOpenGLHelper(publicAPI, model) {\n // Set our className\n model.classHierarchy.push('vtkOpenGLHelper');\n\n publicAPI.setOpenGLRenderWindow = (win) => {\n model.program.setContext(win.getContext());\n model.VAO.setOpenGLRenderWindow(win);\n model.CABO.setOpenGLRenderWindow(win);\n };\n\n publicAPI.releaseGraphicsResources = (oglwin) => {\n model.VAO.releaseGraphicsResources();\n model.CABO.releaseGraphicsResources();\n model.CABO.setElementCount(0);\n };\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n program: null,\n shaderSourceTime: null,\n VAO: null,\n attributeUpdateTime: null,\n CABO: null,\n primitiveType: 0,\n};\n\n// ----------------------------------------------------------------------------\n\nexport function extend(publicAPI, model, initialValues = {}) {\n Object.assign(model, DEFAULT_VALUES, initialValues);\n\n // Build VTK API\n macro.obj(publicAPI, model);\n\n model.shaderSourceTime = {};\n macro.obj(model.shaderSourceTime);\n\n model.attributeUpdateTime = {};\n macro.obj(model.attributeUpdateTime);\n\n macro.setGet(publicAPI, model, [\n 'program',\n 'shaderSourceTime',\n 'VAO',\n 'attributeUpdateTime',\n 'CABO',\n 'primitiveType',\n ]);\n\n model.program = vtkShaderProgram.newInstance();\n model.VAO = vtkVertexArrayObject.newInstance();\n model.CABO = vtkCellArrayBufferObject.newInstance();\n\n // Object methods\n vtkOpenGLHelper(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\n\nexport const newInstance = macro.newInstance(extend);\n\n// ----------------------------------------------------------------------------\n\nexport default { newInstance, extend };\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/Sources/Rendering/OpenGL/Helper/index.js","module.exports = \"//VTK::System::Dec\\n\\n/*=========================================================================\\n\\n Program: Visualization Toolkit\\n Module: vtkPolyDataFS.glsl\\n\\n Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n All rights reserved.\\n See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n\\n This software is distributed WITHOUT ANY WARRANTY; without even\\n the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n PURPOSE. See the above copyright notice for more information.\\n\\n=========================================================================*/\\n// Template for the polydata mappers fragment shader\\n\\nuniform int PrimitiveIDOffset;\\n\\n// VC position of this fragment\\n//VTK::PositionVC::Dec\\n\\n// optional color passed in from the vertex shader, vertexColor\\n//VTK::Color::Dec\\n\\n// optional surface normal declaration\\n//VTK::Normal::Dec\\n\\n// extra lighting parameters\\n//VTK::Light::Dec\\n\\n// Texture coordinates\\n//VTK::TCoord::Dec\\n\\n// picking support\\n//VTK::Picking::Dec\\n\\n// Depth Peeling Support\\n//VTK::DepthPeeling::Dec\\n\\n// clipping plane vars\\n//VTK::Clip::Dec\\n\\n// the output of this shader\\n//VTK::Output::Dec\\n\\n// Apple Bug\\n//VTK::PrimID::Dec\\n\\n// handle coincident offsets\\n//VTK::Coincident::Dec\\n\\n//VTK::ZBuffer::Dec\\n\\nvoid main()\\n{\\n // VC position of this fragment. This should not branch/return/discard.\\n //VTK::PositionVC::Impl\\n\\n // Place any calls that require uniform flow (e.g. dFdx) here.\\n //VTK::UniformFlow::Impl\\n\\n // Set gl_FragDepth here (gl_FragCoord.z by default)\\n //VTK::Depth::Impl\\n\\n // Early depth peeling abort:\\n //VTK::DepthPeeling::PreColor\\n\\n // Apple Bug\\n //VTK::PrimID::Impl\\n\\n //VTK::Clip::Impl\\n\\n //VTK::Color::Impl\\n\\n // Generate the normal if we are not passed in one\\n //VTK::Normal::Impl\\n\\n //VTK::Light::Impl\\n\\n //VTK::TCoord::Impl\\n\\n if (gl_FragData[0].a <= 0.0)\\n {\\n discard;\\n }\\n\\n //VTK::DepthPeeling::Impl\\n\\n //VTK::Picking::Impl\\n\\n // handle coincident offsets\\n //VTK::Coincident::Impl\\n\\n //VTK::ZBuffer::Impl\\n}\\n\"\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/Sources/Rendering/OpenGL/glsl/vtkPolyDataFS.glsl","// Top level file is just a mixin of submodules & constants\n'use strict';\n\nvar assign = require('./lib/utils/common').assign;\n\nvar deflate = require('./lib/deflate');\nvar inflate = require('./lib/inflate');\nvar constants = require('./lib/zlib/constants');\n\nvar pako = {};\n\nassign(pako, deflate, inflate, constants);\n\nmodule.exports = pako;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/pako/index.js\n// module id = 108\n// module chunks = 1","'use strict';\n\nif (!process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = nextTick;\n} else {\n module.exports = process.nextTick;\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/process-nextick-args/index.js\n// module id = 109\n// module chunks = 1","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/safe-buffer/index.js\n// module id = 110\n// module chunks = 1","'use strict';\n\nmodule.exports = {\n /**\n * True if this is running in Nodejs, will be undefined in a browser.\n * In a browser, browserify won't include this file and the whole module\n * will be resolved an empty object.\n */\n isNode : typeof Buffer !== \"undefined\",\n /**\n * Create a new nodejs Buffer.\n * @param {Object} data the data to pass to the constructor.\n * @param {String} encoding the encoding to use.\n * @return {Buffer} a new Buffer.\n */\n newBuffer : function(data, encoding){\n return new Buffer(data, encoding);\n },\n /**\n * Find out if an object is a Buffer.\n * @param {Object} b the object to test.\n * @return {Boolean} true if the object is a Buffer, false otherwise.\n */\n isBuffer : function(b){\n return Buffer.isBuffer(b);\n },\n\n isStream : function (obj) {\n return obj &&\n typeof obj.on === \"function\" &&\n typeof obj.pause === \"function\" &&\n typeof obj.resume === \"function\";\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/jszip/lib/nodejsUtils.js\n// module id = 111\n// module chunks = 1","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\nif(typeof __g == 'number')__g = global; // eslint-disable-line no-undef\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/jszip/node_modules/core-js/library/modules/_global.js\n// module id = 112\n// module chunks = 1","import * as wait from 'helpers/wait';\nimport * as error from 'helpers/error';\n\nexport function request(uri, method, data, options) {\n var request = {\n url: uri,\n type: method,\n contentType: 'application/json',\n accepts: 'application/json',\n cache: false,\n dataType: 'json',\n data: JSON.stringify(data),\n };\n\n var d = { cb: [], error_cb: [], fd: false, fe: false, d: null };\n console.log(request);\n\n if (options) {\n if (options.cache) request.cache = options.cache;\n }\n\n function success(data) {\n wait.hide();\n if (data.error !== undefined && data.error != 'none') {\n error.show(data.error);\n return;\n }\n for (var i in d.cb) {\n d.cb[i](data);\n }\n d.d = data;\n }\n\n function failure() {\n d.fe = true;\n console.log('Got a failure');\n wait.hide();\n console.log(d.error_cb);\n for (var i in d.error_cb) {\n d.error_cb[i]();\n }\n }\n\n request.error = failure;\n\n d.done = function(cb) {\n if (d.fd) {\n cb(d.d);\n return;\n }\n d.cb.push(cb);\n };\n\n d.error = function(cb) {\n if (d.fe) {\n cb();\n }\n d.error_cb.push(cb);\n };\n\n wait.show();\n let req = $.ajax(request);\n\n req.done(success);\n req.fail(failure);\n\n return d;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./external_modules/helpers/ajax.js","import sprintf from 'sprintf';\nimport 'bootstrap';\n\nimport * as multi from 'helpers/multimodal';\n\nrequire.resolve('./helper.less');\n\nvar code = [\n '
',\n '
',\n '
',\n '

%(process_msg)s

',\n '
',\n '
',\n '
',\n '
',\n '
',\n '
',\n '
',\n '
',\n '
',\n].join('');\n\ncode = sprintf(code, { process_msg: 'Processing...' });\nvar pleaseWaitDiv = $(code);\nvar pleaseWaitDivInit = $(code);\nvar recurse = 0;\n\nfunction show(immediate) {\n if (recurse > 0) {\n recurse++;\n return;\n }\n recurse = 1;\n multi.ensure(\n pleaseWaitDiv,\n function() {\n pleaseWaitDiv.modal();\n },\n immediate,\n function() {\n pleaseWaitDiv.modal('hide');\n recurse--;\n }\n );\n}\n\nfunction hide(force) {\n multi.end(pleaseWaitDiv);\n}\n\nfunction showInit(immediate) {\n multi.ensure(\n pleaseWaitDivInit,\n function() {\n pleaseWaitDivInit.modal();\n },\n immediate\n );\n}\n\nfunction hideInit(force) {\n multi.end(pleaseWaitDivInit);\n}\n\nexport { show, hide, showInit, hideInit };\n\n\n\n// WEBPACK FOOTER //\n// ./external_modules/helpers/wait.js","var scope = (typeof global !== \"undefined\" && global) ||\n (typeof self !== \"undefined\" && self) ||\n window;\nvar apply = Function.prototype.apply;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n this._clearFn.call(scope, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function(item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n clearTimeout(item._idleTimeoutId);\n\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\n// setimmediate attaches itself to the global object\nrequire(\"setimmediate\");\n// On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\nexports.setImmediate = (typeof self !== \"undefined\" && self.setImmediate) ||\n (typeof global !== \"undefined\" && global.setImmediate) ||\n (this && this.setImmediate);\nexports.clearImmediate = (typeof self !== \"undefined\" && self.clearImmediate) ||\n (typeof global !== \"undefined\" && global.clearImmediate) ||\n (this && this.clearImmediate);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/timers-browserify/main.js\n// module id = 165\n// module chunks = 1","import { vec3, mat4 } from 'gl-matrix';\nimport macro from 'vtk.js/Sources/macro';\nimport vtkProp3D from 'vtk.js/Sources/Rendering/Core/Prop3D';\nimport vtkProperty from 'vtk.js/Sources/Rendering/Core/Property';\n\nconst { vtkDebugMacro } = macro;\n\n// ----------------------------------------------------------------------------\n// vtkActor methods\n// ----------------------------------------------------------------------------\n\nfunction vtkActor(publicAPI, model) {\n // Set our className\n model.classHierarchy.push('vtkActor');\n\n // Capture 'parentClass' api for internal use\n const superClass = Object.assign({}, publicAPI);\n\n publicAPI.getActors = () => publicAPI;\n\n publicAPI.getIsOpaque = () => {\n if (model.forceOpaque) {\n return true;\n }\n if (model.forceTranslucent) {\n return false;\n }\n // make sure we have a property\n if (!model.property) {\n // force creation of a property\n publicAPI.getProperty();\n }\n\n let isOpaque = model.property.getOpacity() >= 1.0;\n\n // are we using an opaque texture, if any?\n isOpaque = isOpaque && (!model.texture || !model.texture.isTranslucent());\n\n // are we using an opaque scalar array, if any?\n isOpaque = isOpaque && (!model.mapper || model.mapper.getIsOpaque());\n\n return isOpaque;\n };\n\n publicAPI.hasTranslucentPolygonalGeometry = () => {\n if (model.mapper === null) {\n return false;\n }\n // make sure we have a property\n if (model.property === null) {\n // force creation of a property\n publicAPI.setProperty(publicAPI.makeProperty());\n }\n\n // is this actor opaque ?\n return !publicAPI.getIsOpaque();\n };\n\n publicAPI.makeProperty = vtkProperty.newInstance;\n\n publicAPI.getProperty = () => {\n if (model.property === null) {\n model.property = publicAPI.makeProperty();\n }\n return model.property;\n };\n\n publicAPI.getBounds = () => {\n if (model.mapper === null) {\n return model.bounds;\n }\n\n // Check for the special case when the mapper's bounds are unknown\n const bds = model.mapper.getBounds();\n if (!bds || bds.length !== 6) {\n return bds;\n }\n\n // Check for the special case when the actor is empty.\n if (bds[0] > bds[1]) {\n model.mapperBounds = bds.concat(); // copy the mapper's bounds\n model.bounds = [1, -1, 1, -1, 1, -1];\n model.boundsMTime.modified();\n return bds;\n }\n\n // Check if we have cached values for these bounds - we cache the\n // values returned by model.mapper.getBounds() and we store the time\n // of caching. If the values returned this time are different, or\n // the modified time of this class is newer than the cached time,\n // then we need to rebuild.\n if (\n !model.mapperBounds ||\n bds[0] !== model.mapperBounds[0] ||\n bds[1] !== model.mapperBounds[1] ||\n bds[2] !== model.mapperBounds[2] ||\n bds[3] !== model.mapperBounds[3] ||\n bds[4] !== model.mapperBounds[4] ||\n bds[5] !== model.mapperBounds[5] ||\n publicAPI.getMTime() > model.boundsMTime.getMTime()\n ) {\n vtkDebugMacro('Recomputing bounds...');\n model.mapperBounds = bds.concat(); // copy the mapper's bounds\n const bbox = [\n vec3.fromValues(bds[1], bds[3], bds[5]),\n vec3.fromValues(bds[1], bds[2], bds[5]),\n vec3.fromValues(bds[0], bds[2], bds[5]),\n vec3.fromValues(bds[0], bds[3], bds[5]),\n vec3.fromValues(bds[1], bds[3], bds[4]),\n vec3.fromValues(bds[1], bds[2], bds[4]),\n vec3.fromValues(bds[0], bds[2], bds[4]),\n vec3.fromValues(bds[0], bds[3], bds[4]),\n ];\n\n publicAPI.computeMatrix();\n const tmp4 = mat4.create();\n mat4.transpose(tmp4, model.matrix);\n bbox.forEach((pt) => vec3.transformMat4(pt, pt, tmp4));\n\n /* eslint-disable no-multi-assign */\n model.bounds[0] = model.bounds[2] = model.bounds[4] = Number.MAX_VALUE;\n model.bounds[1] = model.bounds[3] = model.bounds[5] = -Number.MAX_VALUE;\n /* eslint-enable no-multi-assign */\n\n model.bounds = model.bounds.map(\n (d, i) =>\n i % 2 === 0\n ? bbox.reduce((a, b) => (a > b[i / 2] ? b[i / 2] : a), d)\n : bbox.reduce(\n (a, b) => (a < b[(i - 1) / 2] ? b[(i - 1) / 2] : a),\n d\n )\n );\n\n model.boundsMTime.modified();\n }\n return model.bounds;\n };\n\n publicAPI.getMTime = () => {\n let mt = superClass.getMTime();\n if (model.property !== null) {\n const time = model.property.getMTime();\n mt = time > mt ? time : mt;\n }\n\n if (model.backfaceProperty !== null) {\n const time = model.backfaceProperty.getMTime();\n mt = time > mt ? time : mt;\n }\n\n return mt;\n };\n\n publicAPI.getRedrawMTime = () => {\n let mt = model.mtime;\n if (model.mapper !== null) {\n let time = model.mapper.getMTime();\n mt = time > mt ? time : mt;\n if (model.mapper.getInput() !== null) {\n // FIXME !!! getInputAlgorithm / getInput\n model.mapper.getInputAlgorithm().update();\n time = model.mapper.getInput().getMTime();\n mt = time > mt ? time : mt;\n }\n }\n return mt;\n };\n\n publicAPI.getSupportsSelection = () =>\n model.mapper ? model.mapper.getSupportsSelection() : false;\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n mapper: null,\n property: null,\n backfaceProperty: null,\n\n forceOpaque: false,\n forceTranslucent: false,\n\n bounds: [1, -1, 1, -1, 1, -1],\n};\n\n// ----------------------------------------------------------------------------\n\nexport function extend(publicAPI, model, initialValues = {}) {\n Object.assign(model, DEFAULT_VALUES, initialValues);\n\n // Inheritance\n vtkProp3D.extend(publicAPI, model, initialValues);\n\n // vtkTimeStamp\n model.boundsMTime = {};\n macro.obj(model.boundsMTime);\n\n // Build VTK API\n macro.set(publicAPI, model, ['property']);\n macro.setGet(publicAPI, model, [\n 'backfaceProperty',\n 'forceOpaque',\n 'forceTranslucent',\n 'mapper',\n ]);\n\n // Object methods\n vtkActor(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\n\nexport const newInstance = macro.newInstance(extend, 'vtkActor');\n\n// ----------------------------------------------------------------------------\n\nexport default { newInstance, extend };\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/Sources/Rendering/Core/Actor/index.js","import macro from 'vtk.js/Sources/macro';\nimport vtkPlane from 'vtk.js/Sources/Common/DataModel/Plane';\n\nconst INIT_BOUNDS = [\n Number.MAX_VALUE,\n -Number.MAX_VALUE, // X\n Number.MAX_VALUE,\n -Number.MAX_VALUE, // Y\n Number.MAX_VALUE,\n -Number.MAX_VALUE, // Z\n];\n\n// ----------------------------------------------------------------------------\n// Global methods\n// ----------------------------------------------------------------------------\n\nfunction isValid(bounds) {\n return (\n bounds[0] <= bounds[1] && bounds[2] <= bounds[3] && bounds[4] <= bounds[5]\n );\n}\n\nfunction getCenter(bounds) {\n return [\n 0.5 * (bounds[0] + bounds[1]),\n 0.5 * (bounds[2] + bounds[3]),\n 0.5 * (bounds[4] + bounds[5]),\n ];\n}\n\nfunction getLength(bounds, index) {\n return bounds[index * 2 + 1] - bounds[index * 2];\n}\n\nfunction getLengths(bounds) {\n return [getLength(bounds, 0), getLength(bounds, 1), getLength(bounds, 2)];\n}\n\nfunction getXRange(bounds) {\n return bounds.slice(0, 2);\n}\n\nfunction getYRange(bounds) {\n return bounds.slice(2, 4);\n}\n\nfunction getZRange(bounds) {\n return bounds.slice(4, 6);\n}\n\nfunction getMaxLength(bounds) {\n const l = getLengths(bounds);\n if (l[0] > l[1]) {\n if (l[0] > l[2]) {\n return l[0];\n }\n return l[2];\n } else if (l[1] > l[2]) {\n return l[1];\n }\n return l[2];\n}\n\nfunction getDiagonalLength(bounds) {\n if (isValid(bounds)) {\n const l = getLengths(bounds);\n return Math.sqrt(l[0] * l[0] + l[1] * l[1] + l[2] * l[2]);\n }\n return null;\n}\n\nfunction oppositeSign(a, b) {\n return (a <= 0 && b >= 0) || (a >= 0 && b <= 0);\n}\n\nfunction getCorners(bounds, corners) {\n let count = 0;\n for (let ix = 0; ix < 2; ix++) {\n for (let iy = 2; iy < 4; iy++) {\n for (let iz = 4; iz < 6; iz++) {\n corners[count] = [bounds[ix], bounds[iy], bounds[iz]];\n count++;\n }\n }\n }\n}\n\n// ----------------------------------------------------------------------------\n// Static API\n// ----------------------------------------------------------------------------\n\nexport const STATIC = {\n isValid,\n getCenter,\n getLength,\n getLengths,\n getMaxLength,\n getDiagonalLength,\n getXRange,\n getYRange,\n getZRange,\n getCorners,\n INIT_BOUNDS,\n};\n\n// ----------------------------------------------------------------------------\n// vtkBoundingBox methods\n// ----------------------------------------------------------------------------\n\nfunction vtkBoundingBox(publicAPI, model) {\n // Set our className\n model.classHierarchy.push('vtkBoundingBox');\n\n publicAPI.clone = () => {\n const bounds = [].concat(model.bounds);\n /* eslint-disable no-use-before-define */\n return newInstance({ bounds });\n /* eslint-enable no-use-before-define */\n };\n\n publicAPI.equals = (other) => {\n const a = model.bounds;\n const b = other.getBounds();\n return (\n a[0] === b[0] &&\n a[1] === b[1] &&\n a[2] === b[2] &&\n a[3] === b[3] &&\n a[4] === b[4] &&\n a[5] === b[5]\n );\n };\n\n publicAPI.setMinPoint = (x, y, z) => {\n const [xMin, xMax, yMin, yMax, zMin, zMax] = model.bounds;\n model.bounds = [\n x,\n x > xMax ? x : xMax,\n y,\n y > yMax ? y : yMax,\n z,\n z > zMax ? z : zMax,\n ];\n\n return xMin !== x || yMin !== y || zMin !== z;\n };\n\n publicAPI.setMaxPoint = (x, y, z) => {\n const [xMin, xMax, yMin, yMax, zMin, zMax] = model.bounds;\n model.bounds = [\n x < xMin ? x : xMin,\n x,\n y < yMin ? y : yMin,\n y,\n z < zMin ? z : zMin,\n z,\n ];\n\n return xMax !== x || yMax !== y || zMax !== z;\n };\n\n publicAPI.addPoint = (...xyz) => {\n model.bounds = model.bounds.map((value, index) => {\n if (index % 2 === 0) {\n const idx = index / 2;\n return value < xyz[idx] ? value : xyz[idx];\n }\n const idx = (index - 1) / 2;\n return value > xyz[idx] ? value : xyz[idx];\n });\n };\n\n publicAPI.addBounds = (xMin, xMax, yMin, yMax, zMin, zMax) => {\n const [_xMin, _xMax, _yMin, _yMax, _zMin, _zMax] = model.bounds;\n model.bounds = [\n Math.min(xMin, _xMin),\n Math.max(xMax, _xMax),\n Math.min(yMin, _yMin),\n Math.max(yMax, _yMax),\n Math.min(zMin, _zMin),\n Math.max(zMax, _zMax),\n ];\n };\n\n publicAPI.addBox = (other) => {\n publicAPI.addBounds(...other.getBounds());\n };\n\n publicAPI.isValid = () => isValid(model.bounds);\n\n publicAPI.intersect = (bbox) => {\n if (!(publicAPI.isValid() && bbox.isValid())) {\n return false;\n }\n\n const newBounds = [0, 0, 0, 0, 0, 0];\n const bBounds = bbox.getBounds();\n let intersects;\n for (let i = 0; i < 3; i++) {\n intersects = false;\n if (\n bBounds[i * 2] >= model.bounds[i * 2] &&\n bBounds[i * 2] <= model.bounds[i * 2 + 1]\n ) {\n intersects = true;\n newBounds[i * 2] = bBounds[i * 2];\n } else if (\n model.bounds[i * 2] >= bBounds[i * 2] &&\n model.bounds[i * 2] <= bBounds[i * 2 + 1]\n ) {\n intersects = true;\n newBounds[i * 2] = model.bounds[i * 2];\n }\n\n if (\n bBounds[i * 2 + 1] >= model.bounds[i * 2] &&\n bBounds[i * 2 + 1] <= model.bounds[i * 2 + 1]\n ) {\n intersects = true;\n newBounds[i * 2 + 1] = bbox.MaxPnt[i];\n } else if (\n model.bounds[i * 2 + 1] >= bbox.MinPnt[i * 2] &&\n model.bounds[i * 2 + 1] <= bbox.MaxPnt[i * 2 + 1]\n ) {\n intersects = true;\n newBounds[i * 2 + 1] = model.bounds[i * 2 + 1];\n }\n\n if (!intersects) {\n return false;\n }\n }\n\n // OK they did intersect - set the box to be the result\n model.bounds = newBounds;\n return true;\n };\n\n publicAPI.intersects = (bbox) => {\n if (!(publicAPI.isValid() && bbox.isValid())) {\n return false;\n }\n const bBounds = bbox.getBounds();\n /* eslint-disable no-continue */\n for (let i = 0; i < 3; i++) {\n if (\n bBounds[i * 2] >= model.bounds[i * 2] &&\n bBounds[i * 2] <= model.bounds[i * 2 + 1]\n ) {\n continue;\n } else if (\n model.bounds[i * 2] >= bBounds[i * 2] &&\n model.bounds[i * 2] <= bBounds[i * 2 + 1]\n ) {\n continue;\n }\n\n if (\n bBounds[i * 2 + 1] >= model.bounds[i * 2] &&\n bBounds[i * 2 + 1] <= model.bounds[i * 2 + 1]\n ) {\n continue;\n } else if (\n model.bounds[i * 2 + 1] >= bbox.MinPnt[i * 2] &&\n model.bounds[i * 2 + 1] <= bbox.MaxPnt[i * 2 + 1]\n ) {\n continue;\n }\n return false;\n }\n /* eslint-enable no-continue */\n\n return true;\n };\n\n publicAPI.intersectPlane = (origin, normal) => {\n // Index[0..2] represents the order of traversing the corners of a cube\n // in (x,y,z), (y,x,z) and (z,x,y) ordering, respectively\n const index = [\n [0, 1, 2, 3, 4, 5, 6, 7],\n [0, 1, 4, 5, 2, 3, 6, 7],\n [0, 2, 4, 6, 1, 3, 5, 7],\n ];\n\n // stores the signed distance to a plane\n const d = [0, 0, 0, 0, 0, 0, 0, 0];\n let idx = 0;\n for (let ix = 0; ix < 2; ix++) {\n for (let iy = 2; iy < 4; iy++) {\n for (let iz = 4; iz < 6; iz++) {\n const x = [model.bounds[ix], model.bounds[iy], model.bounds[iz]];\n d[idx++] = vtkPlane.evaluate(normal, origin, x);\n }\n }\n }\n\n let dir = 2;\n while (dir--) {\n // in each direction, we test if the vertices of two orthogonal faces\n // are on either side of the plane\n if (\n oppositeSign(d[index[dir][0]], d[index[dir][4]]) &&\n oppositeSign(d[index[dir][1]], d[index[dir][5]]) &&\n oppositeSign(d[index[dir][2]], d[index[dir][6]]) &&\n oppositeSign(d[index[dir][3]], d[index[dir][7]])\n ) {\n break;\n }\n }\n\n if (dir < 0) {\n return false;\n }\n\n const sign = Math.sign(normal[dir]);\n const size = Math.abs(\n (model.bounds[dir * 2 + 1] - model.bounds[dir * 2]) * normal[dir]\n );\n let t = sign > 0 ? 1 : 0;\n /* eslint-disable no-continue */\n for (let i = 0; i < 4; i++) {\n if (size === 0) {\n continue; // shouldn't happen\n }\n const ti = Math.abs(d[index[dir][i]]) / size;\n if (sign > 0 && ti < t) {\n t = ti;\n }\n\n if (sign < 0 && ti > t) {\n t = ti;\n }\n }\n /* eslint-enable no-continue */\n const bound =\n (1.0 - t) * model.bounds[dir * 2] + t * model.bounds[dir * 2 + 1];\n\n if (sign > 0) {\n model.bounds[dir * 2] = bound;\n } else {\n model.bounds[dir * 2 + 1] = bound;\n }\n\n return true;\n };\n\n publicAPI.containsPoint = (x, y, z) => {\n if (x < model.bounds[0] || x > model.bounds[1]) {\n return false;\n }\n\n if (y < model.bounds[2] || y > model.bounds[3]) {\n return false;\n }\n\n if (z < model.bounds[4] || z > model.bounds[5]) {\n return false;\n }\n\n return true;\n };\n\n publicAPI.getMinPoint = () => [\n model.bounds[0],\n model.bounds[2],\n model.bounds[4],\n ];\n publicAPI.getMaxPoint = () => [\n model.bounds[1],\n model.bounds[3],\n model.bounds[5],\n ];\n publicAPI.getBound = (index) => model.bound[index];\n\n publicAPI.contains = (bbox) => {\n // if either box is not valid or they don't intersect\n if (!publicAPI.intersects(bbox)) {\n return false;\n }\n\n if (!publicAPI.containsPoint(...bbox.getMinPoint())) {\n return false;\n }\n\n if (!publicAPI.containsPoint(...bbox.getMaxPoint())) {\n return 0;\n }\n\n return true;\n };\n\n publicAPI.getCenter = () => getCenter(model.bounds);\n publicAPI.getLength = (index) => getLength(model.bounds, index);\n publicAPI.getLengths = () => getLengths(model.bounds);\n publicAPI.getMaxLength = () => getMaxLength(model.bounds);\n publicAPI.getDiagonalLength = () => getDiagonalLength(model.bounds);\n\n publicAPI.reset = () => publicAPI.setBounds([].concat(INIT_BOUNDS));\n\n publicAPI.inflate = (delta) => {\n model.bounds = model.bounds.map((value, index) => {\n if (index % 2 === 0) {\n return value - delta;\n }\n return value + delta;\n });\n };\n\n publicAPI.getCorners = () => {\n getCorners(model.bounds, model.corners);\n return model.corners;\n };\n\n publicAPI.scale = (sx, sy, sz) => {\n if (publicAPI.isValid()) {\n const newBounds = [].concat(model.bounds);\n if (sx >= 0.0) {\n newBounds[0] *= sx;\n newBounds[1] *= sx;\n } else {\n newBounds[0] = sx * model.bounds[1];\n newBounds[1] = sx * model.bounds[0];\n }\n\n if (sy >= 0.0) {\n newBounds[2] *= sy;\n newBounds[3] *= sy;\n } else {\n newBounds[2] = sy * model.bounds[3];\n newBounds[3] = sy * model.bounds[2];\n }\n\n if (sz >= 0.0) {\n newBounds[4] *= sz;\n newBounds[5] *= sz;\n } else {\n newBounds[4] = sz * model.bounds[5];\n newBounds[5] = sz * model.bounds[4];\n }\n\n model.bounds = newBounds;\n return true;\n }\n return false;\n };\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n type: 'vtkBoundingBox',\n bounds: [].concat(INIT_BOUNDS),\n corners: [],\n};\n\n// ----------------------------------------------------------------------------\n\nexport function extend(publicAPI, model, initialValues = {}) {\n Object.assign(model, DEFAULT_VALUES, initialValues);\n\n // Object methods\n macro.obj(publicAPI, model);\n macro.setGet(publicAPI, model, ['bounds']);\n vtkBoundingBox(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\n\nexport const newInstance = macro.newInstance(extend, 'vtkBoundingBox');\n\n// ----------------------------------------------------------------------------\n\nexport default Object.assign({ newInstance, extend }, STATIC);\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/Sources/Common/DataModel/BoundingBox/index.js","import macro from 'vtk.js/Sources/macro';\nimport Constants from 'vtk.js/Sources/Rendering/Core/Property/Constants';\n\nconst { Representation, Interpolation } = Constants;\n\nfunction notImplemented(method) {\n return () => macro.vtkErrorMacro(`vtkProperty::${method} - NOT IMPLEMENTED`);\n}\n\n// ----------------------------------------------------------------------------\n// vtkProperty methods\n// ----------------------------------------------------------------------------\n\nfunction vtkProperty(publicAPI, model) {\n // Set our className\n model.classHierarchy.push('vtkProperty');\n\n publicAPI.setColor = (r, g, b) => {\n if (model.color[0] !== r || model.color[1] !== g || model.color[2] !== b) {\n model.color[0] = r;\n model.color[1] = g;\n model.color[2] = b;\n publicAPI.modified();\n }\n\n publicAPI.setDiffuseColor(model.color);\n publicAPI.setAmbientColor(model.color);\n publicAPI.setSpecularColor(model.color);\n };\n\n publicAPI.computeCompositeColor = notImplemented('ComputeCompositeColor');\n publicAPI.getColor = () => {\n // Inline computeCompositeColor\n let norm = 0.0;\n if (model.ambient + model.diffuse + model.specular > 0) {\n norm = 1.0 / (model.ambient + model.diffuse + model.specular);\n }\n\n for (let i = 0; i < 3; i++) {\n model.color[i] =\n norm *\n (model.ambient * model.ambientColor[i] +\n model.diffuse * model.diffuseColor[i] +\n model.specular * model.specularColor[i]);\n }\n\n return [].concat(model.color);\n };\n\n publicAPI.addShaderVariable = notImplemented('AddShaderVariable');\n\n publicAPI.setInterpolationToFlat = () =>\n publicAPI.setInterpolation(Interpolation.FLAT);\n publicAPI.setInterpolationToGouraud = () =>\n publicAPI.setInterpolation(Interpolation.GOURAUD);\n publicAPI.setInterpolationToPhong = () =>\n publicAPI.setInterpolation(Interpolation.PHONG);\n publicAPI.getInterpolationAsString = () =>\n macro.enumToString(Interpolation, model.interpolation);\n\n publicAPI.setRepresentationToWireframe = () =>\n publicAPI.setRepresentation(Representation.WIREFRAME);\n publicAPI.setRepresentationToSurface = () =>\n publicAPI.setRepresentation(Representation.SURFACE);\n publicAPI.setRepresentationToPoints = () =>\n publicAPI.setRepresentation(Representation.POINTS);\n publicAPI.getRepresentationAsString = () =>\n macro.enumToString(Representation, model.representation);\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n color: [1, 1, 1],\n ambientColor: [1, 1, 1],\n diffuseColor: [1, 1, 1],\n specularColor: [1, 1, 1],\n edgeColor: [0, 0, 0],\n\n ambient: 0,\n diffuse: 1,\n specular: 0,\n specularPower: 1,\n opacity: 1,\n interpolation: Interpolation.GOURAUD,\n representation: Representation.SURFACE,\n edgeVisibility: false,\n backfaceCulling: false,\n frontfaceCulling: false,\n pointSize: 1,\n lineWidth: 1,\n lighting: true,\n\n shading: false,\n materialName: null,\n};\n\n// ----------------------------------------------------------------------------\n\nexport function extend(publicAPI, model, initialValues = {}) {\n Object.assign(model, DEFAULT_VALUES, initialValues);\n\n // Build VTK API\n macro.obj(publicAPI, model);\n\n macro.setGet(publicAPI, model, [\n 'lighting',\n 'interpolation',\n 'ambient',\n 'diffuse',\n 'specular',\n 'specularPower',\n 'opacity',\n 'edgeVisibility',\n 'lineWidth',\n 'pointSize',\n 'backfaceCulling',\n 'frontfaceCulling',\n 'representation',\n ]);\n macro.setGetArray(\n publicAPI,\n model,\n ['ambientColor', 'specularColor', 'diffuseColor', 'edgeColor'],\n 3\n );\n\n // Object methods\n vtkProperty(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\n\nexport const newInstance = macro.newInstance(extend, 'vtkProperty');\n\n// ----------------------------------------------------------------------------\n\nexport default Object.assign({ newInstance, extend }, Constants);\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/Sources/Rendering/Core/Property/index.js","import * as macro from 'vtk.js/Sources/macro';\nimport vtkOpenGLTexture from 'vtk.js/Sources/Rendering/OpenGL/Texture';\nimport { VtkDataTypes } from 'vtk.js/Sources/Common/Core/DataArray/Constants';\nimport { Filter } from 'vtk.js/Sources/Rendering/OpenGL/Texture/Constants';\n\n// ----------------------------------------------------------------------------\n// vtkFramebuffer methods\n// ----------------------------------------------------------------------------\nfunction vtkFramebuffer(publicAPI, model) {\n // Set our className\n model.classHierarchy.push('vtkFramebuffer');\n\n publicAPI.getBothMode = () => model.context.FRAMEBUFFER;\n // publicAPI.getDrawMode = () => model.context.DRAW_FRAMEBUFFER;\n // publicAPI.getReadMode = () => model.context.READ_FRAMEBUFFER;\n\n publicAPI.saveCurrentBindingsAndBuffers = (modeIn) => {\n const mode =\n typeof modeIn !== 'undefined' ? modeIn : publicAPI.getBothMode();\n publicAPI.saveCurrentBindings(mode);\n publicAPI.saveCurrentBuffers(mode);\n };\n\n publicAPI.saveCurrentBindings = (modeIn) => {\n const gl = model.context;\n model.previousDrawBinding = gl.getParameter(\n model.context.FRAMEBUFFER_BINDING\n );\n model.previousActiveFramebuffer = model.openGLRenderWindow.getActiveFramebuffer();\n };\n\n publicAPI.saveCurrentBuffers = (modeIn) => {\n // noop on webgl 1\n };\n\n publicAPI.restorePreviousBindingsAndBuffers = (modeIn) => {\n const mode =\n typeof modeIn !== 'undefined' ? modeIn : publicAPI.getBothMode();\n publicAPI.restorePreviousBindings(mode);\n publicAPI.restorePreviousBuffers(mode);\n };\n\n publicAPI.restorePreviousBindings = (modeIn) => {\n const gl = model.context;\n gl.bindFramebuffer(gl.FRAMEBUFFER, model.previousDrawBinding);\n model.openGLRenderWindow.setActiveFramebuffer(\n model.previousActiveFramebuffer\n );\n };\n\n publicAPI.restorePreviousBuffers = (modeIn) => {\n // currently a noop on webgl1\n };\n\n publicAPI.bind = () => {\n model.context.bindFramebuffer(\n model.context.FRAMEBUFFER,\n model.glFramebuffer\n );\n if (model.colorTexture) {\n model.colorTexture.bind();\n }\n model.openGLRenderWindow.setActiveFramebuffer(publicAPI);\n };\n\n publicAPI.create = (width, height) => {\n model.glFramebuffer = model.context.createFramebuffer();\n model.glFramebuffer.width = width;\n model.glFramebuffer.height = height;\n };\n\n publicAPI.setColorBuffer = (texture, mode) => {\n const gl = model.context;\n model.colorTexture = texture;\n gl.framebufferTexture2D(\n gl.FRAMEBUFFER,\n gl.COLOR_ATTACHMENT0,\n gl.TEXTURE_2D,\n texture.getHandle(),\n 0\n );\n };\n\n // publicAPI.setDepthBuffer = (texture, mode) => {\n // const gl = model.context;\n // gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.TEXTURE_2D, texture.getHandle(), 0);\n // };\n\n publicAPI.getGLFramebuffer = () => model.glFramebuffer;\n\n publicAPI.setOpenGLRenderWindow = (rw) => {\n if (model.openGLRenderWindow === rw) {\n return;\n }\n publicAPI.releaseGraphicsResources();\n model.openGLRenderWindow = rw;\n model.context = null;\n if (rw) {\n model.context = model.openGLRenderWindow.getContext();\n }\n };\n\n publicAPI.releaseGraphicsResources = () => {\n if (model.glFramebuffer) {\n model.context.deleteFramebuffer(model.glFramebuffer);\n }\n if (model.depthTexture) {\n model.depthTexture.releaseGraphicsResources();\n }\n if (model.colorTexture) {\n model.colorTexture.releaseGraphicsResources();\n }\n };\n\n publicAPI.getSize = () => {\n const size = [0, 0];\n if (model.glFramebuffer !== null) {\n size[0] = model.glFramebuffer.width;\n size[1] = model.glFramebuffer.height;\n }\n return size;\n };\n\n publicAPI.populateFramebuffer = () => {\n publicAPI.bind();\n const gl = model.context;\n\n const texture = vtkOpenGLTexture.newInstance();\n texture.setOpenGLRenderWindow(model.openGLRenderWindow);\n texture.setMinificationFilter(Filter.LINEAR);\n texture.setMagnificationFilter(Filter.LINEAR);\n texture.create2DFromRaw(\n model.glFramebuffer.width,\n model.glFramebuffer.height,\n 4,\n VtkDataTypes.UNSIGNED_CHAR,\n null\n );\n publicAPI.setColorBuffer(texture);\n\n // for now do not count of having a depth buffer texture\n // as they are not standard webgl 1\n model.depthTexture = gl.createRenderbuffer();\n gl.bindRenderbuffer(gl.RENDERBUFFER, model.depthTexture);\n gl.renderbufferStorage(\n gl.RENDERBUFFER,\n gl.DEPTH_COMPONENT16,\n model.glFramebuffer.width,\n model.glFramebuffer.height\n );\n gl.framebufferRenderbuffer(\n gl.FRAMEBUFFER,\n gl.DEPTH_ATTACHMENT,\n gl.RENDERBUFFER,\n model.depthTexture\n );\n };\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\nconst DEFAULT_VALUES = {\n openGLRenderWindow: null,\n glFramebuffer: null,\n colorTexture: null,\n depthTexture: null,\n previousDrawBinding: 0,\n previousReadBinding: 0,\n previousDrawBuffer: 0,\n previousReadBuffer: 0,\n previousActiveFramebuffer: null,\n};\n\n// ----------------------------------------------------------------------------\nexport function extend(publicAPI, model, initialValues = {}) {\n Object.assign(model, DEFAULT_VALUES, initialValues);\n\n // Build VTK API\n macro.obj(publicAPI, model);\n\n macro.setGet(publicAPI, model, ['colorTexture']);\n\n // For more macro methods, see \"Sources/macro.js\"\n // Object specific methods\n vtkFramebuffer(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\nexport const newInstance = macro.newInstance(extend, 'vtkFramebuffer');\n\n// ----------------------------------------------------------------------------\nexport default Object.assign({ newInstance, extend });\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/Sources/Rendering/OpenGL/Framebuffer/index.js","import macro from 'vtk.js/Sources/macro';\nimport vtk from 'vtk.js/Sources/vtk';\nimport vtkDataSetAttributes from 'vtk.js/Sources/Common/DataModel/DataSetAttributes';\nimport Constants from 'vtk.js/Sources/Common/DataModel/DataSet/Constants';\n\n// import vtkBoundingBox from '../BoundingBox';\n// import vtkMath from '../../Core/Math';\n//\n// function getBounds(dataset) {\n// if (dataset.bounds) {\n// return dataset.bounds;\n// }\n// if (dataset.type && dataset[dataset.type]) {\n// const ds = dataset[dataset.type];\n// if (ds.bounds) {\n// return ds.bounds;\n// }\n// if (ds.Points && ds.Points.bounds) {\n// return ds.Points.bounds;\n// }\n\n// if (ds.Points && ds.Points.values) {\n// const array = ds.Points.values;\n// const bbox = vtkBoundingBox.newInstance();\n// const size = array.length;\n// const delta = ds.Points.numberOfComponents ? ds.Points.numberOfComponents : 3;\n// for (let idx = 0; idx < size; idx += delta) {\n// bbox.addPoint(array[idx * delta], array[(idx * delta) + 1], array[(idx * delta) + 2]);\n// }\n// ds.Points.bounds = bbox.getBounds();\n// return ds.Points.bounds;\n// }\n// }\n// return vtkMath.createUninitializedBounds();\n// }\n\n// ----------------------------------------------------------------------------\n// Global methods\n// ----------------------------------------------------------------------------\n\nconst DATASET_FIELDS = ['pointData', 'cellData', 'fieldData'];\n\n// ----------------------------------------------------------------------------\n// vtkDataSet methods\n// ----------------------------------------------------------------------------\n\nfunction vtkDataSet(publicAPI, model) {\n // Set our className\n model.classHierarchy.push('vtkDataSet');\n\n // Add dataset attributes\n DATASET_FIELDS.forEach((fieldName) => {\n if (!model[fieldName]) {\n model[fieldName] = vtkDataSetAttributes.newInstance();\n } else {\n model[fieldName] = vtk(model[fieldName]);\n }\n });\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n // pointData: null,\n // cellData: null,\n // fieldData: null,\n};\n\n// ----------------------------------------------------------------------------\n\nexport function extend(publicAPI, model, initialValues = {}) {\n Object.assign(model, DEFAULT_VALUES, initialValues);\n\n // Object methods\n macro.obj(publicAPI, model);\n macro.setGet(publicAPI, model, DATASET_FIELDS);\n\n // Object specific methods\n vtkDataSet(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\n\nexport const newInstance = macro.newInstance(extend, 'vtkDataSet');\n\n// ----------------------------------------------------------------------------\n\nexport default Object.assign({ newInstance, extend }, Constants);\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/Sources/Common/DataModel/DataSet/index.js","import macro from 'vtk.js/Sources/macro';\nimport vtkDataSet from 'vtk.js/Sources/Common/DataModel/DataSet';\nimport vtkStructuredData from 'vtk.js/Sources/Common/DataModel/StructuredData';\nimport { StructuredType } from 'vtk.js/Sources/Common/DataModel/StructuredData/Constants';\nimport { quat, vec3, mat3, mat4 } from 'gl-matrix';\n\nconst { vtkErrorMacro } = macro;\n\n// ----------------------------------------------------------------------------\n// vtkImageData methods\n// ----------------------------------------------------------------------------\n\nfunction vtkImageData(publicAPI, model) {\n // Set our className\n model.classHierarchy.push('vtkImageData');\n\n publicAPI.setExtent = (...inExtent) => {\n if (model.deleted) {\n vtkErrorMacro('instance deleted - cannot call any method');\n return;\n }\n\n if (!inExtent || inExtent.length !== 6) {\n return;\n }\n\n let changeDetected = false;\n model.extent.forEach((item, index) => {\n if (item !== inExtent[index]) {\n if (changeDetected) {\n return;\n }\n changeDetected = true;\n }\n });\n\n if (changeDetected) {\n model.extent = [].concat(inExtent);\n model.dataDescription = vtkStructuredData.getDataDescriptionFromExtent(\n model.extent\n );\n publicAPI.modified();\n }\n };\n\n publicAPI.setDimensions = (...dims) => {\n let i;\n let j;\n let k;\n\n if (model.deleted) {\n vtkErrorMacro('instance deleted - cannot call any method');\n return;\n }\n\n if (dims.length === 1) {\n const array = dims[0];\n i = array[0];\n j = array[1];\n k = array[2];\n } else if (dims.length === 3) {\n i = dims[0];\n j = dims[1];\n k = dims[2];\n } else {\n vtkErrorMacro('Bad dimension specification');\n return;\n }\n\n publicAPI.setExtent(0, i - 1, 0, j - 1, 0, k - 1);\n };\n\n publicAPI.getDimensions = () => [\n model.extent[1] - model.extent[0] + 1,\n model.extent[3] - model.extent[2] + 1,\n model.extent[5] - model.extent[4] + 1,\n ];\n\n publicAPI.getNumberOfCells = () => {\n const dims = publicAPI.getDimensions();\n let nCells = 1;\n\n for (let i = 0; i < 3; i++) {\n if (dims[i] === 0) {\n return 0;\n }\n if (dims[i] > 1) {\n nCells *= dims[i] - 1;\n }\n }\n\n return nCells;\n };\n\n publicAPI.getNumberOfPoints = () => {\n const dims = publicAPI.getDimensions();\n return dims[0] * dims[1] * dims[2];\n };\n\n publicAPI.getPoint = (index) => {\n const dims = publicAPI.getDimensions();\n const ijk = vec3.fromValues(0, 0, 0);\n const coords = [0, 0, 0];\n\n if (dims[0] === 0 || dims[1] === 0 || dims[2] === 0) {\n vtkErrorMacro('Requesting a point from an empty image.');\n return null;\n }\n\n switch (model.dataDescription) {\n case StructuredType.EMPTY:\n return null;\n\n case StructuredType.SINGLE_POINT:\n break;\n\n case StructuredType.X_LINE:\n ijk[0] = index;\n break;\n\n case StructuredType.Y_LINE:\n ijk[1] = index;\n break;\n\n case StructuredType.Z_LINE:\n ijk[2] = index;\n break;\n\n case StructuredType.XY_PLANE:\n ijk[0] = index % dims[0];\n ijk[1] = index / dims[0];\n break;\n\n case StructuredType.YZ_PLANE:\n ijk[1] = index % dims[1];\n ijk[2] = index / dims[1];\n break;\n\n case StructuredType.XZ_PLANE:\n ijk[0] = index % dims[0];\n ijk[2] = index / dims[0];\n break;\n\n case StructuredType.XYZ_GRID:\n ijk[0] = index % dims[0];\n ijk[1] = (index / dims[0]) % dims[1];\n ijk[2] = index / (dims[0] * dims[1]);\n break;\n\n default:\n vtkErrorMacro('Invalid dataDescription');\n break;\n }\n\n const vout = vec3.create();\n publicAPI.indexToWorldVec3(ijk, vout);\n vec3.copy(coords, vout);\n return coords;\n };\n\n // vtkCell *GetCell(vtkIdType cellId) VTK_OVERRIDE;\n // void GetCell(vtkIdType cellId, vtkGenericCell *cell) VTK_OVERRIDE;\n // void GetCellBounds(vtkIdType cellId, double bounds[6]) VTK_OVERRIDE;\n // virtual vtkIdType FindPoint(double x, double y, double z)\n // {\n // return this->vtkDataSet::FindPoint(x, y, z);\n // }\n // vtkIdType FindPoint(double x[3]) VTK_OVERRIDE;\n // vtkIdType FindCell(\n // double x[3], vtkCell *cell, vtkIdType cellId, double tol2,\n // int& subId, double pcoords[3], double *weights) VTK_OVERRIDE;\n // vtkIdType FindCell(\n // double x[3], vtkCell *cell, vtkGenericCell *gencell,\n // vtkIdType cellId, double tol2, int& subId,\n // double pcoords[3], double *weights) VTK_OVERRIDE;\n // vtkCell *FindAndGetCell(double x[3], vtkCell *cell, vtkIdType cellId,\n // double tol2, int& subId, double pcoords[3],\n // double *weights) VTK_OVERRIDE;\n // int GetCellType(vtkIdType cellId) VTK_OVERRIDE;\n // void GetCellPoints(vtkIdType cellId, vtkIdList *ptIds) VTK_OVERRIDE\n // {vtkStructuredData::GetCellPoints(cellId,ptIds,this->DataDescription,\n // this->GetDimensions());}\n // void GetPointCells(vtkIdType ptId, vtkIdList *cellIds) VTK_OVERRIDE\n // {vtkStructuredData::GetPointCells(ptId,cellIds,this->GetDimensions());}\n // void ComputeBounds() VTK_OVERRIDE;\n // int GetMaxCellSize() VTK_OVERRIDE {return 8;}; //voxel is the largest\n\n publicAPI.getBounds = () => publicAPI.extentToBounds(model.extent);\n\n publicAPI.extentToBounds = (ex) => {\n // prettier-ignore\n const corners = [\n ex[0], ex[2], ex[4],\n ex[1], ex[2], ex[4],\n ex[0], ex[3], ex[4],\n ex[1], ex[3], ex[4],\n ex[0], ex[2], ex[5],\n ex[1], ex[2], ex[5],\n ex[0], ex[3], ex[5],\n ex[1], ex[3], ex[5]];\n\n const idx = vec3.fromValues(corners[0], corners[1], corners[2]);\n const vout = vec3.create();\n publicAPI.indexToWorldVec3(idx, vout);\n const bounds = [vout[0], vout[0], vout[1], vout[1], vout[2], vout[2]];\n for (let i = 3; i < 24; i += 3) {\n vec3.set(idx, corners[i], corners[i + 1], corners[i + 2]);\n publicAPI.indexToWorldVec3(idx, vout);\n if (vout[0] < bounds[0]) {\n bounds[0] = vout[0];\n }\n if (vout[1] < bounds[2]) {\n bounds[2] = vout[1];\n }\n if (vout[2] < bounds[4]) {\n bounds[4] = vout[2];\n }\n if (vout[0] > bounds[1]) {\n bounds[1] = vout[0];\n }\n if (vout[1] > bounds[3]) {\n bounds[3] = vout[1];\n }\n if (vout[2] > bounds[5]) {\n bounds[5] = vout[2];\n }\n }\n\n return bounds;\n };\n\n publicAPI.computeTransforms = () => {\n const rotq = quat.create();\n quat.fromMat3(rotq, model.direction);\n const trans = vec3.fromValues(\n model.origin[0],\n model.origin[1],\n model.origin[2]\n );\n const scale = vec3.fromValues(\n model.spacing[0],\n model.spacing[1],\n model.spacing[2]\n );\n mat4.fromRotationTranslationScale(model.indexToWorld, rotq, trans, scale);\n mat4.invert(model.worldToIndex, model.indexToWorld);\n };\n\n //\n // The direction matrix is a 3x3 basis for the I, J, K axes\n // of the image. The rows of the matrix correspond to the\n // axes directions in world coordinates. Direction must\n // form an orthonormal basis, results are undefined if\n // it is not.\n //\n publicAPI.setDirection = (...args) => {\n if (model.deleted) {\n vtkErrorMacro('instance deleted - cannot call any method');\n return false;\n }\n\n let array = args;\n // allow an array passed as a single arg.\n if (array.length === 1 && Array.isArray(array[0])) {\n array = array[0];\n }\n\n if (array.length !== 9) {\n throw new RangeError('Invalid number of values for array setter');\n }\n let changeDetected = false;\n model.direction.forEach((item, index) => {\n if (item !== array[index]) {\n if (changeDetected) {\n return;\n }\n changeDetected = true;\n }\n });\n\n if (changeDetected) {\n for (let i = 0; i < 9; ++i) {\n model.direction[i] = array[i];\n }\n publicAPI.modified();\n }\n return true;\n };\n\n // this is the fast version, requires vec3 arguments\n publicAPI.indexToWorldVec3 = (vin, vout) => {\n vec3.transformMat4(vout, vin, model.indexToWorld);\n };\n\n // slow version for generic arrays\n publicAPI.indexToWorld = (ain, aout) => {\n const vin = vec3.fromValues(ain[0], ain[1], ain[2]);\n const vout = vec3.create();\n vec3.transformMat4(vout, vin, model.indexToWorld);\n vec3.copy(aout, vout);\n };\n\n // this is the fast version, requires vec3 arguments\n publicAPI.worldToIndexVec3 = (vin, vout) => {\n vec3.transformMat4(vout, vin, model.worldToIndex);\n };\n\n // slow version for generic arrays\n publicAPI.worldToIndex = (ain, aout) => {\n const vin = vec3.fromValues(ain[0], ain[1], ain[2]);\n const vout = vec3.create();\n vec3.transformMat4(vout, vin, model.worldToIndex);\n vec3.copy(aout, vout);\n };\n\n // Make sure the transform is correct\n publicAPI.onModified(publicAPI.computeTransforms);\n publicAPI.computeTransforms();\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n direction: null, // a mat3\n indexToWorld: null, // a mat4\n worldToIndex: null, // a mat4\n spacing: [1.0, 1.0, 1.0],\n origin: [0.0, 0.0, 0.0],\n extent: [0, -1, 0, -1, 0, -1],\n dataDescription: StructuredType.EMPTY,\n};\n\n// ----------------------------------------------------------------------------\n\nexport function extend(publicAPI, model, initialValues = {}) {\n Object.assign(model, DEFAULT_VALUES, initialValues);\n\n // Inheritance\n vtkDataSet.extend(publicAPI, model, initialValues);\n\n if (!model.direction) {\n model.direction = mat3.create();\n } else if (Array.isArray(model.direction)) {\n const dvals = model.direction.slice(0);\n model.direction = mat3.create();\n for (let i = 0; i < 9; ++i) {\n model.direction[i] = dvals[i];\n }\n }\n\n model.indexToWorld = mat4.create();\n model.worldToIndex = mat4.create();\n\n // Set/Get methods\n macro.get(publicAPI, model, ['direction', 'indexToWorld', 'worldToIndex']);\n macro.setGetArray(publicAPI, model, ['origin', 'spacing'], 3);\n macro.getArray(publicAPI, model, ['extent'], 6);\n\n // Object specific methods\n vtkImageData(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\n\nexport const newInstance = macro.newInstance(extend, 'vtkImageData');\n\n// ----------------------------------------------------------------------------\n\nexport default { newInstance, extend };\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/Sources/Common/DataModel/ImageData/index.js","export const VectorMode = {\n MAGNITUDE: 0,\n COMPONENT: 1,\n RGBCOLORS: 2,\n};\n\nexport const ScalarMappingTarget = {\n LUMINANCE: 1,\n LUMINANCE_ALPHA: 2,\n RGB: 3,\n RGBA: 4,\n};\n\nexport default {\n VectorMode,\n ScalarMappingTarget,\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/Sources/Common/Core/ScalarsToColors/Constants.js","import macro from 'vtk.js/Sources/macro';\nimport vtkDataArray from 'vtk.js/Sources/Common/Core/DataArray';\nimport { VtkDataTypes } from 'vtk.js/Sources/Common/Core/DataArray/Constants';\n\nconst { vtkErrorMacro } = macro;\n\nconst INVALID_BOUNDS = [1, -1, 1, -1, 1, -1];\n\n// ----------------------------------------------------------------------------\n// vtkPoints methods\n// ----------------------------------------------------------------------------\n\nfunction vtkPoints(publicAPI, model) {\n // Set our className\n model.classHierarchy.push('vtkPoints');\n\n // Forwarding methods\n publicAPI.getNumberOfPoints = publicAPI.getNumberOfTuples;\n\n publicAPI.setNumberOfPoints = (nbPoints, dimension = 3) => {\n if (publicAPI.getNumberOfPoints() !== nbPoints) {\n model.size = nbPoints * dimension;\n model.values = new window[model.dataType](model.size);\n publicAPI.setNumberOfComponents(dimension);\n publicAPI.modified();\n }\n };\n\n publicAPI.setPoint = (idx, ...xyz) => {\n const offset = idx * model.numberOfComponents;\n for (let i = 0; i < model.numberOfComponents; i++) {\n model.values[offset + i] = xyz[i];\n }\n };\n\n publicAPI.getPoint = publicAPI.getTuple;\n\n publicAPI.getBounds = () => {\n if (publicAPI.getNumberOfComponents() === 3) {\n const xRange = publicAPI.getRange(0);\n model.bounds[0] = xRange[0];\n model.bounds[1] = xRange[1];\n const yRange = publicAPI.getRange(1);\n model.bounds[2] = yRange[0];\n model.bounds[3] = yRange[1];\n const zRange = publicAPI.getRange(2);\n model.bounds[4] = zRange[0];\n model.bounds[5] = zRange[1];\n return model.bounds;\n }\n\n if (publicAPI.getNumberOfComponents() !== 2) {\n vtkErrorMacro(`getBounds called on an array with components of\n ${publicAPI.getNumberOfComponents()}`);\n return INVALID_BOUNDS;\n }\n\n const xRange = publicAPI.getRange(0);\n model.bounds[0] = xRange[0];\n model.bounds[1] = xRange[1];\n const yRange = publicAPI.getRange(1);\n model.bounds[2] = yRange[0];\n model.bounds[3] = yRange[1];\n model.bounds[4] = 0;\n model.bounds[5] = 0;\n\n return model.bounds;\n };\n\n // Trigger the computation of bounds\n publicAPI.computeBounds = publicAPI.getBounds;\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n empty: true,\n numberOfComponents: 3,\n dataType: VtkDataTypes.FLOAT,\n bounds: [1, -1, 1, -1, 1, -1],\n};\n\n// ----------------------------------------------------------------------------\n\nexport function extend(publicAPI, model, initialValues = {}) {\n Object.assign(model, DEFAULT_VALUES, initialValues);\n\n vtkDataArray.extend(publicAPI, model, initialValues);\n vtkPoints(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\n\nexport const newInstance = macro.newInstance(extend, 'vtkPoints');\n\n// ----------------------------------------------------------------------------\n\nexport default { newInstance, extend };\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/Sources/Common/Core/Points/index.js","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nmodule.exports = {\n 2: 'need dictionary', /* Z_NEED_DICT 2 */\n 1: 'stream end', /* Z_STREAM_END 1 */\n 0: '', /* Z_OK 0 */\n '-1': 'file error', /* Z_ERRNO (-1) */\n '-2': 'stream error', /* Z_STREAM_ERROR (-2) */\n '-3': 'data error', /* Z_DATA_ERROR (-3) */\n '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */\n '-5': 'buffer error', /* Z_BUF_ERROR (-5) */\n '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/pako/lib/zlib/messages.js\n// module id = 174\n// module chunks = 1","export function getEndianness() {\n const a = new ArrayBuffer(4);\n const b = new Uint8Array(a);\n const c = new Uint32Array(a);\n b[0] = 0xa1;\n b[1] = 0xb2;\n b[2] = 0xc3;\n b[3] = 0xd4;\n if (c[0] === 0xd4c3b2a1) return 'LittleEndian';\n if (c[0] === 0xa1b2c3d4) return 'BigEndian';\n return null;\n}\n\nexport const ENDIANNESS = getEndianness();\n\nexport function swapBytes(buffer, wordSize) {\n if (wordSize < 2) {\n return;\n }\n\n const bytes = new Int8Array(buffer);\n const size = bytes.length;\n const tempBuffer = [];\n\n for (let i = 0; i < size; i += wordSize) {\n for (let j = 0; j < wordSize; j++) {\n tempBuffer.push(bytes[i + j]);\n }\n for (let j = 0; j < wordSize; j++) {\n bytes[i + j] = tempBuffer.pop();\n }\n }\n}\n\nexport default {\n ENDIANNESS,\n getEndianness,\n swapBytes,\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/Sources/Common/Core/Endian/index.js","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/readable-stream/readable-browser.js\n// module id = 176\n// module chunks = 1","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/**/\n\nvar processNextTick = require('process-nextick-args');\n/**/\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : processNextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = require('core-util-is');\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/**/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n processNextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n processNextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = _isUint8Array(chunk) && !state.objectMode;\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n processNextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n processNextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequestCount = 0;\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n processNextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) processNextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = corkReq;\n } else {\n state.corkedRequestsFree = corkReq;\n }\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/readable-stream/lib/_stream_writable.js\n// module id = 177\n// module chunks = 1","module.exports = function(it){\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/jszip/node_modules/core-js/library/modules/_is-object.js\n// module id = 178\n// module chunks = 1","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function(){\n return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/jszip/node_modules/core-js/library/modules/_descriptors.js\n// module id = 179\n// module chunks = 1","'use strict';\n\nvar external = require(\"./external\");\nvar DataWorker = require('./stream/DataWorker');\nvar DataLengthProbe = require('./stream/DataLengthProbe');\nvar Crc32Probe = require('./stream/Crc32Probe');\nvar DataLengthProbe = require('./stream/DataLengthProbe');\n\n/**\n * Represent a compressed object, with everything needed to decompress it.\n * @constructor\n * @param {number} compressedSize the size of the data compressed.\n * @param {number} uncompressedSize the size of the data after decompression.\n * @param {number} crc32 the crc32 of the decompressed file.\n * @param {object} compression the type of compression, see lib/compressions.js.\n * @param {String|ArrayBuffer|Uint8Array|Buffer} data the compressed data.\n */\nfunction CompressedObject(compressedSize, uncompressedSize, crc32, compression, data) {\n this.compressedSize = compressedSize;\n this.uncompressedSize = uncompressedSize;\n this.crc32 = crc32;\n this.compression = compression;\n this.compressedContent = data;\n}\n\nCompressedObject.prototype = {\n /**\n * Create a worker to get the uncompressed content.\n * @return {GenericWorker} the worker.\n */\n getContentWorker : function () {\n var worker = new DataWorker(external.Promise.resolve(this.compressedContent))\n .pipe(this.compression.uncompressWorker())\n .pipe(new DataLengthProbe(\"data_length\"));\n\n var that = this;\n worker.on(\"end\", function () {\n if(this.streamInfo['data_length'] !== that.uncompressedSize) {\n throw new Error(\"Bug : uncompressed data size mismatch\");\n }\n });\n return worker;\n },\n /**\n * Create a worker to get the compressed content.\n * @return {GenericWorker} the worker.\n */\n getCompressedWorker : function () {\n return new DataWorker(external.Promise.resolve(this.compressedContent))\n .withStreamInfo(\"compressedSize\", this.compressedSize)\n .withStreamInfo(\"uncompressedSize\", this.uncompressedSize)\n .withStreamInfo(\"crc32\", this.crc32)\n .withStreamInfo(\"compression\", this.compression)\n ;\n }\n};\n\n/**\n * Chain the given worker with other workers to compress the content with the\n * given compresion.\n * @param {GenericWorker} uncompressedWorker the worker to pipe.\n * @param {Object} compression the compression object.\n * @param {Object} compressionOptions the options to use when compressing.\n * @return {GenericWorker} the new worker compressing the content.\n */\nCompressedObject.createWorkerFrom = function (uncompressedWorker, compression, compressionOptions) {\n return uncompressedWorker\n .pipe(new Crc32Probe())\n .pipe(new DataLengthProbe(\"uncompressedSize\"))\n .pipe(compression.compressWorker(compressionOptions))\n .pipe(new DataLengthProbe(\"compressedSize\"))\n .withStreamInfo(\"compression\", compression);\n};\n\nmodule.exports = CompressedObject;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/jszip/lib/compressedObject.js\n// module id = 180\n// module chunks = 1","'use strict';\n\nvar utils = require('./utils');\n\n/**\n * The following functions come from pako, from pako/lib/zlib/crc32.js\n * released under the MIT license, see pako https://github.com/nodeca/pako/\n */\n\n// Use ordinary array, since untyped makes no boost here\nfunction makeTable() {\n var c, table = [];\n\n for(var n =0; n < 256; n++){\n c = n;\n for(var k =0; k < 8; k++){\n c = ((c&1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\n }\n table[n] = c;\n }\n\n return table;\n}\n\n// Create table on load. Just 255 signed longs. Not a problem.\nvar crcTable = makeTable();\n\n\nfunction crc32(crc, buf, len, pos) {\n var t = crcTable, end = pos + len;\n\n crc = crc ^ (-1);\n\n for (var i = pos; i < end; i++ ) {\n crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\n }\n\n return (crc ^ (-1)); // >>> 0;\n}\n\n// That's all for the pako functions.\n\n/**\n * Compute the crc32 of a string.\n * This is almost the same as the function crc32, but for strings. Using the\n * same function for the two use cases leads to horrible performances.\n * @param {Number} crc the starting value of the crc.\n * @param {String} str the string to use.\n * @param {Number} len the length of the string.\n * @param {Number} pos the starting position for the crc32 computation.\n * @return {Number} the computed crc32.\n */\nfunction crc32str(crc, str, len, pos) {\n var t = crcTable, end = pos + len;\n\n crc = crc ^ (-1);\n\n for (var i = pos; i < end; i++ ) {\n crc = (crc >>> 8) ^ t[(crc ^ str.charCodeAt(i)) & 0xFF];\n }\n\n return (crc ^ (-1)); // >>> 0;\n}\n\nmodule.exports = function crc32wrapper(input, crc) {\n if (typeof input === \"undefined\" || !input.length) {\n return 0;\n }\n\n var isArray = utils.getTypeOf(input) !== \"string\";\n\n if(isArray) {\n return crc32(crc|0, input, input.length, 0);\n } else {\n return crc32str(crc|0, input, input.length, 0);\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/jszip/lib/crc32.js\n// module id = 181\n// module chunks = 1","import { vec3, mat4, glMatrix } from 'gl-matrix';\n\nconst NoOp = (v) => v;\n\nconst IDENTITY = new Float64Array(16);\nmat4.identity(IDENTITY);\n\nclass Transform {\n constructor(useDegre = false) {\n this.matrix = new Float64Array(16);\n mat4.identity(this.matrix);\n this.tmp = new Float64Array(3);\n this.angleConv = useDegre ? glMatrix.toRadian : NoOp;\n }\n\n rotateFromDirections(originDirection, targetDirection) {\n const src = new Float64Array(3);\n const dst = new Float64Array(3);\n const transf = new Float64Array(16);\n\n vec3.set(src, originDirection[0], originDirection[1], originDirection[2]);\n vec3.set(dst, targetDirection[0], targetDirection[1], targetDirection[2]);\n vec3.normalize(src, src);\n vec3.normalize(dst, dst);\n const cosAlpha = vec3.dot(src, dst);\n if (cosAlpha >= 1) {\n return this;\n }\n\n vec3.cross(this.tmp, src, dst);\n mat4.fromRotation(transf, Math.acos(cosAlpha), this.tmp);\n mat4.multiply(this.matrix, this.matrix, transf);\n\n return this;\n }\n\n rotate(angle, axis) {\n vec3.set(this.tmp, ...axis);\n vec3.normalize(this.tmp, this.tmp);\n mat4.rotate(this.matrix, this.matrix, this.angleConv(angle), this.tmp);\n return this;\n }\n\n rotateX(angle) {\n mat4.rotateX(this.matrix, this.matrix, this.angleConv(angle));\n return this;\n }\n\n rotateY(angle) {\n mat4.rotateY(this.matrix, this.matrix, this.angleConv(angle));\n return this;\n }\n\n rotateZ(angle) {\n mat4.rotateZ(this.matrix, this.matrix, this.angleConv(angle));\n return this;\n }\n\n translate(x, y, z) {\n vec3.set(this.tmp, x, y, z);\n mat4.translate(this.matrix, this.matrix, this.tmp);\n return this;\n }\n\n scale(sx, sy, sz) {\n vec3.set(this.tmp, sx, sy, sz);\n mat4.scale(this.matrix, this.matrix, this.tmp);\n return this;\n }\n\n apply(typedArray, offset = 0, nbIterations = -1) {\n if (\n IDENTITY[0] === this.matrix[0] &&\n IDENTITY[1] === this.matrix[1] &&\n IDENTITY[2] === this.matrix[2] &&\n IDENTITY[3] === this.matrix[3] &&\n IDENTITY[4] === this.matrix[4] &&\n IDENTITY[5] === this.matrix[5] &&\n IDENTITY[6] === this.matrix[6] &&\n IDENTITY[7] === this.matrix[7] &&\n IDENTITY[8] === this.matrix[8] &&\n IDENTITY[9] === this.matrix[9] &&\n IDENTITY[10] === this.matrix[10] &&\n IDENTITY[11] === this.matrix[11] &&\n IDENTITY[12] === this.matrix[12] &&\n IDENTITY[13] === this.matrix[13] &&\n IDENTITY[14] === this.matrix[14] &&\n IDENTITY[15] === this.matrix[15]\n ) {\n // Make sure we can chain apply...\n return this;\n }\n\n const size =\n nbIterations === -1 ? typedArray.length : offset + nbIterations * 3;\n for (let i = offset; i < size; i += 3) {\n vec3.set(this.tmp, typedArray[i], typedArray[i + 1], typedArray[i + 2]);\n vec3.transformMat4(this.tmp, this.tmp, this.matrix);\n typedArray[i] = this.tmp[0];\n typedArray[i + 1] = this.tmp[1];\n typedArray[i + 2] = this.tmp[2];\n }\n\n // Make sure we can chain apply...\n return this;\n }\n\n getMatrix() {\n return this.matrix;\n }\n\n setMatrix(mat4x4) {\n if (!!mat4x4 && mat4x4.length === 16) {\n this.matrix[0] = mat4x4[0];\n this.matrix[1] = mat4x4[1];\n this.matrix[2] = mat4x4[2];\n this.matrix[3] = mat4x4[3];\n this.matrix[4] = mat4x4[4];\n this.matrix[5] = mat4x4[5];\n this.matrix[6] = mat4x4[6];\n this.matrix[7] = mat4x4[7];\n this.matrix[8] = mat4x4[8];\n this.matrix[9] = mat4x4[9];\n this.matrix[10] = mat4x4[10];\n this.matrix[11] = mat4x4[11];\n this.matrix[12] = mat4x4[12];\n this.matrix[13] = mat4x4[13];\n this.matrix[14] = mat4x4[14];\n this.matrix[15] = mat4x4[15];\n }\n return this;\n }\n\n identity() {\n mat4.identity(this.matrix);\n return this;\n }\n}\n\nfunction buildFromDegree() {\n return new Transform(true);\n}\n\nfunction buildFromRadian() {\n return new Transform(false);\n}\n\nexport default {\n buildFromDegree,\n buildFromRadian,\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/Sources/Common/Core/MatrixBuilder/index.js","/* Copyright (c) 2015, Brandon Jones, Colin MacKenzie IV.\r\n\r\nPermission is hereby granted, free of charge, to any person obtaining a copy\r\nof this software and associated documentation files (the \"Software\"), to deal\r\nin the Software without restriction, including without limitation the rights\r\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\ncopies of the Software, and to permit persons to whom the Software is\r\nfurnished to do so, subject to the following conditions:\r\n\r\nThe above copyright notice and this permission notice shall be included in\r\nall copies or substantial portions of the Software.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\nTHE SOFTWARE. */\r\n\r\nimport * as glMatrix from \"./common.js\";\r\n\r\n/**\r\n * 3x3 Matrix\r\n * @module mat3\r\n */\r\n\r\n/**\r\n * Creates a new identity mat3\r\n *\r\n * @returns {mat3} a new 3x3 matrix\r\n */\r\nexport function create() {\r\n let out = new glMatrix.ARRAY_TYPE(9);\r\n out[0] = 1;\r\n out[1] = 0;\r\n out[2] = 0;\r\n out[3] = 0;\r\n out[4] = 1;\r\n out[5] = 0;\r\n out[6] = 0;\r\n out[7] = 0;\r\n out[8] = 1;\r\n return out;\r\n}\r\n\r\n/**\r\n * Copies the upper-left 3x3 values into the given mat3.\r\n *\r\n * @param {mat3} out the receiving 3x3 matrix\r\n * @param {mat4} a the source 4x4 matrix\r\n * @returns {mat3} out\r\n */\r\nexport function fromMat4(out, a) {\r\n out[0] = a[0];\r\n out[1] = a[1];\r\n out[2] = a[2];\r\n out[3] = a[4];\r\n out[4] = a[5];\r\n out[5] = a[6];\r\n out[6] = a[8];\r\n out[7] = a[9];\r\n out[8] = a[10];\r\n return out;\r\n}\r\n\r\n/**\r\n * Creates a new mat3 initialized with values from an existing matrix\r\n *\r\n * @param {mat3} a matrix to clone\r\n * @returns {mat3} a new 3x3 matrix\r\n */\r\nexport function clone(a) {\r\n let out = new glMatrix.ARRAY_TYPE(9);\r\n out[0] = a[0];\r\n out[1] = a[1];\r\n out[2] = a[2];\r\n out[3] = a[3];\r\n out[4] = a[4];\r\n out[5] = a[5];\r\n out[6] = a[6];\r\n out[7] = a[7];\r\n out[8] = a[8];\r\n return out;\r\n}\r\n\r\n/**\r\n * Copy the values from one mat3 to another\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {mat3} a the source matrix\r\n * @returns {mat3} out\r\n */\r\nexport function copy(out, a) {\r\n out[0] = a[0];\r\n out[1] = a[1];\r\n out[2] = a[2];\r\n out[3] = a[3];\r\n out[4] = a[4];\r\n out[5] = a[5];\r\n out[6] = a[6];\r\n out[7] = a[7];\r\n out[8] = a[8];\r\n return out;\r\n}\r\n\r\n/**\r\n * Create a new mat3 with the given values\r\n *\r\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\r\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\r\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\r\n * @param {Number} m10 Component in column 1, row 0 position (index 3)\r\n * @param {Number} m11 Component in column 1, row 1 position (index 4)\r\n * @param {Number} m12 Component in column 1, row 2 position (index 5)\r\n * @param {Number} m20 Component in column 2, row 0 position (index 6)\r\n * @param {Number} m21 Component in column 2, row 1 position (index 7)\r\n * @param {Number} m22 Component in column 2, row 2 position (index 8)\r\n * @returns {mat3} A new mat3\r\n */\r\nexport function fromValues(m00, m01, m02, m10, m11, m12, m20, m21, m22) {\r\n let out = new glMatrix.ARRAY_TYPE(9);\r\n out[0] = m00;\r\n out[1] = m01;\r\n out[2] = m02;\r\n out[3] = m10;\r\n out[4] = m11;\r\n out[5] = m12;\r\n out[6] = m20;\r\n out[7] = m21;\r\n out[8] = m22;\r\n return out;\r\n}\r\n\r\n/**\r\n * Set the components of a mat3 to the given values\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\r\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\r\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\r\n * @param {Number} m10 Component in column 1, row 0 position (index 3)\r\n * @param {Number} m11 Component in column 1, row 1 position (index 4)\r\n * @param {Number} m12 Component in column 1, row 2 position (index 5)\r\n * @param {Number} m20 Component in column 2, row 0 position (index 6)\r\n * @param {Number} m21 Component in column 2, row 1 position (index 7)\r\n * @param {Number} m22 Component in column 2, row 2 position (index 8)\r\n * @returns {mat3} out\r\n */\r\nexport function set(out, m00, m01, m02, m10, m11, m12, m20, m21, m22) {\r\n out[0] = m00;\r\n out[1] = m01;\r\n out[2] = m02;\r\n out[3] = m10;\r\n out[4] = m11;\r\n out[5] = m12;\r\n out[6] = m20;\r\n out[7] = m21;\r\n out[8] = m22;\r\n return out;\r\n}\r\n\r\n/**\r\n * Set a mat3 to the identity matrix\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @returns {mat3} out\r\n */\r\nexport function identity(out) {\r\n out[0] = 1;\r\n out[1] = 0;\r\n out[2] = 0;\r\n out[3] = 0;\r\n out[4] = 1;\r\n out[5] = 0;\r\n out[6] = 0;\r\n out[7] = 0;\r\n out[8] = 1;\r\n return out;\r\n}\r\n\r\n/**\r\n * Transpose the values of a mat3\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {mat3} a the source matrix\r\n * @returns {mat3} out\r\n */\r\nexport function transpose(out, a) {\r\n // If we are transposing ourselves we can skip a few steps but have to cache some values\r\n if (out === a) {\r\n let a01 = a[1], a02 = a[2], a12 = a[5];\r\n out[1] = a[3];\r\n out[2] = a[6];\r\n out[3] = a01;\r\n out[5] = a[7];\r\n out[6] = a02;\r\n out[7] = a12;\r\n } else {\r\n out[0] = a[0];\r\n out[1] = a[3];\r\n out[2] = a[6];\r\n out[3] = a[1];\r\n out[4] = a[4];\r\n out[5] = a[7];\r\n out[6] = a[2];\r\n out[7] = a[5];\r\n out[8] = a[8];\r\n }\r\n\r\n return out;\r\n}\r\n\r\n/**\r\n * Inverts a mat3\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {mat3} a the source matrix\r\n * @returns {mat3} out\r\n */\r\nexport function invert(out, a) {\r\n let a00 = a[0], a01 = a[1], a02 = a[2];\r\n let a10 = a[3], a11 = a[4], a12 = a[5];\r\n let a20 = a[6], a21 = a[7], a22 = a[8];\r\n\r\n let b01 = a22 * a11 - a12 * a21;\r\n let b11 = -a22 * a10 + a12 * a20;\r\n let b21 = a21 * a10 - a11 * a20;\r\n\r\n // Calculate the determinant\r\n let det = a00 * b01 + a01 * b11 + a02 * b21;\r\n\r\n if (!det) {\r\n return null;\r\n }\r\n det = 1.0 / det;\r\n\r\n out[0] = b01 * det;\r\n out[1] = (-a22 * a01 + a02 * a21) * det;\r\n out[2] = (a12 * a01 - a02 * a11) * det;\r\n out[3] = b11 * det;\r\n out[4] = (a22 * a00 - a02 * a20) * det;\r\n out[5] = (-a12 * a00 + a02 * a10) * det;\r\n out[6] = b21 * det;\r\n out[7] = (-a21 * a00 + a01 * a20) * det;\r\n out[8] = (a11 * a00 - a01 * a10) * det;\r\n return out;\r\n}\r\n\r\n/**\r\n * Calculates the adjugate of a mat3\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {mat3} a the source matrix\r\n * @returns {mat3} out\r\n */\r\nexport function adjoint(out, a) {\r\n let a00 = a[0], a01 = a[1], a02 = a[2];\r\n let a10 = a[3], a11 = a[4], a12 = a[5];\r\n let a20 = a[6], a21 = a[7], a22 = a[8];\r\n\r\n out[0] = (a11 * a22 - a12 * a21);\r\n out[1] = (a02 * a21 - a01 * a22);\r\n out[2] = (a01 * a12 - a02 * a11);\r\n out[3] = (a12 * a20 - a10 * a22);\r\n out[4] = (a00 * a22 - a02 * a20);\r\n out[5] = (a02 * a10 - a00 * a12);\r\n out[6] = (a10 * a21 - a11 * a20);\r\n out[7] = (a01 * a20 - a00 * a21);\r\n out[8] = (a00 * a11 - a01 * a10);\r\n return out;\r\n}\r\n\r\n/**\r\n * Calculates the determinant of a mat3\r\n *\r\n * @param {mat3} a the source matrix\r\n * @returns {Number} determinant of a\r\n */\r\nexport function determinant(a) {\r\n let a00 = a[0], a01 = a[1], a02 = a[2];\r\n let a10 = a[3], a11 = a[4], a12 = a[5];\r\n let a20 = a[6], a21 = a[7], a22 = a[8];\r\n\r\n return a00 * (a22 * a11 - a12 * a21) + a01 * (-a22 * a10 + a12 * a20) + a02 * (a21 * a10 - a11 * a20);\r\n}\r\n\r\n/**\r\n * Multiplies two mat3's\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {mat3} a the first operand\r\n * @param {mat3} b the second operand\r\n * @returns {mat3} out\r\n */\r\nexport function multiply(out, a, b) {\r\n let a00 = a[0], a01 = a[1], a02 = a[2];\r\n let a10 = a[3], a11 = a[4], a12 = a[5];\r\n let a20 = a[6], a21 = a[7], a22 = a[8];\r\n\r\n let b00 = b[0], b01 = b[1], b02 = b[2];\r\n let b10 = b[3], b11 = b[4], b12 = b[5];\r\n let b20 = b[6], b21 = b[7], b22 = b[8];\r\n\r\n out[0] = b00 * a00 + b01 * a10 + b02 * a20;\r\n out[1] = b00 * a01 + b01 * a11 + b02 * a21;\r\n out[2] = b00 * a02 + b01 * a12 + b02 * a22;\r\n\r\n out[3] = b10 * a00 + b11 * a10 + b12 * a20;\r\n out[4] = b10 * a01 + b11 * a11 + b12 * a21;\r\n out[5] = b10 * a02 + b11 * a12 + b12 * a22;\r\n\r\n out[6] = b20 * a00 + b21 * a10 + b22 * a20;\r\n out[7] = b20 * a01 + b21 * a11 + b22 * a21;\r\n out[8] = b20 * a02 + b21 * a12 + b22 * a22;\r\n return out;\r\n}\r\n\r\n/**\r\n * Translate a mat3 by the given vector\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {mat3} a the matrix to translate\r\n * @param {vec2} v vector to translate by\r\n * @returns {mat3} out\r\n */\r\nexport function translate(out, a, v) {\r\n let a00 = a[0], a01 = a[1], a02 = a[2],\r\n a10 = a[3], a11 = a[4], a12 = a[5],\r\n a20 = a[6], a21 = a[7], a22 = a[8],\r\n x = v[0], y = v[1];\r\n\r\n out[0] = a00;\r\n out[1] = a01;\r\n out[2] = a02;\r\n\r\n out[3] = a10;\r\n out[4] = a11;\r\n out[5] = a12;\r\n\r\n out[6] = x * a00 + y * a10 + a20;\r\n out[7] = x * a01 + y * a11 + a21;\r\n out[8] = x * a02 + y * a12 + a22;\r\n return out;\r\n}\r\n\r\n/**\r\n * Rotates a mat3 by the given angle\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {mat3} a the matrix to rotate\r\n * @param {Number} rad the angle to rotate the matrix by\r\n * @returns {mat3} out\r\n */\r\nexport function rotate(out, a, rad) {\r\n let a00 = a[0], a01 = a[1], a02 = a[2],\r\n a10 = a[3], a11 = a[4], a12 = a[5],\r\n a20 = a[6], a21 = a[7], a22 = a[8],\r\n\r\n s = Math.sin(rad),\r\n c = Math.cos(rad);\r\n\r\n out[0] = c * a00 + s * a10;\r\n out[1] = c * a01 + s * a11;\r\n out[2] = c * a02 + s * a12;\r\n\r\n out[3] = c * a10 - s * a00;\r\n out[4] = c * a11 - s * a01;\r\n out[5] = c * a12 - s * a02;\r\n\r\n out[6] = a20;\r\n out[7] = a21;\r\n out[8] = a22;\r\n return out;\r\n};\r\n\r\n/**\r\n * Scales the mat3 by the dimensions in the given vec2\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {mat3} a the matrix to rotate\r\n * @param {vec2} v the vec2 to scale the matrix by\r\n * @returns {mat3} out\r\n **/\r\nexport function scale(out, a, v) {\r\n let x = v[0], y = v[1];\r\n\r\n out[0] = x * a[0];\r\n out[1] = x * a[1];\r\n out[2] = x * a[2];\r\n\r\n out[3] = y * a[3];\r\n out[4] = y * a[4];\r\n out[5] = y * a[5];\r\n\r\n out[6] = a[6];\r\n out[7] = a[7];\r\n out[8] = a[8];\r\n return out;\r\n}\r\n\r\n/**\r\n * Creates a matrix from a vector translation\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat3.identity(dest);\r\n * mat3.translate(dest, dest, vec);\r\n *\r\n * @param {mat3} out mat3 receiving operation result\r\n * @param {vec2} v Translation vector\r\n * @returns {mat3} out\r\n */\r\nexport function fromTranslation(out, v) {\r\n out[0] = 1;\r\n out[1] = 0;\r\n out[2] = 0;\r\n out[3] = 0;\r\n out[4] = 1;\r\n out[5] = 0;\r\n out[6] = v[0];\r\n out[7] = v[1];\r\n out[8] = 1;\r\n return out;\r\n}\r\n\r\n/**\r\n * Creates a matrix from a given angle\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat3.identity(dest);\r\n * mat3.rotate(dest, dest, rad);\r\n *\r\n * @param {mat3} out mat3 receiving operation result\r\n * @param {Number} rad the angle to rotate the matrix by\r\n * @returns {mat3} out\r\n */\r\nexport function fromRotation(out, rad) {\r\n let s = Math.sin(rad), c = Math.cos(rad);\r\n\r\n out[0] = c;\r\n out[1] = s;\r\n out[2] = 0;\r\n\r\n out[3] = -s;\r\n out[4] = c;\r\n out[5] = 0;\r\n\r\n out[6] = 0;\r\n out[7] = 0;\r\n out[8] = 1;\r\n return out;\r\n}\r\n\r\n/**\r\n * Creates a matrix from a vector scaling\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat3.identity(dest);\r\n * mat3.scale(dest, dest, vec);\r\n *\r\n * @param {mat3} out mat3 receiving operation result\r\n * @param {vec2} v Scaling vector\r\n * @returns {mat3} out\r\n */\r\nexport function fromScaling(out, v) {\r\n out[0] = v[0];\r\n out[1] = 0;\r\n out[2] = 0;\r\n\r\n out[3] = 0;\r\n out[4] = v[1];\r\n out[5] = 0;\r\n\r\n out[6] = 0;\r\n out[7] = 0;\r\n out[8] = 1;\r\n return out;\r\n}\r\n\r\n/**\r\n * Copies the values from a mat2d into a mat3\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {mat2d} a the matrix to copy\r\n * @returns {mat3} out\r\n **/\r\nexport function fromMat2d(out, a) {\r\n out[0] = a[0];\r\n out[1] = a[1];\r\n out[2] = 0;\r\n\r\n out[3] = a[2];\r\n out[4] = a[3];\r\n out[5] = 0;\r\n\r\n out[6] = a[4];\r\n out[7] = a[5];\r\n out[8] = 1;\r\n return out;\r\n}\r\n\r\n/**\r\n* Calculates a 3x3 matrix from the given quaternion\r\n*\r\n* @param {mat3} out mat3 receiving operation result\r\n* @param {quat} q Quaternion to create matrix from\r\n*\r\n* @returns {mat3} out\r\n*/\r\nexport function fromQuat(out, q) {\r\n let x = q[0], y = q[1], z = q[2], w = q[3];\r\n let x2 = x + x;\r\n let y2 = y + y;\r\n let z2 = z + z;\r\n\r\n let xx = x * x2;\r\n let yx = y * x2;\r\n let yy = y * y2;\r\n let zx = z * x2;\r\n let zy = z * y2;\r\n let zz = z * z2;\r\n let wx = w * x2;\r\n let wy = w * y2;\r\n let wz = w * z2;\r\n\r\n out[0] = 1 - yy - zz;\r\n out[3] = yx - wz;\r\n out[6] = zx + wy;\r\n\r\n out[1] = yx + wz;\r\n out[4] = 1 - xx - zz;\r\n out[7] = zy - wx;\r\n\r\n out[2] = zx - wy;\r\n out[5] = zy + wx;\r\n out[8] = 1 - xx - yy;\r\n\r\n return out;\r\n}\r\n\r\n/**\r\n* Calculates a 3x3 normal matrix (transpose inverse) from the 4x4 matrix\r\n*\r\n* @param {mat3} out mat3 receiving operation result\r\n* @param {mat4} a Mat4 to derive the normal matrix from\r\n*\r\n* @returns {mat3} out\r\n*/\r\nexport function normalFromMat4(out, a) {\r\n let a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3];\r\n let a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7];\r\n let a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11];\r\n let a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15];\r\n\r\n let b00 = a00 * a11 - a01 * a10;\r\n let b01 = a00 * a12 - a02 * a10;\r\n let b02 = a00 * a13 - a03 * a10;\r\n let b03 = a01 * a12 - a02 * a11;\r\n let b04 = a01 * a13 - a03 * a11;\r\n let b05 = a02 * a13 - a03 * a12;\r\n let b06 = a20 * a31 - a21 * a30;\r\n let b07 = a20 * a32 - a22 * a30;\r\n let b08 = a20 * a33 - a23 * a30;\r\n let b09 = a21 * a32 - a22 * a31;\r\n let b10 = a21 * a33 - a23 * a31;\r\n let b11 = a22 * a33 - a23 * a32;\r\n\r\n // Calculate the determinant\r\n let det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\r\n\r\n if (!det) {\r\n return null;\r\n }\r\n det = 1.0 / det;\r\n\r\n out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;\r\n out[1] = (a12 * b08 - a10 * b11 - a13 * b07) * det;\r\n out[2] = (a10 * b10 - a11 * b08 + a13 * b06) * det;\r\n\r\n out[3] = (a02 * b10 - a01 * b11 - a03 * b09) * det;\r\n out[4] = (a00 * b11 - a02 * b08 + a03 * b07) * det;\r\n out[5] = (a01 * b08 - a00 * b10 - a03 * b06) * det;\r\n\r\n out[6] = (a31 * b05 - a32 * b04 + a33 * b03) * det;\r\n out[7] = (a32 * b02 - a30 * b05 - a33 * b01) * det;\r\n out[8] = (a30 * b04 - a31 * b02 + a33 * b00) * det;\r\n\r\n return out;\r\n}\r\n\r\n/**\r\n * Generates a 2D projection matrix with the given bounds\r\n *\r\n * @param {mat3} out mat3 frustum matrix will be written into\r\n * @param {number} width Width of your gl context\r\n * @param {number} height Height of gl context\r\n * @returns {mat3} out\r\n */\r\nexport function projection(out, width, height) {\r\n out[0] = 2 / width;\r\n out[1] = 0;\r\n out[2] = 0;\r\n out[3] = 0;\r\n out[4] = -2 / height;\r\n out[5] = 0;\r\n out[6] = -1;\r\n out[7] = 1;\r\n out[8] = 1;\r\n return out;\r\n}\r\n\r\n/**\r\n * Returns a string representation of a mat3\r\n *\r\n * @param {mat3} a matrix to represent as a string\r\n * @returns {String} string representation of the matrix\r\n */\r\nexport function str(a) {\r\n return 'mat3(' + a[0] + ', ' + a[1] + ', ' + a[2] + ', ' +\r\n a[3] + ', ' + a[4] + ', ' + a[5] + ', ' +\r\n a[6] + ', ' + a[7] + ', ' + a[8] + ')';\r\n}\r\n\r\n/**\r\n * Returns Frobenius norm of a mat3\r\n *\r\n * @param {mat3} a the matrix to calculate Frobenius norm of\r\n * @returns {Number} Frobenius norm\r\n */\r\nexport function frob(a) {\r\n return(Math.sqrt(Math.pow(a[0], 2) + Math.pow(a[1], 2) + Math.pow(a[2], 2) + Math.pow(a[3], 2) + Math.pow(a[4], 2) + Math.pow(a[5], 2) + Math.pow(a[6], 2) + Math.pow(a[7], 2) + Math.pow(a[8], 2)))\r\n}\r\n\r\n/**\r\n * Adds two mat3's\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {mat3} a the first operand\r\n * @param {mat3} b the second operand\r\n * @returns {mat3} out\r\n */\r\nexport function add(out, a, b) {\r\n out[0] = a[0] + b[0];\r\n out[1] = a[1] + b[1];\r\n out[2] = a[2] + b[2];\r\n out[3] = a[3] + b[3];\r\n out[4] = a[4] + b[4];\r\n out[5] = a[5] + b[5];\r\n out[6] = a[6] + b[6];\r\n out[7] = a[7] + b[7];\r\n out[8] = a[8] + b[8];\r\n return out;\r\n}\r\n\r\n/**\r\n * Subtracts matrix b from matrix a\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {mat3} a the first operand\r\n * @param {mat3} b the second operand\r\n * @returns {mat3} out\r\n */\r\nexport function subtract(out, a, b) {\r\n out[0] = a[0] - b[0];\r\n out[1] = a[1] - b[1];\r\n out[2] = a[2] - b[2];\r\n out[3] = a[3] - b[3];\r\n out[4] = a[4] - b[4];\r\n out[5] = a[5] - b[5];\r\n out[6] = a[6] - b[6];\r\n out[7] = a[7] - b[7];\r\n out[8] = a[8] - b[8];\r\n return out;\r\n}\r\n\r\n\r\n\r\n/**\r\n * Multiply each element of the matrix by a scalar.\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {mat3} a the matrix to scale\r\n * @param {Number} b amount to scale the matrix's elements by\r\n * @returns {mat3} out\r\n */\r\nexport function multiplyScalar(out, a, b) {\r\n out[0] = a[0] * b;\r\n out[1] = a[1] * b;\r\n out[2] = a[2] * b;\r\n out[3] = a[3] * b;\r\n out[4] = a[4] * b;\r\n out[5] = a[5] * b;\r\n out[6] = a[6] * b;\r\n out[7] = a[7] * b;\r\n out[8] = a[8] * b;\r\n return out;\r\n}\r\n\r\n/**\r\n * Adds two mat3's after multiplying each element of the second operand by a scalar value.\r\n *\r\n * @param {mat3} out the receiving vector\r\n * @param {mat3} a the first operand\r\n * @param {mat3} b the second operand\r\n * @param {Number} scale the amount to scale b's elements by before adding\r\n * @returns {mat3} out\r\n */\r\nexport function multiplyScalarAndAdd(out, a, b, scale) {\r\n out[0] = a[0] + (b[0] * scale);\r\n out[1] = a[1] + (b[1] * scale);\r\n out[2] = a[2] + (b[2] * scale);\r\n out[3] = a[3] + (b[3] * scale);\r\n out[4] = a[4] + (b[4] * scale);\r\n out[5] = a[5] + (b[5] * scale);\r\n out[6] = a[6] + (b[6] * scale);\r\n out[7] = a[7] + (b[7] * scale);\r\n out[8] = a[8] + (b[8] * scale);\r\n return out;\r\n}\r\n\r\n/**\r\n * Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===)\r\n *\r\n * @param {mat3} a The first matrix.\r\n * @param {mat3} b The second matrix.\r\n * @returns {Boolean} True if the matrices are equal, false otherwise.\r\n */\r\nexport function exactEquals(a, b) {\r\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] &&\r\n a[3] === b[3] && a[4] === b[4] && a[5] === b[5] &&\r\n a[6] === b[6] && a[7] === b[7] && a[8] === b[8];\r\n}\r\n\r\n/**\r\n * Returns whether or not the matrices have approximately the same elements in the same position.\r\n *\r\n * @param {mat3} a The first matrix.\r\n * @param {mat3} b The second matrix.\r\n * @returns {Boolean} True if the matrices are equal, false otherwise.\r\n */\r\nexport function equals(a, b) {\r\n let a0 = a[0], a1 = a[1], a2 = a[2], a3 = a[3], a4 = a[4], a5 = a[5], a6 = a[6], a7 = a[7], a8 = a[8];\r\n let b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3], b4 = b[4], b5 = b[5], b6 = b[6], b7 = b[7], b8 = b[8];\r\n return (Math.abs(a0 - b0) <= glMatrix.EPSILON*Math.max(1.0, Math.abs(a0), Math.abs(b0)) &&\r\n Math.abs(a1 - b1) <= glMatrix.EPSILON*Math.max(1.0, Math.abs(a1), Math.abs(b1)) &&\r\n Math.abs(a2 - b2) <= glMatrix.EPSILON*Math.max(1.0, Math.abs(a2), Math.abs(b2)) &&\r\n Math.abs(a3 - b3) <= glMatrix.EPSILON*Math.max(1.0, Math.abs(a3), Math.abs(b3)) &&\r\n Math.abs(a4 - b4) <= glMatrix.EPSILON*Math.max(1.0, Math.abs(a4), Math.abs(b4)) &&\r\n Math.abs(a5 - b5) <= glMatrix.EPSILON*Math.max(1.0, Math.abs(a5), Math.abs(b5)) &&\r\n Math.abs(a6 - b6) <= glMatrix.EPSILON*Math.max(1.0, Math.abs(a6), Math.abs(b6)) &&\r\n Math.abs(a7 - b7) <= glMatrix.EPSILON*Math.max(1.0, Math.abs(a7), Math.abs(b7)) &&\r\n Math.abs(a8 - b8) <= glMatrix.EPSILON*Math.max(1.0, Math.abs(a8), Math.abs(b8)));\r\n}\r\n\r\n/**\r\n * Alias for {@link mat3.multiply}\r\n * @function\r\n */\r\nexport const mul = multiply;\r\n\r\n/**\r\n * Alias for {@link mat3.subtract}\r\n * @function\r\n */\r\nexport const sub = subtract;\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/node_modules/gl-matrix/src/gl-matrix/mat3.js","/* Copyright (c) 2015, Brandon Jones, Colin MacKenzie IV.\r\n\r\nPermission is hereby granted, free of charge, to any person obtaining a copy\r\nof this software and associated documentation files (the \"Software\"), to deal\r\nin the Software without restriction, including without limitation the rights\r\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\ncopies of the Software, and to permit persons to whom the Software is\r\nfurnished to do so, subject to the following conditions:\r\n\r\nThe above copyright notice and this permission notice shall be included in\r\nall copies or substantial portions of the Software.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\nTHE SOFTWARE. */\r\n\r\nimport * as glMatrix from \"./common.js\";\r\n\r\n/**\r\n * @class 4x4 Matrix
Format: column-major, when typed out it looks like row-major
The matrices are being post multiplied.\r\n * @name mat4\r\n */\r\n\r\n/**\r\n * Creates a new identity mat4\r\n *\r\n * @returns {mat4} a new 4x4 matrix\r\n */\r\nexport function create() {\r\n let out = new glMatrix.ARRAY_TYPE(16);\r\n out[0] = 1;\r\n out[1] = 0;\r\n out[2] = 0;\r\n out[3] = 0;\r\n out[4] = 0;\r\n out[5] = 1;\r\n out[6] = 0;\r\n out[7] = 0;\r\n out[8] = 0;\r\n out[9] = 0;\r\n out[10] = 1;\r\n out[11] = 0;\r\n out[12] = 0;\r\n out[13] = 0;\r\n out[14] = 0;\r\n out[15] = 1;\r\n return out;\r\n}\r\n\r\n/**\r\n * Creates a new mat4 initialized with values from an existing matrix\r\n *\r\n * @param {mat4} a matrix to clone\r\n * @returns {mat4} a new 4x4 matrix\r\n */\r\nexport function clone(a) {\r\n let out = new glMatrix.ARRAY_TYPE(16);\r\n out[0] = a[0];\r\n out[1] = a[1];\r\n out[2] = a[2];\r\n out[3] = a[3];\r\n out[4] = a[4];\r\n out[5] = a[5];\r\n out[6] = a[6];\r\n out[7] = a[7];\r\n out[8] = a[8];\r\n out[9] = a[9];\r\n out[10] = a[10];\r\n out[11] = a[11];\r\n out[12] = a[12];\r\n out[13] = a[13];\r\n out[14] = a[14];\r\n out[15] = a[15];\r\n return out;\r\n}\r\n\r\n/**\r\n * Copy the values from one mat4 to another\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {mat4} a the source matrix\r\n * @returns {mat4} out\r\n */\r\nexport function copy(out, a) {\r\n out[0] = a[0];\r\n out[1] = a[1];\r\n out[2] = a[2];\r\n out[3] = a[3];\r\n out[4] = a[4];\r\n out[5] = a[5];\r\n out[6] = a[6];\r\n out[7] = a[7];\r\n out[8] = a[8];\r\n out[9] = a[9];\r\n out[10] = a[10];\r\n out[11] = a[11];\r\n out[12] = a[12];\r\n out[13] = a[13];\r\n out[14] = a[14];\r\n out[15] = a[15];\r\n return out;\r\n}\r\n\r\n/**\r\n * Create a new mat4 with the given values\r\n *\r\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\r\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\r\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\r\n * @param {Number} m03 Component in column 0, row 3 position (index 3)\r\n * @param {Number} m10 Component in column 1, row 0 position (index 4)\r\n * @param {Number} m11 Component in column 1, row 1 position (index 5)\r\n * @param {Number} m12 Component in column 1, row 2 position (index 6)\r\n * @param {Number} m13 Component in column 1, row 3 position (index 7)\r\n * @param {Number} m20 Component in column 2, row 0 position (index 8)\r\n * @param {Number} m21 Component in column 2, row 1 position (index 9)\r\n * @param {Number} m22 Component in column 2, row 2 position (index 10)\r\n * @param {Number} m23 Component in column 2, row 3 position (index 11)\r\n * @param {Number} m30 Component in column 3, row 0 position (index 12)\r\n * @param {Number} m31 Component in column 3, row 1 position (index 13)\r\n * @param {Number} m32 Component in column 3, row 2 position (index 14)\r\n * @param {Number} m33 Component in column 3, row 3 position (index 15)\r\n * @returns {mat4} A new mat4\r\n */\r\nexport function fromValues(m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33) {\r\n let out = new glMatrix.ARRAY_TYPE(16);\r\n out[0] = m00;\r\n out[1] = m01;\r\n out[2] = m02;\r\n out[3] = m03;\r\n out[4] = m10;\r\n out[5] = m11;\r\n out[6] = m12;\r\n out[7] = m13;\r\n out[8] = m20;\r\n out[9] = m21;\r\n out[10] = m22;\r\n out[11] = m23;\r\n out[12] = m30;\r\n out[13] = m31;\r\n out[14] = m32;\r\n out[15] = m33;\r\n return out;\r\n}\r\n\r\n/**\r\n * Set the components of a mat4 to the given values\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\r\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\r\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\r\n * @param {Number} m03 Component in column 0, row 3 position (index 3)\r\n * @param {Number} m10 Component in column 1, row 0 position (index 4)\r\n * @param {Number} m11 Component in column 1, row 1 position (index 5)\r\n * @param {Number} m12 Component in column 1, row 2 position (index 6)\r\n * @param {Number} m13 Component in column 1, row 3 position (index 7)\r\n * @param {Number} m20 Component in column 2, row 0 position (index 8)\r\n * @param {Number} m21 Component in column 2, row 1 position (index 9)\r\n * @param {Number} m22 Component in column 2, row 2 position (index 10)\r\n * @param {Number} m23 Component in column 2, row 3 position (index 11)\r\n * @param {Number} m30 Component in column 3, row 0 position (index 12)\r\n * @param {Number} m31 Component in column 3, row 1 position (index 13)\r\n * @param {Number} m32 Component in column 3, row 2 position (index 14)\r\n * @param {Number} m33 Component in column 3, row 3 position (index 15)\r\n * @returns {mat4} out\r\n */\r\nexport function set(out, m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33) {\r\n out[0] = m00;\r\n out[1] = m01;\r\n out[2] = m02;\r\n out[3] = m03;\r\n out[4] = m10;\r\n out[5] = m11;\r\n out[6] = m12;\r\n out[7] = m13;\r\n out[8] = m20;\r\n out[9] = m21;\r\n out[10] = m22;\r\n out[11] = m23;\r\n out[12] = m30;\r\n out[13] = m31;\r\n out[14] = m32;\r\n out[15] = m33;\r\n return out;\r\n}\r\n\r\n\r\n/**\r\n * Set a mat4 to the identity matrix\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @returns {mat4} out\r\n */\r\nexport function identity(out) {\r\n out[0] = 1;\r\n out[1] = 0;\r\n out[2] = 0;\r\n out[3] = 0;\r\n out[4] = 0;\r\n out[5] = 1;\r\n out[6] = 0;\r\n out[7] = 0;\r\n out[8] = 0;\r\n out[9] = 0;\r\n out[10] = 1;\r\n out[11] = 0;\r\n out[12] = 0;\r\n out[13] = 0;\r\n out[14] = 0;\r\n out[15] = 1;\r\n return out;\r\n}\r\n\r\n/**\r\n * Transpose the values of a mat4\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {mat4} a the source matrix\r\n * @returns {mat4} out\r\n */\r\nexport function transpose(out, a) {\r\n // If we are transposing ourselves we can skip a few steps but have to cache some values\r\n if (out === a) {\r\n let a01 = a[1], a02 = a[2], a03 = a[3];\r\n let a12 = a[6], a13 = a[7];\r\n let a23 = a[11];\r\n\r\n out[1] = a[4];\r\n out[2] = a[8];\r\n out[3] = a[12];\r\n out[4] = a01;\r\n out[6] = a[9];\r\n out[7] = a[13];\r\n out[8] = a02;\r\n out[9] = a12;\r\n out[11] = a[14];\r\n out[12] = a03;\r\n out[13] = a13;\r\n out[14] = a23;\r\n } else {\r\n out[0] = a[0];\r\n out[1] = a[4];\r\n out[2] = a[8];\r\n out[3] = a[12];\r\n out[4] = a[1];\r\n out[5] = a[5];\r\n out[6] = a[9];\r\n out[7] = a[13];\r\n out[8] = a[2];\r\n out[9] = a[6];\r\n out[10] = a[10];\r\n out[11] = a[14];\r\n out[12] = a[3];\r\n out[13] = a[7];\r\n out[14] = a[11];\r\n out[15] = a[15];\r\n }\r\n\r\n return out;\r\n}\r\n\r\n/**\r\n * Inverts a mat4\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {mat4} a the source matrix\r\n * @returns {mat4} out\r\n */\r\nexport function invert(out, a) {\r\n let a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3];\r\n let a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7];\r\n let a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11];\r\n let a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15];\r\n\r\n let b00 = a00 * a11 - a01 * a10;\r\n let b01 = a00 * a12 - a02 * a10;\r\n let b02 = a00 * a13 - a03 * a10;\r\n let b03 = a01 * a12 - a02 * a11;\r\n let b04 = a01 * a13 - a03 * a11;\r\n let b05 = a02 * a13 - a03 * a12;\r\n let b06 = a20 * a31 - a21 * a30;\r\n let b07 = a20 * a32 - a22 * a30;\r\n let b08 = a20 * a33 - a23 * a30;\r\n let b09 = a21 * a32 - a22 * a31;\r\n let b10 = a21 * a33 - a23 * a31;\r\n let b11 = a22 * a33 - a23 * a32;\r\n\r\n // Calculate the determinant\r\n let det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\r\n\r\n if (!det) {\r\n return null;\r\n }\r\n det = 1.0 / det;\r\n\r\n out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;\r\n out[1] = (a02 * b10 - a01 * b11 - a03 * b09) * det;\r\n out[2] = (a31 * b05 - a32 * b04 + a33 * b03) * det;\r\n out[3] = (a22 * b04 - a21 * b05 - a23 * b03) * det;\r\n out[4] = (a12 * b08 - a10 * b11 - a13 * b07) * det;\r\n out[5] = (a00 * b11 - a02 * b08 + a03 * b07) * det;\r\n out[6] = (a32 * b02 - a30 * b05 - a33 * b01) * det;\r\n out[7] = (a20 * b05 - a22 * b02 + a23 * b01) * det;\r\n out[8] = (a10 * b10 - a11 * b08 + a13 * b06) * det;\r\n out[9] = (a01 * b08 - a00 * b10 - a03 * b06) * det;\r\n out[10] = (a30 * b04 - a31 * b02 + a33 * b00) * det;\r\n out[11] = (a21 * b02 - a20 * b04 - a23 * b00) * det;\r\n out[12] = (a11 * b07 - a10 * b09 - a12 * b06) * det;\r\n out[13] = (a00 * b09 - a01 * b07 + a02 * b06) * det;\r\n out[14] = (a31 * b01 - a30 * b03 - a32 * b00) * det;\r\n out[15] = (a20 * b03 - a21 * b01 + a22 * b00) * det;\r\n\r\n return out;\r\n}\r\n\r\n/**\r\n * Calculates the adjugate of a mat4\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {mat4} a the source matrix\r\n * @returns {mat4} out\r\n */\r\nexport function adjoint(out, a) {\r\n let a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3];\r\n let a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7];\r\n let a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11];\r\n let a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15];\r\n\r\n out[0] = (a11 * (a22 * a33 - a23 * a32) - a21 * (a12 * a33 - a13 * a32) + a31 * (a12 * a23 - a13 * a22));\r\n out[1] = -(a01 * (a22 * a33 - a23 * a32) - a21 * (a02 * a33 - a03 * a32) + a31 * (a02 * a23 - a03 * a22));\r\n out[2] = (a01 * (a12 * a33 - a13 * a32) - a11 * (a02 * a33 - a03 * a32) + a31 * (a02 * a13 - a03 * a12));\r\n out[3] = -(a01 * (a12 * a23 - a13 * a22) - a11 * (a02 * a23 - a03 * a22) + a21 * (a02 * a13 - a03 * a12));\r\n out[4] = -(a10 * (a22 * a33 - a23 * a32) - a20 * (a12 * a33 - a13 * a32) + a30 * (a12 * a23 - a13 * a22));\r\n out[5] = (a00 * (a22 * a33 - a23 * a32) - a20 * (a02 * a33 - a03 * a32) + a30 * (a02 * a23 - a03 * a22));\r\n out[6] = -(a00 * (a12 * a33 - a13 * a32) - a10 * (a02 * a33 - a03 * a32) + a30 * (a02 * a13 - a03 * a12));\r\n out[7] = (a00 * (a12 * a23 - a13 * a22) - a10 * (a02 * a23 - a03 * a22) + a20 * (a02 * a13 - a03 * a12));\r\n out[8] = (a10 * (a21 * a33 - a23 * a31) - a20 * (a11 * a33 - a13 * a31) + a30 * (a11 * a23 - a13 * a21));\r\n out[9] = -(a00 * (a21 * a33 - a23 * a31) - a20 * (a01 * a33 - a03 * a31) + a30 * (a01 * a23 - a03 * a21));\r\n out[10] = (a00 * (a11 * a33 - a13 * a31) - a10 * (a01 * a33 - a03 * a31) + a30 * (a01 * a13 - a03 * a11));\r\n out[11] = -(a00 * (a11 * a23 - a13 * a21) - a10 * (a01 * a23 - a03 * a21) + a20 * (a01 * a13 - a03 * a11));\r\n out[12] = -(a10 * (a21 * a32 - a22 * a31) - a20 * (a11 * a32 - a12 * a31) + a30 * (a11 * a22 - a12 * a21));\r\n out[13] = (a00 * (a21 * a32 - a22 * a31) - a20 * (a01 * a32 - a02 * a31) + a30 * (a01 * a22 - a02 * a21));\r\n out[14] = -(a00 * (a11 * a32 - a12 * a31) - a10 * (a01 * a32 - a02 * a31) + a30 * (a01 * a12 - a02 * a11));\r\n out[15] = (a00 * (a11 * a22 - a12 * a21) - a10 * (a01 * a22 - a02 * a21) + a20 * (a01 * a12 - a02 * a11));\r\n return out;\r\n}\r\n\r\n/**\r\n * Calculates the determinant of a mat4\r\n *\r\n * @param {mat4} a the source matrix\r\n * @returns {Number} determinant of a\r\n */\r\nexport function determinant(a) {\r\n let a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3];\r\n let a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7];\r\n let a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11];\r\n let a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15];\r\n\r\n let b00 = a00 * a11 - a01 * a10;\r\n let b01 = a00 * a12 - a02 * a10;\r\n let b02 = a00 * a13 - a03 * a10;\r\n let b03 = a01 * a12 - a02 * a11;\r\n let b04 = a01 * a13 - a03 * a11;\r\n let b05 = a02 * a13 - a03 * a12;\r\n let b06 = a20 * a31 - a21 * a30;\r\n let b07 = a20 * a32 - a22 * a30;\r\n let b08 = a20 * a33 - a23 * a30;\r\n let b09 = a21 * a32 - a22 * a31;\r\n let b10 = a21 * a33 - a23 * a31;\r\n let b11 = a22 * a33 - a23 * a32;\r\n\r\n // Calculate the determinant\r\n return b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\r\n}\r\n\r\n/**\r\n * Multiplies two mat4s\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {mat4} a the first operand\r\n * @param {mat4} b the second operand\r\n * @returns {mat4} out\r\n */\r\nexport function multiply(out, a, b) {\r\n let a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3];\r\n let a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7];\r\n let a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11];\r\n let a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15];\r\n\r\n // Cache only the current line of the second matrix\r\n let b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3];\r\n out[0] = b0*a00 + b1*a10 + b2*a20 + b3*a30;\r\n out[1] = b0*a01 + b1*a11 + b2*a21 + b3*a31;\r\n out[2] = b0*a02 + b1*a12 + b2*a22 + b3*a32;\r\n out[3] = b0*a03 + b1*a13 + b2*a23 + b3*a33;\r\n\r\n b0 = b[4]; b1 = b[5]; b2 = b[6]; b3 = b[7];\r\n out[4] = b0*a00 + b1*a10 + b2*a20 + b3*a30;\r\n out[5] = b0*a01 + b1*a11 + b2*a21 + b3*a31;\r\n out[6] = b0*a02 + b1*a12 + b2*a22 + b3*a32;\r\n out[7] = b0*a03 + b1*a13 + b2*a23 + b3*a33;\r\n\r\n b0 = b[8]; b1 = b[9]; b2 = b[10]; b3 = b[11];\r\n out[8] = b0*a00 + b1*a10 + b2*a20 + b3*a30;\r\n out[9] = b0*a01 + b1*a11 + b2*a21 + b3*a31;\r\n out[10] = b0*a02 + b1*a12 + b2*a22 + b3*a32;\r\n out[11] = b0*a03 + b1*a13 + b2*a23 + b3*a33;\r\n\r\n b0 = b[12]; b1 = b[13]; b2 = b[14]; b3 = b[15];\r\n out[12] = b0*a00 + b1*a10 + b2*a20 + b3*a30;\r\n out[13] = b0*a01 + b1*a11 + b2*a21 + b3*a31;\r\n out[14] = b0*a02 + b1*a12 + b2*a22 + b3*a32;\r\n out[15] = b0*a03 + b1*a13 + b2*a23 + b3*a33;\r\n return out;\r\n}\r\n\r\n/**\r\n * Translate a mat4 by the given vector\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {mat4} a the matrix to translate\r\n * @param {vec3} v vector to translate by\r\n * @returns {mat4} out\r\n */\r\nexport function translate(out, a, v) {\r\n let x = v[0], y = v[1], z = v[2];\r\n let a00, a01, a02, a03;\r\n let a10, a11, a12, a13;\r\n let a20, a21, a22, a23;\r\n\r\n if (a === out) {\r\n out[12] = a[0] * x + a[4] * y + a[8] * z + a[12];\r\n out[13] = a[1] * x + a[5] * y + a[9] * z + a[13];\r\n out[14] = a[2] * x + a[6] * y + a[10] * z + a[14];\r\n out[15] = a[3] * x + a[7] * y + a[11] * z + a[15];\r\n } else {\r\n a00 = a[0]; a01 = a[1]; a02 = a[2]; a03 = a[3];\r\n a10 = a[4]; a11 = a[5]; a12 = a[6]; a13 = a[7];\r\n a20 = a[8]; a21 = a[9]; a22 = a[10]; a23 = a[11];\r\n\r\n out[0] = a00; out[1] = a01; out[2] = a02; out[3] = a03;\r\n out[4] = a10; out[5] = a11; out[6] = a12; out[7] = a13;\r\n out[8] = a20; out[9] = a21; out[10] = a22; out[11] = a23;\r\n\r\n out[12] = a00 * x + a10 * y + a20 * z + a[12];\r\n out[13] = a01 * x + a11 * y + a21 * z + a[13];\r\n out[14] = a02 * x + a12 * y + a22 * z + a[14];\r\n out[15] = a03 * x + a13 * y + a23 * z + a[15];\r\n }\r\n\r\n return out;\r\n}\r\n\r\n/**\r\n * Scales the mat4 by the dimensions in the given vec3 not using vectorization\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {mat4} a the matrix to scale\r\n * @param {vec3} v the vec3 to scale the matrix by\r\n * @returns {mat4} out\r\n **/\r\nexport function scale(out, a, v) {\r\n let x = v[0], y = v[1], z = v[2];\r\n\r\n out[0] = a[0] * x;\r\n out[1] = a[1] * x;\r\n out[2] = a[2] * x;\r\n out[3] = a[3] * x;\r\n out[4] = a[4] * y;\r\n out[5] = a[5] * y;\r\n out[6] = a[6] * y;\r\n out[7] = a[7] * y;\r\n out[8] = a[8] * z;\r\n out[9] = a[9] * z;\r\n out[10] = a[10] * z;\r\n out[11] = a[11] * z;\r\n out[12] = a[12];\r\n out[13] = a[13];\r\n out[14] = a[14];\r\n out[15] = a[15];\r\n return out;\r\n}\r\n\r\n/**\r\n * Rotates a mat4 by the given angle around the given axis\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {mat4} a the matrix to rotate\r\n * @param {Number} rad the angle to rotate the matrix by\r\n * @param {vec3} axis the axis to rotate around\r\n * @returns {mat4} out\r\n */\r\nexport function rotate(out, a, rad, axis) {\r\n let x = axis[0], y = axis[1], z = axis[2];\r\n let len = Math.sqrt(x * x + y * y + z * z);\r\n let s, c, t;\r\n let a00, a01, a02, a03;\r\n let a10, a11, a12, a13;\r\n let a20, a21, a22, a23;\r\n let b00, b01, b02;\r\n let b10, b11, b12;\r\n let b20, b21, b22;\r\n\r\n if (Math.abs(len) < glMatrix.EPSILON) { return null; }\r\n\r\n len = 1 / len;\r\n x *= len;\r\n y *= len;\r\n z *= len;\r\n\r\n s = Math.sin(rad);\r\n c = Math.cos(rad);\r\n t = 1 - c;\r\n\r\n a00 = a[0]; a01 = a[1]; a02 = a[2]; a03 = a[3];\r\n a10 = a[4]; a11 = a[5]; a12 = a[6]; a13 = a[7];\r\n a20 = a[8]; a21 = a[9]; a22 = a[10]; a23 = a[11];\r\n\r\n // Construct the elements of the rotation matrix\r\n b00 = x * x * t + c; b01 = y * x * t + z * s; b02 = z * x * t - y * s;\r\n b10 = x * y * t - z * s; b11 = y * y * t + c; b12 = z * y * t + x * s;\r\n b20 = x * z * t + y * s; b21 = y * z * t - x * s; b22 = z * z * t + c;\r\n\r\n // Perform rotation-specific matrix multiplication\r\n out[0] = a00 * b00 + a10 * b01 + a20 * b02;\r\n out[1] = a01 * b00 + a11 * b01 + a21 * b02;\r\n out[2] = a02 * b00 + a12 * b01 + a22 * b02;\r\n out[3] = a03 * b00 + a13 * b01 + a23 * b02;\r\n out[4] = a00 * b10 + a10 * b11 + a20 * b12;\r\n out[5] = a01 * b10 + a11 * b11 + a21 * b12;\r\n out[6] = a02 * b10 + a12 * b11 + a22 * b12;\r\n out[7] = a03 * b10 + a13 * b11 + a23 * b12;\r\n out[8] = a00 * b20 + a10 * b21 + a20 * b22;\r\n out[9] = a01 * b20 + a11 * b21 + a21 * b22;\r\n out[10] = a02 * b20 + a12 * b21 + a22 * b22;\r\n out[11] = a03 * b20 + a13 * b21 + a23 * b22;\r\n\r\n if (a !== out) { // If the source and destination differ, copy the unchanged last row\r\n out[12] = a[12];\r\n out[13] = a[13];\r\n out[14] = a[14];\r\n out[15] = a[15];\r\n }\r\n return out;\r\n}\r\n\r\n/**\r\n * Rotates a matrix by the given angle around the X axis\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {mat4} a the matrix to rotate\r\n * @param {Number} rad the angle to rotate the matrix by\r\n * @returns {mat4} out\r\n */\r\nexport function rotateX(out, a, rad) {\r\n let s = Math.sin(rad);\r\n let c = Math.cos(rad);\r\n let a10 = a[4];\r\n let a11 = a[5];\r\n let a12 = a[6];\r\n let a13 = a[7];\r\n let a20 = a[8];\r\n let a21 = a[9];\r\n let a22 = a[10];\r\n let a23 = a[11];\r\n\r\n if (a !== out) { // If the source and destination differ, copy the unchanged rows\r\n out[0] = a[0];\r\n out[1] = a[1];\r\n out[2] = a[2];\r\n out[3] = a[3];\r\n out[12] = a[12];\r\n out[13] = a[13];\r\n out[14] = a[14];\r\n out[15] = a[15];\r\n }\r\n\r\n // Perform axis-specific matrix multiplication\r\n out[4] = a10 * c + a20 * s;\r\n out[5] = a11 * c + a21 * s;\r\n out[6] = a12 * c + a22 * s;\r\n out[7] = a13 * c + a23 * s;\r\n out[8] = a20 * c - a10 * s;\r\n out[9] = a21 * c - a11 * s;\r\n out[10] = a22 * c - a12 * s;\r\n out[11] = a23 * c - a13 * s;\r\n return out;\r\n}\r\n\r\n/**\r\n * Rotates a matrix by the given angle around the Y axis\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {mat4} a the matrix to rotate\r\n * @param {Number} rad the angle to rotate the matrix by\r\n * @returns {mat4} out\r\n */\r\nexport function rotateY(out, a, rad) {\r\n let s = Math.sin(rad);\r\n let c = Math.cos(rad);\r\n let a00 = a[0];\r\n let a01 = a[1];\r\n let a02 = a[2];\r\n let a03 = a[3];\r\n let a20 = a[8];\r\n let a21 = a[9];\r\n let a22 = a[10];\r\n let a23 = a[11];\r\n\r\n if (a !== out) { // If the source and destination differ, copy the unchanged rows\r\n out[4] = a[4];\r\n out[5] = a[5];\r\n out[6] = a[6];\r\n out[7] = a[7];\r\n out[12] = a[12];\r\n out[13] = a[13];\r\n out[14] = a[14];\r\n out[15] = a[15];\r\n }\r\n\r\n // Perform axis-specific matrix multiplication\r\n out[0] = a00 * c - a20 * s;\r\n out[1] = a01 * c - a21 * s;\r\n out[2] = a02 * c - a22 * s;\r\n out[3] = a03 * c - a23 * s;\r\n out[8] = a00 * s + a20 * c;\r\n out[9] = a01 * s + a21 * c;\r\n out[10] = a02 * s + a22 * c;\r\n out[11] = a03 * s + a23 * c;\r\n return out;\r\n}\r\n\r\n/**\r\n * Rotates a matrix by the given angle around the Z axis\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {mat4} a the matrix to rotate\r\n * @param {Number} rad the angle to rotate the matrix by\r\n * @returns {mat4} out\r\n */\r\nexport function rotateZ(out, a, rad) {\r\n let s = Math.sin(rad);\r\n let c = Math.cos(rad);\r\n let a00 = a[0];\r\n let a01 = a[1];\r\n let a02 = a[2];\r\n let a03 = a[3];\r\n let a10 = a[4];\r\n let a11 = a[5];\r\n let a12 = a[6];\r\n let a13 = a[7];\r\n\r\n if (a !== out) { // If the source and destination differ, copy the unchanged last row\r\n out[8] = a[8];\r\n out[9] = a[9];\r\n out[10] = a[10];\r\n out[11] = a[11];\r\n out[12] = a[12];\r\n out[13] = a[13];\r\n out[14] = a[14];\r\n out[15] = a[15];\r\n }\r\n\r\n // Perform axis-specific matrix multiplication\r\n out[0] = a00 * c + a10 * s;\r\n out[1] = a01 * c + a11 * s;\r\n out[2] = a02 * c + a12 * s;\r\n out[3] = a03 * c + a13 * s;\r\n out[4] = a10 * c - a00 * s;\r\n out[5] = a11 * c - a01 * s;\r\n out[6] = a12 * c - a02 * s;\r\n out[7] = a13 * c - a03 * s;\r\n return out;\r\n}\r\n\r\n/**\r\n * Creates a matrix from a vector translation\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat4.identity(dest);\r\n * mat4.translate(dest, dest, vec);\r\n *\r\n * @param {mat4} out mat4 receiving operation result\r\n * @param {vec3} v Translation vector\r\n * @returns {mat4} out\r\n */\r\nexport function fromTranslation(out, v) {\r\n out[0] = 1;\r\n out[1] = 0;\r\n out[2] = 0;\r\n out[3] = 0;\r\n out[4] = 0;\r\n out[5] = 1;\r\n out[6] = 0;\r\n out[7] = 0;\r\n out[8] = 0;\r\n out[9] = 0;\r\n out[10] = 1;\r\n out[11] = 0;\r\n out[12] = v[0];\r\n out[13] = v[1];\r\n out[14] = v[2];\r\n out[15] = 1;\r\n return out;\r\n}\r\n\r\n/**\r\n * Creates a matrix from a vector scaling\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat4.identity(dest);\r\n * mat4.scale(dest, dest, vec);\r\n *\r\n * @param {mat4} out mat4 receiving operation result\r\n * @param {vec3} v Scaling vector\r\n * @returns {mat4} out\r\n */\r\nexport function fromScaling(out, v) {\r\n out[0] = v[0];\r\n out[1] = 0;\r\n out[2] = 0;\r\n out[3] = 0;\r\n out[4] = 0;\r\n out[5] = v[1];\r\n out[6] = 0;\r\n out[7] = 0;\r\n out[8] = 0;\r\n out[9] = 0;\r\n out[10] = v[2];\r\n out[11] = 0;\r\n out[12] = 0;\r\n out[13] = 0;\r\n out[14] = 0;\r\n out[15] = 1;\r\n return out;\r\n}\r\n\r\n/**\r\n * Creates a matrix from a given angle around a given axis\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat4.identity(dest);\r\n * mat4.rotate(dest, dest, rad, axis);\r\n *\r\n * @param {mat4} out mat4 receiving operation result\r\n * @param {Number} rad the angle to rotate the matrix by\r\n * @param {vec3} axis the axis to rotate around\r\n * @returns {mat4} out\r\n */\r\nexport function fromRotation(out, rad, axis) {\r\n let x = axis[0], y = axis[1], z = axis[2];\r\n let len = Math.sqrt(x * x + y * y + z * z);\r\n let s, c, t;\r\n\r\n if (Math.abs(len) < glMatrix.EPSILON) { return null; }\r\n\r\n len = 1 / len;\r\n x *= len;\r\n y *= len;\r\n z *= len;\r\n\r\n s = Math.sin(rad);\r\n c = Math.cos(rad);\r\n t = 1 - c;\r\n\r\n // Perform rotation-specific matrix multiplication\r\n out[0] = x * x * t + c;\r\n out[1] = y * x * t + z * s;\r\n out[2] = z * x * t - y * s;\r\n out[3] = 0;\r\n out[4] = x * y * t - z * s;\r\n out[5] = y * y * t + c;\r\n out[6] = z * y * t + x * s;\r\n out[7] = 0;\r\n out[8] = x * z * t + y * s;\r\n out[9] = y * z * t - x * s;\r\n out[10] = z * z * t + c;\r\n out[11] = 0;\r\n out[12] = 0;\r\n out[13] = 0;\r\n out[14] = 0;\r\n out[15] = 1;\r\n return out;\r\n}\r\n\r\n/**\r\n * Creates a matrix from the given angle around the X axis\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat4.identity(dest);\r\n * mat4.rotateX(dest, dest, rad);\r\n *\r\n * @param {mat4} out mat4 receiving operation result\r\n * @param {Number} rad the angle to rotate the matrix by\r\n * @returns {mat4} out\r\n */\r\nexport function fromXRotation(out, rad) {\r\n let s = Math.sin(rad);\r\n let c = Math.cos(rad);\r\n\r\n // Perform axis-specific matrix multiplication\r\n out[0] = 1;\r\n out[1] = 0;\r\n out[2] = 0;\r\n out[3] = 0;\r\n out[4] = 0;\r\n out[5] = c;\r\n out[6] = s;\r\n out[7] = 0;\r\n out[8] = 0;\r\n out[9] = -s;\r\n out[10] = c;\r\n out[11] = 0;\r\n out[12] = 0;\r\n out[13] = 0;\r\n out[14] = 0;\r\n out[15] = 1;\r\n return out;\r\n}\r\n\r\n/**\r\n * Creates a matrix from the given angle around the Y axis\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat4.identity(dest);\r\n * mat4.rotateY(dest, dest, rad);\r\n *\r\n * @param {mat4} out mat4 receiving operation result\r\n * @param {Number} rad the angle to rotate the matrix by\r\n * @returns {mat4} out\r\n */\r\nexport function fromYRotation(out, rad) {\r\n let s = Math.sin(rad);\r\n let c = Math.cos(rad);\r\n\r\n // Perform axis-specific matrix multiplication\r\n out[0] = c;\r\n out[1] = 0;\r\n out[2] = -s;\r\n out[3] = 0;\r\n out[4] = 0;\r\n out[5] = 1;\r\n out[6] = 0;\r\n out[7] = 0;\r\n out[8] = s;\r\n out[9] = 0;\r\n out[10] = c;\r\n out[11] = 0;\r\n out[12] = 0;\r\n out[13] = 0;\r\n out[14] = 0;\r\n out[15] = 1;\r\n return out;\r\n}\r\n\r\n/**\r\n * Creates a matrix from the given angle around the Z axis\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat4.identity(dest);\r\n * mat4.rotateZ(dest, dest, rad);\r\n *\r\n * @param {mat4} out mat4 receiving operation result\r\n * @param {Number} rad the angle to rotate the matrix by\r\n * @returns {mat4} out\r\n */\r\nexport function fromZRotation(out, rad) {\r\n let s = Math.sin(rad);\r\n let c = Math.cos(rad);\r\n\r\n // Perform axis-specific matrix multiplication\r\n out[0] = c;\r\n out[1] = s;\r\n out[2] = 0;\r\n out[3] = 0;\r\n out[4] = -s;\r\n out[5] = c;\r\n out[6] = 0;\r\n out[7] = 0;\r\n out[8] = 0;\r\n out[9] = 0;\r\n out[10] = 1;\r\n out[11] = 0;\r\n out[12] = 0;\r\n out[13] = 0;\r\n out[14] = 0;\r\n out[15] = 1;\r\n return out;\r\n}\r\n\r\n/**\r\n * Creates a matrix from a quaternion rotation and vector translation\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat4.identity(dest);\r\n * mat4.translate(dest, vec);\r\n * let quatMat = mat4.create();\r\n * quat4.toMat4(quat, quatMat);\r\n * mat4.multiply(dest, quatMat);\r\n *\r\n * @param {mat4} out mat4 receiving operation result\r\n * @param {quat4} q Rotation quaternion\r\n * @param {vec3} v Translation vector\r\n * @returns {mat4} out\r\n */\r\nexport function fromRotationTranslation(out, q, v) {\r\n // Quaternion math\r\n let x = q[0], y = q[1], z = q[2], w = q[3];\r\n let x2 = x + x;\r\n let y2 = y + y;\r\n let z2 = z + z;\r\n\r\n let xx = x * x2;\r\n let xy = x * y2;\r\n let xz = x * z2;\r\n let yy = y * y2;\r\n let yz = y * z2;\r\n let zz = z * z2;\r\n let wx = w * x2;\r\n let wy = w * y2;\r\n let wz = w * z2;\r\n\r\n out[0] = 1 - (yy + zz);\r\n out[1] = xy + wz;\r\n out[2] = xz - wy;\r\n out[3] = 0;\r\n out[4] = xy - wz;\r\n out[5] = 1 - (xx + zz);\r\n out[6] = yz + wx;\r\n out[7] = 0;\r\n out[8] = xz + wy;\r\n out[9] = yz - wx;\r\n out[10] = 1 - (xx + yy);\r\n out[11] = 0;\r\n out[12] = v[0];\r\n out[13] = v[1];\r\n out[14] = v[2];\r\n out[15] = 1;\r\n\r\n return out;\r\n}\r\n\r\n/**\r\n * Creates a new mat4 from a dual quat.\r\n *\r\n * @param {mat4} out Matrix\r\n * @param {quat2} a Dual Quaternion\r\n * @returns {mat4} mat4 receiving operation result\r\n */\r\nexport function fromQuat2(out, a) {\r\n let translation = new glMatrix.ARRAY_TYPE(3);\r\n let bx = -a[0], by = -a[1], bz = -a[2], bw = a[3],\r\n ax = a[4], ay = a[5], az = a[6], aw = a[7];\r\n \r\n let magnitude = bx * bx + by * by + bz * bz + bw * bw;\r\n //Only scale if it makes sense\r\n if (magnitude > 0) {\r\n translation[0] = (ax * bw + aw * bx + ay * bz - az * by) * 2 / magnitude;\r\n translation[1] = (ay * bw + aw * by + az * bx - ax * bz) * 2 / magnitude;\r\n translation[2] = (az * bw + aw * bz + ax * by - ay * bx) * 2 / magnitude;\r\n } else {\r\n translation[0] = (ax * bw + aw * bx + ay * bz - az * by) * 2;\r\n translation[1] = (ay * bw + aw * by + az * bx - ax * bz) * 2;\r\n translation[2] = (az * bw + aw * bz + ax * by - ay * bx) * 2;\r\n }\r\n fromRotationTranslation(out, a, translation);\r\n return out;\r\n}\r\n\r\n/**\r\n * Returns the translation vector component of a transformation\r\n * matrix. If a matrix is built with fromRotationTranslation,\r\n * the returned vector will be the same as the translation vector\r\n * originally supplied.\r\n * @param {vec3} out Vector to receive translation component\r\n * @param {mat4} mat Matrix to be decomposed (input)\r\n * @return {vec3} out\r\n */\r\nexport function getTranslation(out, mat) {\r\n out[0] = mat[12];\r\n out[1] = mat[13];\r\n out[2] = mat[14];\r\n\r\n return out;\r\n}\r\n\r\n/**\r\n * Returns the scaling factor component of a transformation\r\n * matrix. If a matrix is built with fromRotationTranslationScale\r\n * with a normalized Quaternion paramter, the returned vector will be\r\n * the same as the scaling vector\r\n * originally supplied.\r\n * @param {vec3} out Vector to receive scaling factor component\r\n * @param {mat4} mat Matrix to be decomposed (input)\r\n * @return {vec3} out\r\n */\r\nexport function getScaling(out, mat) {\r\n let m11 = mat[0];\r\n let m12 = mat[1];\r\n let m13 = mat[2];\r\n let m21 = mat[4];\r\n let m22 = mat[5];\r\n let m23 = mat[6];\r\n let m31 = mat[8];\r\n let m32 = mat[9];\r\n let m33 = mat[10];\r\n\r\n out[0] = Math.sqrt(m11 * m11 + m12 * m12 + m13 * m13);\r\n out[1] = Math.sqrt(m21 * m21 + m22 * m22 + m23 * m23);\r\n out[2] = Math.sqrt(m31 * m31 + m32 * m32 + m33 * m33);\r\n\r\n return out;\r\n}\r\n\r\n/**\r\n * Returns a quaternion representing the rotational component\r\n * of a transformation matrix. If a matrix is built with\r\n * fromRotationTranslation, the returned quaternion will be the\r\n * same as the quaternion originally supplied.\r\n * @param {quat} out Quaternion to receive the rotation component\r\n * @param {mat4} mat Matrix to be decomposed (input)\r\n * @return {quat} out\r\n */\r\nexport function getRotation(out, mat) {\r\n // Algorithm taken from http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/index.htm\r\n let trace = mat[0] + mat[5] + mat[10];\r\n let S = 0;\r\n\r\n if (trace > 0) {\r\n S = Math.sqrt(trace + 1.0) * 2;\r\n out[3] = 0.25 * S;\r\n out[0] = (mat[6] - mat[9]) / S;\r\n out[1] = (mat[8] - mat[2]) / S;\r\n out[2] = (mat[1] - mat[4]) / S;\r\n } else if ((mat[0] > mat[5]) && (mat[0] > mat[10])) {\r\n S = Math.sqrt(1.0 + mat[0] - mat[5] - mat[10]) * 2;\r\n out[3] = (mat[6] - mat[9]) / S;\r\n out[0] = 0.25 * S;\r\n out[1] = (mat[1] + mat[4]) / S;\r\n out[2] = (mat[8] + mat[2]) / S;\r\n } else if (mat[5] > mat[10]) {\r\n S = Math.sqrt(1.0 + mat[5] - mat[0] - mat[10]) * 2;\r\n out[3] = (mat[8] - mat[2]) / S;\r\n out[0] = (mat[1] + mat[4]) / S;\r\n out[1] = 0.25 * S;\r\n out[2] = (mat[6] + mat[9]) / S;\r\n } else {\r\n S = Math.sqrt(1.0 + mat[10] - mat[0] - mat[5]) * 2;\r\n out[3] = (mat[1] - mat[4]) / S;\r\n out[0] = (mat[8] + mat[2]) / S;\r\n out[1] = (mat[6] + mat[9]) / S;\r\n out[2] = 0.25 * S;\r\n }\r\n\r\n return out;\r\n}\r\n\r\n/**\r\n * Creates a matrix from a quaternion rotation, vector translation and vector scale\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat4.identity(dest);\r\n * mat4.translate(dest, vec);\r\n * let quatMat = mat4.create();\r\n * quat4.toMat4(quat, quatMat);\r\n * mat4.multiply(dest, quatMat);\r\n * mat4.scale(dest, scale)\r\n *\r\n * @param {mat4} out mat4 receiving operation result\r\n * @param {quat4} q Rotation quaternion\r\n * @param {vec3} v Translation vector\r\n * @param {vec3} s Scaling vector\r\n * @returns {mat4} out\r\n */\r\nexport function fromRotationTranslationScale(out, q, v, s) {\r\n // Quaternion math\r\n let x = q[0], y = q[1], z = q[2], w = q[3];\r\n let x2 = x + x;\r\n let y2 = y + y;\r\n let z2 = z + z;\r\n\r\n let xx = x * x2;\r\n let xy = x * y2;\r\n let xz = x * z2;\r\n let yy = y * y2;\r\n let yz = y * z2;\r\n let zz = z * z2;\r\n let wx = w * x2;\r\n let wy = w * y2;\r\n let wz = w * z2;\r\n let sx = s[0];\r\n let sy = s[1];\r\n let sz = s[2];\r\n\r\n out[0] = (1 - (yy + zz)) * sx;\r\n out[1] = (xy + wz) * sx;\r\n out[2] = (xz - wy) * sx;\r\n out[3] = 0;\r\n out[4] = (xy - wz) * sy;\r\n out[5] = (1 - (xx + zz)) * sy;\r\n out[6] = (yz + wx) * sy;\r\n out[7] = 0;\r\n out[8] = (xz + wy) * sz;\r\n out[9] = (yz - wx) * sz;\r\n out[10] = (1 - (xx + yy)) * sz;\r\n out[11] = 0;\r\n out[12] = v[0];\r\n out[13] = v[1];\r\n out[14] = v[2];\r\n out[15] = 1;\r\n\r\n return out;\r\n}\r\n\r\n/**\r\n * Creates a matrix from a quaternion rotation, vector translation and vector scale, rotating and scaling around the given origin\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat4.identity(dest);\r\n * mat4.translate(dest, vec);\r\n * mat4.translate(dest, origin);\r\n * let quatMat = mat4.create();\r\n * quat4.toMat4(quat, quatMat);\r\n * mat4.multiply(dest, quatMat);\r\n * mat4.scale(dest, scale)\r\n * mat4.translate(dest, negativeOrigin);\r\n *\r\n * @param {mat4} out mat4 receiving operation result\r\n * @param {quat4} q Rotation quaternion\r\n * @param {vec3} v Translation vector\r\n * @param {vec3} s Scaling vector\r\n * @param {vec3} o The origin vector around which to scale and rotate\r\n * @returns {mat4} out\r\n */\r\nexport function fromRotationTranslationScaleOrigin(out, q, v, s, o) {\r\n // Quaternion math\r\n let x = q[0], y = q[1], z = q[2], w = q[3];\r\n let x2 = x + x;\r\n let y2 = y + y;\r\n let z2 = z + z;\r\n\r\n let xx = x * x2;\r\n let xy = x * y2;\r\n let xz = x * z2;\r\n let yy = y * y2;\r\n let yz = y * z2;\r\n let zz = z * z2;\r\n let wx = w * x2;\r\n let wy = w * y2;\r\n let wz = w * z2;\r\n\r\n let sx = s[0];\r\n let sy = s[1];\r\n let sz = s[2];\r\n\r\n let ox = o[0];\r\n let oy = o[1];\r\n let oz = o[2];\r\n\r\n let out0 = (1 - (yy + zz)) * sx;\r\n let out1 = (xy + wz) * sx;\r\n let out2 = (xz - wy) * sx;\r\n let out4 = (xy - wz) * sy;\r\n let out5 = (1 - (xx + zz)) * sy;\r\n let out6 = (yz + wx) * sy;\r\n let out8 = (xz + wy) * sz;\r\n let out9 = (yz - wx) * sz;\r\n let out10 = (1 - (xx + yy)) * sz;\r\n\r\n out[0] = out0;\r\n out[1] = out1;\r\n out[2] = out2;\r\n out[3] = 0;\r\n out[4] = out4;\r\n out[5] = out5;\r\n out[6] = out6;\r\n out[7] = 0;\r\n out[8] = out8;\r\n out[9] = out9;\r\n out[10] = out10;\r\n out[11] = 0;\r\n out[12] = v[0] + ox - (out0 * ox + out4 * oy + out8 * oz);\r\n out[13] = v[1] + oy - (out1 * ox + out5 * oy + out9 * oz);\r\n out[14] = v[2] + oz - (out2 * ox + out6 * oy + out10 * oz);\r\n out[15] = 1;\r\n\r\n return out;\r\n}\r\n\r\n/**\r\n * Calculates a 4x4 matrix from the given quaternion\r\n *\r\n * @param {mat4} out mat4 receiving operation result\r\n * @param {quat} q Quaternion to create matrix from\r\n *\r\n * @returns {mat4} out\r\n */\r\nexport function fromQuat(out, q) {\r\n let x = q[0], y = q[1], z = q[2], w = q[3];\r\n let x2 = x + x;\r\n let y2 = y + y;\r\n let z2 = z + z;\r\n\r\n let xx = x * x2;\r\n let yx = y * x2;\r\n let yy = y * y2;\r\n let zx = z * x2;\r\n let zy = z * y2;\r\n let zz = z * z2;\r\n let wx = w * x2;\r\n let wy = w * y2;\r\n let wz = w * z2;\r\n\r\n out[0] = 1 - yy - zz;\r\n out[1] = yx + wz;\r\n out[2] = zx - wy;\r\n out[3] = 0;\r\n\r\n out[4] = yx - wz;\r\n out[5] = 1 - xx - zz;\r\n out[6] = zy + wx;\r\n out[7] = 0;\r\n\r\n out[8] = zx + wy;\r\n out[9] = zy - wx;\r\n out[10] = 1 - xx - yy;\r\n out[11] = 0;\r\n\r\n out[12] = 0;\r\n out[13] = 0;\r\n out[14] = 0;\r\n out[15] = 1;\r\n\r\n return out;\r\n}\r\n\r\n/**\r\n * Generates a frustum matrix with the given bounds\r\n *\r\n * @param {mat4} out mat4 frustum matrix will be written into\r\n * @param {Number} left Left bound of the frustum\r\n * @param {Number} right Right bound of the frustum\r\n * @param {Number} bottom Bottom bound of the frustum\r\n * @param {Number} top Top bound of the frustum\r\n * @param {Number} near Near bound of the frustum\r\n * @param {Number} far Far bound of the frustum\r\n * @returns {mat4} out\r\n */\r\nexport function frustum(out, left, right, bottom, top, near, far) {\r\n let rl = 1 / (right - left);\r\n let tb = 1 / (top - bottom);\r\n let nf = 1 / (near - far);\r\n out[0] = (near * 2) * rl;\r\n out[1] = 0;\r\n out[2] = 0;\r\n out[3] = 0;\r\n out[4] = 0;\r\n out[5] = (near * 2) * tb;\r\n out[6] = 0;\r\n out[7] = 0;\r\n out[8] = (right + left) * rl;\r\n out[9] = (top + bottom) * tb;\r\n out[10] = (far + near) * nf;\r\n out[11] = -1;\r\n out[12] = 0;\r\n out[13] = 0;\r\n out[14] = (far * near * 2) * nf;\r\n out[15] = 0;\r\n return out;\r\n}\r\n\r\n/**\r\n * Generates a perspective projection matrix with the given bounds\r\n *\r\n * @param {mat4} out mat4 frustum matrix will be written into\r\n * @param {number} fovy Vertical field of view in radians\r\n * @param {number} aspect Aspect ratio. typically viewport width/height\r\n * @param {number} near Near bound of the frustum\r\n * @param {number} far Far bound of the frustum\r\n * @returns {mat4} out\r\n */\r\nexport function perspective(out, fovy, aspect, near, far) {\r\n let f = 1.0 / Math.tan(fovy / 2);\r\n let nf = 1 / (near - far);\r\n out[0] = f / aspect;\r\n out[1] = 0;\r\n out[2] = 0;\r\n out[3] = 0;\r\n out[4] = 0;\r\n out[5] = f;\r\n out[6] = 0;\r\n out[7] = 0;\r\n out[8] = 0;\r\n out[9] = 0;\r\n out[10] = (far + near) * nf;\r\n out[11] = -1;\r\n out[12] = 0;\r\n out[13] = 0;\r\n out[14] = (2 * far * near) * nf;\r\n out[15] = 0;\r\n return out;\r\n}\r\n\r\n/**\r\n * Generates a perspective projection matrix with the given field of view.\r\n * This is primarily useful for generating projection matrices to be used\r\n * with the still experiemental WebVR API.\r\n *\r\n * @param {mat4} out mat4 frustum matrix will be written into\r\n * @param {Object} fov Object containing the following values: upDegrees, downDegrees, leftDegrees, rightDegrees\r\n * @param {number} near Near bound of the frustum\r\n * @param {number} far Far bound of the frustum\r\n * @returns {mat4} out\r\n */\r\nexport function perspectiveFromFieldOfView(out, fov, near, far) {\r\n let upTan = Math.tan(fov.upDegrees * Math.PI/180.0);\r\n let downTan = Math.tan(fov.downDegrees * Math.PI/180.0);\r\n let leftTan = Math.tan(fov.leftDegrees * Math.PI/180.0);\r\n let rightTan = Math.tan(fov.rightDegrees * Math.PI/180.0);\r\n let xScale = 2.0 / (leftTan + rightTan);\r\n let yScale = 2.0 / (upTan + downTan);\r\n\r\n out[0] = xScale;\r\n out[1] = 0.0;\r\n out[2] = 0.0;\r\n out[3] = 0.0;\r\n out[4] = 0.0;\r\n out[5] = yScale;\r\n out[6] = 0.0;\r\n out[7] = 0.0;\r\n out[8] = -((leftTan - rightTan) * xScale * 0.5);\r\n out[9] = ((upTan - downTan) * yScale * 0.5);\r\n out[10] = far / (near - far);\r\n out[11] = -1.0;\r\n out[12] = 0.0;\r\n out[13] = 0.0;\r\n out[14] = (far * near) / (near - far);\r\n out[15] = 0.0;\r\n return out;\r\n}\r\n\r\n/**\r\n * Generates a orthogonal projection matrix with the given bounds\r\n *\r\n * @param {mat4} out mat4 frustum matrix will be written into\r\n * @param {number} left Left bound of the frustum\r\n * @param {number} right Right bound of the frustum\r\n * @param {number} bottom Bottom bound of the frustum\r\n * @param {number} top Top bound of the frustum\r\n * @param {number} near Near bound of the frustum\r\n * @param {number} far Far bound of the frustum\r\n * @returns {mat4} out\r\n */\r\nexport function ortho(out, left, right, bottom, top, near, far) {\r\n let lr = 1 / (left - right);\r\n let bt = 1 / (bottom - top);\r\n let nf = 1 / (near - far);\r\n out[0] = -2 * lr;\r\n out[1] = 0;\r\n out[2] = 0;\r\n out[3] = 0;\r\n out[4] = 0;\r\n out[5] = -2 * bt;\r\n out[6] = 0;\r\n out[7] = 0;\r\n out[8] = 0;\r\n out[9] = 0;\r\n out[10] = 2 * nf;\r\n out[11] = 0;\r\n out[12] = (left + right) * lr;\r\n out[13] = (top + bottom) * bt;\r\n out[14] = (far + near) * nf;\r\n out[15] = 1;\r\n return out;\r\n}\r\n\r\n/**\r\n * Generates a look-at matrix with the given eye position, focal point, and up axis. \r\n * If you want a matrix that actually makes an object look at another object, you should use targetTo instead.\r\n *\r\n * @param {mat4} out mat4 frustum matrix will be written into\r\n * @param {vec3} eye Position of the viewer\r\n * @param {vec3} center Point the viewer is looking at\r\n * @param {vec3} up vec3 pointing up\r\n * @returns {mat4} out\r\n */\r\nexport function lookAt(out, eye, center, up) {\r\n let x0, x1, x2, y0, y1, y2, z0, z1, z2, len;\r\n let eyex = eye[0];\r\n let eyey = eye[1];\r\n let eyez = eye[2];\r\n let upx = up[0];\r\n let upy = up[1];\r\n let upz = up[2];\r\n let centerx = center[0];\r\n let centery = center[1];\r\n let centerz = center[2];\r\n\r\n if (Math.abs(eyex - centerx) < glMatrix.EPSILON &&\r\n Math.abs(eyey - centery) < glMatrix.EPSILON &&\r\n Math.abs(eyez - centerz) < glMatrix.EPSILON) {\r\n return identity(out);\r\n }\r\n\r\n z0 = eyex - centerx;\r\n z1 = eyey - centery;\r\n z2 = eyez - centerz;\r\n\r\n len = 1 / Math.sqrt(z0 * z0 + z1 * z1 + z2 * z2);\r\n z0 *= len;\r\n z1 *= len;\r\n z2 *= len;\r\n\r\n x0 = upy * z2 - upz * z1;\r\n x1 = upz * z0 - upx * z2;\r\n x2 = upx * z1 - upy * z0;\r\n len = Math.sqrt(x0 * x0 + x1 * x1 + x2 * x2);\r\n if (!len) {\r\n x0 = 0;\r\n x1 = 0;\r\n x2 = 0;\r\n } else {\r\n len = 1 / len;\r\n x0 *= len;\r\n x1 *= len;\r\n x2 *= len;\r\n }\r\n\r\n y0 = z1 * x2 - z2 * x1;\r\n y1 = z2 * x0 - z0 * x2;\r\n y2 = z0 * x1 - z1 * x0;\r\n\r\n len = Math.sqrt(y0 * y0 + y1 * y1 + y2 * y2);\r\n if (!len) {\r\n y0 = 0;\r\n y1 = 0;\r\n y2 = 0;\r\n } else {\r\n len = 1 / len;\r\n y0 *= len;\r\n y1 *= len;\r\n y2 *= len;\r\n }\r\n\r\n out[0] = x0;\r\n out[1] = y0;\r\n out[2] = z0;\r\n out[3] = 0;\r\n out[4] = x1;\r\n out[5] = y1;\r\n out[6] = z1;\r\n out[7] = 0;\r\n out[8] = x2;\r\n out[9] = y2;\r\n out[10] = z2;\r\n out[11] = 0;\r\n out[12] = -(x0 * eyex + x1 * eyey + x2 * eyez);\r\n out[13] = -(y0 * eyex + y1 * eyey + y2 * eyez);\r\n out[14] = -(z0 * eyex + z1 * eyey + z2 * eyez);\r\n out[15] = 1;\r\n\r\n return out;\r\n}\r\n\r\n/**\r\n * Generates a matrix that makes something look at something else.\r\n *\r\n * @param {mat4} out mat4 frustum matrix will be written into\r\n * @param {vec3} eye Position of the viewer\r\n * @param {vec3} center Point the viewer is looking at\r\n * @param {vec3} up vec3 pointing up\r\n * @returns {mat4} out\r\n */\r\nexport function targetTo(out, eye, target, up) {\r\n let eyex = eye[0],\r\n eyey = eye[1],\r\n eyez = eye[2],\r\n upx = up[0],\r\n upy = up[1],\r\n upz = up[2];\r\n\r\n let z0 = eyex - target[0],\r\n z1 = eyey - target[1],\r\n z2 = eyez - target[2];\r\n\r\n let len = z0*z0 + z1*z1 + z2*z2;\r\n if (len > 0) {\r\n len = 1 / Math.sqrt(len);\r\n z0 *= len;\r\n z1 *= len;\r\n z2 *= len;\r\n }\r\n\r\n let x0 = upy * z2 - upz * z1,\r\n x1 = upz * z0 - upx * z2,\r\n x2 = upx * z1 - upy * z0;\r\n\r\n len = x0*x0 + x1*x1 + x2*x2;\r\n if (len > 0) {\r\n len = 1 / Math.sqrt(len);\r\n x0 *= len;\r\n x1 *= len;\r\n x2 *= len;\r\n }\r\n\r\n out[0] = x0;\r\n out[1] = x1;\r\n out[2] = x2;\r\n out[3] = 0;\r\n out[4] = z1 * x2 - z2 * x1;\r\n out[5] = z2 * x0 - z0 * x2;\r\n out[6] = z0 * x1 - z1 * x0;\r\n out[7] = 0;\r\n out[8] = z0;\r\n out[9] = z1;\r\n out[10] = z2;\r\n out[11] = 0;\r\n out[12] = eyex;\r\n out[13] = eyey;\r\n out[14] = eyez;\r\n out[15] = 1;\r\n return out;\r\n};\r\n\r\n/**\r\n * Returns a string representation of a mat4\r\n *\r\n * @param {mat4} a matrix to represent as a string\r\n * @returns {String} string representation of the matrix\r\n */\r\nexport function str(a) {\r\n return 'mat4(' + a[0] + ', ' + a[1] + ', ' + a[2] + ', ' + a[3] + ', ' +\r\n a[4] + ', ' + a[5] + ', ' + a[6] + ', ' + a[7] + ', ' +\r\n a[8] + ', ' + a[9] + ', ' + a[10] + ', ' + a[11] + ', ' +\r\n a[12] + ', ' + a[13] + ', ' + a[14] + ', ' + a[15] + ')';\r\n}\r\n\r\n/**\r\n * Returns Frobenius norm of a mat4\r\n *\r\n * @param {mat4} a the matrix to calculate Frobenius norm of\r\n * @returns {Number} Frobenius norm\r\n */\r\nexport function frob(a) {\r\n return(Math.sqrt(Math.pow(a[0], 2) + Math.pow(a[1], 2) + Math.pow(a[2], 2) + Math.pow(a[3], 2) + Math.pow(a[4], 2) + Math.pow(a[5], 2) + Math.pow(a[6], 2) + Math.pow(a[7], 2) + Math.pow(a[8], 2) + Math.pow(a[9], 2) + Math.pow(a[10], 2) + Math.pow(a[11], 2) + Math.pow(a[12], 2) + Math.pow(a[13], 2) + Math.pow(a[14], 2) + Math.pow(a[15], 2) ))\r\n}\r\n\r\n/**\r\n * Adds two mat4's\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {mat4} a the first operand\r\n * @param {mat4} b the second operand\r\n * @returns {mat4} out\r\n */\r\nexport function add(out, a, b) {\r\n out[0] = a[0] + b[0];\r\n out[1] = a[1] + b[1];\r\n out[2] = a[2] + b[2];\r\n out[3] = a[3] + b[3];\r\n out[4] = a[4] + b[4];\r\n out[5] = a[5] + b[5];\r\n out[6] = a[6] + b[6];\r\n out[7] = a[7] + b[7];\r\n out[8] = a[8] + b[8];\r\n out[9] = a[9] + b[9];\r\n out[10] = a[10] + b[10];\r\n out[11] = a[11] + b[11];\r\n out[12] = a[12] + b[12];\r\n out[13] = a[13] + b[13];\r\n out[14] = a[14] + b[14];\r\n out[15] = a[15] + b[15];\r\n return out;\r\n}\r\n\r\n/**\r\n * Subtracts matrix b from matrix a\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {mat4} a the first operand\r\n * @param {mat4} b the second operand\r\n * @returns {mat4} out\r\n */\r\nexport function subtract(out, a, b) {\r\n out[0] = a[0] - b[0];\r\n out[1] = a[1] - b[1];\r\n out[2] = a[2] - b[2];\r\n out[3] = a[3] - b[3];\r\n out[4] = a[4] - b[4];\r\n out[5] = a[5] - b[5];\r\n out[6] = a[6] - b[6];\r\n out[7] = a[7] - b[7];\r\n out[8] = a[8] - b[8];\r\n out[9] = a[9] - b[9];\r\n out[10] = a[10] - b[10];\r\n out[11] = a[11] - b[11];\r\n out[12] = a[12] - b[12];\r\n out[13] = a[13] - b[13];\r\n out[14] = a[14] - b[14];\r\n out[15] = a[15] - b[15];\r\n return out;\r\n}\r\n\r\n/**\r\n * Multiply each element of the matrix by a scalar.\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {mat4} a the matrix to scale\r\n * @param {Number} b amount to scale the matrix's elements by\r\n * @returns {mat4} out\r\n */\r\nexport function multiplyScalar(out, a, b) {\r\n out[0] = a[0] * b;\r\n out[1] = a[1] * b;\r\n out[2] = a[2] * b;\r\n out[3] = a[3] * b;\r\n out[4] = a[4] * b;\r\n out[5] = a[5] * b;\r\n out[6] = a[6] * b;\r\n out[7] = a[7] * b;\r\n out[8] = a[8] * b;\r\n out[9] = a[9] * b;\r\n out[10] = a[10] * b;\r\n out[11] = a[11] * b;\r\n out[12] = a[12] * b;\r\n out[13] = a[13] * b;\r\n out[14] = a[14] * b;\r\n out[15] = a[15] * b;\r\n return out;\r\n}\r\n\r\n/**\r\n * Adds two mat4's after multiplying each element of the second operand by a scalar value.\r\n *\r\n * @param {mat4} out the receiving vector\r\n * @param {mat4} a the first operand\r\n * @param {mat4} b the second operand\r\n * @param {Number} scale the amount to scale b's elements by before adding\r\n * @returns {mat4} out\r\n */\r\nexport function multiplyScalarAndAdd(out, a, b, scale) {\r\n out[0] = a[0] + (b[0] * scale);\r\n out[1] = a[1] + (b[1] * scale);\r\n out[2] = a[2] + (b[2] * scale);\r\n out[3] = a[3] + (b[3] * scale);\r\n out[4] = a[4] + (b[4] * scale);\r\n out[5] = a[5] + (b[5] * scale);\r\n out[6] = a[6] + (b[6] * scale);\r\n out[7] = a[7] + (b[7] * scale);\r\n out[8] = a[8] + (b[8] * scale);\r\n out[9] = a[9] + (b[9] * scale);\r\n out[10] = a[10] + (b[10] * scale);\r\n out[11] = a[11] + (b[11] * scale);\r\n out[12] = a[12] + (b[12] * scale);\r\n out[13] = a[13] + (b[13] * scale);\r\n out[14] = a[14] + (b[14] * scale);\r\n out[15] = a[15] + (b[15] * scale);\r\n return out;\r\n}\r\n\r\n/**\r\n * Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===)\r\n *\r\n * @param {mat4} a The first matrix.\r\n * @param {mat4} b The second matrix.\r\n * @returns {Boolean} True if the matrices are equal, false otherwise.\r\n */\r\nexport function exactEquals(a, b) {\r\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3] &&\r\n a[4] === b[4] && a[5] === b[5] && a[6] === b[6] && a[7] === b[7] &&\r\n a[8] === b[8] && a[9] === b[9] && a[10] === b[10] && a[11] === b[11] &&\r\n a[12] === b[12] && a[13] === b[13] && a[14] === b[14] && a[15] === b[15];\r\n}\r\n\r\n/**\r\n * Returns whether or not the matrices have approximately the same elements in the same position.\r\n *\r\n * @param {mat4} a The first matrix.\r\n * @param {mat4} b The second matrix.\r\n * @returns {Boolean} True if the matrices are equal, false otherwise.\r\n */\r\nexport function equals(a, b) {\r\n let a0 = a[0], a1 = a[1], a2 = a[2], a3 = a[3];\r\n let a4 = a[4], a5 = a[5], a6 = a[6], a7 = a[7];\r\n let a8 = a[8], a9 = a[9], a10 = a[10], a11 = a[11];\r\n let a12 = a[12], a13 = a[13], a14 = a[14], a15 = a[15];\r\n\r\n let b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3];\r\n let b4 = b[4], b5 = b[5], b6 = b[6], b7 = b[7];\r\n let b8 = b[8], b9 = b[9], b10 = b[10], b11 = b[11];\r\n let b12 = b[12], b13 = b[13], b14 = b[14], b15 = b[15];\r\n\r\n return (Math.abs(a0 - b0) <= glMatrix.EPSILON*Math.max(1.0, Math.abs(a0), Math.abs(b0)) &&\r\n Math.abs(a1 - b1) <= glMatrix.EPSILON*Math.max(1.0, Math.abs(a1), Math.abs(b1)) &&\r\n Math.abs(a2 - b2) <= glMatrix.EPSILON*Math.max(1.0, Math.abs(a2), Math.abs(b2)) &&\r\n Math.abs(a3 - b3) <= glMatrix.EPSILON*Math.max(1.0, Math.abs(a3), Math.abs(b3)) &&\r\n Math.abs(a4 - b4) <= glMatrix.EPSILON*Math.max(1.0, Math.abs(a4), Math.abs(b4)) &&\r\n Math.abs(a5 - b5) <= glMatrix.EPSILON*Math.max(1.0, Math.abs(a5), Math.abs(b5)) &&\r\n Math.abs(a6 - b6) <= glMatrix.EPSILON*Math.max(1.0, Math.abs(a6), Math.abs(b6)) &&\r\n Math.abs(a7 - b7) <= glMatrix.EPSILON*Math.max(1.0, Math.abs(a7), Math.abs(b7)) &&\r\n Math.abs(a8 - b8) <= glMatrix.EPSILON*Math.max(1.0, Math.abs(a8), Math.abs(b8)) &&\r\n Math.abs(a9 - b9) <= glMatrix.EPSILON*Math.max(1.0, Math.abs(a9), Math.abs(b9)) &&\r\n Math.abs(a10 - b10) <= glMatrix.EPSILON*Math.max(1.0, Math.abs(a10), Math.abs(b10)) &&\r\n Math.abs(a11 - b11) <= glMatrix.EPSILON*Math.max(1.0, Math.abs(a11), Math.abs(b11)) &&\r\n Math.abs(a12 - b12) <= glMatrix.EPSILON*Math.max(1.0, Math.abs(a12), Math.abs(b12)) &&\r\n Math.abs(a13 - b13) <= glMatrix.EPSILON*Math.max(1.0, Math.abs(a13), Math.abs(b13)) &&\r\n Math.abs(a14 - b14) <= glMatrix.EPSILON*Math.max(1.0, Math.abs(a14), Math.abs(b14)) &&\r\n Math.abs(a15 - b15) <= glMatrix.EPSILON*Math.max(1.0, Math.abs(a15), Math.abs(b15)));\r\n}\r\n\r\n/**\r\n * Alias for {@link mat4.multiply}\r\n * @function\r\n */\r\nexport const mul = multiply;\r\n\r\n/**\r\n * Alias for {@link mat4.subtract}\r\n * @function\r\n */\r\nexport const sub = subtract;\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/node_modules/gl-matrix/src/gl-matrix/mat4.js","/* Copyright (c) 2015, Brandon Jones, Colin MacKenzie IV.\r\n\r\nPermission is hereby granted, free of charge, to any person obtaining a copy\r\nof this software and associated documentation files (the \"Software\"), to deal\r\nin the Software without restriction, including without limitation the rights\r\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\ncopies of the Software, and to permit persons to whom the Software is\r\nfurnished to do so, subject to the following conditions:\r\n\r\nThe above copyright notice and this permission notice shall be included in\r\nall copies or substantial portions of the Software.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\nTHE SOFTWARE. */\r\n\r\nimport * as glMatrix from \"./common.js\"\r\nimport * as mat3 from \"./mat3.js\"\r\nimport * as vec3 from \"./vec3.js\"\r\nimport * as vec4 from \"./vec4.js\"\r\n\r\n/**\r\n * Quaternion\r\n * @module quat\r\n */\r\n\r\n/**\r\n * Creates a new identity quat\r\n *\r\n * @returns {quat} a new quaternion\r\n */\r\nexport function create() {\r\n let out = new glMatrix.ARRAY_TYPE(4);\r\n out[0] = 0;\r\n out[1] = 0;\r\n out[2] = 0;\r\n out[3] = 1;\r\n return out;\r\n}\r\n\r\n/**\r\n * Set a quat to the identity quaternion\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @returns {quat} out\r\n */\r\nexport function identity(out) {\r\n out[0] = 0;\r\n out[1] = 0;\r\n out[2] = 0;\r\n out[3] = 1;\r\n return out;\r\n}\r\n\r\n/**\r\n * Sets a quat from the given angle and rotation axis,\r\n * then returns it.\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {vec3} axis the axis around which to rotate\r\n * @param {Number} rad the angle in radians\r\n * @returns {quat} out\r\n **/\r\nexport function setAxisAngle(out, axis, rad) {\r\n rad = rad * 0.5;\r\n let s = Math.sin(rad);\r\n out[0] = s * axis[0];\r\n out[1] = s * axis[1];\r\n out[2] = s * axis[2];\r\n out[3] = Math.cos(rad);\r\n return out;\r\n}\r\n\r\n/**\r\n * Gets the rotation axis and angle for a given\r\n * quaternion. If a quaternion is created with\r\n * setAxisAngle, this method will return the same\r\n * values as providied in the original parameter list\r\n * OR functionally equivalent values.\r\n * Example: The quaternion formed by axis [0, 0, 1] and\r\n * angle -90 is the same as the quaternion formed by\r\n * [0, 0, 1] and 270. This method favors the latter.\r\n * @param {vec3} out_axis Vector receiving the axis of rotation\r\n * @param {quat} q Quaternion to be decomposed\r\n * @return {Number} Angle, in radians, of the rotation\r\n */\r\nexport function getAxisAngle(out_axis, q) {\r\n let rad = Math.acos(q[3]) * 2.0;\r\n let s = Math.sin(rad / 2.0);\r\n if (s != 0.0) {\r\n out_axis[0] = q[0] / s;\r\n out_axis[1] = q[1] / s;\r\n out_axis[2] = q[2] / s;\r\n } else {\r\n // If s is zero, return any axis (no rotation - axis does not matter)\r\n out_axis[0] = 1;\r\n out_axis[1] = 0;\r\n out_axis[2] = 0;\r\n }\r\n return rad;\r\n}\r\n\r\n/**\r\n * Multiplies two quat's\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {quat} a the first operand\r\n * @param {quat} b the second operand\r\n * @returns {quat} out\r\n */\r\nexport function multiply(out, a, b) {\r\n let ax = a[0], ay = a[1], az = a[2], aw = a[3];\r\n let bx = b[0], by = b[1], bz = b[2], bw = b[3];\r\n\r\n out[0] = ax * bw + aw * bx + ay * bz - az * by;\r\n out[1] = ay * bw + aw * by + az * bx - ax * bz;\r\n out[2] = az * bw + aw * bz + ax * by - ay * bx;\r\n out[3] = aw * bw - ax * bx - ay * by - az * bz;\r\n return out;\r\n}\r\n\r\n/**\r\n * Rotates a quaternion by the given angle about the X axis\r\n *\r\n * @param {quat} out quat receiving operation result\r\n * @param {quat} a quat to rotate\r\n * @param {number} rad angle (in radians) to rotate\r\n * @returns {quat} out\r\n */\r\nexport function rotateX(out, a, rad) {\r\n rad *= 0.5;\r\n\r\n let ax = a[0], ay = a[1], az = a[2], aw = a[3];\r\n let bx = Math.sin(rad), bw = Math.cos(rad);\r\n\r\n out[0] = ax * bw + aw * bx;\r\n out[1] = ay * bw + az * bx;\r\n out[2] = az * bw - ay * bx;\r\n out[3] = aw * bw - ax * bx;\r\n return out;\r\n}\r\n\r\n/**\r\n * Rotates a quaternion by the given angle about the Y axis\r\n *\r\n * @param {quat} out quat receiving operation result\r\n * @param {quat} a quat to rotate\r\n * @param {number} rad angle (in radians) to rotate\r\n * @returns {quat} out\r\n */\r\nexport function rotateY(out, a, rad) {\r\n rad *= 0.5;\r\n\r\n let ax = a[0], ay = a[1], az = a[2], aw = a[3];\r\n let by = Math.sin(rad), bw = Math.cos(rad);\r\n\r\n out[0] = ax * bw - az * by;\r\n out[1] = ay * bw + aw * by;\r\n out[2] = az * bw + ax * by;\r\n out[3] = aw * bw - ay * by;\r\n return out;\r\n}\r\n\r\n/**\r\n * Rotates a quaternion by the given angle about the Z axis\r\n *\r\n * @param {quat} out quat receiving operation result\r\n * @param {quat} a quat to rotate\r\n * @param {number} rad angle (in radians) to rotate\r\n * @returns {quat} out\r\n */\r\nexport function rotateZ(out, a, rad) {\r\n rad *= 0.5;\r\n\r\n let ax = a[0], ay = a[1], az = a[2], aw = a[3];\r\n let bz = Math.sin(rad), bw = Math.cos(rad);\r\n\r\n out[0] = ax * bw + ay * bz;\r\n out[1] = ay * bw - ax * bz;\r\n out[2] = az * bw + aw * bz;\r\n out[3] = aw * bw - az * bz;\r\n return out;\r\n}\r\n\r\n/**\r\n * Calculates the W component of a quat from the X, Y, and Z components.\r\n * Assumes that quaternion is 1 unit in length.\r\n * Any existing W component will be ignored.\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {quat} a quat to calculate W component of\r\n * @returns {quat} out\r\n */\r\nexport function calculateW(out, a) {\r\n let x = a[0], y = a[1], z = a[2];\r\n\r\n out[0] = x;\r\n out[1] = y;\r\n out[2] = z;\r\n out[3] = Math.sqrt(Math.abs(1.0 - x * x - y * y - z * z));\r\n return out;\r\n}\r\n\r\n/**\r\n * Performs a spherical linear interpolation between two quat\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {quat} a the first operand\r\n * @param {quat} b the second operand\r\n * @param {Number} t interpolation amount between the two inputs\r\n * @returns {quat} out\r\n */\r\nexport function slerp(out, a, b, t) {\r\n // benchmarks:\r\n // http://jsperf.com/quaternion-slerp-implementations\r\n let ax = a[0], ay = a[1], az = a[2], aw = a[3];\r\n let bx = b[0], by = b[1], bz = b[2], bw = b[3];\r\n\r\n let omega, cosom, sinom, scale0, scale1;\r\n\r\n // calc cosine\r\n cosom = ax * bx + ay * by + az * bz + aw * bw;\r\n // adjust signs (if necessary)\r\n if ( cosom < 0.0 ) {\r\n cosom = -cosom;\r\n bx = - bx;\r\n by = - by;\r\n bz = - bz;\r\n bw = - bw;\r\n }\r\n // calculate coefficients\r\n if ( (1.0 - cosom) > 0.000001 ) {\r\n // standard case (slerp)\r\n omega = Math.acos(cosom);\r\n sinom = Math.sin(omega);\r\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\r\n scale1 = Math.sin(t * omega) / sinom;\r\n } else {\r\n // \"from\" and \"to\" quaternions are very close\r\n // ... so we can do a linear interpolation\r\n scale0 = 1.0 - t;\r\n scale1 = t;\r\n }\r\n // calculate final values\r\n out[0] = scale0 * ax + scale1 * bx;\r\n out[1] = scale0 * ay + scale1 * by;\r\n out[2] = scale0 * az + scale1 * bz;\r\n out[3] = scale0 * aw + scale1 * bw;\r\n\r\n return out;\r\n}\r\n\r\n/**\r\n * Calculates the inverse of a quat\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {quat} a quat to calculate inverse of\r\n * @returns {quat} out\r\n */\r\nexport function invert(out, a) {\r\n let a0 = a[0], a1 = a[1], a2 = a[2], a3 = a[3];\r\n let dot = a0*a0 + a1*a1 + a2*a2 + a3*a3;\r\n let invDot = dot ? 1.0/dot : 0;\r\n\r\n // TODO: Would be faster to return [0,0,0,0] immediately if dot == 0\r\n\r\n out[0] = -a0*invDot;\r\n out[1] = -a1*invDot;\r\n out[2] = -a2*invDot;\r\n out[3] = a3*invDot;\r\n return out;\r\n}\r\n\r\n/**\r\n * Calculates the conjugate of a quat\r\n * If the quaternion is normalized, this function is faster than quat.inverse and produces the same result.\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {quat} a quat to calculate conjugate of\r\n * @returns {quat} out\r\n */\r\nexport function conjugate(out, a) {\r\n out[0] = -a[0];\r\n out[1] = -a[1];\r\n out[2] = -a[2];\r\n out[3] = a[3];\r\n return out;\r\n}\r\n\r\n/**\r\n * Creates a quaternion from the given 3x3 rotation matrix.\r\n *\r\n * NOTE: The resultant quaternion is not normalized, so you should be sure\r\n * to renormalize the quaternion yourself where necessary.\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {mat3} m rotation matrix\r\n * @returns {quat} out\r\n * @function\r\n */\r\nexport function fromMat3(out, m) {\r\n // Algorithm in Ken Shoemake's article in 1987 SIGGRAPH course notes\r\n // article \"Quaternion Calculus and Fast Animation\".\r\n let fTrace = m[0] + m[4] + m[8];\r\n let fRoot;\r\n\r\n if ( fTrace > 0.0 ) {\r\n // |w| > 1/2, may as well choose w > 1/2\r\n fRoot = Math.sqrt(fTrace + 1.0); // 2w\r\n out[3] = 0.5 * fRoot;\r\n fRoot = 0.5/fRoot; // 1/(4w)\r\n out[0] = (m[5]-m[7])*fRoot;\r\n out[1] = (m[6]-m[2])*fRoot;\r\n out[2] = (m[1]-m[3])*fRoot;\r\n } else {\r\n // |w| <= 1/2\r\n let i = 0;\r\n if ( m[4] > m[0] )\r\n i = 1;\r\n if ( m[8] > m[i*3+i] )\r\n i = 2;\r\n let j = (i+1)%3;\r\n let k = (i+2)%3;\r\n\r\n fRoot = Math.sqrt(m[i*3+i]-m[j*3+j]-m[k*3+k] + 1.0);\r\n out[i] = 0.5 * fRoot;\r\n fRoot = 0.5 / fRoot;\r\n out[3] = (m[j*3+k] - m[k*3+j]) * fRoot;\r\n out[j] = (m[j*3+i] + m[i*3+j]) * fRoot;\r\n out[k] = (m[k*3+i] + m[i*3+k]) * fRoot;\r\n }\r\n\r\n return out;\r\n}\r\n\r\n/**\r\n * Creates a quaternion from the given euler angle x, y, z.\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {x} Angle to rotate around X axis in degrees.\r\n * @param {y} Angle to rotate around Y axis in degrees.\r\n * @param {z} Angle to rotate around Z axis in degrees.\r\n * @returns {quat} out\r\n * @function\r\n */\r\nexport function fromEuler(out, x, y, z) {\r\n let halfToRad = 0.5 * Math.PI / 180.0;\r\n x *= halfToRad;\r\n y *= halfToRad;\r\n z *= halfToRad;\r\n\r\n let sx = Math.sin(x);\r\n let cx = Math.cos(x);\r\n let sy = Math.sin(y);\r\n let cy = Math.cos(y);\r\n let sz = Math.sin(z);\r\n let cz = Math.cos(z);\r\n\r\n out[0] = sx * cy * cz - cx * sy * sz;\r\n out[1] = cx * sy * cz + sx * cy * sz;\r\n out[2] = cx * cy * sz - sx * sy * cz;\r\n out[3] = cx * cy * cz + sx * sy * sz;\r\n\r\n return out;\r\n}\r\n\r\n/**\r\n * Returns a string representation of a quatenion\r\n *\r\n * @param {quat} a vector to represent as a string\r\n * @returns {String} string representation of the vector\r\n */\r\nexport function str(a) {\r\n return 'quat(' + a[0] + ', ' + a[1] + ', ' + a[2] + ', ' + a[3] + ')';\r\n}\r\n\r\n/**\r\n * Creates a new quat initialized with values from an existing quaternion\r\n *\r\n * @param {quat} a quaternion to clone\r\n * @returns {quat} a new quaternion\r\n * @function\r\n */\r\nexport const clone = vec4.clone;\r\n\r\n/**\r\n * Creates a new quat initialized with the given values\r\n *\r\n * @param {Number} x X component\r\n * @param {Number} y Y component\r\n * @param {Number} z Z component\r\n * @param {Number} w W component\r\n * @returns {quat} a new quaternion\r\n * @function\r\n */\r\nexport const fromValues = vec4.fromValues;\r\n\r\n/**\r\n * Copy the values from one quat to another\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {quat} a the source quaternion\r\n * @returns {quat} out\r\n * @function\r\n */\r\nexport const copy = vec4.copy;\r\n\r\n/**\r\n * Set the components of a quat to the given values\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {Number} x X component\r\n * @param {Number} y Y component\r\n * @param {Number} z Z component\r\n * @param {Number} w W component\r\n * @returns {quat} out\r\n * @function\r\n */\r\nexport const set = vec4.set;\r\n\r\n/**\r\n * Adds two quat's\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {quat} a the first operand\r\n * @param {quat} b the second operand\r\n * @returns {quat} out\r\n * @function\r\n */\r\nexport const add = vec4.add;\r\n\r\n/**\r\n * Alias for {@link quat.multiply}\r\n * @function\r\n */\r\nexport const mul = multiply;\r\n\r\n/**\r\n * Scales a quat by a scalar number\r\n *\r\n * @param {quat} out the receiving vector\r\n * @param {quat} a the vector to scale\r\n * @param {Number} b amount to scale the vector by\r\n * @returns {quat} out\r\n * @function\r\n */\r\nexport const scale = vec4.scale;\r\n\r\n/**\r\n * Calculates the dot product of two quat's\r\n *\r\n * @param {quat} a the first operand\r\n * @param {quat} b the second operand\r\n * @returns {Number} dot product of a and b\r\n * @function\r\n */\r\nexport const dot = vec4.dot;\r\n\r\n/**\r\n * Performs a linear interpolation between two quat's\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {quat} a the first operand\r\n * @param {quat} b the second operand\r\n * @param {Number} t interpolation amount between the two inputs\r\n * @returns {quat} out\r\n * @function\r\n */\r\nexport const lerp = vec4.lerp;\r\n\r\n/**\r\n * Calculates the length of a quat\r\n *\r\n * @param {quat} a vector to calculate length of\r\n * @returns {Number} length of a\r\n */\r\nexport const length = vec4.length;\r\n\r\n/**\r\n * Alias for {@link quat.length}\r\n * @function\r\n */\r\nexport const len = length;\r\n\r\n/**\r\n * Calculates the squared length of a quat\r\n *\r\n * @param {quat} a vector to calculate squared length of\r\n * @returns {Number} squared length of a\r\n * @function\r\n */\r\nexport const squaredLength = vec4.squaredLength;\r\n\r\n/**\r\n * Alias for {@link quat.squaredLength}\r\n * @function\r\n */\r\nexport const sqrLen = squaredLength;\r\n\r\n/**\r\n * Normalize a quat\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {quat} a quaternion to normalize\r\n * @returns {quat} out\r\n * @function\r\n */\r\nexport const normalize = vec4.normalize;\r\n\r\n/**\r\n * Returns whether or not the quaternions have exactly the same elements in the same position (when compared with ===)\r\n *\r\n * @param {quat} a The first quaternion.\r\n * @param {quat} b The second quaternion.\r\n * @returns {Boolean} True if the vectors are equal, false otherwise.\r\n */\r\nexport const exactEquals = vec4.exactEquals;\r\n\r\n/**\r\n * Returns whether or not the quaternions have approximately the same elements in the same position.\r\n *\r\n * @param {quat} a The first vector.\r\n * @param {quat} b The second vector.\r\n * @returns {Boolean} True if the vectors are equal, false otherwise.\r\n */\r\nexport const equals = vec4.equals;\r\n\r\n/**\r\n * Sets a quaternion to represent the shortest rotation from one\r\n * vector to another.\r\n *\r\n * Both vectors are assumed to be unit length.\r\n *\r\n * @param {quat} out the receiving quaternion.\r\n * @param {vec3} a the initial vector\r\n * @param {vec3} b the destination vector\r\n * @returns {quat} out\r\n */\r\nexport const rotationTo = (function() {\r\n let tmpvec3 = vec3.create();\r\n let xUnitVec3 = vec3.fromValues(1,0,0);\r\n let yUnitVec3 = vec3.fromValues(0,1,0);\r\n\r\n return function(out, a, b) {\r\n let dot = vec3.dot(a, b);\r\n if (dot < -0.999999) {\r\n vec3.cross(tmpvec3, xUnitVec3, a);\r\n if (vec3.len(tmpvec3) < 0.000001)\r\n vec3.cross(tmpvec3, yUnitVec3, a);\r\n vec3.normalize(tmpvec3, tmpvec3);\r\n setAxisAngle(out, tmpvec3, Math.PI);\r\n return out;\r\n } else if (dot > 0.999999) {\r\n out[0] = 0;\r\n out[1] = 0;\r\n out[2] = 0;\r\n out[3] = 1;\r\n return out;\r\n } else {\r\n vec3.cross(tmpvec3, a, b);\r\n out[0] = tmpvec3[0];\r\n out[1] = tmpvec3[1];\r\n out[2] = tmpvec3[2];\r\n out[3] = 1 + dot;\r\n return normalize(out, out);\r\n }\r\n };\r\n})();\r\n\r\n/**\r\n * Performs a spherical linear interpolation with two control points\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {quat} a the first operand\r\n * @param {quat} b the second operand\r\n * @param {quat} c the third operand\r\n * @param {quat} d the fourth operand\r\n * @param {Number} t interpolation amount\r\n * @returns {quat} out\r\n */\r\nexport const sqlerp = (function () {\r\n let temp1 = create();\r\n let temp2 = create();\r\n\r\n return function (out, a, b, c, d, t) {\r\n slerp(temp1, a, d, t);\r\n slerp(temp2, b, c, t);\r\n slerp(out, temp1, temp2, 2 * t * (1 - t));\r\n\r\n return out;\r\n };\r\n}());\r\n\r\n/**\r\n * Sets the specified quaternion with values corresponding to the given\r\n * axes. Each axis is a vec3 and is expected to be unit length and\r\n * perpendicular to all other specified axes.\r\n *\r\n * @param {vec3} view the vector representing the viewing direction\r\n * @param {vec3} right the vector representing the local \"right\" direction\r\n * @param {vec3} up the vector representing the local \"up\" direction\r\n * @returns {quat} out\r\n */\r\nexport const setAxes = (function() {\r\n let matr = mat3.create();\r\n\r\n return function(out, view, right, up) {\r\n matr[0] = right[0];\r\n matr[3] = right[1];\r\n matr[6] = right[2];\r\n\r\n matr[1] = up[0];\r\n matr[4] = up[1];\r\n matr[7] = up[2];\r\n\r\n matr[2] = -view[0];\r\n matr[5] = -view[1];\r\n matr[8] = -view[2];\r\n\r\n return normalize(out, fromMat3(out, matr));\r\n };\r\n})();\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/node_modules/gl-matrix/src/gl-matrix/quat.js","/* Copyright (c) 2015, Brandon Jones, Colin MacKenzie IV.\r\n\r\nPermission is hereby granted, free of charge, to any person obtaining a copy\r\nof this software and associated documentation files (the \"Software\"), to deal\r\nin the Software without restriction, including without limitation the rights\r\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\ncopies of the Software, and to permit persons to whom the Software is\r\nfurnished to do so, subject to the following conditions:\r\n\r\nThe above copyright notice and this permission notice shall be included in\r\nall copies or substantial portions of the Software.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\nTHE SOFTWARE. */\r\n\r\nimport * as glMatrix from \"./common.js\";\r\n\r\n/**\r\n * 3 Dimensional Vector\r\n * @module vec3\r\n */\r\n\r\n/**\r\n * Creates a new, empty vec3\r\n *\r\n * @returns {vec3} a new 3D vector\r\n */\r\nexport function create() {\r\n let out = new glMatrix.ARRAY_TYPE(3);\r\n out[0] = 0;\r\n out[1] = 0;\r\n out[2] = 0;\r\n return out;\r\n}\r\n\r\n/**\r\n * Creates a new vec3 initialized with values from an existing vector\r\n *\r\n * @param {vec3} a vector to clone\r\n * @returns {vec3} a new 3D vector\r\n */\r\nexport function clone(a) {\r\n var out = new glMatrix.ARRAY_TYPE(3);\r\n out[0] = a[0];\r\n out[1] = a[1];\r\n out[2] = a[2];\r\n return out;\r\n}\r\n\r\n/**\r\n * Calculates the length of a vec3\r\n *\r\n * @param {vec3} a vector to calculate length of\r\n * @returns {Number} length of a\r\n */\r\nexport function length(a) {\r\n let x = a[0];\r\n let y = a[1];\r\n let z = a[2];\r\n return Math.sqrt(x*x + y*y + z*z);\r\n}\r\n\r\n/**\r\n * Creates a new vec3 initialized with the given values\r\n *\r\n * @param {Number} x X component\r\n * @param {Number} y Y component\r\n * @param {Number} z Z component\r\n * @returns {vec3} a new 3D vector\r\n */\r\nexport function fromValues(x, y, z) {\r\n let out = new glMatrix.ARRAY_TYPE(3);\r\n out[0] = x;\r\n out[1] = y;\r\n out[2] = z;\r\n return out;\r\n}\r\n\r\n/**\r\n * Copy the values from one vec3 to another\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the source vector\r\n * @returns {vec3} out\r\n */\r\nexport function copy(out, a) {\r\n out[0] = a[0];\r\n out[1] = a[1];\r\n out[2] = a[2];\r\n return out;\r\n}\r\n\r\n/**\r\n * Set the components of a vec3 to the given values\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {Number} x X component\r\n * @param {Number} y Y component\r\n * @param {Number} z Z component\r\n * @returns {vec3} out\r\n */\r\nexport function set(out, x, y, z) {\r\n out[0] = x;\r\n out[1] = y;\r\n out[2] = z;\r\n return out;\r\n}\r\n\r\n/**\r\n * Adds two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the first operand\r\n * @param {vec3} b the second operand\r\n * @returns {vec3} out\r\n */\r\nexport function add(out, a, b) {\r\n out[0] = a[0] + b[0];\r\n out[1] = a[1] + b[1];\r\n out[2] = a[2] + b[2];\r\n return out;\r\n}\r\n\r\n/**\r\n * Subtracts vector b from vector a\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the first operand\r\n * @param {vec3} b the second operand\r\n * @returns {vec3} out\r\n */\r\nexport function subtract(out, a, b) {\r\n out[0] = a[0] - b[0];\r\n out[1] = a[1] - b[1];\r\n out[2] = a[2] - b[2];\r\n return out;\r\n}\r\n\r\n/**\r\n * Multiplies two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the first operand\r\n * @param {vec3} b the second operand\r\n * @returns {vec3} out\r\n */\r\nexport function multiply(out, a, b) {\r\n out[0] = a[0] * b[0];\r\n out[1] = a[1] * b[1];\r\n out[2] = a[2] * b[2];\r\n return out;\r\n}\r\n\r\n/**\r\n * Divides two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the first operand\r\n * @param {vec3} b the second operand\r\n * @returns {vec3} out\r\n */\r\nexport function divide(out, a, b) {\r\n out[0] = a[0] / b[0];\r\n out[1] = a[1] / b[1];\r\n out[2] = a[2] / b[2];\r\n return out;\r\n}\r\n\r\n/**\r\n * Math.ceil the components of a vec3\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a vector to ceil\r\n * @returns {vec3} out\r\n */\r\nexport function ceil(out, a) {\r\n out[0] = Math.ceil(a[0]);\r\n out[1] = Math.ceil(a[1]);\r\n out[2] = Math.ceil(a[2]);\r\n return out;\r\n}\r\n\r\n/**\r\n * Math.floor the components of a vec3\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a vector to floor\r\n * @returns {vec3} out\r\n */\r\nexport function floor(out, a) {\r\n out[0] = Math.floor(a[0]);\r\n out[1] = Math.floor(a[1]);\r\n out[2] = Math.floor(a[2]);\r\n return out;\r\n}\r\n\r\n/**\r\n * Returns the minimum of two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the first operand\r\n * @param {vec3} b the second operand\r\n * @returns {vec3} out\r\n */\r\nexport function min(out, a, b) {\r\n out[0] = Math.min(a[0], b[0]);\r\n out[1] = Math.min(a[1], b[1]);\r\n out[2] = Math.min(a[2], b[2]);\r\n return out;\r\n}\r\n\r\n/**\r\n * Returns the maximum of two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the first operand\r\n * @param {vec3} b the second operand\r\n * @returns {vec3} out\r\n */\r\nexport function max(out, a, b) {\r\n out[0] = Math.max(a[0], b[0]);\r\n out[1] = Math.max(a[1], b[1]);\r\n out[2] = Math.max(a[2], b[2]);\r\n return out;\r\n}\r\n\r\n/**\r\n * Math.round the components of a vec3\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a vector to round\r\n * @returns {vec3} out\r\n */\r\nexport function round(out, a) {\r\n out[0] = Math.round(a[0]);\r\n out[1] = Math.round(a[1]);\r\n out[2] = Math.round(a[2]);\r\n return out;\r\n}\r\n\r\n/**\r\n * Scales a vec3 by a scalar number\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the vector to scale\r\n * @param {Number} b amount to scale the vector by\r\n * @returns {vec3} out\r\n */\r\nexport function scale(out, a, b) {\r\n out[0] = a[0] * b;\r\n out[1] = a[1] * b;\r\n out[2] = a[2] * b;\r\n return out;\r\n}\r\n\r\n/**\r\n * Adds two vec3's after scaling the second operand by a scalar value\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the first operand\r\n * @param {vec3} b the second operand\r\n * @param {Number} scale the amount to scale b by before adding\r\n * @returns {vec3} out\r\n */\r\nexport function scaleAndAdd(out, a, b, scale) {\r\n out[0] = a[0] + (b[0] * scale);\r\n out[1] = a[1] + (b[1] * scale);\r\n out[2] = a[2] + (b[2] * scale);\r\n return out;\r\n}\r\n\r\n/**\r\n * Calculates the euclidian distance between two vec3's\r\n *\r\n * @param {vec3} a the first operand\r\n * @param {vec3} b the second operand\r\n * @returns {Number} distance between a and b\r\n */\r\nexport function distance(a, b) {\r\n let x = b[0] - a[0];\r\n let y = b[1] - a[1];\r\n let z = b[2] - a[2];\r\n return Math.sqrt(x*x + y*y + z*z);\r\n}\r\n\r\n/**\r\n * Calculates the squared euclidian distance between two vec3's\r\n *\r\n * @param {vec3} a the first operand\r\n * @param {vec3} b the second operand\r\n * @returns {Number} squared distance between a and b\r\n */\r\nexport function squaredDistance(a, b) {\r\n let x = b[0] - a[0];\r\n let y = b[1] - a[1];\r\n let z = b[2] - a[2];\r\n return x*x + y*y + z*z;\r\n}\r\n\r\n/**\r\n * Calculates the squared length of a vec3\r\n *\r\n * @param {vec3} a vector to calculate squared length of\r\n * @returns {Number} squared length of a\r\n */\r\nexport function squaredLength(a) {\r\n let x = a[0];\r\n let y = a[1];\r\n let z = a[2];\r\n return x*x + y*y + z*z;\r\n}\r\n\r\n/**\r\n * Negates the components of a vec3\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a vector to negate\r\n * @returns {vec3} out\r\n */\r\nexport function negate(out, a) {\r\n out[0] = -a[0];\r\n out[1] = -a[1];\r\n out[2] = -a[2];\r\n return out;\r\n}\r\n\r\n/**\r\n * Returns the inverse of the components of a vec3\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a vector to invert\r\n * @returns {vec3} out\r\n */\r\nexport function inverse(out, a) {\r\n out[0] = 1.0 / a[0];\r\n out[1] = 1.0 / a[1];\r\n out[2] = 1.0 / a[2];\r\n return out;\r\n}\r\n\r\n/**\r\n * Normalize a vec3\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a vector to normalize\r\n * @returns {vec3} out\r\n */\r\nexport function normalize(out, a) {\r\n let x = a[0];\r\n let y = a[1];\r\n let z = a[2];\r\n let len = x*x + y*y + z*z;\r\n if (len > 0) {\r\n //TODO: evaluate use of glm_invsqrt here?\r\n len = 1 / Math.sqrt(len);\r\n out[0] = a[0] * len;\r\n out[1] = a[1] * len;\r\n out[2] = a[2] * len;\r\n }\r\n return out;\r\n}\r\n\r\n/**\r\n * Calculates the dot product of two vec3's\r\n *\r\n * @param {vec3} a the first operand\r\n * @param {vec3} b the second operand\r\n * @returns {Number} dot product of a and b\r\n */\r\nexport function dot(a, b) {\r\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\r\n}\r\n\r\n/**\r\n * Computes the cross product of two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the first operand\r\n * @param {vec3} b the second operand\r\n * @returns {vec3} out\r\n */\r\nexport function cross(out, a, b) {\r\n let ax = a[0], ay = a[1], az = a[2];\r\n let bx = b[0], by = b[1], bz = b[2];\r\n\r\n out[0] = ay * bz - az * by;\r\n out[1] = az * bx - ax * bz;\r\n out[2] = ax * by - ay * bx;\r\n return out;\r\n}\r\n\r\n/**\r\n * Performs a linear interpolation between two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the first operand\r\n * @param {vec3} b the second operand\r\n * @param {Number} t interpolation amount between the two inputs\r\n * @returns {vec3} out\r\n */\r\nexport function lerp(out, a, b, t) {\r\n let ax = a[0];\r\n let ay = a[1];\r\n let az = a[2];\r\n out[0] = ax + t * (b[0] - ax);\r\n out[1] = ay + t * (b[1] - ay);\r\n out[2] = az + t * (b[2] - az);\r\n return out;\r\n}\r\n\r\n/**\r\n * Performs a hermite interpolation with two control points\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the first operand\r\n * @param {vec3} b the second operand\r\n * @param {vec3} c the third operand\r\n * @param {vec3} d the fourth operand\r\n * @param {Number} t interpolation amount between the two inputs\r\n * @returns {vec3} out\r\n */\r\nexport function hermite(out, a, b, c, d, t) {\r\n let factorTimes2 = t * t;\r\n let factor1 = factorTimes2 * (2 * t - 3) + 1;\r\n let factor2 = factorTimes2 * (t - 2) + t;\r\n let factor3 = factorTimes2 * (t - 1);\r\n let factor4 = factorTimes2 * (3 - 2 * t);\r\n\r\n out[0] = a[0] * factor1 + b[0] * factor2 + c[0] * factor3 + d[0] * factor4;\r\n out[1] = a[1] * factor1 + b[1] * factor2 + c[1] * factor3 + d[1] * factor4;\r\n out[2] = a[2] * factor1 + b[2] * factor2 + c[2] * factor3 + d[2] * factor4;\r\n\r\n return out;\r\n}\r\n\r\n/**\r\n * Performs a bezier interpolation with two control points\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the first operand\r\n * @param {vec3} b the second operand\r\n * @param {vec3} c the third operand\r\n * @param {vec3} d the fourth operand\r\n * @param {Number} t interpolation amount between the two inputs\r\n * @returns {vec3} out\r\n */\r\nexport function bezier(out, a, b, c, d, t) {\r\n let inverseFactor = 1 - t;\r\n let inverseFactorTimesTwo = inverseFactor * inverseFactor;\r\n let factorTimes2 = t * t;\r\n let factor1 = inverseFactorTimesTwo * inverseFactor;\r\n let factor2 = 3 * t * inverseFactorTimesTwo;\r\n let factor3 = 3 * factorTimes2 * inverseFactor;\r\n let factor4 = factorTimes2 * t;\r\n\r\n out[0] = a[0] * factor1 + b[0] * factor2 + c[0] * factor3 + d[0] * factor4;\r\n out[1] = a[1] * factor1 + b[1] * factor2 + c[1] * factor3 + d[1] * factor4;\r\n out[2] = a[2] * factor1 + b[2] * factor2 + c[2] * factor3 + d[2] * factor4;\r\n\r\n return out;\r\n}\r\n\r\n/**\r\n * Generates a random vector with the given scale\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned\r\n * @returns {vec3} out\r\n */\r\nexport function random(out, scale) {\r\n scale = scale || 1.0;\r\n\r\n let r = glMatrix.RANDOM() * 2.0 * Math.PI;\r\n let z = (glMatrix.RANDOM() * 2.0) - 1.0;\r\n let zScale = Math.sqrt(1.0-z*z) * scale;\r\n\r\n out[0] = Math.cos(r) * zScale;\r\n out[1] = Math.sin(r) * zScale;\r\n out[2] = z * scale;\r\n return out;\r\n}\r\n\r\n/**\r\n * Transforms the vec3 with a mat4.\r\n * 4th vector component is implicitly '1'\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the vector to transform\r\n * @param {mat4} m matrix to transform with\r\n * @returns {vec3} out\r\n */\r\nexport function transformMat4(out, a, m) {\r\n let x = a[0], y = a[1], z = a[2];\r\n let w = m[3] * x + m[7] * y + m[11] * z + m[15];\r\n w = w || 1.0;\r\n out[0] = (m[0] * x + m[4] * y + m[8] * z + m[12]) / w;\r\n out[1] = (m[1] * x + m[5] * y + m[9] * z + m[13]) / w;\r\n out[2] = (m[2] * x + m[6] * y + m[10] * z + m[14]) / w;\r\n return out;\r\n}\r\n\r\n/**\r\n * Transforms the vec3 with a mat3.\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the vector to transform\r\n * @param {mat3} m the 3x3 matrix to transform with\r\n * @returns {vec3} out\r\n */\r\nexport function transformMat3(out, a, m) {\r\n let x = a[0], y = a[1], z = a[2];\r\n out[0] = x * m[0] + y * m[3] + z * m[6];\r\n out[1] = x * m[1] + y * m[4] + z * m[7];\r\n out[2] = x * m[2] + y * m[5] + z * m[8];\r\n return out;\r\n}\r\n\r\n/**\r\n * Transforms the vec3 with a quat\r\n * Can also be used for dual quaternions. (Multiply it with the real part)\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the vector to transform\r\n * @param {quat} q quaternion to transform with\r\n * @returns {vec3} out\r\n */\r\nexport function transformQuat(out, a, q) {\r\n // benchmarks: https://jsperf.com/quaternion-transform-vec3-implementations-fixed\r\n let qx = q[0], qy = q[1], qz = q[2], qw = q[3];\r\n let x = a[0], y = a[1], z = a[2];\r\n // var qvec = [qx, qy, qz];\r\n // var uv = vec3.cross([], qvec, a);\r\n let uvx = qy * z - qz * y,\r\n uvy = qz * x - qx * z,\r\n uvz = qx * y - qy * x;\r\n // var uuv = vec3.cross([], qvec, uv);\r\n let uuvx = qy * uvz - qz * uvy,\r\n uuvy = qz * uvx - qx * uvz,\r\n uuvz = qx * uvy - qy * uvx;\r\n // vec3.scale(uv, uv, 2 * w);\r\n let w2 = qw * 2;\r\n uvx *= w2;\r\n uvy *= w2;\r\n uvz *= w2;\r\n // vec3.scale(uuv, uuv, 2);\r\n uuvx *= 2;\r\n uuvy *= 2;\r\n uuvz *= 2;\r\n // return vec3.add(out, a, vec3.add(out, uv, uuv));\r\n out[0] = x + uvx + uuvx;\r\n out[1] = y + uvy + uuvy;\r\n out[2] = z + uvz + uuvz;\r\n return out;\r\n}\r\n\r\n/**\r\n * Rotate a 3D vector around the x-axis\r\n * @param {vec3} out The receiving vec3\r\n * @param {vec3} a The vec3 point to rotate\r\n * @param {vec3} b The origin of the rotation\r\n * @param {Number} c The angle of rotation\r\n * @returns {vec3} out\r\n */\r\nexport function rotateX(out, a, b, c){\r\n let p = [], r=[];\r\n //Translate point to the origin\r\n p[0] = a[0] - b[0];\r\n p[1] = a[1] - b[1];\r\n p[2] = a[2] - b[2];\r\n\r\n //perform rotation\r\n r[0] = p[0];\r\n r[1] = p[1]*Math.cos(c) - p[2]*Math.sin(c);\r\n r[2] = p[1]*Math.sin(c) + p[2]*Math.cos(c);\r\n\r\n //translate to correct position\r\n out[0] = r[0] + b[0];\r\n out[1] = r[1] + b[1];\r\n out[2] = r[2] + b[2];\r\n\r\n return out;\r\n}\r\n\r\n/**\r\n * Rotate a 3D vector around the y-axis\r\n * @param {vec3} out The receiving vec3\r\n * @param {vec3} a The vec3 point to rotate\r\n * @param {vec3} b The origin of the rotation\r\n * @param {Number} c The angle of rotation\r\n * @returns {vec3} out\r\n */\r\nexport function rotateY(out, a, b, c){\r\n let p = [], r=[];\r\n //Translate point to the origin\r\n p[0] = a[0] - b[0];\r\n p[1] = a[1] - b[1];\r\n p[2] = a[2] - b[2];\r\n\r\n //perform rotation\r\n r[0] = p[2]*Math.sin(c) + p[0]*Math.cos(c);\r\n r[1] = p[1];\r\n r[2] = p[2]*Math.cos(c) - p[0]*Math.sin(c);\r\n\r\n //translate to correct position\r\n out[0] = r[0] + b[0];\r\n out[1] = r[1] + b[1];\r\n out[2] = r[2] + b[2];\r\n\r\n return out;\r\n}\r\n\r\n/**\r\n * Rotate a 3D vector around the z-axis\r\n * @param {vec3} out The receiving vec3\r\n * @param {vec3} a The vec3 point to rotate\r\n * @param {vec3} b The origin of the rotation\r\n * @param {Number} c The angle of rotation\r\n * @returns {vec3} out\r\n */\r\nexport function rotateZ(out, a, b, c){\r\n let p = [], r=[];\r\n //Translate point to the origin\r\n p[0] = a[0] - b[0];\r\n p[1] = a[1] - b[1];\r\n p[2] = a[2] - b[2];\r\n\r\n //perform rotation\r\n r[0] = p[0]*Math.cos(c) - p[1]*Math.sin(c);\r\n r[1] = p[0]*Math.sin(c) + p[1]*Math.cos(c);\r\n r[2] = p[2];\r\n\r\n //translate to correct position\r\n out[0] = r[0] + b[0];\r\n out[1] = r[1] + b[1];\r\n out[2] = r[2] + b[2];\r\n\r\n return out;\r\n}\r\n\r\n/**\r\n * Get the angle between two 3D vectors\r\n * @param {vec3} a The first operand\r\n * @param {vec3} b The second operand\r\n * @returns {Number} The angle in radians\r\n */\r\nexport function angle(a, b) {\r\n let tempA = fromValues(a[0], a[1], a[2]);\r\n let tempB = fromValues(b[0], b[1], b[2]);\r\n\r\n normalize(tempA, tempA);\r\n normalize(tempB, tempB);\r\n\r\n let cosine = dot(tempA, tempB);\r\n\r\n if(cosine > 1.0) {\r\n return 0;\r\n }\r\n else if(cosine < -1.0) {\r\n return Math.PI;\r\n } else {\r\n return Math.acos(cosine);\r\n }\r\n}\r\n\r\n/**\r\n * Returns a string representation of a vector\r\n *\r\n * @param {vec3} a vector to represent as a string\r\n * @returns {String} string representation of the vector\r\n */\r\nexport function str(a) {\r\n return 'vec3(' + a[0] + ', ' + a[1] + ', ' + a[2] + ')';\r\n}\r\n\r\n/**\r\n * Returns whether or not the vectors have exactly the same elements in the same position (when compared with ===)\r\n *\r\n * @param {vec3} a The first vector.\r\n * @param {vec3} b The second vector.\r\n * @returns {Boolean} True if the vectors are equal, false otherwise.\r\n */\r\nexport function exactEquals(a, b) {\r\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2];\r\n}\r\n\r\n/**\r\n * Returns whether or not the vectors have approximately the same elements in the same position.\r\n *\r\n * @param {vec3} a The first vector.\r\n * @param {vec3} b The second vector.\r\n * @returns {Boolean} True if the vectors are equal, false otherwise.\r\n */\r\nexport function equals(a, b) {\r\n let a0 = a[0], a1 = a[1], a2 = a[2];\r\n let b0 = b[0], b1 = b[1], b2 = b[2];\r\n return (Math.abs(a0 - b0) <= glMatrix.EPSILON*Math.max(1.0, Math.abs(a0), Math.abs(b0)) &&\r\n Math.abs(a1 - b1) <= glMatrix.EPSILON*Math.max(1.0, Math.abs(a1), Math.abs(b1)) &&\r\n Math.abs(a2 - b2) <= glMatrix.EPSILON*Math.max(1.0, Math.abs(a2), Math.abs(b2)));\r\n}\r\n\r\n/**\r\n * Alias for {@link vec3.subtract}\r\n * @function\r\n */\r\nexport const sub = subtract;\r\n\r\n/**\r\n * Alias for {@link vec3.multiply}\r\n * @function\r\n */\r\nexport const mul = multiply;\r\n\r\n/**\r\n * Alias for {@link vec3.divide}\r\n * @function\r\n */\r\nexport const div = divide;\r\n\r\n/**\r\n * Alias for {@link vec3.distance}\r\n * @function\r\n */\r\nexport const dist = distance;\r\n\r\n/**\r\n * Alias for {@link vec3.squaredDistance}\r\n * @function\r\n */\r\nexport const sqrDist = squaredDistance;\r\n\r\n/**\r\n * Alias for {@link vec3.length}\r\n * @function\r\n */\r\nexport const len = length;\r\n\r\n/**\r\n * Alias for {@link vec3.squaredLength}\r\n * @function\r\n */\r\nexport const sqrLen = squaredLength;\r\n\r\n/**\r\n * Perform some operation over an array of vec3s.\r\n *\r\n * @param {Array} a the array of vectors to iterate over\r\n * @param {Number} stride Number of elements between the start of each vec3. If 0 assumes tightly packed\r\n * @param {Number} offset Number of elements to skip at the beginning of the array\r\n * @param {Number} count Number of vec3s to iterate over. If 0 iterates over entire array\r\n * @param {Function} fn Function to call for each vector in the array\r\n * @param {Object} [arg] additional argument to pass to fn\r\n * @returns {Array} a\r\n * @function\r\n */\r\nexport const forEach = (function() {\r\n let vec = create();\r\n\r\n return function(a, stride, offset, count, fn, arg) {\r\n let i, l;\r\n if(!stride) {\r\n stride = 3;\r\n }\r\n\r\n if(!offset) {\r\n offset = 0;\r\n }\r\n\r\n if(count) {\r\n l = Math.min((count * stride) + offset, a.length);\r\n } else {\r\n l = a.length;\r\n }\r\n\r\n for(i = offset; i < l; i += stride) {\r\n vec[0] = a[i]; vec[1] = a[i+1]; vec[2] = a[i+2];\r\n fn(vec, vec, arg);\r\n a[i] = vec[0]; a[i+1] = vec[1]; a[i+2] = vec[2];\r\n }\r\n\r\n return a;\r\n };\r\n})();\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/node_modules/gl-matrix/src/gl-matrix/vec3.js","/* Copyright (c) 2015, Brandon Jones, Colin MacKenzie IV.\r\n\r\nPermission is hereby granted, free of charge, to any person obtaining a copy\r\nof this software and associated documentation files (the \"Software\"), to deal\r\nin the Software without restriction, including without limitation the rights\r\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\ncopies of the Software, and to permit persons to whom the Software is\r\nfurnished to do so, subject to the following conditions:\r\n\r\nThe above copyright notice and this permission notice shall be included in\r\nall copies or substantial portions of the Software.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\nTHE SOFTWARE. */\r\n\r\nimport * as glMatrix from \"./common.js\";\r\n\r\n/**\r\n * 4 Dimensional Vector\r\n * @module vec4\r\n */\r\n\r\n/**\r\n * Creates a new, empty vec4\r\n *\r\n * @returns {vec4} a new 4D vector\r\n */\r\nexport function create() {\r\n let out = new glMatrix.ARRAY_TYPE(4);\r\n out[0] = 0;\r\n out[1] = 0;\r\n out[2] = 0;\r\n out[3] = 0;\r\n return out;\r\n}\r\n\r\n/**\r\n * Creates a new vec4 initialized with values from an existing vector\r\n *\r\n * @param {vec4} a vector to clone\r\n * @returns {vec4} a new 4D vector\r\n */\r\nexport function clone(a) {\r\n let out = new glMatrix.ARRAY_TYPE(4);\r\n out[0] = a[0];\r\n out[1] = a[1];\r\n out[2] = a[2];\r\n out[3] = a[3];\r\n return out;\r\n}\r\n\r\n/**\r\n * Creates a new vec4 initialized with the given values\r\n *\r\n * @param {Number} x X component\r\n * @param {Number} y Y component\r\n * @param {Number} z Z component\r\n * @param {Number} w W component\r\n * @returns {vec4} a new 4D vector\r\n */\r\nexport function fromValues(x, y, z, w) {\r\n let out = new glMatrix.ARRAY_TYPE(4);\r\n out[0] = x;\r\n out[1] = y;\r\n out[2] = z;\r\n out[3] = w;\r\n return out;\r\n}\r\n\r\n/**\r\n * Copy the values from one vec4 to another\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {vec4} a the source vector\r\n * @returns {vec4} out\r\n */\r\nexport function copy(out, a) {\r\n out[0] = a[0];\r\n out[1] = a[1];\r\n out[2] = a[2];\r\n out[3] = a[3];\r\n return out;\r\n}\r\n\r\n/**\r\n * Set the components of a vec4 to the given values\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {Number} x X component\r\n * @param {Number} y Y component\r\n * @param {Number} z Z component\r\n * @param {Number} w W component\r\n * @returns {vec4} out\r\n */\r\nexport function set(out, x, y, z, w) {\r\n out[0] = x;\r\n out[1] = y;\r\n out[2] = z;\r\n out[3] = w;\r\n return out;\r\n}\r\n\r\n/**\r\n * Adds two vec4's\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {vec4} a the first operand\r\n * @param {vec4} b the second operand\r\n * @returns {vec4} out\r\n */\r\nexport function add(out, a, b) {\r\n out[0] = a[0] + b[0];\r\n out[1] = a[1] + b[1];\r\n out[2] = a[2] + b[2];\r\n out[3] = a[3] + b[3];\r\n return out;\r\n}\r\n\r\n/**\r\n * Subtracts vector b from vector a\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {vec4} a the first operand\r\n * @param {vec4} b the second operand\r\n * @returns {vec4} out\r\n */\r\nexport function subtract(out, a, b) {\r\n out[0] = a[0] - b[0];\r\n out[1] = a[1] - b[1];\r\n out[2] = a[2] - b[2];\r\n out[3] = a[3] - b[3];\r\n return out;\r\n}\r\n\r\n/**\r\n * Multiplies two vec4's\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {vec4} a the first operand\r\n * @param {vec4} b the second operand\r\n * @returns {vec4} out\r\n */\r\nexport function multiply(out, a, b) {\r\n out[0] = a[0] * b[0];\r\n out[1] = a[1] * b[1];\r\n out[2] = a[2] * b[2];\r\n out[3] = a[3] * b[3];\r\n return out;\r\n}\r\n\r\n/**\r\n * Divides two vec4's\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {vec4} a the first operand\r\n * @param {vec4} b the second operand\r\n * @returns {vec4} out\r\n */\r\nexport function divide(out, a, b) {\r\n out[0] = a[0] / b[0];\r\n out[1] = a[1] / b[1];\r\n out[2] = a[2] / b[2];\r\n out[3] = a[3] / b[3];\r\n return out;\r\n}\r\n\r\n/**\r\n * Math.ceil the components of a vec4\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {vec4} a vector to ceil\r\n * @returns {vec4} out\r\n */\r\nexport function ceil(out, a) {\r\n out[0] = Math.ceil(a[0]);\r\n out[1] = Math.ceil(a[1]);\r\n out[2] = Math.ceil(a[2]);\r\n out[3] = Math.ceil(a[3]);\r\n return out;\r\n}\r\n\r\n/**\r\n * Math.floor the components of a vec4\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {vec4} a vector to floor\r\n * @returns {vec4} out\r\n */\r\nexport function floor(out, a) {\r\n out[0] = Math.floor(a[0]);\r\n out[1] = Math.floor(a[1]);\r\n out[2] = Math.floor(a[2]);\r\n out[3] = Math.floor(a[3]);\r\n return out;\r\n}\r\n\r\n/**\r\n * Returns the minimum of two vec4's\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {vec4} a the first operand\r\n * @param {vec4} b the second operand\r\n * @returns {vec4} out\r\n */\r\nexport function min(out, a, b) {\r\n out[0] = Math.min(a[0], b[0]);\r\n out[1] = Math.min(a[1], b[1]);\r\n out[2] = Math.min(a[2], b[2]);\r\n out[3] = Math.min(a[3], b[3]);\r\n return out;\r\n}\r\n\r\n/**\r\n * Returns the maximum of two vec4's\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {vec4} a the first operand\r\n * @param {vec4} b the second operand\r\n * @returns {vec4} out\r\n */\r\nexport function max(out, a, b) {\r\n out[0] = Math.max(a[0], b[0]);\r\n out[1] = Math.max(a[1], b[1]);\r\n out[2] = Math.max(a[2], b[2]);\r\n out[3] = Math.max(a[3], b[3]);\r\n return out;\r\n}\r\n\r\n/**\r\n * Math.round the components of a vec4\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {vec4} a vector to round\r\n * @returns {vec4} out\r\n */\r\nexport function round(out, a) {\r\n out[0] = Math.round(a[0]);\r\n out[1] = Math.round(a[1]);\r\n out[2] = Math.round(a[2]);\r\n out[3] = Math.round(a[3]);\r\n return out;\r\n}\r\n\r\n/**\r\n * Scales a vec4 by a scalar number\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {vec4} a the vector to scale\r\n * @param {Number} b amount to scale the vector by\r\n * @returns {vec4} out\r\n */\r\nexport function scale(out, a, b) {\r\n out[0] = a[0] * b;\r\n out[1] = a[1] * b;\r\n out[2] = a[2] * b;\r\n out[3] = a[3] * b;\r\n return out;\r\n}\r\n\r\n/**\r\n * Adds two vec4's after scaling the second operand by a scalar value\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {vec4} a the first operand\r\n * @param {vec4} b the second operand\r\n * @param {Number} scale the amount to scale b by before adding\r\n * @returns {vec4} out\r\n */\r\nexport function scaleAndAdd(out, a, b, scale) {\r\n out[0] = a[0] + (b[0] * scale);\r\n out[1] = a[1] + (b[1] * scale);\r\n out[2] = a[2] + (b[2] * scale);\r\n out[3] = a[3] + (b[3] * scale);\r\n return out;\r\n}\r\n\r\n/**\r\n * Calculates the euclidian distance between two vec4's\r\n *\r\n * @param {vec4} a the first operand\r\n * @param {vec4} b the second operand\r\n * @returns {Number} distance between a and b\r\n */\r\nexport function distance(a, b) {\r\n let x = b[0] - a[0];\r\n let y = b[1] - a[1];\r\n let z = b[2] - a[2];\r\n let w = b[3] - a[3];\r\n return Math.sqrt(x*x + y*y + z*z + w*w);\r\n}\r\n\r\n/**\r\n * Calculates the squared euclidian distance between two vec4's\r\n *\r\n * @param {vec4} a the first operand\r\n * @param {vec4} b the second operand\r\n * @returns {Number} squared distance between a and b\r\n */\r\nexport function squaredDistance(a, b) {\r\n let x = b[0] - a[0];\r\n let y = b[1] - a[1];\r\n let z = b[2] - a[2];\r\n let w = b[3] - a[3];\r\n return x*x + y*y + z*z + w*w;\r\n}\r\n\r\n/**\r\n * Calculates the length of a vec4\r\n *\r\n * @param {vec4} a vector to calculate length of\r\n * @returns {Number} length of a\r\n */\r\nexport function length(a) {\r\n let x = a[0];\r\n let y = a[1];\r\n let z = a[2];\r\n let w = a[3];\r\n return Math.sqrt(x*x + y*y + z*z + w*w);\r\n}\r\n\r\n/**\r\n * Calculates the squared length of a vec4\r\n *\r\n * @param {vec4} a vector to calculate squared length of\r\n * @returns {Number} squared length of a\r\n */\r\nexport function squaredLength(a) {\r\n let x = a[0];\r\n let y = a[1];\r\n let z = a[2];\r\n let w = a[3];\r\n return x*x + y*y + z*z + w*w;\r\n}\r\n\r\n/**\r\n * Negates the components of a vec4\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {vec4} a vector to negate\r\n * @returns {vec4} out\r\n */\r\nexport function negate(out, a) {\r\n out[0] = -a[0];\r\n out[1] = -a[1];\r\n out[2] = -a[2];\r\n out[3] = -a[3];\r\n return out;\r\n}\r\n\r\n/**\r\n * Returns the inverse of the components of a vec4\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {vec4} a vector to invert\r\n * @returns {vec4} out\r\n */\r\nexport function inverse(out, a) {\r\n out[0] = 1.0 / a[0];\r\n out[1] = 1.0 / a[1];\r\n out[2] = 1.0 / a[2];\r\n out[3] = 1.0 / a[3];\r\n return out;\r\n}\r\n\r\n/**\r\n * Normalize a vec4\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {vec4} a vector to normalize\r\n * @returns {vec4} out\r\n */\r\nexport function normalize(out, a) {\r\n let x = a[0];\r\n let y = a[1];\r\n let z = a[2];\r\n let w = a[3];\r\n let len = x*x + y*y + z*z + w*w;\r\n if (len > 0) {\r\n len = 1 / Math.sqrt(len);\r\n out[0] = x * len;\r\n out[1] = y * len;\r\n out[2] = z * len;\r\n out[3] = w * len;\r\n }\r\n return out;\r\n}\r\n\r\n/**\r\n * Calculates the dot product of two vec4's\r\n *\r\n * @param {vec4} a the first operand\r\n * @param {vec4} b the second operand\r\n * @returns {Number} dot product of a and b\r\n */\r\nexport function dot(a, b) {\r\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];\r\n}\r\n\r\n/**\r\n * Performs a linear interpolation between two vec4's\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {vec4} a the first operand\r\n * @param {vec4} b the second operand\r\n * @param {Number} t interpolation amount between the two inputs\r\n * @returns {vec4} out\r\n */\r\nexport function lerp(out, a, b, t) {\r\n let ax = a[0];\r\n let ay = a[1];\r\n let az = a[2];\r\n let aw = a[3];\r\n out[0] = ax + t * (b[0] - ax);\r\n out[1] = ay + t * (b[1] - ay);\r\n out[2] = az + t * (b[2] - az);\r\n out[3] = aw + t * (b[3] - aw);\r\n return out;\r\n}\r\n\r\n/**\r\n * Generates a random vector with the given scale\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned\r\n * @returns {vec4} out\r\n */\r\nexport function random(out, vectorScale) {\r\n vectorScale = vectorScale || 1.0;\r\n\r\n //TODO: This is a pretty awful way of doing this. Find something better.\r\n out[0] = glMatrix.RANDOM();\r\n out[1] = glMatrix.RANDOM();\r\n out[2] = glMatrix.RANDOM();\r\n out[3] = glMatrix.RANDOM();\r\n normalize(out, out);\r\n scale(out, out, vectorScale);\r\n return out;\r\n}\r\n\r\n/**\r\n * Transforms the vec4 with a mat4.\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {vec4} a the vector to transform\r\n * @param {mat4} m matrix to transform with\r\n * @returns {vec4} out\r\n */\r\nexport function transformMat4(out, a, m) {\r\n let x = a[0], y = a[1], z = a[2], w = a[3];\r\n out[0] = m[0] * x + m[4] * y + m[8] * z + m[12] * w;\r\n out[1] = m[1] * x + m[5] * y + m[9] * z + m[13] * w;\r\n out[2] = m[2] * x + m[6] * y + m[10] * z + m[14] * w;\r\n out[3] = m[3] * x + m[7] * y + m[11] * z + m[15] * w;\r\n return out;\r\n}\r\n\r\n/**\r\n * Transforms the vec4 with a quat\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {vec4} a the vector to transform\r\n * @param {quat} q quaternion to transform with\r\n * @returns {vec4} out\r\n */\r\nexport function transformQuat(out, a, q) {\r\n let x = a[0], y = a[1], z = a[2];\r\n let qx = q[0], qy = q[1], qz = q[2], qw = q[3];\r\n\r\n // calculate quat * vec\r\n let ix = qw * x + qy * z - qz * y;\r\n let iy = qw * y + qz * x - qx * z;\r\n let iz = qw * z + qx * y - qy * x;\r\n let iw = -qx * x - qy * y - qz * z;\r\n\r\n // calculate result * inverse quat\r\n out[0] = ix * qw + iw * -qx + iy * -qz - iz * -qy;\r\n out[1] = iy * qw + iw * -qy + iz * -qx - ix * -qz;\r\n out[2] = iz * qw + iw * -qz + ix * -qy - iy * -qx;\r\n out[3] = a[3];\r\n return out;\r\n}\r\n\r\n/**\r\n * Returns a string representation of a vector\r\n *\r\n * @param {vec4} a vector to represent as a string\r\n * @returns {String} string representation of the vector\r\n */\r\nexport function str(a) {\r\n return 'vec4(' + a[0] + ', ' + a[1] + ', ' + a[2] + ', ' + a[3] + ')';\r\n}\r\n\r\n/**\r\n * Returns whether or not the vectors have exactly the same elements in the same position (when compared with ===)\r\n *\r\n * @param {vec4} a The first vector.\r\n * @param {vec4} b The second vector.\r\n * @returns {Boolean} True if the vectors are equal, false otherwise.\r\n */\r\nexport function exactEquals(a, b) {\r\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3];\r\n}\r\n\r\n/**\r\n * Returns whether or not the vectors have approximately the same elements in the same position.\r\n *\r\n * @param {vec4} a The first vector.\r\n * @param {vec4} b The second vector.\r\n * @returns {Boolean} True if the vectors are equal, false otherwise.\r\n */\r\nexport function equals(a, b) {\r\n let a0 = a[0], a1 = a[1], a2 = a[2], a3 = a[3];\r\n let b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3];\r\n return (Math.abs(a0 - b0) <= glMatrix.EPSILON*Math.max(1.0, Math.abs(a0), Math.abs(b0)) &&\r\n Math.abs(a1 - b1) <= glMatrix.EPSILON*Math.max(1.0, Math.abs(a1), Math.abs(b1)) &&\r\n Math.abs(a2 - b2) <= glMatrix.EPSILON*Math.max(1.0, Math.abs(a2), Math.abs(b2)) &&\r\n Math.abs(a3 - b3) <= glMatrix.EPSILON*Math.max(1.0, Math.abs(a3), Math.abs(b3)));\r\n}\r\n\r\n/**\r\n * Alias for {@link vec4.subtract}\r\n * @function\r\n */\r\nexport const sub = subtract;\r\n\r\n/**\r\n * Alias for {@link vec4.multiply}\r\n * @function\r\n */\r\nexport const mul = multiply;\r\n\r\n/**\r\n * Alias for {@link vec4.divide}\r\n * @function\r\n */\r\nexport const div = divide;\r\n\r\n/**\r\n * Alias for {@link vec4.distance}\r\n * @function\r\n */\r\nexport const dist = distance;\r\n\r\n/**\r\n * Alias for {@link vec4.squaredDistance}\r\n * @function\r\n */\r\nexport const sqrDist = squaredDistance;\r\n\r\n/**\r\n * Alias for {@link vec4.length}\r\n * @function\r\n */\r\nexport const len = length;\r\n\r\n/**\r\n * Alias for {@link vec4.squaredLength}\r\n * @function\r\n */\r\nexport const sqrLen = squaredLength;\r\n\r\n/**\r\n * Perform some operation over an array of vec4s.\r\n *\r\n * @param {Array} a the array of vectors to iterate over\r\n * @param {Number} stride Number of elements between the start of each vec4. If 0 assumes tightly packed\r\n * @param {Number} offset Number of elements to skip at the beginning of the array\r\n * @param {Number} count Number of vec4s to iterate over. If 0 iterates over entire array\r\n * @param {Function} fn Function to call for each vector in the array\r\n * @param {Object} [arg] additional argument to pass to fn\r\n * @returns {Array} a\r\n * @function\r\n */\r\nexport const forEach = (function() {\r\n let vec = create();\r\n\r\n return function(a, stride, offset, count, fn, arg) {\r\n let i, l;\r\n if(!stride) {\r\n stride = 4;\r\n }\r\n\r\n if(!offset) {\r\n offset = 0;\r\n }\r\n\r\n if(count) {\r\n l = Math.min((count * stride) + offset, a.length);\r\n } else {\r\n l = a.length;\r\n }\r\n\r\n for(i = offset; i < l; i += stride) {\r\n vec[0] = a[i]; vec[1] = a[i+1]; vec[2] = a[i+2]; vec[3] = a[i+3];\r\n fn(vec, vec, arg);\r\n a[i] = vec[0]; a[i+1] = vec[1]; a[i+2] = vec[2]; a[i+3] = vec[3];\r\n }\r\n\r\n return a;\r\n };\r\n})();\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/node_modules/gl-matrix/src/gl-matrix/vec4.js","import macro from 'vtk.js/Sources/macro';\nimport vtkForwardPass from 'vtk.js/Sources/Rendering/OpenGL/ForwardPass';\nimport vtkOpenGLViewNodeFactory from 'vtk.js/Sources/Rendering/OpenGL/ViewNodeFactory';\nimport vtkRenderPass from 'vtk.js/Sources/Rendering/SceneGraph/RenderPass';\nimport vtkShaderCache from 'vtk.js/Sources/Rendering/OpenGL/ShaderCache';\nimport vtkViewNode from 'vtk.js/Sources/Rendering/SceneGraph/ViewNode';\nimport vtkOpenGLTextureUnitManager from 'vtk.js/Sources/Rendering/OpenGL/TextureUnitManager';\nimport { VtkDataTypes } from 'vtk.js/Sources/Common/Core/DataArray/Constants';\nimport WebVRPolyfill from 'webvr-polyfill';\n\nconst { vtkDebugMacro, vtkErrorMacro } = macro;\n\nfunction checkRenderTargetSupport(gl, format, type) {\n // create temporary frame buffer and texture\n const framebuffer = gl.createFramebuffer();\n const texture = gl.createTexture();\n\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texImage2D(gl.TEXTURE_2D, 0, format, 2, 2, 0, format, type, null);\n\n gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);\n gl.framebufferTexture2D(\n gl.FRAMEBUFFER,\n gl.COLOR_ATTACHMENT0,\n gl.TEXTURE_2D,\n texture,\n 0\n );\n\n // check frame buffer status\n const status = gl.checkFramebufferStatus(gl.FRAMEBUFFER);\n\n // clean up\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n gl.bindTexture(gl.TEXTURE_2D, null);\n\n return status === gl.FRAMEBUFFER_COMPLETE;\n}\n\n// ----------------------------------------------------------------------------\n// vtkOpenGLRenderWindow methods\n// ----------------------------------------------------------------------------\n\nfunction vtkOpenGLRenderWindow(publicAPI, model) {\n // Set our className\n model.classHierarchy.push('vtkOpenGLRenderWindow');\n\n // Auto update style\n function updateWindow() {\n // Canvas size\n if (model.renderable) {\n model.canvas.setAttribute('width', model.size[0]);\n model.canvas.setAttribute('height', model.size[1]);\n }\n // Offscreen ?\n model.canvas.style.display = model.useOffScreen ? 'none' : 'block';\n\n // Cursor type\n if (model.el) {\n model.el.style.cursor = model.cursorVisibility ? model.cursor : 'none';\n }\n }\n publicAPI.onModified(updateWindow);\n\n // Builds myself.\n publicAPI.buildPass = (prepass) => {\n if (prepass) {\n if (!model.renderable) {\n return;\n }\n\n publicAPI.prepareNodes();\n publicAPI.addMissingNodes(model.renderable.getRenderersByReference());\n publicAPI.removeUnusedNodes();\n\n publicAPI.initialize();\n model.children.forEach((child) => {\n child.setOpenGLRenderWindow(publicAPI);\n });\n }\n };\n\n publicAPI.initialize = () => {\n if (!model.initialized) {\n model.context = publicAPI.get3DContext();\n model.textureUnitManager = vtkOpenGLTextureUnitManager.newInstance();\n model.textureUnitManager.setContext(model.context);\n model.shaderCache.setContext(model.context);\n // initialize blending for transparency\n const gl = model.context;\n gl.blendFuncSeparate(\n gl.SRC_ALPHA,\n gl.ONE_MINUS_SRC_ALPHA,\n gl.ONE,\n gl.ONE_MINUS_SRC_ALPHA\n );\n gl.depthFunc(gl.LEQUAL);\n gl.enable(gl.BLEND);\n model.initialized = true;\n }\n };\n\n publicAPI.makeCurrent = () => {\n model.context.makeCurrent();\n };\n\n publicAPI.setContainer = (el) => {\n if (model.el && model.el !== el) {\n // Remove canvas from previous container\n if (model.canvas.parentNode === model.el) {\n model.el.removeChild(model.canvas);\n } else {\n vtkErrorMacro('Error: canvas parent node does not match container');\n }\n }\n\n if (model.el !== el) {\n model.el = el;\n if (model.el) {\n model.el.appendChild(model.canvas);\n }\n\n // Trigger modified()\n publicAPI.modified();\n }\n };\n\n publicAPI.getFramebufferSize = () => {\n if (model.activeFramebuffer) {\n return model.activeFramebuffer.getSize();\n }\n return model.size;\n };\n\n publicAPI.isInViewport = (x, y, viewport) => {\n const vCoords = viewport.getViewportByReference();\n const size = publicAPI.getFramebufferSize();\n if (\n vCoords[0] * size[0] <= x &&\n vCoords[2] * size[0] >= x &&\n vCoords[1] * size[1] <= y &&\n vCoords[3] * size[1] >= y\n ) {\n return true;\n }\n return false;\n };\n\n publicAPI.getViewportSize = (viewport) => {\n const vCoords = viewport.getViewportByReference();\n const size = publicAPI.getFramebufferSize();\n return [\n (vCoords[2] - vCoords[0]) * size[0],\n (vCoords[3] - vCoords[1]) * size[1],\n ];\n };\n\n publicAPI.getViewportCenter = (viewport) => {\n const size = publicAPI.getViewportSize(viewport);\n return [size[0] * 0.5, size[1] * 0.5];\n };\n\n publicAPI.displayToNormalizedDisplay = (x, y, z) => {\n const size = publicAPI.getFramebufferSize();\n return [x / size[0], y / size[1], z];\n };\n\n publicAPI.normalizedDisplayToDisplay = (x, y, z) => {\n const size = publicAPI.getFramebufferSize();\n return [x * size[0], y * size[1], z];\n };\n\n publicAPI.worldToView = (x, y, z, renderer) => {\n const dims = publicAPI.getViewportSize(renderer);\n return renderer.worldToView(x, y, z, dims[0] / dims[1]);\n };\n\n publicAPI.viewToWorld = (x, y, z, renderer) => {\n const dims = publicAPI.getViewportSize(renderer);\n return renderer.viewToWorld(x, y, z, dims[0] / dims[1]);\n };\n\n publicAPI.worldToDisplay = (x, y, z, renderer) => {\n const val = publicAPI.worldToView(x, y, z, renderer);\n const val2 = renderer.viewToNormalizedDisplay(val[0], val[1], val[2]);\n return publicAPI.normalizedDisplayToDisplay(val2[0], val2[1], val2[2]);\n };\n\n publicAPI.displayToWorld = (x, y, z, renderer) => {\n const val = publicAPI.displayToNormalizedDisplay(x, y, z);\n const val2 = renderer.normalizedDisplayToView(val[0], val[1], val[2]);\n return publicAPI.viewToWorld(val2[0], val2[1], val2[2], renderer);\n };\n\n publicAPI.normalizedDisplayToViewport = (x, y, z, renderer) => {\n let vCoords = renderer.getViewportByReference();\n vCoords = publicAPI.normalizedDisplayToDisplay(vCoords[0], vCoords[1], 0.0);\n const coords = publicAPI.normalizedDisplayToDisplay(x, y, z);\n return [coords[0] - vCoords[0] - 0.5, coords[1] - vCoords[1] - 0.5, z];\n };\n\n publicAPI.viewportToNormalizedViewport = (x, y, z, renderer) => {\n const size = publicAPI.getViewportSize(renderer);\n if (size && size[0] !== 0 && size[1] !== 0) {\n return [x / (size[0] - 1.0), y / (size[1] - 1.0), z];\n }\n return [x, y, z];\n };\n\n publicAPI.normalizedViewportToViewport = (x, y, z) => {\n const size = publicAPI.getFramebufferSize();\n return [x * (size[0] - 1.0), y * (size[1] - 1.0), z];\n };\n\n publicAPI.displayToLocalDisplay = (x, y, z) => {\n const size = publicAPI.getFramebufferSize();\n return [x, size[1] - y - 1, z];\n };\n\n publicAPI.viewportToNormalizedDisplay = (x, y, z, renderer) => {\n let vCoords = renderer.getViewportByReference();\n vCoords = publicAPI.normalizedDisplayToDisplay(vCoords[0], vCoords[1], 0.0);\n const x2 = x + vCoords[0] + 0.5;\n const y2 = y + vCoords[1] + 0.5;\n return publicAPI.displayToNormalizedDisplay(x2, y2, z);\n };\n\n publicAPI.getPixelData = (x1, y1, x2, y2) => {\n const pixels = new Uint8Array((x2 - x1 + 1) * (y2 - y1 + 1) * 4);\n model.context.readPixels(\n x1,\n y1,\n x2 - x1 + 1,\n y2 - y1 + 1,\n model.context.RGBA,\n model.context.UNSIGNED_BYTE,\n pixels\n );\n return pixels;\n };\n\n publicAPI.get2DContext = () => model.canvas.getContext('2d');\n\n publicAPI.get3DContext = (\n options = { preserveDrawingBuffer: false, depth: true, alpha: true }\n ) => {\n let result = null;\n\n const webgl2Supported = typeof WebGL2RenderingContext !== 'undefined';\n model.webgl2 = false;\n if (model.defaultToWebgl2 && webgl2Supported) {\n result = model.canvas.getContext('webgl2'); // , options);\n if (result) {\n model.webgl2 = true;\n vtkDebugMacro('using webgl2');\n }\n }\n if (!result) {\n vtkDebugMacro('using webgl1');\n result =\n model.canvas.getContext('webgl', options) ||\n model.canvas.getContext('experimental-webgl', options);\n }\n\n /* eslint-disable */\n const polyfill = new WebVRPolyfill({\n // Ensures the polyfill is always active on mobile, due to providing\n // a polyfilled CardboardVRDisplay when no native API is available,\n // and also polyfilling even when the native API is available, due to\n // providing a CardboardVRDisplay when no native VRDisplays exist.\n PROVIDE_MOBILE_VRDISPLAY: true,\n // Polyfill optimizations\n DIRTY_SUBMIT_FRAME_BINDINGS: false,\n BUFFER_SCALE: 0.75,\n });\n /* eslint-enable */\n\n // Do we have webvr support\n if (navigator.getVRDisplays) {\n navigator.getVRDisplays().then((displays) => {\n if (displays.length > 0) {\n // take the first display for now\n model.vrDisplay = displays[0];\n // set the clipping ranges\n model.vrDisplay.depthNear = 0.01; // meters\n model.vrDisplay.depthFar = 100.0; // meters\n publicAPI.invokeHaveVRDisplay();\n }\n });\n }\n\n // prevent default context lost handler\n model.canvas.addEventListener(\n 'webglcontextlost',\n (event) => {\n event.preventDefault();\n },\n false\n );\n\n model.canvas.addEventListener(\n 'webglcontextrestored',\n publicAPI.restoreContext,\n false\n );\n\n return result;\n };\n\n publicAPI.startVR = () => {\n if (model.vrDisplay.capabilities.canPresent) {\n model.vrDisplay\n .requestPresent([{ source: model.canvas }])\n .then(() => {\n model.oldCanvasSize = model.size.slice();\n\n if (model.el && model.vrDisplay.capabilities.hasExternalDisplay) {\n model.el.style.display = 'none';\n }\n if (model.queryVRSize) {\n const leftEye = model.vrDisplay.getEyeParameters('left');\n const rightEye = model.vrDisplay.getEyeParameters('right');\n const width = Math.floor(\n leftEye.renderWidth + rightEye.renderWidth\n );\n const height = Math.floor(\n Math.max(leftEye.renderHeight, rightEye.renderHeight)\n );\n publicAPI.setSize(width, height);\n } else {\n publicAPI.setSize(model.vrResolution);\n }\n\n const ren = model.renderable.getRenderers()[0];\n ren.resetCamera();\n model.vrFrameData = new VRFrameData();\n model.renderable.getInteractor().switchToVRAnimation();\n\n publicAPI.vrRender();\n })\n .catch(() => {\n console.log('failed to requestPresent');\n });\n } else {\n vtkErrorMacro('vrDisplay is not connected');\n }\n };\n\n publicAPI.stopVR = () => {\n model.renderable.getInteractor().returnFromVRAnimation();\n model.vrDisplay.exitPresent();\n model.vrDisplay.cancelAnimationFrame(model.vrSceneFrame);\n\n publicAPI.setSize(...model.oldCanvasSize);\n if (model.el && model.vrDisplay.capabilities.hasExternalDisplay) {\n model.el.style.display = 'block';\n }\n\n const ren = model.renderable.getRenderers()[0];\n ren.getActiveCamera().setProjectionMatrix(null);\n\n ren.setViewport(0.0, 0, 1.0, 1.0);\n publicAPI.traverseAllPasses();\n };\n\n publicAPI.vrRender = () => {\n model.renderable.getInteractor().updateGamepads(model.vrDisplay.displayId);\n model.vrSceneFrame = model.vrDisplay.requestAnimationFrame(\n publicAPI.vrRender\n );\n model.vrDisplay.getFrameData(model.vrFrameData);\n\n // get the first renderer\n const ren = model.renderable.getRenderers()[0];\n\n // do the left eye\n ren.setViewport(0, 0, 0.5, 1.0);\n ren\n .getActiveCamera()\n .computeViewParametersFromPhysicalMatrix(\n model.vrFrameData.leftViewMatrix\n );\n ren\n .getActiveCamera()\n .setProjectionMatrix(model.vrFrameData.leftProjectionMatrix);\n publicAPI.traverseAllPasses();\n\n ren.setViewport(0.5, 0, 1.0, 1.0);\n ren\n .getActiveCamera()\n .computeViewParametersFromPhysicalMatrix(\n model.vrFrameData.rightViewMatrix\n );\n ren\n .getActiveCamera()\n .setProjectionMatrix(model.vrFrameData.rightProjectionMatrix);\n publicAPI.traverseAllPasses();\n\n model.vrDisplay.submitFrame();\n };\n\n publicAPI.restoreContext = () => {\n const rp = vtkRenderPass.newInstance();\n rp.setCurrentOperation('Release');\n rp.traverse(publicAPI, null);\n };\n\n publicAPI.activateTexture = (texture) => {\n // Only add if it isn't already there\n const result = model.textureResourceIds.get(texture);\n if (result !== undefined) {\n model.context.activeTexture(model.context.TEXTURE0 + result);\n return;\n }\n\n const activeUnit = publicAPI.getTextureUnitManager().allocate();\n if (activeUnit < 0) {\n vtkErrorMacro(\n 'Hardware does not support the number of textures defined.'\n );\n return;\n }\n\n model.textureResourceIds.set(texture, activeUnit);\n model.context.activeTexture(model.context.TEXTURE0 + activeUnit);\n };\n\n publicAPI.deactivateTexture = (texture) => {\n // Only deactivate if it isn't already there\n const result = model.textureResourceIds.get(texture);\n if (result !== undefined) {\n publicAPI.getTextureUnitManager().free(result);\n delete model.textureResourceIds.delete(texture);\n }\n };\n\n publicAPI.getTextureUnitForTexture = (texture) => {\n const result = model.textureResourceIds.get(texture);\n if (result !== undefined) {\n return result;\n }\n return -1;\n };\n\n publicAPI.getDefaultTextureInternalFormat = (vtktype, numComps, useFloat) => {\n if (model.webgl2) {\n switch (vtktype) {\n case VtkDataTypes.UNSIGNED_CHAR:\n switch (numComps) {\n case 1:\n return model.context.R8;\n case 2:\n return model.context.RG8;\n case 3:\n return model.context.RGB8;\n case 4:\n default:\n return model.context.RGBA8;\n }\n default:\n case VtkDataTypes.FLOAT:\n switch (numComps) {\n case 1:\n return model.context.R16F;\n case 2:\n return model.context.RG16F;\n case 3:\n return model.context.RGB16F;\n case 4:\n default:\n return model.context.RGBA16F;\n }\n }\n }\n\n // webgl1 only supports four types\n switch (numComps) {\n case 1:\n return model.context.LUMINANCE;\n case 2:\n return model.context.LUMINANCE_ALPHA;\n case 3:\n return model.context.RGB;\n case 4:\n default:\n return model.context.RGBA;\n }\n };\n\n function getCanvasDataURL(format = model.imageFormat) {\n return model.canvas.toDataURL(format);\n }\n\n publicAPI.captureNextImage = (format = 'image/png') => {\n if (model.deleted) {\n return null;\n }\n model.imageFormat = format;\n const previous = model.notifyImageReady;\n model.notifyImageReady = true;\n\n return new Promise((resolve, reject) => {\n const subscription = publicAPI.onImageReady((imageURL) => {\n model.notifyImageReady = previous;\n subscription.unsubscribe();\n resolve(imageURL);\n });\n });\n };\n\n publicAPI.getGLInformations = () => {\n const gl = publicAPI.get3DContext();\n\n const glTextureFloat = gl.getExtension('OES_texture_float');\n const glTextureHalfFloat = gl.getExtension('OES_texture_half_float');\n const glDebugRendererInfo = gl.getExtension('WEBGL_debug_renderer_info');\n const glDrawBuffers = gl.getExtension('WEBGL_draw_buffers');\n const glAnisotropic =\n gl.getExtension('EXT_texture_filter_anisotropic') ||\n gl.getExtension('WEBKIT_EXT_texture_filter_anisotropic');\n\n const params = [\n [\n 'Max Vertex Attributes',\n 'MAX_VERTEX_ATTRIBS',\n gl.getParameter(gl.MAX_VERTEX_ATTRIBS),\n ],\n [\n 'Max Varying Vectors',\n 'MAX_VARYING_VECTORS',\n gl.getParameter(gl.MAX_VARYING_VECTORS),\n ],\n [\n 'Max Vertex Uniform Vectors',\n 'MAX_VERTEX_UNIFORM_VECTORS',\n gl.getParameter(gl.MAX_VERTEX_UNIFORM_VECTORS),\n ],\n [\n 'Max Fragment Uniform Vectors',\n 'MAX_FRAGMENT_UNIFORM_VECTORS',\n gl.getParameter(gl.MAX_FRAGMENT_UNIFORM_VECTORS),\n ],\n [\n 'Max Fragment Texture Image Units',\n 'MAX_TEXTURE_IMAGE_UNITS',\n gl.getParameter(gl.MAX_TEXTURE_IMAGE_UNITS),\n ],\n [\n 'Max Vertex Texture Image Units',\n 'MAX_VERTEX_TEXTURE_IMAGE_UNITS',\n gl.getParameter(gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS),\n ],\n [\n 'Max Combined Texture Image Units',\n 'MAX_COMBINED_TEXTURE_IMAGE_UNITS',\n gl.getParameter(gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS),\n ],\n [\n 'Max 2D Texture Size',\n 'MAX_TEXTURE_SIZE',\n gl.getParameter(gl.MAX_TEXTURE_SIZE),\n ],\n [\n 'Max Cube Texture Size',\n 'MAX_CUBE_MAP_TEXTURE_SIZE',\n gl.getParameter(gl.MAX_CUBE_MAP_TEXTURE_SIZE),\n ],\n [\n 'Max Texture Anisotropy',\n 'MAX_TEXTURE_MAX_ANISOTROPY_EXT',\n glAnisotropic &&\n gl.getParameter(glAnisotropic.MAX_TEXTURE_MAX_ANISOTROPY_EXT),\n ],\n [\n 'Point Size Range',\n 'ALIASED_POINT_SIZE_RANGE',\n gl.getParameter(gl.ALIASED_POINT_SIZE_RANGE).join(' - '),\n ],\n [\n 'Line Width Range',\n 'ALIASED_LINE_WIDTH_RANGE',\n gl.getParameter(gl.ALIASED_LINE_WIDTH_RANGE).join(' - '),\n ],\n [\n 'Max Viewport Dimensions',\n 'MAX_VIEWPORT_DIMS',\n gl.getParameter(gl.MAX_VIEWPORT_DIMS).join(' - '),\n ],\n [\n 'Max Renderbuffer Size',\n 'MAX_RENDERBUFFER_SIZE',\n gl.getParameter(gl.MAX_RENDERBUFFER_SIZE),\n ],\n ['Framebuffer Red Bits', 'RED_BITS', gl.getParameter(gl.RED_BITS)],\n ['Framebuffer Green Bits', 'GREEN_BITS', gl.getParameter(gl.GREEN_BITS)],\n ['Framebuffer Blue Bits', 'BLUE_BITS', gl.getParameter(gl.BLUE_BITS)],\n ['Framebuffer Alpha Bits', 'ALPHA_BITS', gl.getParameter(gl.ALPHA_BITS)],\n ['Framebuffer Depth Bits', 'DEPTH_BITS', gl.getParameter(gl.DEPTH_BITS)],\n [\n 'Framebuffer Stencil Bits',\n 'STENCIL_BITS',\n gl.getParameter(gl.STENCIL_BITS),\n ],\n [\n 'Framebuffer Subpixel Bits',\n 'SUBPIXEL_BITS',\n gl.getParameter(gl.SUBPIXEL_BITS),\n ],\n ['MSAA Samples', 'SAMPLES', gl.getParameter(gl.SAMPLES)],\n [\n 'MSAA Sample Buffers',\n 'SAMPLE_BUFFERS',\n gl.getParameter(gl.SAMPLE_BUFFERS),\n ],\n [\n 'Supported Formats for UByte Render Targets ',\n 'UNSIGNED_BYTE RENDER TARGET FORMATS',\n [\n glTextureFloat &&\n checkRenderTargetSupport(gl, gl.RGBA, gl.UNSIGNED_BYTE)\n ? 'RGBA'\n : '',\n glTextureFloat &&\n checkRenderTargetSupport(gl, gl.RGB, gl.UNSIGNED_BYTE)\n ? 'RGB'\n : '',\n glTextureFloat &&\n checkRenderTargetSupport(gl, gl.LUMINANCE, gl.UNSIGNED_BYTE)\n ? 'LUMINANCE'\n : '',\n glTextureFloat &&\n checkRenderTargetSupport(gl, gl.ALPHA, gl.UNSIGNED_BYTE)\n ? 'ALPHA'\n : '',\n glTextureFloat &&\n checkRenderTargetSupport(gl, gl.LUMINANCE_ALPHA, gl.UNSIGNED_BYTE)\n ? 'LUMINANCE_ALPHA'\n : '',\n ].join(' '),\n ],\n [\n 'Supported Formats for Half Float Render Targets',\n 'HALF FLOAT RENDER TARGET FORMATS',\n [\n glTextureHalfFloat &&\n checkRenderTargetSupport(\n gl,\n gl.RGBA,\n glTextureHalfFloat.HALF_FLOAT_OES\n )\n ? 'RGBA'\n : '',\n glTextureHalfFloat &&\n checkRenderTargetSupport(\n gl,\n gl.RGB,\n glTextureHalfFloat.HALF_FLOAT_OES\n )\n ? 'RGB'\n : '',\n glTextureHalfFloat &&\n checkRenderTargetSupport(\n gl,\n gl.LUMINANCE,\n glTextureHalfFloat.HALF_FLOAT_OES\n )\n ? 'LUMINANCE'\n : '',\n glTextureHalfFloat &&\n checkRenderTargetSupport(\n gl,\n gl.ALPHA,\n glTextureHalfFloat.HALF_FLOAT_OES\n )\n ? 'ALPHA'\n : '',\n glTextureHalfFloat &&\n checkRenderTargetSupport(\n gl,\n gl.LUMINANCE_ALPHA,\n glTextureHalfFloat.HALF_FLOAT_OES\n )\n ? 'LUMINANCE_ALPHA'\n : '',\n ].join(' '),\n ],\n [\n 'Supported Formats for Full Float Render Targets',\n 'FLOAT RENDER TARGET FORMATS',\n [\n glTextureFloat && checkRenderTargetSupport(gl, gl.RGBA, gl.FLOAT)\n ? 'RGBA'\n : '',\n glTextureFloat && checkRenderTargetSupport(gl, gl.RGB, gl.FLOAT)\n ? 'RGB'\n : '',\n glTextureFloat && checkRenderTargetSupport(gl, gl.LUMINANCE, gl.FLOAT)\n ? 'LUMINANCE'\n : '',\n glTextureFloat && checkRenderTargetSupport(gl, gl.ALPHA, gl.FLOAT)\n ? 'ALPHA'\n : '',\n glTextureFloat &&\n checkRenderTargetSupport(gl, gl.LUMINANCE_ALPHA, gl.FLOAT)\n ? 'LUMINANCE_ALPHA'\n : '',\n ].join(' '),\n ],\n [\n 'Max Multiple Render Targets Buffers',\n 'MAX_DRAW_BUFFERS_WEBGL',\n glDrawBuffers\n ? gl.getParameter(glDrawBuffers.MAX_DRAW_BUFFERS_WEBGL)\n : 0,\n ],\n [\n 'High Float Precision in Vertex Shader',\n 'HIGH_FLOAT VERTEX_SHADER',\n [\n gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.HIGH_FLOAT)\n .precision,\n ' (-2',\n gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.HIGH_FLOAT).rangeMin,\n ' - 2',\n gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.HIGH_FLOAT).rangeMax,\n ')',\n ].join(''),\n ],\n [\n 'Medium Float Precision in Vertex Shader',\n 'MEDIUM_FLOAT VERTEX_SHADER',\n [\n gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.MEDIUM_FLOAT)\n .precision,\n ' (-2',\n gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.MEDIUM_FLOAT)\n .rangeMin,\n ' - 2',\n gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.MEDIUM_FLOAT)\n .rangeMax,\n ')',\n ].join(''),\n ],\n [\n 'Low Float Precision in Vertex Shader',\n 'LOW_FLOAT VERTEX_SHADER',\n [\n gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.LOW_FLOAT).precision,\n ' (-2',\n gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.LOW_FLOAT).rangeMin,\n ' - 2',\n gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.LOW_FLOAT).rangeMax,\n ')',\n ].join(''),\n ],\n [\n 'High Float Precision in Fragment Shader',\n 'HIGH_FLOAT FRAGMENT_SHADER',\n [\n gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.HIGH_FLOAT)\n .precision,\n ' (-2',\n gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.HIGH_FLOAT)\n .rangeMin,\n ' - 2',\n gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.HIGH_FLOAT)\n .rangeMax,\n ')',\n ].join(''),\n ],\n [\n 'Medium Float Precision in Fragment Shader',\n 'MEDIUM_FLOAT FRAGMENT_SHADER',\n [\n gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.MEDIUM_FLOAT)\n .precision,\n ' (-2',\n gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.MEDIUM_FLOAT)\n .rangeMin,\n ' - 2',\n gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.MEDIUM_FLOAT)\n .rangeMax,\n ')',\n ].join(''),\n ],\n [\n 'Low Float Precision in Fragment Shader',\n 'LOW_FLOAT FRAGMENT_SHADER',\n [\n gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.LOW_FLOAT)\n .precision,\n ' (-2',\n gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.LOW_FLOAT)\n .rangeMin,\n ' - 2',\n gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.LOW_FLOAT)\n .rangeMax,\n ')',\n ].join(''),\n ],\n [\n 'High Int Precision in Vertex Shader',\n 'HIGH_INT VERTEX_SHADER',\n [\n gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.HIGH_INT).precision,\n ' (-2',\n gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.HIGH_INT).rangeMin,\n ' - 2',\n gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.HIGH_INT).rangeMax,\n ')',\n ].join(''),\n ],\n [\n 'Medium Int Precision in Vertex Shader',\n 'MEDIUM_INT VERTEX_SHADER',\n [\n gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.MEDIUM_INT)\n .precision,\n ' (-2',\n gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.MEDIUM_INT).rangeMin,\n ' - 2',\n gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.MEDIUM_INT).rangeMax,\n ')',\n ].join(''),\n ],\n [\n 'Low Int Precision in Vertex Shader',\n 'LOW_INT VERTEX_SHADER',\n [\n gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.LOW_INT).precision,\n ' (-2',\n gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.LOW_INT).rangeMin,\n ' - 2',\n gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.LOW_INT).rangeMax,\n ')',\n ].join(''),\n ],\n [\n 'High Int Precision in Fragment Shader',\n 'HIGH_INT FRAGMENT_SHADER',\n [\n gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.HIGH_INT)\n .precision,\n ' (-2',\n gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.HIGH_INT).rangeMin,\n ' - 2',\n gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.HIGH_INT).rangeMax,\n ')',\n ].join(''),\n ],\n [\n 'Medium Int Precision in Fragment Shader',\n 'MEDIUM_INT FRAGMENT_SHADER',\n [\n gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.MEDIUM_INT)\n .precision,\n ' (-2',\n gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.MEDIUM_INT)\n .rangeMin,\n ' - 2',\n gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.MEDIUM_INT)\n .rangeMax,\n ')',\n ].join(''),\n ],\n [\n 'Low Int Precision in Fragment Shader',\n 'LOW_INT FRAGMENT_SHADER',\n [\n gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.LOW_INT).precision,\n ' (-2',\n gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.LOW_INT).rangeMin,\n ' - 2',\n gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.LOW_INT).rangeMax,\n ')',\n ].join(''),\n ],\n [\n 'Supported Extensions',\n 'EXTENSIONS',\n gl.getSupportedExtensions().join('
\\t\\t\\t\\t\\t '),\n ],\n ['WebGL Renderer', 'RENDERER', gl.getParameter(gl.RENDERER)],\n ['WebGL Vendor', 'VENDOR', gl.getParameter(gl.VENDOR)],\n ['WebGL Version', 'VERSION', gl.getParameter(gl.VERSION)],\n [\n 'Shading Language Version',\n 'SHADING_LANGUAGE_VERSION',\n gl.getParameter(gl.SHADING_LANGUAGE_VERSION),\n ],\n [\n 'Unmasked Renderer',\n 'UNMASKED_RENDERER',\n glDebugRendererInfo &&\n gl.getParameter(glDebugRendererInfo.UNMASKED_RENDERER_WEBGL),\n ],\n [\n 'Unmasked Vendor',\n 'UNMASKED_VENDOR',\n glDebugRendererInfo &&\n gl.getParameter(glDebugRendererInfo.UNMASKED_VENDOR_WEBGL),\n ],\n ['WebGL Version', 'WEBGL_VERSION', model.webgl2 ? 2 : 1],\n ];\n\n const result = {};\n while (params.length) {\n const [label, key, value] = params.pop();\n if (key) {\n result[key] = { label, value };\n }\n }\n return result;\n };\n\n publicAPI.traverseAllPasses = () => {\n if (model.renderPasses) {\n for (let index = 0; index < model.renderPasses.length; ++index) {\n model.renderPasses[index].traverse(publicAPI, null);\n }\n }\n if (model.notifyImageReady) {\n publicAPI.invokeImageReady(getCanvasDataURL());\n }\n };\n\n publicAPI.disableDepthMask = () => {\n if (model.depthMaskEnabled) {\n model.context.depthMask(false);\n model.depthMaskEnabled = false;\n }\n };\n\n publicAPI.enableDepthMask = () => {\n if (!model.depthMaskEnabled) {\n model.context.depthMask(true);\n model.depthMaskEnabled = true;\n }\n };\n\n publicAPI.disableCullFace = () => {\n if (model.cullFaceEnabled) {\n model.context.disable(model.context.CULL_FACE);\n model.cullFaceEnabled = false;\n }\n };\n\n publicAPI.enableCullFace = () => {\n if (!model.cullFaceEnabled) {\n model.context.enable(model.context.CULL_FACE);\n model.cullFaceEnabled = true;\n }\n };\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n cullFaceEnabled: false,\n depthMaskEnabled: true,\n shaderCache: null,\n initialized: false,\n context: null,\n canvas: null,\n size: [300, 300],\n cursorVisibility: true,\n cursor: 'pointer',\n textureUnitManager: null,\n textureResourceIds: null,\n renderPasses: [],\n notifyImageReady: false,\n webgl2: false,\n defaultToWebgl2: true, // attempt webgl2 on by default\n vrResolution: [2160, 1200],\n queryVRSize: false,\n activeFramebuffer: null,\n vrDisplay: null,\n imageFormat: 'image/png',\n};\n\n// ----------------------------------------------------------------------------\n\nexport function extend(publicAPI, model, initialValues = {}) {\n Object.assign(model, DEFAULT_VALUES, initialValues);\n\n // Create internal instances\n model.canvas = document.createElement('canvas');\n model.canvas.style.width = '100%';\n\n model.textureResourceIds = new Map();\n\n // Inheritance\n vtkViewNode.extend(publicAPI, model, initialValues);\n\n model.myFactory = vtkOpenGLViewNodeFactory.newInstance();\n model.shaderCache = vtkShaderCache.newInstance();\n model.shaderCache.setOpenGLRenderWindow(publicAPI);\n\n // setup default forward pass rendering\n model.renderPasses[0] = vtkForwardPass.newInstance();\n\n macro.event(publicAPI, model, 'imageReady');\n macro.event(publicAPI, model, 'haveVRDisplay');\n\n // Build VTK API\n macro.get(publicAPI, model, [\n 'shaderCache',\n 'textureUnitManager',\n 'webgl2',\n 'vrDisplay',\n ]);\n\n macro.setGet(publicAPI, model, [\n 'initialized',\n 'context',\n 'canvas',\n 'renderPasses',\n 'notifyImageReady',\n 'defaultToWebgl2',\n 'cursor',\n 'queryVRSize',\n // might want to make this not call modified as\n // we change the active framebuffer a lot. Or maybe\n // only mark modified if the size or depth\n // of the buffer has changed\n 'activeFramebuffer',\n ]);\n\n macro.setGetArray(publicAPI, model, ['size', 'vrResolution'], 2);\n\n // Object methods\n vtkOpenGLRenderWindow(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\n\nexport const newInstance = macro.newInstance(extend, 'vtkOpenGLRenderWindow');\n\n// ----------------------------------------------------------------------------\n\nexport default { newInstance, extend };\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/Sources/Rendering/OpenGL/RenderWindow/index.js","'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar TinyEmitter = function () {\n function TinyEmitter() {\n _classCallCheck(this, TinyEmitter);\n\n Object.defineProperty(this, '__listeners', {\n value: {},\n enumerable: false,\n writable: false\n });\n }\n\n _createClass(TinyEmitter, [{\n key: 'emit',\n value: function emit(eventName) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.__listeners[eventName][Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var handler = _step.value;\n\n handler.apply(undefined, args);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return this;\n }\n }, {\n key: 'once',\n value: function once(eventName, handler) {\n var _this = this;\n\n var once = function once() {\n _this.off(eventName, once);\n handler.apply(undefined, arguments);\n };\n\n return this.on(eventName, once);\n }\n }, {\n key: 'on',\n value: function on(eventName, handler) {\n if (!this.__listeners[eventName]) this.__listeners[eventName] = [];\n\n this.__listeners[eventName].push(handler);\n\n return this;\n }\n }, {\n key: 'off',\n value: function off(eventName, handler) {\n if (handler) this.__listeners[eventName] = this.__listeners[eventName].filter(function (h) {\n return h !== handler;\n });else this.__listeners[eventName] = [];\n\n return this;\n }\n }]);\n\n return TinyEmitter;\n}();\n\nmodule.exports = TinyEmitter;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/webworker-promise/lib/tiny-emitter.js\n// module id = 272\n// module chunks = 1","import macro from 'vtk.js/Sources/macro';\n\n// ----------------------------------------------------------------------------\n\nfunction vtkRenderPass(publicAPI, model) {\n // Set our className\n model.classHierarchy.push('vtkRenderPass');\n\n publicAPI.getOperation = () => model.currentOperation;\n\n publicAPI.setCurrentOperation = (val) => {\n model.currentOperation = val;\n model.currentTraverseOperation = `traverse${macro.capitalize(\n model.currentOperation\n )}`;\n };\n\n publicAPI.getTraverseOperation = () => model.currentTraverseOperation;\n\n // by default this class will traverse all of its\n // preDelegateOperations, then call its delegate render passes\n // the traverse all of its postDelegateOperations\n // any of those three arrays can be empty\n publicAPI.traverse = (viewNode, parent = null) => {\n if (model.deleted) {\n return;\n }\n\n // we just render our delegates in order\n model.currentParent = parent;\n\n model.preDelegateOperations.forEach((val) => {\n publicAPI.setCurrentOperation(val);\n viewNode.traverse(publicAPI);\n });\n model.delegates.forEach((val) => {\n val.traverse(viewNode, publicAPI);\n });\n model.postDelegateOperations.forEach((val) => {\n publicAPI.setCurrentOperation(val);\n viewNode.traverse(publicAPI);\n });\n };\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n delegates: [],\n currentOperation: null,\n preDelegateOperations: [],\n postDelegateOperations: [],\n currentParent: null,\n};\n\n// ----------------------------------------------------------------------------\n\nexport function extend(publicAPI, model, initialValues = {}) {\n Object.assign(model, DEFAULT_VALUES, initialValues);\n\n // Build VTK API\n macro.obj(publicAPI, model);\n macro.get(publicAPI, model, ['currentOperation']);\n macro.setGet(publicAPI, model, [\n 'delegates',\n 'currentParent',\n 'preDelegateOperations',\n 'postDelegateOperations',\n ]);\n\n // Object methods\n vtkRenderPass(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\n\nexport const newInstance = macro.newInstance(extend, 'vtkRenderPass');\n\n// ----------------------------------------------------------------------------\n\nexport default { newInstance, extend };\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/Sources/Rendering/SceneGraph/RenderPass/index.js","import macro from 'vtk.js/Sources/macro';\nimport Constants from 'vtk.js/Sources/Rendering/OpenGL/HardwareSelector/Constants';\nimport vtkOpenGLFramebuffer from 'vtk.js/Sources/Rendering/OpenGL/Framebuffer';\nimport vtkSelectionNode from 'vtk.js/Sources/Common/DataModel/SelectionNode';\nimport vtkDataSet from 'vtk.js/Sources/Common/DataModel/DataSet';\n\nconst { PassTypes } = Constants;\nconst { SelectionContent, SelectionField } = vtkSelectionNode;\nconst { FieldAssociations } = vtkDataSet;\nconst { vtkErrorMacro } = macro;\n\n// ----------------------------------------------------------------------------\n// vtkOpenGLHardwareSelector methods\n// ----------------------------------------------------------------------------\n\nfunction vtkOpenGLHardwareSelector(publicAPI, model) {\n // Set our className\n model.classHierarchy.push('vtkOpenGLHardwareSelector');\n\n //----------------------------------------------------------------------------\n publicAPI.releasePixBuffers = () => {\n model.pixBuffer = [];\n };\n\n //----------------------------------------------------------------------------\n publicAPI.beginSelection = () => {\n model.openGLRenderer = model.openGLRenderWindow.getViewNodeFor(\n model.renderer\n );\n model.maxAttributeId = 0;\n\n model.framebuffer = vtkOpenGLFramebuffer.newInstance();\n model.framebuffer.setOpenGLRenderWindow(model.openGLRenderWindow);\n model.framebuffer.saveCurrentBindingsAndBuffers();\n const size = model.openGLRenderWindow.getSize();\n model.framebuffer.create(size[0], size[1]);\n model.framebuffer.populateFramebuffer();\n\n model.openGLRenderer.clear();\n model.openGLRenderer.setSelector(publicAPI);\n model.hitProps = [];\n model.props = [];\n publicAPI.releasePixBuffers();\n };\n\n //----------------------------------------------------------------------------\n publicAPI.endSelection = () => {\n model.hitProps = [];\n model.openGLRenderer.setSelector(null);\n model.framebuffer.restorePreviousBindingsAndBuffers();\n };\n\n publicAPI.preCapturePass = () => {};\n\n publicAPI.postCapturePass = () => {};\n\n //----------------------------------------------------------------------------\n publicAPI.select = () => {\n let sel = null;\n if (publicAPI.captureBuffers()) {\n sel = publicAPI.generateSelection(\n model.area[0],\n model.area[1],\n model.area[2],\n model.area[3]\n );\n publicAPI.releasePixBuffers();\n }\n return sel;\n };\n\n //----------------------------------------------------------------------------\n publicAPI.captureBuffers = () => {\n if (!model.renderer || !model.openGLRenderWindow) {\n vtkErrorMacro('Renderer and view must be set before calling Select.');\n return false;\n }\n\n model.openGLRenderer = model.openGLRenderWindow.getViewNodeFor(\n model.renderer\n );\n\n // int rgba[4];\n // rwin.getColorBufferSizes(rgba);\n // if (rgba[0] < 8 || rgba[1] < 8 || rgba[2] < 8) {\n // vtkErrorMacro(\"Color buffer depth must be atleast 8 bit. \"\n // \"Currently: \" << rgba[0] << \", \" << rgba[1] << \", \" < true;\n\n //----------------------------------------------------------------------------\n publicAPI.savePixelBuffer = (passNo) => {\n model.pixBuffer[passNo] = model.openGLRenderWindow.getPixelData(\n model.area[0],\n model.area[1],\n model.area[2],\n model.area[3]\n );\n if (passNo === PassTypes.ACTOR_PASS) {\n publicAPI.buildPropHitList(model.pixBuffer[passNo]);\n }\n };\n\n //----------------------------------------------------------------------------\n publicAPI.buildPropHitList = (pixelbuffer) => {\n for (let yy = 0; yy <= model.area[3] - model.area[1]; yy++) {\n for (let xx = 0; xx <= model.area[2] - model.area[0]; xx++) {\n let val = publicAPI.convert(xx, yy, pixelbuffer);\n if (val > 0) {\n val--;\n if (model.hitProps.indexOf(val) === -1) {\n model.hitProps.push(val);\n }\n }\n }\n }\n };\n\n //----------------------------------------------------------------------------\n publicAPI.renderProp = (prop) => {\n if (model.currentPass === PassTypes.ACTOR_PASS) {\n publicAPI.setPropColorValueFromInt(model.props.length + model.idOffset);\n model.props.push(prop);\n }\n };\n\n //----------------------------------------------------------------------------\n publicAPI.renderCompositeIndex = (index) => {\n if (model.currentPass === PassTypes.COMPOSITE_INDEX_PASS) {\n publicAPI.setPropColorValueFromInt(index + model.idOffset);\n }\n };\n\n //----------------------------------------------------------------------------\n // TODO: make inline\n publicAPI.renderAttributeId = (attribid) => {\n if (attribid < 0) {\n // negative attribid is valid. It happens when rendering higher order\n // elements where new points are added for rendering smooth surfaces.\n return;\n }\n\n model.maxAttributeId =\n attribid > model.maxAttributeId ? attribid : model.maxAttributeId;\n\n // if (model.currentPass < PassTypes.ID_LOW24) {\n // return; // useless...\n // }\n };\n\n //----------------------------------------------------------------------------\n publicAPI.getPropFromID = (id) => {\n if (id >= 0 && id < model.props.length) {\n return model.props[id];\n }\n return null;\n };\n\n //----------------------------------------------------------------------------\n publicAPI.passTypeToString = (type) => macro.enumToString(PassTypes, type);\n\n //----------------------------------------------------------------------------\n publicAPI.isPropHit = (id) => model.hitProps.hasKey(id);\n\n publicAPI.convert = (xx, yy, pb) => {\n if (!pb) {\n return 0;\n }\n const offset = (yy * (model.area[2] - model.area[0] + 1) + xx) * 4;\n const rgb = [];\n rgb[0] = pb[offset];\n rgb[1] = pb[offset + 1];\n rgb[2] = pb[offset + 2];\n let val = rgb[2];\n val *= 256;\n val += rgb[1];\n val *= 256;\n val += rgb[0];\n return val;\n };\n\n publicAPI.setPropColorValueFromInt = (val) => {\n model.propColorValue[0] = (val % 256) / 255.0;\n model.propColorValue[1] = ((val / 256) % 256) / 255.0;\n model.propColorValue[2] = ((val / 65536) % 256) / 255.0;\n };\n\n // info has\n // valid\n // propId\n // prop\n // compositeID\n // attributeID\n\n //----------------------------------------------------------------------------\n publicAPI.getPixelInformation = (\n inDisplayPosition,\n maxDistance,\n outSelectedPosition\n ) => {\n // Base case\n const maxDist = maxDistance < 0 ? 0 : maxDistance;\n if (maxDist === 0) {\n outSelectedPosition[0] = inDisplayPosition[0];\n outSelectedPosition[1] = inDisplayPosition[1];\n if (\n inDisplayPosition[0] < model.area[0] ||\n inDisplayPosition[0] > model.area[2] ||\n inDisplayPosition[1] < model.area[1] ||\n inDisplayPosition[1] > model.area[3]\n ) {\n return null;\n }\n\n // offset inDisplayPosition based on the lower-left-corner of the Area.\n const displayPosition = [\n inDisplayPosition[0] - model.area[0],\n inDisplayPosition[1] - model.area[1],\n ];\n\n const actorid = publicAPI.convert(\n displayPosition[0],\n displayPosition[1],\n model.pixBuffer[PassTypes.ACTOR_PASS]\n );\n if (actorid <= 0) {\n // the pixel did not hit any actor.\n return null;\n }\n\n const info = {};\n info.valid = true;\n\n info.propID = actorid - model.idOffset;\n info.prop = publicAPI.getPropFromID(info.propID);\n\n let compositeID = publicAPI.convert(\n displayPosition[0],\n displayPosition[1],\n model.pixBuffer[PassTypes.COMPOSITE_INDEX_PASS]\n );\n if (compositeID < 0 || compositeID > 0xffffff) {\n compositeID = 0;\n }\n info.compositeID = compositeID - model.idOffset;\n\n // const low24 = publicAPI.convert(\n // displayPosition[0], displayPosition[1], model.pixBuffer[PassTypes.ID_LOW24]);\n\n // // id 0 is reserved for nothing present.\n // info.attributeID = low24 - model.idOffset;\n // if (info.attributeID < 0) {\n // // the pixel did not hit any cell.\n // return null;\n // }\n return info;\n }\n\n // Iterate over successively growing boxes.\n // They recursively call the base case to handle single pixels.\n const dispPos = [inDisplayPosition[0], inDisplayPosition[1]];\n const curPos = [0, 0];\n let info = publicAPI.getPixelInformation(\n inDisplayPosition,\n 0,\n outSelectedPosition\n );\n if (info && info.valid) {\n return info;\n }\n for (let dist = 1; dist < maxDist; ++dist) {\n // Vertical sides of box.\n for (\n let y = dispPos[1] > dist ? dispPos[1] - dist : 0;\n y <= dispPos[1] + dist;\n ++y\n ) {\n curPos[1] = y;\n if (dispPos[0] >= dist) {\n curPos[0] = dispPos[0] - dist;\n info = publicAPI.getPixelInformation(curPos, 0, outSelectedPosition);\n if (info && info.valid) {\n return info;\n }\n }\n curPos[0] = dispPos[0] + dist;\n info = publicAPI.getPixelInformation(curPos, 0, outSelectedPosition);\n if (info && info.valid) {\n return info;\n }\n }\n // Horizontal sides of box.\n for (\n let x = dispPos[0] >= dist ? dispPos[0] - (dist - 1) : 0;\n x <= dispPos[0] + (dist - 1);\n ++x\n ) {\n curPos[0] = x;\n if (dispPos[1] >= dist) {\n curPos[1] = dispPos[1] - dist;\n info = publicAPI.getPixelInformation(curPos, 0, outSelectedPosition);\n if (info && info.valid) {\n return info;\n }\n }\n curPos[1] = dispPos[1] + dist;\n info = publicAPI.getPixelInformation(curPos, 0, outSelectedPosition);\n if (info && info.valid) {\n return info;\n }\n }\n }\n\n // nothing hit.\n outSelectedPosition[0] = inDisplayPosition[0];\n outSelectedPosition[1] = inDisplayPosition[1];\n return null;\n };\n\n //-----------------------------------------------------------------------------\n publicAPI.convertSelection = (fieldassociation, dataMap) => {\n const sel = [];\n\n let count = 0;\n dataMap.forEach((value, key) => {\n const child = vtkSelectionNode.newInstance();\n child.setContentType(SelectionContent.INDICES);\n switch (fieldassociation) {\n case FieldAssociations.FIELD_ASSOCIATION_CELLS:\n child.setFieldType(SelectionField.CELL);\n break;\n case FieldAssociations.FIELD_ASSOCIATION_POINTS:\n child.setFieldType(SelectionField.POINT);\n break;\n default:\n vtkErrorMacro('Unknown field association');\n }\n child.getProperties().propID = value.info.propID;\n child.getProperties().prop = value.info.prop;\n child.getProperties().compositeID = value.info.compositeID;\n child.getProperties().pixelCount = value.pixelCount;\n\n child.setSelectionList(value.attributeIDs);\n sel[count] = child;\n count++;\n });\n\n return sel;\n };\n\n publicAPI.getInfoHash = (info) => `${info.propID} ${info.compositeID}`;\n\n //----------------------------------------------------------------------------\n publicAPI.generateSelection = (x1, y1, x2, y2) => {\n const dataMap = new Map();\n\n const outSelectedPosition = [0, 0];\n\n for (let yy = y1; yy <= y2; yy++) {\n for (let xx = x1; xx <= x2; xx++) {\n const pos = [xx, yy];\n const info = publicAPI.getPixelInformation(pos, 0, outSelectedPosition);\n if (info && info.valid) {\n const hash = publicAPI.getInfoHash(info);\n if (!dataMap.has(hash)) {\n dataMap.set(hash, {\n info,\n pixelCount: 1,\n attributeIDs: [info.attributeID],\n });\n } else {\n dataMap.get(hash).pixelCount++;\n if (\n dataMap.get(hash).attributeIDs.indexOf(info.attributeID) === -1\n ) {\n dataMap.get(hash).attributeIDs.push(info.attributeID);\n }\n }\n }\n }\n }\n return publicAPI.convertSelection(model.fieldAssociation, dataMap);\n };\n\n publicAPI.attach = (w, r) => {\n model.openGLRenderWindow = w;\n model.renderer = r;\n };\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n fieldAssociation: FieldAssociations.FIELD_ASSOCIATION_CELLS,\n renderer: null,\n area: null,\n openGLRenderWindow: null,\n openGLRenderer: null,\n currentPass: -1,\n propColorValue: null,\n props: null,\n idOffset: 1,\n};\n\n// ----------------------------------------------------------------------------\n\nexport function extend(publicAPI, model, initialValues = {}) {\n Object.assign(model, DEFAULT_VALUES, initialValues);\n\n // Build VTK API\n macro.obj(publicAPI, model);\n\n model.area = [0, 0, 0, 0];\n model.propColorValue = [0, 0, 0];\n model.props = [];\n\n macro.setGet(publicAPI, model, [\n 'fieldAssociation',\n 'renderer',\n 'currentPass',\n ]);\n\n macro.setGetArray(publicAPI, model, ['area'], 4);\n macro.setGetArray(publicAPI, model, ['propColorValue'], 3);\n macro.event(publicAPI, model, 'event');\n\n // Object methods\n vtkOpenGLHardwareSelector(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\n\nexport const newInstance = macro.newInstance(\n extend,\n 'vtkOpenGLHardwareSelector'\n);\n\n// ----------------------------------------------------------------------------\n\nexport default Object.assign({ newInstance, extend }, Constants);\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/Sources/Rendering/OpenGL/HardwareSelector/index.js","export const AttributeTypes = {\n SCALARS: 0,\n VECTORS: 1,\n NORMALS: 2,\n TCOORDS: 3,\n TENSORS: 4,\n GLOBALIDS: 5,\n PEDIGREEIDS: 6,\n EDGEFLAG: 7,\n NUM_ATTRIBUTES: 8,\n};\n\nexport const AttributeLimitTypes = {\n MAX: 0,\n EXACT: 1,\n NOLIMIT: 2,\n};\n\nexport const CellGhostTypes = {\n DUPLICATECELL: 1, // the cell is present on multiple processors\n HIGHCONNECTIVITYCELL: 2, // the cell has more neighbors than in a regular mesh\n LOWCONNECTIVITYCELL: 4, // the cell has less neighbors than in a regular mesh\n REFINEDCELL: 8, // other cells are present that refines it.\n EXTERIORCELL: 16, // the cell is on the exterior of the data set\n HIDDENCELL: 32, // the cell is needed to maintain connectivity, but the data values should be ignored.\n};\n\nexport const PointGhostTypes = {\n DUPLICATEPOINT: 1, // the cell is present on multiple processors\n HIDDENPOINT: 2, // the point is needed to maintain connectivity, but the data values should be ignored.\n};\n\nexport const AttributeCopyOperations = {\n COPYTUPLE: 0,\n INTERPOLATE: 1,\n PASSDATA: 2,\n ALLCOPY: 3, // all of the above\n};\n\nexport const ghostArrayName = 'vtkGhostType';\n\nexport const DesiredOutputPrecision = {\n DEFAULT: 0, // use the point type that does not truncate any data\n SINGLE: 1, // use Float32Array\n DOUBLE: 2, // use Float64Array\n};\n\nexport default {\n AttributeCopyOperations,\n AttributeLimitTypes,\n AttributeTypes,\n CellGhostTypes,\n DesiredOutputPrecision,\n PointGhostTypes,\n ghostArrayName,\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/Sources/Common/DataModel/DataSetAttributes/Constants.js","import macro from 'vtk.js/Sources/macro';\nimport { ObjectType } from 'vtk.js/Sources/Rendering/OpenGL/BufferObject/Constants';\n\n// ----------------------------------------------------------------------------\n// vtkOpenGLVertexArrayObject methods\n// ----------------------------------------------------------------------------\n\nfunction vtkOpenGLVertexArrayObject(publicAPI, model) {\n // Set our className\n model.classHierarchy.push('vtkOpenGLVertexArrayObject');\n\n // Public API methods\n publicAPI.exposedMethod = () => {\n // This is a publicly exposed method of this object\n };\n\n publicAPI.initialize = () => {\n model.instancingExtension = null;\n if (!model.openGLRenderWindow.getWebgl2()) {\n model.instancingExtension = model.context.getExtension(\n 'ANGLE_instanced_arrays'\n );\n }\n if (\n !model.forceEmulation &&\n model.openGLRenderWindow &&\n model.openGLRenderWindow.getWebgl2()\n ) {\n model.extension = null;\n model.supported = true;\n model.handleVAO = model.context.createVertexArray();\n } else {\n model.extension = model.context.getExtension('OES_vertex_array_object');\n // Start setting up VAO\n if (!model.forceEmulation && model.extension) {\n model.supported = true;\n model.handleVAO = model.extension.createVertexArrayOES();\n } else {\n model.supported = false;\n }\n }\n };\n\n publicAPI.isReady = () =>\n // We either probed and allocated a VAO, or are falling back as the current\n // hardware does not support VAOs.\n model.handleVAO !== 0 || model.supported === false;\n\n publicAPI.bind = () => {\n // Either simply bind the VAO, or emulate behavior by binding all attributes.\n if (!publicAPI.isReady()) {\n publicAPI.initialize();\n }\n if (publicAPI.isReady() && model.supported) {\n if (model.extension) {\n model.extension.bindVertexArrayOES(model.handleVAO);\n } else {\n model.context.bindVertexArray(model.handleVAO);\n }\n } else if (publicAPI.isReady()) {\n const gl = model.context;\n for (let ibuff = 0; ibuff < model.buffers.length; ++ibuff) {\n const buff = model.buffers[ibuff];\n model.context.bindBuffer(gl.ARRAY_BUFFER, buff.buffer);\n for (let iatt = 0; iatt < buff.attributes.length; ++iatt) {\n const attrIt = buff.attributes[iatt];\n const matrixCount = attrIt.isMatrix ? attrIt.size : 1;\n for (let i = 0; i < matrixCount; ++i) {\n gl.enableVertexAttribArray(attrIt.index + i);\n gl.vertexAttribPointer(\n attrIt.index + i,\n attrIt.size,\n attrIt.type,\n attrIt.normalize,\n attrIt.stride,\n attrIt.offset + attrIt.stride * i / attrIt.size\n );\n if (attrIt.divisor > 0) {\n if (model.instancingExtension) {\n model.instancingExtension.vertexAttribDivisorANGLE(\n attrIt.index + i,\n 1\n );\n } else {\n gl.vertexAttribDivisor(attrIt.index + i, 1);\n }\n }\n }\n }\n }\n }\n };\n\n publicAPI.release = () => {\n // Either simply release the VAO, or emulate behavior by releasing all attributes.\n if (publicAPI.isReady() && model.supported) {\n if (model.extension) {\n model.extension.bindVertexArrayOES(null);\n } else {\n model.context.bindVertexArray(null);\n }\n } else if (publicAPI.isReady()) {\n const gl = model.context;\n for (let ibuff = 0; ibuff < model.buffers.length; ++ibuff) {\n const buff = model.buffers[ibuff];\n model.context.bindBuffer(gl.ARRAY_BUFFER, buff.buffer);\n for (let iatt = 0; iatt < buff.attributes.length; ++iatt) {\n const attrIt = buff.attributes[iatt];\n const matrixCount = attrIt.isMatrix ? attrIt.size : 1;\n for (let i = 0; i < matrixCount; ++i) {\n gl.enableVertexAttribArray(attrIt.index + i);\n gl.vertexAttribPointer(\n attrIt.index + i,\n attrIt.size,\n attrIt.type,\n attrIt.normalize,\n attrIt.stride,\n attrIt.offset + attrIt.stride * i / attrIt.size\n );\n if (attrIt.divisor > 0) {\n if (model.instancingExtension) {\n model.instancingExtension.vertexAttribDivisorANGLE(\n attrIt.index + i,\n 0\n );\n } else {\n gl.vertexAttribDivisor(attrIt.index + i, 0);\n }\n }\n gl.disableVertexAttribArray(attrIt.index + i);\n }\n }\n }\n }\n };\n\n publicAPI.shaderProgramChanged = () => {\n publicAPI.release();\n if (model.handleVAO) {\n if (model.extension) {\n model.extension.deleteVertexArrayOES(model.handleVAO);\n } else {\n model.context.deleteVertexArray(model.handleVAO);\n }\n }\n model.handleVAO = 0;\n model.handleProgram = 0;\n };\n\n publicAPI.releaseGraphicsResources = () => {\n publicAPI.shaderProgramChanged();\n if (model.handleVAO) {\n if (model.extension) {\n model.extension.deleteVertexArrayOES(model.handleVAO);\n } else {\n model.context.deleteVertexArray(model.handleVAO);\n }\n }\n model.handleVAO = 0;\n model.supported = true;\n model.handleProgram = 0;\n };\n\n publicAPI.addAttributeArray = (\n program,\n buffer,\n name,\n offset,\n stride,\n elementType,\n elementTupleSize,\n normalize\n ) =>\n publicAPI.addAttributeArrayWithDivisor(\n program,\n buffer,\n name,\n offset,\n stride,\n elementType,\n elementTupleSize,\n normalize,\n 0,\n false\n );\n\n publicAPI.addAttributeArrayWithDivisor = (\n program,\n buffer,\n name,\n offset,\n stride,\n elementType,\n elementTupleSize,\n normalize,\n divisor,\n isMatrix\n ) => {\n if (!program) {\n return false;\n }\n\n // Check the program is bound, and the buffer is valid.\n if (\n !program.isBound() ||\n buffer.getHandle() === 0 ||\n buffer.getType() !== ObjectType.ARRAY_BUFFER\n ) {\n return false;\n }\n\n // Perform initalization if necessary, ensure program matches VAOs.\n if (model.handleProgram === 0) {\n model.handleProgram = program.getHandle();\n }\n if (!publicAPI.isReady()) {\n publicAPI.initialize();\n }\n if (!publicAPI.isReady() || model.handleProgram !== program.getHandle()) {\n return false;\n }\n\n const gl = model.context;\n\n const attribs = {};\n attribs.name = name;\n attribs.index = gl.getAttribLocation(model.handleProgram, name);\n attribs.offset = offset;\n attribs.stride = stride;\n attribs.type = elementType;\n attribs.size = elementTupleSize;\n attribs.normalize = normalize;\n attribs.isMatrix = isMatrix;\n attribs.divisor = divisor;\n\n if (attribs.Index === -1) {\n return false;\n }\n\n // Always make the call as even the first use wants the attrib pointer setting\n // up when we are emulating.\n buffer.bind();\n gl.enableVertexAttribArray(attribs.index);\n gl.vertexAttribPointer(\n attribs.index,\n attribs.size,\n attribs.type,\n attribs.normalize,\n attribs.stride,\n attribs.offset\n );\n\n if (divisor > 0) {\n if (model.instancingExtension) {\n model.instancingExtension.vertexAttribDivisorANGLE(attribs.index, 1);\n } else {\n gl.vertexAttribDivisor(attribs.index, 1);\n }\n }\n\n attribs.buffer = buffer.getHandle();\n\n // If vertex array objects are not supported then build up our list.\n if (!model.supported) {\n // find the buffer\n let buffFound = false;\n for (let ibuff = 0; ibuff < model.buffers.length; ++ibuff) {\n const buff = model.buffers[ibuff];\n if (buff.buffer === attribs.buffer) {\n buffFound = true;\n let found = false;\n for (let iatt = 0; iatt < buff.attributes.length; ++iatt) {\n const attrIt = buff.attributes[iatt];\n if (attrIt.name === name) {\n found = true;\n buff.attributes[iatt] = attribs;\n }\n }\n if (!found) {\n buff.attributes.push(attribs);\n }\n }\n }\n if (!buffFound) {\n model.buffers.push({ buffer: attribs.buffer, attributes: [attribs] });\n }\n }\n return true;\n };\n\n publicAPI.addAttributeMatrixWithDivisor = (\n program,\n buffer,\n name,\n offset,\n stride,\n elementType,\n elementTupleSize,\n normalize,\n divisor\n ) => {\n // bind the first row of values\n const result = publicAPI.addAttributeArrayWithDivisor(\n program,\n buffer,\n name,\n offset,\n stride,\n elementType,\n elementTupleSize,\n normalize,\n divisor,\n true\n );\n\n if (!result) {\n return result;\n }\n\n const gl = model.context;\n\n const index = gl.getAttribLocation(model.handleProgram, name);\n\n for (let i = 1; i < elementTupleSize; i++) {\n gl.enableVertexAttribArray(index + i);\n gl.vertexAttribPointer(\n index + i,\n elementTupleSize,\n elementType,\n normalize,\n stride,\n offset + stride * i / elementTupleSize\n );\n if (divisor > 0) {\n if (model.instancingExtension) {\n model.instancingExtension.vertexAttribDivisorANGLE(index + i, 1);\n } else {\n gl.vertexAttribDivisor(index + i, 1);\n }\n }\n }\n\n return true;\n };\n\n publicAPI.removeAttributeArray = (name) => {\n if (!publicAPI.isReady() || model.handleProgram === 0) {\n return false;\n }\n\n // If we don't have real VAOs find the entry and remove it too.\n if (!model.supported) {\n for (let ibuff = 0; ibuff < model.buffers.length; ++ibuff) {\n const buff = model.buffers[ibuff];\n for (let iatt = 0; iatt < buff.attributes.length; ++iatt) {\n const attrIt = buff.attributes[iatt];\n if (attrIt.name === name) {\n buff.attributes.splice(iatt, 1);\n if (!buff.attributes.length) {\n model.buffers.splice(ibuff, 1);\n }\n return true;\n }\n }\n }\n }\n\n return true;\n };\n\n publicAPI.setOpenGLRenderWindow = (rw) => {\n if (model.openGLRenderWindow === rw) {\n return;\n }\n publicAPI.releaseGraphicsResources();\n model.openGLRenderWindow = rw;\n model.context = null;\n if (rw) {\n model.context = model.openGLRenderWindow.getContext();\n }\n };\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n forceEmulation: false,\n handleVAO: 0,\n handleProgram: 0,\n supported: true,\n buffers: null,\n context: null,\n openGLRenderWindow: null,\n};\n\n// ----------------------------------------------------------------------------\n\nexport function extend(publicAPI, model, initialValues = {}) {\n Object.assign(model, DEFAULT_VALUES, initialValues);\n\n // Internal objects initialization\n model.buffers = [];\n\n // Object methods\n macro.obj(publicAPI, model);\n\n // Create get-only macros\n macro.get(publicAPI, model, ['supported']);\n\n // Create get-set macros\n macro.setGet(publicAPI, model, ['forceEmulation']);\n\n // For more macro methods, see \"Sources/macro.js\"\n\n // Object specific methods\n vtkOpenGLVertexArrayObject(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\n\nexport const newInstance = macro.newInstance(\n extend,\n 'vtkOpenGLVertexArrayObject'\n);\n\n// ----------------------------------------------------------------------------\n\nexport default { newInstance, extend };\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/Sources/Rendering/OpenGL/VertexArrayObject/index.js","export const StructuredType = {\n UNCHANGED: 0,\n SINGLE_POINT: 1,\n X_LINE: 2,\n Y_LINE: 3,\n Z_LINE: 4,\n XY_PLANE: 5,\n YZ_PLANE: 6,\n XZ_PLANE: 7,\n XYZ_GRID: 8,\n EMPTY: 9,\n};\n\nexport default {\n StructuredType,\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/Sources/Common/DataModel/StructuredData/Constants.js","export const ColorMode = {\n DEFAULT: 0,\n MAP_SCALARS: 1,\n DIRECT_SCALARS: 2,\n};\n\nexport const ScalarMode = {\n DEFAULT: 0,\n USE_POINT_DATA: 1,\n USE_CELL_DATA: 2,\n USE_POINT_FIELD_DATA: 3,\n USE_CELL_FIELD_DATA: 4,\n USE_FIELD_DATA: 5,\n};\n\nexport const GetArray = {\n BY_ID: 0,\n BY_NAME: 1,\n};\n\nexport default {\n ColorMode,\n GetArray,\n ScalarMode,\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/Sources/Rendering/Core/Mapper/Constants.js","module.exports = \"//VTK::System::Dec\\n\\n/*=========================================================================\\n\\n Program: Visualization Toolkit\\n Module: vtkPolyDataVS.glsl\\n\\n Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n All rights reserved.\\n See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n\\n This software is distributed WITHOUT ANY WARRANTY; without even\\n the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n PURPOSE. See the above copyright notice for more information.\\n\\n=========================================================================*/\\n\\nattribute vec4 vertexMC;\\n\\n// frag position in VC\\n//VTK::PositionVC::Dec\\n\\n// optional normal declaration\\n//VTK::Normal::Dec\\n\\n// extra lighting parameters\\n//VTK::Light::Dec\\n\\n// Texture coordinates\\n//VTK::TCoord::Dec\\n\\n// material property values\\n//VTK::Color::Dec\\n\\n// clipping plane vars\\n//VTK::Clip::Dec\\n\\n// camera and actor matrix values\\n//VTK::Camera::Dec\\n\\n// Apple Bug\\n//VTK::PrimID::Dec\\n\\n// picking support\\n//VTK::Picking::Dec\\n\\nvoid main()\\n{\\n //VTK::Color::Impl\\n\\n //VTK::Normal::Impl\\n\\n //VTK::TCoord::Impl\\n\\n //VTK::Clip::Impl\\n\\n //VTK::PrimID::Impl\\n\\n //VTK::PositionVC::Impl\\n\\n //VTK::Light::Impl\\n\\n //VTK::Picking::Impl\\n}\\n\"\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/Sources/Rendering/OpenGL/glsl/vtkPolyDataVS.glsl","import { mat4, vec3 } from 'gl-matrix';\n\nimport macro from 'vtk.js/Sources/macro';\nimport vtkCamera from 'vtk.js/Sources/Rendering/Core/Camera';\nimport vtkLight from 'vtk.js/Sources/Rendering/Core/Light';\nimport vtkMath from 'vtk.js/Sources/Common/Core/Math';\nimport vtkViewport from 'vtk.js/Sources/Rendering/Core/Viewport';\nimport vtkBoundingBox from 'vtk.js/Sources/Common/DataModel/BoundingBox';\n\nconst { vtkDebugMacro, vtkErrorMacro, vtkWarningMacro } = macro;\n\nfunction notImplemented(method) {\n return () => vtkErrorMacro(`vtkRenderer::${method} - NOT IMPLEMENTED`);\n}\n\n// ----------------------------------------------------------------------------\n// vtkRenderer methods\n// ----------------------------------------------------------------------------\n\nfunction vtkRenderer(publicAPI, model) {\n // Set our className\n model.classHierarchy.push('vtkRenderer');\n\n // make sure background has 4 entries. Default to opaque black\n if (!model.background) model.background = [0, 0, 0, 1];\n while (model.background.length < 3) model.background.push(0);\n if (model.background.length === 3) model.background.push(1);\n\n // Events\n const COMPUTE_VISIBLE_PROP_BOUNDS_EVENT = {\n type: 'ComputeVisiblePropBoundsEvent',\n renderer: publicAPI,\n };\n const RESET_CAMERA_CLIPPING_RANGE_EVENT = {\n type: 'ResetCameraClippingRangeEvent',\n renderer: publicAPI,\n };\n const RESET_CAMERA_EVENT = {\n type: 'ResetCameraEvent',\n renderer: publicAPI,\n };\n\n publicAPI.updateCamera = () => {\n if (!model.activeCamera) {\n vtkDebugMacro('No cameras are on, creating one.');\n // the get method will automagically create a camera\n // and reset it since one hasn't been specified yet.\n publicAPI.getActiveCameraAndResetIfCreated();\n }\n\n // update the viewing transformation\n model.activeCamera.render(publicAPI);\n\n return true;\n };\n\n publicAPI.updateLightsGeometryToFollowCamera = () => {\n // only update the light's geometry if this Renderer is tracking\n // this lights. That allows one renderer to view the lights that\n // another renderer is setting up.\n const camera = publicAPI.getActiveCameraAndResetIfCreated();\n\n model.lights.forEach((light) => {\n if (light.lightTypeIsSceneLight()) {\n // Do nothing. Don't reset the transform matrix because applications\n // may have set a custom matrix. Only reset the transform matrix in\n // vtkLight::SetLightTypeToSceneLight()\n } else if (light.lightTypeIsHeadLight()) {\n // update position and orientation of light to match camera.\n light.setPositionFrom(camera.getPositionByReference());\n light.setFocalPointFrom(camera.getFocalPointByReference());\n light.modified(camera.getMTime());\n } else if (light.lightTypeIsCameraLight()) {\n vtkErrorMacro('camera lights not supported yet', light.get());\n } else {\n vtkErrorMacro('light has unknown light type', light.get());\n }\n });\n };\n\n publicAPI.updateLightGeometry = () => {\n if (model.lightFollowCamera) {\n // only update the light's geometry if this Renderer is tracking\n // this lights. That allows one renderer to view the lights that\n // another renderer is setting up.\n return publicAPI.updateLightsGeometryToFollowCamera();\n }\n return true;\n };\n\n publicAPI.allocateTime = notImplemented('allocateTime');\n publicAPI.updateGeometry = notImplemented('updateGeometry');\n\n publicAPI.getVTKWindow = () => model.renderWindow;\n\n publicAPI.setLayer = (layer) => {\n vtkDebugMacro(\n publicAPI.getClassName(),\n publicAPI,\n 'setting Layer to ',\n layer\n );\n if (model.layer !== layer) {\n model.layer = layer;\n publicAPI.modified();\n }\n publicAPI.setPreserveColorBuffer(!!layer);\n };\n\n publicAPI.setActiveCamera = (camera) => {\n if (model.activeCamera === camera) {\n return false;\n }\n\n model.activeCamera = camera;\n publicAPI.modified();\n publicAPI.invokeEvent({ type: 'ActiveCameraEvent', camera });\n return true;\n };\n\n publicAPI.makeCamera = () => {\n const camera = vtkCamera.newInstance();\n publicAPI.invokeEvent({ type: 'CreateCameraEvent', camera });\n return camera;\n };\n\n // Replace the set/get macro method\n publicAPI.getActiveCamera = () => {\n if (!model.activeCamera) {\n model.activeCamera = publicAPI.makeCamera();\n }\n\n return model.activeCamera;\n };\n\n publicAPI.getActiveCameraAndResetIfCreated = () => {\n if (!model.activeCamera) {\n publicAPI.getActiveCamera();\n publicAPI.resetCamera();\n }\n\n return model.activeCamera;\n };\n\n publicAPI.addActor = publicAPI.addViewProp;\n publicAPI.addVolume = publicAPI.addViewProp;\n\n publicAPI.removeActor = (actor) => {\n model.actors = model.actors.filter((a) => a !== actor);\n publicAPI.removeViewProp(actor);\n };\n\n publicAPI.removeVolume = (volume) => {\n model.volumes = model.volumes.filter((v) => v !== volume);\n publicAPI.removeViewProp(volume);\n };\n\n publicAPI.addLight = (light) => {\n model.lights = [].concat(model.lights, light);\n publicAPI.modified();\n };\n\n publicAPI.getActors = () => {\n model.actors = [];\n model.props.forEach((prop) => {\n model.actors = model.actors.concat(prop.getActors());\n });\n return model.actors;\n };\n\n publicAPI.getVolumes = () => {\n model.volumes = [];\n model.props.forEach((prop) => {\n model.volumes = model.volumes.concat(prop.getVolumes());\n });\n return model.volumes;\n };\n\n publicAPI.removeLight = (light) => {\n model.lights = model.lights.filter((l) => l !== light);\n publicAPI.modified();\n };\n\n publicAPI.removeAllLights = () => {\n model.lights = [];\n };\n\n publicAPI.setLightCollection = (lights) => {\n model.lights = lights;\n publicAPI.modified();\n };\n\n publicAPI.makeLight = vtkLight.newInstance;\n\n publicAPI.createLight = () => {\n if (!model.automaticLightCreation) {\n return;\n }\n\n if (model.createdLight) {\n publicAPI.removeLight(model.createdLight);\n model.createdLight.delete();\n model.createdLight = null;\n }\n\n model.createdLight = publicAPI.makeLight();\n publicAPI.addLight(model.createdLight);\n\n model.createdLight.setLightTypeToHeadLight();\n\n // set these values just to have a good default should LightFollowCamera\n // be turned off.\n model.createdLight.setPosition(publicAPI.getActiveCamera().getPosition());\n model.createdLight.setFocalPoint(\n publicAPI.getActiveCamera().getFocalPoint()\n );\n };\n\n // requires the aspect ratio of the viewport as X/Y\n publicAPI.normalizedDisplayToWorld = (x, y, z, aspect) => {\n const vpd = publicAPI.normalizedDisplayToView(x, y, z);\n\n return publicAPI.viewToWorld(vpd[0], vpd[1], vpd[2], aspect);\n };\n\n // requires the aspect ratio of the viewport as X/Y\n publicAPI.worldToNormalizedDisplay = (x, y, z, aspect) => {\n const vpd = publicAPI.worldToView(x, y, z);\n\n return publicAPI.viewToNormalizedDisplay(vpd[0], vpd[1], vpd[2], aspect);\n };\n\n // requires the aspect ratio of the viewport as X/Y\n publicAPI.viewToWorld = (x, y, z, aspect) => {\n if (model.activeCamera === null) {\n vtkErrorMacro(\n 'ViewToWorld: no active camera, cannot compute view to world, returning 0,0,0'\n );\n return [0, 0, 0];\n }\n\n // get the perspective transformation from the active camera\n const matrix = model.activeCamera.getCompositeProjectionMatrix(\n aspect,\n -1.0,\n 1.0\n );\n\n mat4.invert(matrix, matrix);\n mat4.transpose(matrix, matrix);\n\n // Transform point to world coordinates\n const result = vec3.fromValues(x, y, z);\n vec3.transformMat4(result, result, matrix);\n return [result[0], result[1], result[2]];\n };\n\n // Convert world point coordinates to view coordinates.\n // requires the aspect ratio of the viewport as X/Y\n publicAPI.worldToView = (x, y, z, aspect) => {\n if (model.activeCamera === null) {\n vtkErrorMacro(\n 'ViewToWorld: no active camera, cannot compute view to world, returning 0,0,0'\n );\n return [0, 0, 0];\n }\n\n // get the perspective transformation from the active camera\n const matrix = model.activeCamera.getCompositeProjectionMatrix(\n aspect,\n -1.0,\n 1.0\n );\n mat4.transpose(matrix, matrix);\n\n const result = vec3.fromValues(x, y, z);\n vec3.transformMat4(result, result, matrix);\n return [result[0], result[1], result[2]];\n };\n\n publicAPI.computeVisiblePropBounds = () => {\n model.allBounds[0] = vtkBoundingBox.INIT_BOUNDS[0];\n model.allBounds[1] = vtkBoundingBox.INIT_BOUNDS[1];\n model.allBounds[2] = vtkBoundingBox.INIT_BOUNDS[2];\n model.allBounds[3] = vtkBoundingBox.INIT_BOUNDS[3];\n model.allBounds[4] = vtkBoundingBox.INIT_BOUNDS[4];\n model.allBounds[5] = vtkBoundingBox.INIT_BOUNDS[5];\n let nothingVisible = true;\n\n publicAPI.invokeEvent(COMPUTE_VISIBLE_PROP_BOUNDS_EVENT);\n\n // loop through all props\n for (let index = 0; index < model.props.length; ++index) {\n const prop = model.props[index];\n if (prop.getVisibility() && prop.getUseBounds()) {\n const bounds = prop.getBounds();\n if (bounds && vtkMath.areBoundsInitialized(bounds)) {\n nothingVisible = false;\n\n if (bounds[0] < model.allBounds[0]) {\n model.allBounds[0] = bounds[0];\n }\n if (bounds[1] > model.allBounds[1]) {\n model.allBounds[1] = bounds[1];\n }\n if (bounds[2] < model.allBounds[2]) {\n model.allBounds[2] = bounds[2];\n }\n if (bounds[3] > model.allBounds[3]) {\n model.allBounds[3] = bounds[3];\n }\n if (bounds[4] < model.allBounds[4]) {\n model.allBounds[4] = bounds[4];\n }\n if (bounds[5] > model.allBounds[5]) {\n model.allBounds[5] = bounds[5];\n }\n }\n }\n }\n\n if (nothingVisible) {\n vtkMath.uninitializeBounds(model.allBounds);\n vtkDebugMacro(\"Can't compute bounds, no 3D props are visible\");\n }\n\n return model.allBounds;\n };\n\n publicAPI.resetCamera = (bounds = null) => {\n const boundsToUse = bounds || publicAPI.computeVisiblePropBounds();\n const center = [0, 0, 0];\n\n if (!vtkMath.areBoundsInitialized(boundsToUse)) {\n vtkDebugMacro('Cannot reset camera!');\n return false;\n }\n\n let vn = null;\n\n if (publicAPI.getActiveCamera()) {\n vn = model.activeCamera.getViewPlaneNormal();\n } else {\n vtkErrorMacro('Trying to reset non-existant camera');\n return false;\n }\n\n // Reset the perspective zoom factors, otherwise subsequent zooms will cause\n // the view angle to become very small and cause bad depth sorting.\n model.activeCamera.setViewAngle(30.0);\n\n center[0] = (boundsToUse[0] + boundsToUse[1]) / 2.0;\n center[1] = (boundsToUse[2] + boundsToUse[3]) / 2.0;\n center[2] = (boundsToUse[4] + boundsToUse[5]) / 2.0;\n\n let w1 = boundsToUse[1] - boundsToUse[0];\n let w2 = boundsToUse[3] - boundsToUse[2];\n let w3 = boundsToUse[5] - boundsToUse[4];\n w1 *= w1;\n w2 *= w2;\n w3 *= w3;\n let radius = w1 + w2 + w3;\n\n // If we have just a single point, pick a radius of 1.0\n radius = radius === 0 ? 1.0 : radius;\n\n // compute the radius of the enclosing sphere\n radius = Math.sqrt(radius) * 0.5;\n\n // default so that the bounding sphere fits within the view fustrum\n\n // compute the distance from the intersection of the view frustum with the\n // bounding sphere. Basically in 2D draw a circle representing the bounding\n // sphere in 2D then draw a horizontal line going out from the center of\n // the circle. That is the camera view. Then draw a line from the camera\n // position to the point where it intersects the circle. (it will be tangent\n // to the circle at this point, this is important, only go to the tangent\n // point, do not draw all the way to the view plane). Then draw the radius\n // from the tangent point to the center of the circle. You will note that\n // this forms a right triangle with one side being the radius, another being\n // the target distance for the camera, then just find the target dist using\n // a sin.\n const angle = vtkMath.radiansFromDegrees(model.activeCamera.getViewAngle());\n const parallelScale = radius;\n const distance = radius / Math.sin(angle * 0.5);\n\n // check view-up vector against view plane normal\n const vup = model.activeCamera.getViewUp();\n if (Math.abs(vtkMath.dot(vup, vn)) > 0.999) {\n vtkWarningMacro('Resetting view-up since view plane normal is parallel');\n model.activeCamera.setViewUp(-vup[2], vup[0], vup[1]);\n }\n\n // update the camera\n model.activeCamera.setFocalPoint(center[0], center[1], center[2]);\n model.activeCamera.setPosition(\n center[0] + distance * vn[0],\n center[1] + distance * vn[1],\n center[2] + distance * vn[2]\n );\n\n publicAPI.resetCameraClippingRange(boundsToUse);\n\n // setup default parallel scale\n model.activeCamera.setParallelScale(parallelScale);\n\n // update reasonable world to physical values\n model.activeCamera.setPhysicalScale(1.0 / radius);\n model.activeCamera.setPhysicalTranslation(\n -center[0],\n -center[1],\n -center[2]\n );\n\n // Here to let parallel/distributed compositing intercept\n // and do the right thing.\n publicAPI.invokeEvent(RESET_CAMERA_EVENT);\n\n return true;\n };\n\n publicAPI.resetCameraClippingRange = (bounds = null) => {\n const boundsToUse = bounds || publicAPI.computeVisiblePropBounds();\n\n if (!vtkMath.areBoundsInitialized(boundsToUse)) {\n vtkDebugMacro('Cannot reset camera clipping range!');\n return false;\n }\n\n // Make sure we have an active camera\n publicAPI.getActiveCameraAndResetIfCreated();\n if (!model.activeCamera) {\n vtkErrorMacro('Trying to reset clipping range of non-existant camera');\n return false;\n }\n\n // Get the exact range for the bounds\n const range = model.activeCamera.computeClippingRange(boundsToUse);\n\n // do not let far - near be less than 0.1 of the window height\n // this is for cases such as 2D images which may have zero range\n let minGap = 0.0;\n if (model.activeCamera.getParallelProjection()) {\n minGap = 0.1 * model.activeCamera.getParallelScale();\n } else {\n const angle = vtkMath.radiansFromDegrees(\n model.activeCamera.getViewAngle()\n );\n minGap = 0.2 * Math.tan(angle / 2.0) * range[1];\n }\n\n if (range[1] - range[0] < minGap) {\n minGap = minGap - range[1] + range[0];\n range[1] += minGap / 2.0;\n range[0] -= minGap / 2.0;\n }\n\n // Do not let the range behind the camera throw off the calculation.\n if (range[0] < 0.0) {\n range[0] = 0.0;\n }\n\n // Give ourselves a little breathing room\n range[0] =\n 0.99 * range[0] - (range[1] - range[0]) * model.clippingRangeExpansion;\n range[1] =\n 1.01 * range[1] + (range[1] - range[0]) * model.clippingRangeExpansion;\n\n // Make sure near is not bigger than far\n range[0] = range[0] >= range[1] ? 0.01 * range[1] : range[0];\n\n // Make sure near is at least some fraction of far - this prevents near\n // from being behind the camera or too close in front. How close is too\n // close depends on the resolution of the depth buffer\n if (!model.nearClippingPlaneTolerance) {\n model.nearClippingPlaneTolerance = 0.01;\n }\n\n // make sure the front clipping range is not too far from the far clippnig\n // range, this is to make sure that the zbuffer resolution is effectively\n // used\n if (range[0] < model.nearClippingPlaneTolerance * range[1]) {\n range[0] = model.nearClippingPlaneTolerance * range[1];\n }\n model.activeCamera.setClippingRange(range[0], range[1]);\n\n // Here to let parallel/distributed compositing intercept\n // and do the right thing.\n publicAPI.invokeEvent(RESET_CAMERA_CLIPPING_RANGE_EVENT);\n return false;\n };\n\n publicAPI.setRenderWindow = (renderWindow) => {\n if (renderWindow !== model.renderWindow) {\n model.vtkWindow = renderWindow;\n model.renderWindow = renderWindow;\n }\n };\n\n publicAPI.visibleActorCount = () =>\n model.props.filter((prop) => prop.getVisibility()).length;\n publicAPI.visibleVolumeCount = publicAPI.visibleActorCount;\n\n publicAPI.getMTime = () => {\n let m1 = model.mtime;\n const m2 = model.activeCamera ? model.activeCamera.getMTime() : 0;\n if (m2 > m1) {\n m1 = m2;\n }\n const m3 = model.createdLight ? model.createdLight.getMTime() : 0;\n if (m3 > m1) {\n m1 = m3;\n }\n return m1;\n };\n\n publicAPI.getTransparent = () => !!model.preserveColorBuffer;\n\n publicAPI.isActiveCameraCreated = () => !!model.activeCamera;\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n pickedProp: null,\n activeCamera: null,\n\n allBounds: [],\n ambient: [1, 1, 1],\n\n allocatedRenderTime: 100,\n timeFactor: 1,\n\n createdLight: null,\n automaticLightCreation: true,\n\n twoSidedLighting: true,\n lastRenderTimeInSeconds: -1,\n\n renderWindow: null,\n lights: [],\n actors: [],\n volumes: [],\n\n lightFollowCamera: true,\n\n numberOfPropsRendered: 0,\n\n propArray: null,\n\n pathArray: null,\n\n layer: 1,\n preserveColorBuffer: false,\n preserveDepthBuffer: false,\n\n computeVisiblePropBounds: vtkMath.createUninitializedBounds(),\n\n interactive: true,\n\n nearClippingPlaneTolerance: 0,\n clippingRangeExpansion: 0.05,\n\n erase: true,\n draw: true,\n\n useShadows: false,\n\n useDepthPeeling: false,\n occlusionRatio: 0,\n maximumNumberOfPeels: 4,\n\n selector: null,\n delegate: null,\n\n texturedBackground: false,\n backgroundTexture: null,\n\n pass: 0,\n};\n\n// ----------------------------------------------------------------------------\n\nexport function extend(publicAPI, model, initialValues = {}) {\n Object.assign(model, DEFAULT_VALUES, initialValues);\n\n // Inheritance\n vtkViewport.extend(publicAPI, model, initialValues);\n\n // Build VTK API\n macro.get(publicAPI, model, [\n 'renderWindow',\n\n 'allocatedRenderTime',\n 'timeFactor',\n\n 'lastRenderTimeInSeconds',\n 'numberOfPropsRendered',\n 'lastRenderingUsedDepthPeeling',\n\n 'selector',\n ]);\n macro.setGet(publicAPI, model, [\n 'twoSidedLighting',\n 'lightFollowCamera',\n 'automaticLightCreation',\n 'erase',\n 'draw',\n 'nearClippingPlaneTolerance',\n 'clippingRangeExpansion',\n 'backingStore',\n 'interactive',\n 'layer',\n 'preserveColorBuffer',\n 'preserveDepthBuffer',\n 'useDepthPeeling',\n 'occlusionRatio',\n 'maximumNumberOfPeels',\n 'delegate',\n 'backgroundTexture',\n 'texturedBackground',\n 'useShadows',\n 'pass',\n ]);\n macro.getArray(publicAPI, model, ['actors', 'volumes', 'lights']);\n macro.setGetArray(publicAPI, model, ['background'], 4, 1.0);\n\n // Object methods\n vtkRenderer(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\n\nexport const newInstance = macro.newInstance(extend, 'vtkRenderer');\n\n// ----------------------------------------------------------------------------\n\nexport default { newInstance, extend };\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/Sources/Rendering/Core/Renderer/index.js","import macro from 'vtk.js/Sources/macro';\nimport vtkMath from 'vtk.js/Sources/Common/Core/Math';\nimport vtkInteractorStyleTrackballCamera from 'vtk.js/Sources/Interaction/Style/InteractorStyleTrackballCamera';\nimport Constants from 'vtk.js/Sources/Rendering/Core/RenderWindowInteractor/Constants';\n\nconst { Device, Input } = Constants;\nconst {\n vtkWarningMacro,\n vtkErrorMacro,\n normalizeWheel,\n vtkOnceErrorMacro,\n} = macro;\n\n// ----------------------------------------------------------------------------\n// Global methods\n// ----------------------------------------------------------------------------\n\nconst deviceInputMap = {\n 'OpenVR Gamepad': [\n Input.TrackPad,\n Input.Trigger,\n Input.Grip,\n Input.ApplicationMenu,\n ],\n};\n\nconst handledEvents = [\n 'StartAnimation',\n 'Animation',\n 'EndAnimation',\n 'StartMouseMove',\n 'MouseMove',\n 'EndMouseMove',\n 'LeftButtonPress',\n 'LeftButtonRelease',\n 'MiddleButtonPress',\n 'MiddleButtonRelease',\n 'RightButtonPress',\n 'RightButtonRelease',\n 'KeyPress',\n 'KeyDown',\n 'KeyUp',\n 'StartMouseWheel',\n 'MouseWheel',\n 'EndMouseWheel',\n 'StartPinch',\n 'Pinch',\n 'EndPinch',\n 'StartPan',\n 'Pan',\n 'EndPan',\n 'StartRotate',\n 'Rotate',\n 'EndRotate',\n 'Button3D',\n 'Move3D',\n];\n\nfunction preventDefault(event) {\n event.stopPropagation();\n event.preventDefault();\n return false;\n}\n\n// ----------------------------------------------------------------------------\n// vtkRenderWindowInteractor methods\n// ----------------------------------------------------------------------------\n\nfunction vtkRenderWindowInteractor(publicAPI, model) {\n // Set our className\n model.classHierarchy.push('vtkRenderWindowInteractor');\n\n // Initialize list of requesters\n const animationRequesters = new Set();\n\n // Public API methods\n\n //----------------------------------------------------------------------\n publicAPI.start = () => {\n // Let the compositing handle the event loop if it wants to.\n // if (publicAPI.HasObserver(vtkCommand::StartEvent) && !publicAPI.HandleEventLoop) {\n // publicAPI.invokeEvent({ type: 'StartEvent' });\n // return;\n // }\n\n // As a convenience, initialize if we aren't initialized yet.\n if (!model.initialized) {\n publicAPI.initialize();\n if (!model.initialized) {\n return;\n }\n }\n // Pass execution to the subclass which will run the event loop,\n // this will not return until TerminateApp is called.\n publicAPI.startEventLoop();\n };\n\n //----------------------------------------------------------------------\n publicAPI.setRenderWindow = (aren) => {\n vtkErrorMacro(\n 'you want to call setView(view) instead of setRenderWindow on a vtk.js interactor'\n );\n };\n\n //----------------------------------------------------------------------\n publicAPI.setInteractorStyle = (style) => {\n if (model.interactorStyle !== style) {\n if (model.interactorStyle != null) {\n model.interactorStyle.setInteractor(null);\n }\n model.interactorStyle = style;\n if (model.interactorStyle != null) {\n if (model.interactorStyle.getInteractor() !== publicAPI) {\n model.interactorStyle.setInteractor(publicAPI);\n }\n }\n }\n };\n\n //---------------------------------------------------------------------\n publicAPI.initialize = () => {\n model.initialized = true;\n publicAPI.enable();\n publicAPI.render();\n };\n\n publicAPI.enable = () => publicAPI.setEnabled(true);\n\n publicAPI.disable = () => publicAPI.setEnabled(false);\n\n publicAPI.startEventLoop = () => vtkWarningMacro('empty event loop');\n\n function updateCurrentRenderer(x, y) {\n model.currentRenderer = publicAPI.findPokedRenderer(x, y);\n }\n\n publicAPI.getCurrentRenderer = () => {\n if (model.currentRenderer) {\n return model.currentRenderer;\n }\n updateCurrentRenderer(0, 0);\n return model.currentRenderer;\n };\n\n function getScreenEventPositionFor(source) {\n const bounds = model.container.getBoundingClientRect();\n const canvas = model.view.getCanvas();\n const scaleX = canvas.width / bounds.width;\n const scaleY = canvas.height / bounds.height;\n const position = {\n x: scaleX * (source.clientX - bounds.left),\n y: scaleY * (bounds.height - source.clientY + bounds.top),\n z: 0,\n };\n updateCurrentRenderer(position.x, position.y);\n return position;\n }\n\n function getTouchEventPositionsFor(touches) {\n const positions = {};\n for (let i = 0; i < touches.length; i++) {\n const touch = touches[i];\n positions[touch.identifier] = getScreenEventPositionFor(touch);\n }\n return positions;\n }\n\n function getModifierKeysFor(event) {\n return {\n controlKey: event.ctrlKey,\n altKey: event.altKey,\n shiftKey: event.shiftKey,\n };\n }\n\n function getKeysFor(event) {\n const modifierKeys = getModifierKeysFor(event);\n const keys = {\n key: event.key,\n keyCode: event.charCode,\n };\n Object.assign(keys, modifierKeys);\n return keys;\n }\n\n function interactionRegistration(addListeners) {\n const rootElm = document.querySelector('body');\n const method = addListeners ? 'addEventListener' : 'removeEventListener';\n const invMethod = addListeners ? 'removeEventListener' : 'addEventListener';\n\n if (model.container) {\n model.container[invMethod]('mousemove', publicAPI.handleMouseMove);\n }\n\n rootElm[method]('mouseup', publicAPI.handleMouseUp);\n rootElm[method]('mousemove', publicAPI.handleMouseMove);\n rootElm[method]('touchend', publicAPI.handleTouchEnd, false);\n rootElm[method]('touchcancel', publicAPI.handleTouchEnd, false);\n rootElm[method]('touchmove', publicAPI.handleTouchMove, false);\n }\n\n publicAPI.bindEvents = (container) => {\n model.container = container;\n container.addEventListener('contextmenu', preventDefault);\n // container.addEventListener('click', preventDefault); // Avoid stopping event propagation\n container.addEventListener('wheel', publicAPI.handleWheel);\n container.addEventListener('DOMMouseScroll', publicAPI.handleWheel);\n container.addEventListener('mousemove', publicAPI.handleMouseMove);\n container.addEventListener('mousedown', publicAPI.handleMouseDown);\n document\n .querySelector('body')\n .addEventListener('keypress', publicAPI.handleKeyPress);\n document\n .querySelector('body')\n .addEventListener('keydown', publicAPI.handleKeyDown);\n document\n .querySelector('body')\n .addEventListener('keyup', publicAPI.handleKeyUp);\n\n container.addEventListener('touchstart', publicAPI.handleTouchStart, false);\n };\n\n publicAPI.unbindEvents = () => {\n interactionRegistration(false);\n model.container.removeEventListener('contextmenu', preventDefault);\n // model.container.removeEventListener('click', preventDefault); // Avoid stopping event propagation\n model.container.removeEventListener('wheel', publicAPI.handleWheel);\n model.container.removeEventListener(\n 'DOMMouseScroll',\n publicAPI.handleWheel\n );\n model.container.removeEventListener('mousemove', publicAPI.handleMouseMove);\n model.container.removeEventListener('mousedown', publicAPI.handleMouseDown);\n document\n .querySelector('body')\n .removeEventListener('keypress', publicAPI.handleKeyPress);\n document\n .querySelector('body')\n .removeEventListener('keydown', publicAPI.handleKeyDown);\n document\n .querySelector('body')\n .removeEventListener('keyup', publicAPI.handleKeyUp);\n model.container.removeEventListener(\n 'touchstart',\n publicAPI.handleTouchStart\n );\n model.container = null;\n };\n\n publicAPI.handleKeyPress = (event) => {\n const data = getKeysFor(event);\n publicAPI.keyPressEvent(data);\n };\n\n publicAPI.handleKeyDown = (event) => {\n const data = getKeysFor(event);\n publicAPI.keyDownEvent(data);\n };\n\n publicAPI.handleKeyUp = (event) => {\n const data = getKeysFor(event);\n publicAPI.keyUpEvent(data);\n };\n\n publicAPI.handleMouseDown = (event) => {\n interactionRegistration(true);\n event.stopPropagation();\n event.preventDefault();\n\n const callData = {\n position: getScreenEventPositionFor(event),\n };\n const keys = getModifierKeysFor(event);\n Object.assign(callData, keys);\n switch (event.which) {\n case 1:\n publicAPI.leftButtonPressEvent(callData);\n break;\n case 2:\n publicAPI.middleButtonPressEvent(callData);\n break;\n case 3:\n publicAPI.rightButtonPressEvent(callData);\n break;\n default:\n vtkErrorMacro(`Unknown mouse button pressed: ${event.which}`);\n break;\n }\n };\n\n //----------------------------------------------------------------------\n function forceRender() {\n if (model.view && model.enabled && model.enableRender) {\n model.inRender = true;\n model.view.traverseAllPasses();\n model.inRender = false;\n }\n // outside the above test so that third-party code can redirect\n // the render to the appropriate class\n publicAPI.invokeRenderEvent();\n }\n\n publicAPI.requestAnimation = (requestor) => {\n if (requestor === undefined) {\n vtkErrorMacro(`undefined requester, can not start animating`);\n return;\n }\n if (animationRequesters.has(requestor)) {\n vtkWarningMacro(`requester is already registered for animating`);\n return;\n }\n animationRequesters.add(requestor);\n if (animationRequesters.size === 1) {\n model.lastFrameTime = 0.1;\n model.lastFrameStart = Date.now();\n model.animationRequest = requestAnimationFrame(publicAPI.handleAnimation);\n publicAPI.startAnimationEvent();\n }\n };\n\n publicAPI.isAnimating = () =>\n model.vrAnimation || model.animationRequest !== null;\n\n publicAPI.cancelAnimation = (requestor, skipWarning = false) => {\n if (!animationRequesters.has(requestor)) {\n if (!skipWarning) {\n const requestStr =\n requestor && requestor.getClassName\n ? requestor.getClassName()\n : requestor;\n vtkWarningMacro(`${requestStr} did not request an animation`);\n }\n\n return;\n }\n animationRequesters.delete(requestor);\n if (model.animationRequest && animationRequesters.size === 0) {\n cancelAnimationFrame(model.animationRequest);\n model.animationRequest = null;\n publicAPI.endAnimationEvent();\n publicAPI.render();\n }\n };\n\n publicAPI.switchToVRAnimation = () => {\n // cancel existing animation if any\n if (model.animationRequest) {\n cancelAnimationFrame(model.animationRequest);\n model.animationRequest = null;\n }\n model.vrAnimation = true;\n };\n\n publicAPI.returnFromVRAnimation = () => {\n model.vrAnimation = false;\n };\n\n publicAPI.updateGamepads = (displayId) => {\n const gamepads = navigator.getGamepads();\n\n // watch for when buttons change state and fire events\n for (let i = 0; i < gamepads.length; ++i) {\n const gp = gamepads[i];\n if (gp && gp.displayId === displayId) {\n if (!(gp.index in model.lastGamepadValues)) {\n model.lastGamepadValues[gp.index] = { buttons: {} };\n }\n for (let b = 0; b < gp.buttons.length; ++b) {\n if (!(b in model.lastGamepadValues[gp.index].buttons)) {\n model.lastGamepadValues[gp.index].buttons[b] = false;\n }\n if (\n model.lastGamepadValues[gp.index].buttons[b] !==\n gp.buttons[b].pressed\n ) {\n publicAPI.button3DEvent({\n gamepad: gp,\n position: gp.pose.position,\n orientation: gp.pose.orientation,\n pressed: gp.buttons[b].pressed,\n device:\n gp.hand === 'left'\n ? Device.LeftController\n : Device.RightController,\n input:\n deviceInputMap[gp.id] && deviceInputMap[gp.id][b]\n ? deviceInputMap[gp.id][b]\n : Input.Trigger,\n });\n model.lastGamepadValues[gp.index].buttons[b] =\n gp.buttons[b].pressed;\n }\n if (model.lastGamepadValues[gp.index].buttons[b]) {\n publicAPI.move3DEvent({\n gamepad: gp,\n position: gp.pose.position,\n orientation: gp.pose.orientation,\n device:\n gp.hand === 'left'\n ? Device.LeftController\n : Device.RightController,\n });\n }\n }\n }\n }\n };\n\n publicAPI.handleMouseMove = (event) => {\n // Do not consume event for move\n // event.stopPropagation();\n // event.preventDefault();\n\n const callData = {\n position: getScreenEventPositionFor(event),\n };\n const keys = getModifierKeysFor(event);\n Object.assign(callData, keys);\n\n if (model.moveTimeoutID === 0) {\n publicAPI.startMouseMoveEvent(callData);\n } else {\n publicAPI.mouseMoveEvent(callData);\n clearTimeout(model.moveTimeoutID);\n }\n\n // start a timer to keep us animating while we get mouse move events\n model.moveTimeoutID = setTimeout(() => {\n publicAPI.endMouseMoveEvent();\n model.moveTimeoutID = 0;\n }, 200);\n };\n\n publicAPI.handleAnimation = () => {\n const currTime = Date.now();\n if (model.FrameTime === -1.0) {\n model.lastFrameTime = 0.1;\n } else {\n model.lastFrameTime = (currTime - model.lastFrameStart) / 1000.0;\n }\n model.lastFrameTime = Math.max(0.01, model.lastFrameTime);\n model.lastFrameStart = currTime;\n publicAPI.animationEvent();\n forceRender();\n model.animationRequest = requestAnimationFrame(publicAPI.handleAnimation);\n };\n\n publicAPI.handleWheel = (event) => {\n event.stopPropagation();\n event.preventDefault();\n\n /**\n * wheel event values can vary significantly across browsers, platforms\n * and devices [1]. `normalizeWheel` uses facebook's solution from their\n * fixed-data-table repository [2].\n *\n * [1] https://developer.mozilla.org/en-US/docs/Web/Events/mousewheel\n * [2] https://github.com/facebookarchive/fixed-data-table/blob/master/src/vendor_upstream/dom/normalizeWheel.js\n *\n * This code will return an object with properties:\n *\n * spinX -- normalized spin speed (use for zoom) - x plane\n * spinY -- \" - y plane\n * pixelX -- normalized distance (to pixels) - x plane\n * pixelY -- \" - y plane\n *\n */\n const callData = normalizeWheel(event);\n\n if (model.wheelTimeoutID === 0) {\n publicAPI.startMouseWheelEvent(callData);\n } else {\n publicAPI.mouseWheelEvent(callData);\n clearTimeout(model.wheelTimeoutID);\n }\n\n // start a timer to keep us animating while we get wheel events\n model.wheelTimeoutID = setTimeout(() => {\n publicAPI.endMouseWheelEvent();\n model.wheelTimeoutID = 0;\n }, 200);\n };\n\n publicAPI.handleMouseUp = (event) => {\n interactionRegistration(false);\n event.stopPropagation();\n event.preventDefault();\n\n const callData = {\n position: getScreenEventPositionFor(event),\n };\n const keys = getModifierKeysFor(event);\n Object.assign(callData, keys);\n switch (event.which) {\n case 1:\n publicAPI.leftButtonReleaseEvent(callData);\n break;\n case 2:\n publicAPI.middleButtonReleaseEvent(callData);\n break;\n case 3:\n publicAPI.rightButtonReleaseEvent(callData);\n break;\n default:\n vtkErrorMacro(`Unknown mouse button released: ${event.which}`);\n break;\n }\n };\n\n publicAPI.handleTouchStart = (event) => {\n interactionRegistration(true);\n event.stopPropagation();\n event.preventDefault();\n\n // If multitouch\n if (model.recognizeGestures && event.touches.length > 1) {\n const positions = getTouchEventPositionsFor(event.touches);\n // did we just transition to multitouch?\n if (event.touches.length === 2) {\n const touch = event.touches[0];\n const callData = {\n position: getScreenEventPositionFor(touch),\n shiftKey: false,\n altKey: false,\n controlKey: false,\n };\n publicAPI.leftButtonReleaseEvent(callData);\n }\n // handle the gesture\n publicAPI.recognizeGesture('TouchStart', positions);\n } else {\n const touch = event.touches[0];\n const callData = {\n position: getScreenEventPositionFor(touch),\n shiftKey: false,\n altKey: false,\n controlKey: false,\n };\n publicAPI.leftButtonPressEvent(callData);\n }\n };\n\n publicAPI.handleTouchMove = (event) => {\n event.stopPropagation();\n event.preventDefault();\n\n if (model.recognizeGestures && event.touches.length > 1) {\n const positions = getTouchEventPositionsFor(event.touches);\n publicAPI.recognizeGesture('TouchMove', positions);\n } else {\n const touch = event.touches[0];\n const callData = {\n position: getScreenEventPositionFor(touch),\n shiftKey: false,\n altKey: false,\n controlKey: false,\n };\n publicAPI.mouseMoveEvent(callData);\n }\n };\n\n publicAPI.handleTouchEnd = (event) => {\n event.stopPropagation();\n event.preventDefault();\n\n if (model.recognizeGestures) {\n // No more fingers down\n if (event.touches.length === 0) {\n // If just one finger released, consider as left button\n if (event.changedTouches.length === 1) {\n const touch = event.changedTouches[0];\n const callData = {\n position: getScreenEventPositionFor(touch),\n shiftKey: false,\n altKey: false,\n controlKey: false,\n };\n publicAPI.leftButtonReleaseEvent(callData);\n interactionRegistration(false);\n } else {\n // If more than one finger released, recognize touchend\n const positions = getTouchEventPositionsFor(event.changedTouches);\n publicAPI.recognizeGesture('TouchEnd', positions);\n interactionRegistration(false);\n }\n } else if (event.touches.length === 1) {\n // If one finger left, end touch and start button press\n const positions = getTouchEventPositionsFor(event.changedTouches);\n publicAPI.recognizeGesture('TouchEnd', positions);\n const touch = event.touches[0];\n const callData = {\n position: getScreenEventPositionFor(touch),\n shiftKey: false,\n altKey: false,\n controlKey: false,\n };\n publicAPI.leftButtonPressEvent(callData);\n } else {\n // If more than one finger left, keep touch move\n const positions = getTouchEventPositionsFor(event.touches);\n publicAPI.recognizeGesture('TouchMove', positions);\n }\n } else {\n const touch = event.changedTouches[0];\n const callData = {\n position: getScreenEventPositionFor(touch),\n shiftKey: false,\n altKey: false,\n controlKey: false,\n };\n publicAPI.leftButtonReleaseEvent(callData);\n interactionRegistration(false);\n }\n };\n\n publicAPI.setView = (val) => {\n if (model.view === val) {\n return;\n }\n model.view = val;\n model.view.getRenderable().setInteractor(publicAPI);\n publicAPI.modified();\n };\n\n publicAPI.findPokedRenderer = (x = 0, y = 0) => {\n if (!model.view) {\n return null;\n }\n const rc = model.view.getRenderable().getRenderersByReference();\n let interactiveren = null;\n let viewportren = null;\n let currentRenderer = null;\n\n let count = rc.length;\n while (count--) {\n const aren = rc[count];\n if (model.view.isInViewport(x, y, aren) && aren.getInteractive()) {\n currentRenderer = aren;\n }\n\n if (interactiveren === null && aren.getInteractive()) {\n // Save this renderer in case we can't find one in the viewport that\n // is interactive.\n interactiveren = aren;\n }\n if (viewportren === null && model.view.isInViewport(x, y, aren)) {\n // Save this renderer in case we can't find one in the viewport that\n // is interactive.\n viewportren = aren;\n }\n }\n\n // We must have a value. If we found an interactive renderer before, that's\n // better than a non-interactive renderer.\n if (currentRenderer === null) {\n currentRenderer = interactiveren;\n }\n\n // We must have a value. If we found a renderer that is in the viewport,\n // that is better than any old viewport (but not as good as an interactive\n // one).\n if (currentRenderer === null) {\n currentRenderer = viewportren;\n }\n\n // We must have a value - take anything.\n if (currentRenderer == null) {\n currentRenderer = rc[0];\n }\n\n return currentRenderer;\n };\n\n // only render if we are not animating. If we are animating\n // then renders will happen naturally anyhow and we definitely\n // do not want extra renders as the make the apparent interaction\n // rate slower.\n publicAPI.render = () => {\n if (model.animationRequest === null && !model.inRender) {\n forceRender();\n }\n };\n\n // create the generic Event methods\n handledEvents.forEach((eventName) => {\n const lowerFirst = eventName.charAt(0).toLowerCase() + eventName.slice(1);\n publicAPI[`${lowerFirst}Event`] = (arg) => {\n // Check that interactor enabled\n if (!model.enabled) {\n return;\n }\n\n // Check that a poked renderer exists\n const renderer = publicAPI.getCurrentRenderer();\n if (!renderer) {\n vtkOnceErrorMacro(`\n Can not forward events without a current renderer on the interactor.\n `);\n return;\n }\n\n // Pass the eventName and the poked renderer\n const callData = {\n type: eventName,\n pokedRenderer: model.currentRenderer,\n };\n\n // Add the arguments to the call data\n Object.assign(callData, arg);\n\n // Call invoke\n publicAPI[`invoke${eventName}`](callData);\n };\n });\n\n // we know we are in multitouch now, so start recognizing\n publicAPI.recognizeGesture = (event, positions) => {\n // more than two pointers we ignore\n if (Object.keys(positions).length > 2) {\n return;\n }\n\n if (!model.startingEventPositions) {\n model.startingEventPositions = {};\n }\n\n // store the initial positions\n if (event === 'TouchStart') {\n Object.keys(positions).forEach((key) => {\n model.startingEventPositions[key] = positions[key];\n });\n // we do not know what the gesture is yet\n model.currentGesture = 'Start';\n return;\n }\n\n // end the gesture if needed\n if (event === 'TouchEnd') {\n if (model.currentGesture === 'Pinch') {\n publicAPI.render();\n publicAPI.endPinchEvent();\n }\n if (model.currentGesture === 'Rotate') {\n publicAPI.render();\n publicAPI.endRotateEvent();\n }\n if (model.currentGesture === 'Pan') {\n publicAPI.render();\n publicAPI.endPanEvent();\n }\n model.currentGesture = 'Start';\n model.startingEventPositions = {};\n return;\n }\n\n // what are the two pointers we are working with\n let count = 0;\n const posVals = [];\n const startVals = [];\n Object.keys(positions).forEach((key) => {\n posVals[count] = positions[key];\n startVals[count] = model.startingEventPositions[key];\n count++;\n });\n\n // The meat of the algorithm\n // on move events we analyze them to determine what type\n // of movement it is and then deal with it.\n // calculate the distances\n const originalDistance = Math.sqrt(\n (startVals[0].x - startVals[1].x) * (startVals[0].x - startVals[1].x) +\n (startVals[0].y - startVals[1].y) * (startVals[0].y - startVals[1].y)\n );\n const newDistance = Math.sqrt(\n (posVals[0].x - posVals[1].x) * (posVals[0].x - posVals[1].x) +\n (posVals[0].y - posVals[1].y) * (posVals[0].y - posVals[1].y)\n );\n\n // calculate rotations\n let originalAngle = vtkMath.degreesFromRadians(\n Math.atan2(\n startVals[1].y - startVals[0].y,\n startVals[1].x - startVals[0].x\n )\n );\n let newAngle = vtkMath.degreesFromRadians(\n Math.atan2(posVals[1].y - posVals[0].y, posVals[1].x - posVals[0].x)\n );\n\n // angles are cyclic so watch for that, 1 and 359 are only 2 apart :)\n let angleDeviation = newAngle - originalAngle;\n newAngle = newAngle + 180.0 >= 360.0 ? newAngle - 180.0 : newAngle + 180.0;\n originalAngle =\n originalAngle + 180.0 >= 360.0\n ? originalAngle - 180.0\n : originalAngle + 180.0;\n if (Math.abs(newAngle - originalAngle) < Math.abs(angleDeviation)) {\n angleDeviation = newAngle - originalAngle;\n }\n\n // calculate the translations\n const trans = [];\n trans[0] =\n (posVals[0].x - startVals[0].x + posVals[1].x - startVals[1].x) / 2.0;\n trans[1] =\n (posVals[0].y - startVals[0].y + posVals[1].y - startVals[1].y) / 2.0;\n\n if (event === 'TouchMove') {\n // OK we want to\n // - immediately respond to the user\n // - allow the user to zoom without panning (saves focal point)\n // - allow the user to rotate without panning (saves focal point)\n\n // do we know what gesture we are doing yet? If not\n // see if we can figure it out\n if (model.currentGesture === 'Start') {\n // pinch is a move to/from the center point\n // rotate is a move along the circumference\n // pan is a move of the center point\n // compute the distance along each of these axes in pixels\n // the first to break thresh wins\n let thresh =\n 0.01 *\n Math.sqrt(\n model.container.clientWidth * model.container.clientWidth +\n model.container.clientHeight * model.container.clientHeight\n );\n if (thresh < 15.0) {\n thresh = 15.0;\n }\n const pinchDistance = Math.abs(newDistance - originalDistance);\n const rotateDistance =\n newDistance * 3.1415926 * Math.abs(angleDeviation) / 360.0;\n const panDistance = Math.sqrt(\n trans[0] * trans[0] + trans[1] * trans[1]\n );\n if (\n pinchDistance > thresh &&\n pinchDistance > rotateDistance &&\n pinchDistance > panDistance\n ) {\n model.currentGesture = 'Pinch';\n const callData = {\n scale: 1.0,\n touches: positions,\n };\n publicAPI.startPinchEvent(callData);\n } else if (rotateDistance > thresh && rotateDistance > panDistance) {\n model.currentGesture = 'Rotate';\n const callData = {\n rotation: 0.0,\n touches: positions,\n };\n publicAPI.startRotateEvent(callData);\n } else if (panDistance > thresh) {\n model.currentGesture = 'Pan';\n const callData = {\n translation: [0, 0],\n touches: positions,\n };\n publicAPI.startPanEvent(callData);\n }\n } else {\n // if we have found a specific type of movement then\n // handle it\n if (model.currentGesture === 'Rotate') {\n const callData = {\n rotation: angleDeviation,\n touches: positions,\n };\n publicAPI.rotateEvent(callData);\n }\n\n if (model.currentGesture === 'Pinch') {\n const callData = {\n scale: newDistance / originalDistance,\n touches: positions,\n };\n publicAPI.pinchEvent(callData);\n }\n\n if (model.currentGesture === 'Pan') {\n const callData = {\n translation: trans,\n touches: positions,\n };\n publicAPI.panEvent(callData);\n }\n }\n }\n };\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n renderWindow: null,\n interactorStyle: null,\n picker: null,\n pickingManager: null,\n initialized: false,\n enabled: false,\n enableRender: true,\n currentRenderer: null,\n lightFollowCamera: true,\n desiredUpdateRate: 30.0,\n stillUpdateRate: 2.0,\n container: null,\n view: null,\n recognizeGestures: true,\n currentGesture: 'Start',\n animationRequest: null,\n lastFrameTime: 0.1,\n wheelTimeoutID: 0,\n moveTimeoutID: 0,\n lastGamepadValues: {},\n};\n\n// ----------------------------------------------------------------------------\n\nexport function extend(publicAPI, model, initialValues = {}) {\n Object.assign(model, DEFAULT_VALUES, initialValues);\n\n // Object methods\n macro.obj(publicAPI, model);\n\n macro.event(publicAPI, model, 'RenderEvent');\n handledEvents.forEach((eventName) =>\n macro.event(publicAPI, model, eventName)\n );\n\n // Create get-only macros\n macro.get(publicAPI, model, [\n 'initialized',\n 'container',\n 'enabled',\n 'enableRender',\n 'interactorStyle',\n 'lastFrameTime',\n 'view',\n ]);\n\n // Create get-set macros\n macro.setGet(publicAPI, model, [\n 'lightFollowCamera',\n 'enabled',\n 'recognizeGestures',\n 'desiredUpdateRate',\n 'stillUpdateRate',\n 'picker',\n ]);\n\n // For more macro methods, see \"Sources/macro.js\"\n\n // Object specific methods\n vtkRenderWindowInteractor(publicAPI, model);\n\n publicAPI.setInteractorStyle(vtkInteractorStyleTrackballCamera.newInstance());\n}\n\n// ----------------------------------------------------------------------------\n\nexport const newInstance = macro.newInstance(\n extend,\n 'vtkRenderWindowInteractor'\n);\n\n// ----------------------------------------------------------------------------\n\nexport default Object.assign({ newInstance, extend, handledEvents }, Constants);\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/Sources/Rendering/Core/RenderWindowInteractor/index.js","export const States = {\n IS_START: 0,\n IS_NONE: 0,\n\n IS_ROTATE: 1,\n IS_PAN: 2,\n IS_SPIN: 3,\n IS_DOLLY: 4,\n\n IS_CAMERA_POSE: 11,\n\n IS_WINDOW_LEVEL: 1024,\n IS_SLICE: 1025,\n};\n\nexport default {\n States,\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/Sources/Rendering/Core/InteractorStyle/Constants.js","export const Device = {\n Unknown: 0,\n LeftController: 1,\n RightController: 2,\n};\n\nexport const Input = {\n Unknown: 0,\n Trigger: 1,\n TrackPad: 2,\n Grip: 3,\n ApplicationMenu: 4,\n};\n\nexport default {\n Device,\n Input,\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/Sources/Rendering/Core/RenderWindowInteractor/Constants.js","'use strict';\n\n// Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It isn't worth it to make additional optimizations as in original.\n// Small size is preferable.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction adler32(adler, buf, len, pos) {\n var s1 = (adler & 0xffff) |0,\n s2 = ((adler >>> 16) & 0xffff) |0,\n n = 0;\n\n while (len !== 0) {\n // Set limit ~ twice less than 5552, to keep\n // s2 in 31-bits, because we force signed ints.\n // in other case %= will fail.\n n = len > 2000 ? 2000 : len;\n len -= n;\n\n do {\n s1 = (s1 + buf[pos++]) |0;\n s2 = (s2 + s1) |0;\n } while (--n);\n\n s1 %= 65521;\n s2 %= 65521;\n }\n\n return (s1 | (s2 << 16)) |0;\n}\n\n\nmodule.exports = adler32;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/pako/lib/zlib/adler32.js\n// module id = 284\n// module chunks = 1","'use strict';\n\n// Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// Use ordinary array, since untyped makes no boost here\nfunction makeTable() {\n var c, table = [];\n\n for (var n = 0; n < 256; n++) {\n c = n;\n for (var k = 0; k < 8; k++) {\n c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\n }\n table[n] = c;\n }\n\n return table;\n}\n\n// Create table on load. Just 255 signed longs. Not a problem.\nvar crcTable = makeTable();\n\n\nfunction crc32(crc, buf, len, pos) {\n var t = crcTable,\n end = pos + len;\n\n crc ^= -1;\n\n for (var i = pos; i < end; i++) {\n crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\n }\n\n return (crc ^ (-1)); // >>> 0;\n}\n\n\nmodule.exports = crc32;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/pako/lib/zlib/crc32.js\n// module id = 285\n// module chunks = 1","// String encode/decode helpers\n'use strict';\n\n\nvar utils = require('./common');\n\n\n// Quick check if we can use fast array to bin string conversion\n//\n// - apply(Array) can fail on Android 2.2\n// - apply(Uint8Array) can fail on iOS 5.1 Safari\n//\nvar STR_APPLY_OK = true;\nvar STR_APPLY_UIA_OK = true;\n\ntry { String.fromCharCode.apply(null, [ 0 ]); } catch (__) { STR_APPLY_OK = false; }\ntry { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; }\n\n\n// Table with utf8 lengths (calculated by first byte of sequence)\n// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,\n// because max possible codepoint is 0x10ffff\nvar _utf8len = new utils.Buf8(256);\nfor (var q = 0; q < 256; q++) {\n _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1);\n}\n_utf8len[254] = _utf8len[254] = 1; // Invalid sequence start\n\n\n// convert string to array (typed, when possible)\nexports.string2buf = function (str) {\n var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;\n\n // count binary size\n for (m_pos = 0; m_pos < str_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;\n }\n\n // allocate buffer\n buf = new utils.Buf8(buf_len);\n\n // convert\n for (i = 0, m_pos = 0; i < buf_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n if (c < 0x80) {\n /* one byte */\n buf[i++] = c;\n } else if (c < 0x800) {\n /* two bytes */\n buf[i++] = 0xC0 | (c >>> 6);\n buf[i++] = 0x80 | (c & 0x3f);\n } else if (c < 0x10000) {\n /* three bytes */\n buf[i++] = 0xE0 | (c >>> 12);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n } else {\n /* four bytes */\n buf[i++] = 0xf0 | (c >>> 18);\n buf[i++] = 0x80 | (c >>> 12 & 0x3f);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n }\n }\n\n return buf;\n};\n\n// Helper (used in 2 places)\nfunction buf2binstring(buf, len) {\n // use fallback for big arrays to avoid stack overflow\n if (len < 65537) {\n if ((buf.subarray && STR_APPLY_UIA_OK) || (!buf.subarray && STR_APPLY_OK)) {\n return String.fromCharCode.apply(null, utils.shrinkBuf(buf, len));\n }\n }\n\n var result = '';\n for (var i = 0; i < len; i++) {\n result += String.fromCharCode(buf[i]);\n }\n return result;\n}\n\n\n// Convert byte array to binary string\nexports.buf2binstring = function (buf) {\n return buf2binstring(buf, buf.length);\n};\n\n\n// Convert binary string (typed, when possible)\nexports.binstring2buf = function (str) {\n var buf = new utils.Buf8(str.length);\n for (var i = 0, len = buf.length; i < len; i++) {\n buf[i] = str.charCodeAt(i);\n }\n return buf;\n};\n\n\n// convert array to string\nexports.buf2string = function (buf, max) {\n var i, out, c, c_len;\n var len = max || buf.length;\n\n // Reserve max possible length (2 words per char)\n // NB: by unknown reasons, Array is significantly faster for\n // String.fromCharCode.apply than Uint16Array.\n var utf16buf = new Array(len * 2);\n\n for (out = 0, i = 0; i < len;) {\n c = buf[i++];\n // quick process ascii\n if (c < 0x80) { utf16buf[out++] = c; continue; }\n\n c_len = _utf8len[c];\n // skip 5 & 6 byte codes\n if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; }\n\n // apply mask on first byte\n c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;\n // join the rest\n while (c_len > 1 && i < len) {\n c = (c << 6) | (buf[i++] & 0x3f);\n c_len--;\n }\n\n // terminated by end of string?\n if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }\n\n if (c < 0x10000) {\n utf16buf[out++] = c;\n } else {\n c -= 0x10000;\n utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);\n utf16buf[out++] = 0xdc00 | (c & 0x3ff);\n }\n }\n\n return buf2binstring(utf16buf, out);\n};\n\n\n// Calculate max possible position in utf8 buffer,\n// that will not break sequence. If that's not possible\n// - (very small limits) return max size as is.\n//\n// buf[] - utf8 bytes array\n// max - length limit (mandatory);\nexports.utf8border = function (buf, max) {\n var pos;\n\n max = max || buf.length;\n if (max > buf.length) { max = buf.length; }\n\n // go back from last position, until start of sequence found\n pos = max - 1;\n while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }\n\n // Very small and broken sequence,\n // return max, because we should return something anyway.\n if (pos < 0) { return max; }\n\n // If we came to start of buffer - that means buffer is too small,\n // return max too.\n if (pos === 0) { return max; }\n\n return (pos + _utf8len[buf[pos]] > max) ? pos : max;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/pako/lib/utils/strings.js\n// module id = 286\n// module chunks = 1","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction ZStream() {\n /* next input byte */\n this.input = null; // JS specific, because we have no pointers\n this.next_in = 0;\n /* number of bytes available at input */\n this.avail_in = 0;\n /* total number of input bytes read so far */\n this.total_in = 0;\n /* next output byte should be put there */\n this.output = null; // JS specific, because we have no pointers\n this.next_out = 0;\n /* remaining free space at output */\n this.avail_out = 0;\n /* total number of bytes output so far */\n this.total_out = 0;\n /* last error message, NULL if no error */\n this.msg = ''/*Z_NULL*/;\n /* not visible by applications */\n this.state = null;\n /* best guess about the data type: binary or text */\n this.data_type = 2/*Z_UNKNOWN*/;\n /* adler32 value of the uncompressed data */\n this.adler = 0;\n}\n\nmodule.exports = ZStream;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/pako/lib/zlib/zstream.js\n// module id = 287\n// module chunks = 1","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nmodule.exports = {\n\n /* Allowed flush values; see deflate() and inflate() below for details */\n Z_NO_FLUSH: 0,\n Z_PARTIAL_FLUSH: 1,\n Z_SYNC_FLUSH: 2,\n Z_FULL_FLUSH: 3,\n Z_FINISH: 4,\n Z_BLOCK: 5,\n Z_TREES: 6,\n\n /* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n Z_OK: 0,\n Z_STREAM_END: 1,\n Z_NEED_DICT: 2,\n Z_ERRNO: -1,\n Z_STREAM_ERROR: -2,\n Z_DATA_ERROR: -3,\n //Z_MEM_ERROR: -4,\n Z_BUF_ERROR: -5,\n //Z_VERSION_ERROR: -6,\n\n /* compression levels */\n Z_NO_COMPRESSION: 0,\n Z_BEST_SPEED: 1,\n Z_BEST_COMPRESSION: 9,\n Z_DEFAULT_COMPRESSION: -1,\n\n\n Z_FILTERED: 1,\n Z_HUFFMAN_ONLY: 2,\n Z_RLE: 3,\n Z_FIXED: 4,\n Z_DEFAULT_STRATEGY: 0,\n\n /* Possible values of the data_type field (though see inflate()) */\n Z_BINARY: 0,\n Z_TEXT: 1,\n //Z_ASCII: 1, // = Z_TEXT (deprecated)\n Z_UNKNOWN: 2,\n\n /* The deflate compression method */\n Z_DEFLATED: 8\n //Z_NULL: null // Use -1 or null inline, depending on var type\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/pako/lib/zlib/constants.js\n// module id = 288\n// module chunks = 1","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/isarray/index.js\n// module id = 289\n// module chunks = 1","/*\n * This file is used by module bundlers (browserify/webpack/etc) when\n * including a stream implementation. We use \"readable-stream\" to get a\n * consistent behavior between nodejs versions but bundlers often have a shim\n * for \"stream\". Using this shim greatly improve the compatibility and greatly\n * reduce the final size of the bundle (only one stream implementation, not\n * two).\n */\nmodule.exports = require(\"stream\");\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/jszip/lib/readable-stream-browser.js\n// module id = 290\n// module chunks = 1","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar processNextTick = require('process-nextick-args');\n/**/\n\nmodule.exports = Readable;\n\n/**/\nvar isArray = require('isarray');\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n// TODO(bmeurer): Change this back to const once hole checks are\n// properly optimized away early in Ignition+TurboFan.\n/**/\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/**/\n\n/**/\nvar util = require('core-util-is');\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') {\n return emitter.prependListener(event, fn);\n } else {\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n }\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n processNextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, unpipeInfo);\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n processNextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n processNextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var state = this._readableState;\n var paused = false;\n\n var self = this;\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) self.push(chunk);\n }\n\n self.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = self.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], self.emit.bind(self, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n self._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return self;\n};\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n processNextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction forEach(xs, f) {\n for (var i = 0, l = xs.length; i < l; i++) {\n f(xs[i], i);\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/readable-stream/lib/_stream_readable.js\n// module id = 291\n// module chunks = 1","module.exports = require('events').EventEmitter;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/readable-stream/lib/internal/streams/stream-browser.js\n// module id = 292\n// module chunks = 1","'use strict';\n\n/**/\n\nvar processNextTick = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {\n processNextTick(emitErrorNT, this, err);\n }\n return;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n processNextTick(emitErrorNT, _this, err);\n if (_this._writableState) {\n _this._writableState.errorEmitted = true;\n }\n } else if (cb) {\n cb(err);\n }\n });\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/readable-stream/lib/internal/streams/destroy.js\n// module id = 293\n// module chunks = 1","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return -1;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// UTF-8 replacement characters ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd'.repeat(p);\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd'.repeat(p + 1);\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd'.repeat(p + 2);\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character for each buffered byte of a (partial)\n// character needs to be added to the output.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd'.repeat(this.lastTotal - this.lastNeed);\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/string_decoder/lib/string_decoder.js\n// module id = 294\n// module chunks = 1","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/**/\nvar util = require('core-util-is');\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(Transform, Duplex);\n\nfunction TransformState(stream) {\n this.afterTransform = function (er, data) {\n return afterTransform(stream, er, data);\n };\n\n this.needTransform = false;\n this.transforming = false;\n this.writecb = null;\n this.writechunk = null;\n this.writeencoding = null;\n}\n\nfunction afterTransform(stream, er, data) {\n var ts = stream._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return stream.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data !== null && data !== undefined) stream.push(data);\n\n cb(er);\n\n var rs = stream._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n stream._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = new TransformState(this);\n\n var stream = this;\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.once('prefinish', function () {\n if (typeof this._flush === 'function') this._flush(function (er, data) {\n done(stream, er, data);\n });else done(stream);\n });\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data !== null && data !== undefined) stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n var ws = stream._writableState;\n var ts = stream._transformState;\n\n if (ws.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (ts.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/readable-stream/lib/_stream_transform.js\n// module id = 295\n// module chunks = 1","'use strict';\nvar utils = require('./utils');\nvar support = require('./support');\n// private property\nvar _keyStr = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n\n\n// public method for encoding\nexports.encode = function(input) {\n var output = [];\n var chr1, chr2, chr3, enc1, enc2, enc3, enc4;\n var i = 0, len = input.length, remainingBytes = len;\n\n var isArray = utils.getTypeOf(input) !== \"string\";\n while (i < input.length) {\n remainingBytes = len - i;\n\n if (!isArray) {\n chr1 = input.charCodeAt(i++);\n chr2 = i < len ? input.charCodeAt(i++) : 0;\n chr3 = i < len ? input.charCodeAt(i++) : 0;\n } else {\n chr1 = input[i++];\n chr2 = i < len ? input[i++] : 0;\n chr3 = i < len ? input[i++] : 0;\n }\n\n enc1 = chr1 >> 2;\n enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);\n enc3 = remainingBytes > 1 ? (((chr2 & 15) << 2) | (chr3 >> 6)) : 64;\n enc4 = remainingBytes > 2 ? (chr3 & 63) : 64;\n\n output.push(_keyStr.charAt(enc1) + _keyStr.charAt(enc2) + _keyStr.charAt(enc3) + _keyStr.charAt(enc4));\n\n }\n\n return output.join(\"\");\n};\n\n// public method for decoding\nexports.decode = function(input) {\n var chr1, chr2, chr3;\n var enc1, enc2, enc3, enc4;\n var i = 0, resultIndex = 0;\n\n var dataUrlPrefix = \"data:\";\n\n if (input.substr(0, dataUrlPrefix.length) === dataUrlPrefix) {\n // This is a common error: people give a data url\n // (data:image/png;base64,iVBOR...) with a {base64: true} and\n // wonders why things don't work.\n // We can detect that the string input looks like a data url but we\n // *can't* be sure it is one: removing everything up to the comma would\n // be too dangerous.\n throw new Error(\"Invalid base64 input, it looks like a data url.\");\n }\n\n input = input.replace(/[^A-Za-z0-9\\+\\/\\=]/g, \"\");\n\n var totalLength = input.length * 3 / 4;\n if(input.charAt(input.length - 1) === _keyStr.charAt(64)) {\n totalLength--;\n }\n if(input.charAt(input.length - 2) === _keyStr.charAt(64)) {\n totalLength--;\n }\n if (totalLength % 1 !== 0) {\n // totalLength is not an integer, the length does not match a valid\n // base64 content. That can happen if:\n // - the input is not a base64 content\n // - the input is *almost* a base64 content, with a extra chars at the\n // beginning or at the end\n // - the input uses a base64 variant (base64url for example)\n throw new Error(\"Invalid base64 input, bad content length.\");\n }\n var output;\n if (support.uint8array) {\n output = new Uint8Array(totalLength|0);\n } else {\n output = new Array(totalLength|0);\n }\n\n while (i < input.length) {\n\n enc1 = _keyStr.indexOf(input.charAt(i++));\n enc2 = _keyStr.indexOf(input.charAt(i++));\n enc3 = _keyStr.indexOf(input.charAt(i++));\n enc4 = _keyStr.indexOf(input.charAt(i++));\n\n chr1 = (enc1 << 2) | (enc2 >> 4);\n chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);\n chr3 = ((enc3 & 3) << 6) | enc4;\n\n output[resultIndex++] = chr1;\n\n if (enc3 !== 64) {\n output[resultIndex++] = chr2;\n }\n if (enc4 !== 64) {\n output[resultIndex++] = chr3;\n }\n\n }\n\n return output;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/jszip/lib/base64.js\n// module id = 296\n// module chunks = 1","var core = module.exports = {version: '2.3.0'};\nif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/jszip/node_modules/core-js/library/modules/_core.js\n// module id = 297\n// module chunks = 1","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function(fn, that, length){\n aFunction(fn);\n if(that === undefined)return fn;\n switch(length){\n case 1: return function(a){\n return fn.call(that, a);\n };\n case 2: return function(a, b){\n return fn.call(that, a, b);\n };\n case 3: return function(a, b, c){\n return fn.call(that, a, b, c);\n };\n }\n return function(/* ...args */){\n return fn.apply(that, arguments);\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/jszip/node_modules/core-js/library/modules/_ctx.js\n// module id = 298\n// module chunks = 1","module.exports = function(exec){\n try {\n return !!exec();\n } catch(e){\n return true;\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/jszip/node_modules/core-js/library/modules/_fails.js\n// module id = 299\n// module chunks = 1","var isObject = require('./_is-object')\n , document = require('./_global').document\n // in old IE typeof document.createElement is 'object'\n , is = isObject(document) && isObject(document.createElement);\nmodule.exports = function(it){\n return is ? document.createElement(it) : {};\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/jszip/node_modules/core-js/library/modules/_dom-create.js\n// module id = 300\n// module chunks = 1","'use strict';\n\nvar utils = require('../utils');\nvar ConvertWorker = require('./ConvertWorker');\nvar GenericWorker = require('./GenericWorker');\nvar base64 = require('../base64');\nvar support = require(\"../support\");\nvar external = require(\"../external\");\n\nvar NodejsStreamOutputAdapter = null;\nif (support.nodestream) {\n try {\n NodejsStreamOutputAdapter = require('../nodejs/NodejsStreamOutputAdapter');\n } catch(e) {}\n}\n\n/**\n * Apply the final transformation of the data. If the user wants a Blob for\n * example, it's easier to work with an U8intArray and finally do the\n * ArrayBuffer/Blob conversion.\n * @param {String} resultType the name of the final type\n * @param {String} chunkType the type of the data in the given array.\n * @param {Array} dataArray the array containing the data chunks to concatenate\n * @param {String|Uint8Array|Buffer} content the content to transform\n * @param {String} mimeType the mime type of the content, if applicable.\n * @return {String|Uint8Array|ArrayBuffer|Buffer|Blob} the content in the right format.\n */\nfunction transformZipOutput(resultType, chunkType, dataArray, mimeType) {\n var content = null;\n switch(resultType) {\n case \"blob\" :\n return utils.newBlob(dataArray, mimeType);\n case \"base64\" :\n content = concat(chunkType, dataArray);\n return base64.encode(content);\n default :\n content = concat(chunkType, dataArray);\n return utils.transformTo(resultType, content);\n }\n}\n\n/**\n * Concatenate an array of data of the given type.\n * @param {String} type the type of the data in the given array.\n * @param {Array} dataArray the array containing the data chunks to concatenate\n * @return {String|Uint8Array|Buffer} the concatenated data\n * @throws Error if the asked type is unsupported\n */\nfunction concat (type, dataArray) {\n var i, index = 0, res = null, totalLength = 0;\n for(i = 0; i < dataArray.length; i++) {\n totalLength += dataArray[i].length;\n }\n switch(type) {\n case \"string\":\n return dataArray.join(\"\");\n case \"array\":\n return Array.prototype.concat.apply([], dataArray);\n case \"uint8array\":\n res = new Uint8Array(totalLength);\n for(i = 0; i < dataArray.length; i++) {\n res.set(dataArray[i], index);\n index += dataArray[i].length;\n }\n return res;\n case \"nodebuffer\":\n return Buffer.concat(dataArray);\n default:\n throw new Error(\"concat : unsupported type '\" + type + \"'\");\n }\n}\n\n/**\n * Listen a StreamHelper, accumulate its content and concatenate it into a\n * complete block.\n * @param {StreamHelper} helper the helper to use.\n * @param {Function} updateCallback a callback called on each update. Called\n * with one arg :\n * - the metadata linked to the update received.\n * @return Promise the promise for the accumulation.\n */\nfunction accumulate(helper, updateCallback) {\n return new external.Promise(function (resolve, reject){\n var dataArray = [];\n var chunkType = helper._internalType,\n resultType = helper._outputType,\n mimeType = helper._mimeType;\n helper\n .on('data', function (data, meta) {\n dataArray.push(data);\n if(updateCallback) {\n updateCallback(meta);\n }\n })\n .on('error', function(err) {\n dataArray = [];\n reject(err);\n })\n .on('end', function (){\n try {\n var result = transformZipOutput(resultType, chunkType, dataArray, mimeType);\n resolve(result);\n } catch (e) {\n reject(e);\n }\n dataArray = [];\n })\n .resume();\n });\n}\n\n/**\n * An helper to easily use workers outside of JSZip.\n * @constructor\n * @param {Worker} worker the worker to wrap\n * @param {String} outputType the type of data expected by the use\n * @param {String} mimeType the mime type of the content, if applicable.\n */\nfunction StreamHelper(worker, outputType, mimeType) {\n var internalType = outputType;\n switch(outputType) {\n case \"blob\":\n internalType = \"arraybuffer\";\n break;\n case \"arraybuffer\":\n internalType = \"uint8array\";\n break;\n case \"base64\":\n internalType = \"string\";\n break;\n }\n\n try {\n // the type used internally\n this._internalType = internalType;\n // the type used to output results\n this._outputType = outputType;\n // the mime type\n this._mimeType = mimeType;\n utils.checkSupport(internalType);\n this._worker = worker.pipe(new ConvertWorker(internalType));\n // the last workers can be rewired without issues but we need to\n // prevent any updates on previous workers.\n worker.lock();\n } catch(e) {\n this._worker = new GenericWorker(\"error\");\n this._worker.error(e);\n }\n}\n\nStreamHelper.prototype = {\n /**\n * Listen a StreamHelper, accumulate its content and concatenate it into a\n * complete block.\n * @param {Function} updateCb the update callback.\n * @return Promise the promise for the accumulation.\n */\n accumulate : function (updateCb) {\n return accumulate(this, updateCb);\n },\n /**\n * Add a listener on an event triggered on a stream.\n * @param {String} evt the name of the event\n * @param {Function} fn the listener\n * @return {StreamHelper} the current helper.\n */\n on : function (evt, fn) {\n var self = this;\n\n if(evt === \"data\") {\n this._worker.on(evt, function (chunk) {\n fn.call(self, chunk.data, chunk.meta);\n });\n } else {\n this._worker.on(evt, function () {\n utils.delay(fn, arguments, self);\n });\n }\n return this;\n },\n /**\n * Resume the flow of chunks.\n * @return {StreamHelper} the current helper.\n */\n resume : function () {\n utils.delay(this._worker.resume, [], this._worker);\n return this;\n },\n /**\n * Pause the flow of chunks.\n * @return {StreamHelper} the current helper.\n */\n pause : function () {\n this._worker.pause();\n return this;\n },\n /**\n * Return a nodejs stream for this helper.\n * @param {Function} updateCb the update callback.\n * @return {NodejsStreamOutputAdapter} the nodejs stream.\n */\n toNodejsStream : function (updateCb) {\n utils.checkSupport(\"nodestream\");\n if (this._outputType !== \"nodebuffer\") {\n // an object stream containing blob/arraybuffer/uint8array/string\n // is strange and I don't know if it would be useful.\n // I you find this comment and have a good usecase, please open a\n // bug report !\n throw new Error(this._outputType + \" is not supported by this method\");\n }\n\n return new NodejsStreamOutputAdapter(this, {\n objectMode : this._outputType !== \"nodebuffer\"\n }, updateCb);\n }\n};\n\n\nmodule.exports = StreamHelper;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/jszip/lib/stream/StreamHelper.js\n// module id = 301\n// module chunks = 1","'use strict';\nexports.base64 = false;\nexports.binary = false;\nexports.dir = false;\nexports.createFolders = true;\nexports.date = null;\nexports.compression = null;\nexports.compressionOptions = null;\nexports.comment = null;\nexports.unixPermissions = null;\nexports.dosPermissions = null;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/jszip/lib/defaults.js\n// module id = 302\n// module chunks = 1","'use strict';\n\nvar utils = require('../utils');\nvar GenericWorker = require('./GenericWorker');\n\n// the size of the generated chunks\n// TODO expose this as a public variable\nvar DEFAULT_BLOCK_SIZE = 16 * 1024;\n\n/**\n * A worker that reads a content and emits chunks.\n * @constructor\n * @param {Promise} dataP the promise of the data to split\n */\nfunction DataWorker(dataP) {\n GenericWorker.call(this, \"DataWorker\");\n var self = this;\n this.dataIsReady = false;\n this.index = 0;\n this.max = 0;\n this.data = null;\n this.type = \"\";\n\n this._tickScheduled = false;\n\n dataP.then(function (data) {\n self.dataIsReady = true;\n self.data = data;\n self.max = data && data.length || 0;\n self.type = utils.getTypeOf(data);\n if(!self.isPaused) {\n self._tickAndRepeat();\n }\n }, function (e) {\n self.error(e);\n });\n}\n\nutils.inherits(DataWorker, GenericWorker);\n\n/**\n * @see GenericWorker.cleanUp\n */\nDataWorker.prototype.cleanUp = function () {\n GenericWorker.prototype.cleanUp.call(this);\n this.data = null;\n};\n\n/**\n * @see GenericWorker.resume\n */\nDataWorker.prototype.resume = function () {\n if(!GenericWorker.prototype.resume.call(this)) {\n return false;\n }\n\n if (!this._tickScheduled && this.dataIsReady) {\n this._tickScheduled = true;\n utils.delay(this._tickAndRepeat, [], this);\n }\n return true;\n};\n\n/**\n * Trigger a tick a schedule an other call to this function.\n */\nDataWorker.prototype._tickAndRepeat = function() {\n this._tickScheduled = false;\n if(this.isPaused || this.isFinished) {\n return;\n }\n this._tick();\n if(!this.isFinished) {\n utils.delay(this._tickAndRepeat, [], this);\n this._tickScheduled = true;\n }\n};\n\n/**\n * Read and push a chunk.\n */\nDataWorker.prototype._tick = function() {\n\n if(this.isPaused || this.isFinished) {\n return false;\n }\n\n var size = DEFAULT_BLOCK_SIZE;\n var data = null, nextIndex = Math.min(this.max, this.index + size);\n if (this.index >= this.max) {\n // EOF\n return this.end();\n } else {\n switch(this.type) {\n case \"string\":\n data = this.data.substring(this.index, nextIndex);\n break;\n case \"uint8array\":\n data = this.data.subarray(this.index, nextIndex);\n break;\n case \"array\":\n case \"nodebuffer\":\n data = this.data.slice(this.index, nextIndex);\n break;\n }\n this.index = nextIndex;\n return this.push({\n data : data,\n meta : {\n percent : this.max ? this.index / this.max * 100 : 0\n }\n });\n }\n};\n\nmodule.exports = DataWorker;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/jszip/lib/stream/DataWorker.js\n// module id = 303\n// module chunks = 1","'use strict';\n\nvar utils = require('../utils');\nvar GenericWorker = require('./GenericWorker');\n\n/**\n * A worker which calculate the total length of the data flowing through.\n * @constructor\n * @param {String} propName the name used to expose the length\n */\nfunction DataLengthProbe(propName) {\n GenericWorker.call(this, \"DataLengthProbe for \" + propName);\n this.propName = propName;\n this.withStreamInfo(propName, 0);\n}\nutils.inherits(DataLengthProbe, GenericWorker);\n\n/**\n * @see GenericWorker.processChunk\n */\nDataLengthProbe.prototype.processChunk = function (chunk) {\n if(chunk) {\n var length = this.streamInfo[this.propName] || 0;\n this.streamInfo[this.propName] = length + chunk.data.length;\n }\n GenericWorker.prototype.processChunk.call(this, chunk);\n};\nmodule.exports = DataLengthProbe;\n\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/jszip/lib/stream/DataLengthProbe.js\n// module id = 304\n// module chunks = 1","'use strict';\n\nvar GenericWorker = require('./GenericWorker');\nvar crc32 = require('../crc32');\nvar utils = require('../utils');\n\n/**\n * A worker which calculate the crc32 of the data flowing through.\n * @constructor\n */\nfunction Crc32Probe() {\n GenericWorker.call(this, \"Crc32Probe\");\n this.withStreamInfo(\"crc32\", 0);\n}\nutils.inherits(Crc32Probe, GenericWorker);\n\n/**\n * @see GenericWorker.processChunk\n */\nCrc32Probe.prototype.processChunk = function (chunk) {\n this.streamInfo.crc32 = crc32(chunk.data, this.streamInfo.crc32 || 0);\n this.push(chunk);\n};\nmodule.exports = Crc32Probe;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/jszip/lib/stream/Crc32Probe.js\n// module id = 305\n// module chunks = 1","'use strict';\n\nvar GenericWorker = require(\"./stream/GenericWorker\");\n\nexports.STORE = {\n magic: \"\\x00\\x00\",\n compressWorker : function (compressionOptions) {\n return new GenericWorker(\"STORE compression\");\n },\n uncompressWorker : function () {\n return new GenericWorker(\"STORE decompression\");\n }\n};\nexports.DEFLATE = require('./flate');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/jszip/lib/compressions.js\n// module id = 306\n// module chunks = 1","'use strict';\nexports.LOCAL_FILE_HEADER = \"PK\\x03\\x04\";\nexports.CENTRAL_FILE_HEADER = \"PK\\x01\\x02\";\nexports.CENTRAL_DIRECTORY_END = \"PK\\x05\\x06\";\nexports.ZIP64_CENTRAL_DIRECTORY_LOCATOR = \"PK\\x06\\x07\";\nexports.ZIP64_CENTRAL_DIRECTORY_END = \"PK\\x06\\x06\";\nexports.DATA_DESCRIPTOR = \"PK\\x07\\x08\";\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/jszip/lib/signature.js\n// module id = 307\n// module chunks = 1","'use strict';\n\nvar utils = require('../utils');\nvar support = require('../support');\nvar ArrayReader = require('./ArrayReader');\nvar StringReader = require('./StringReader');\nvar NodeBufferReader = require('./NodeBufferReader');\nvar Uint8ArrayReader = require('./Uint8ArrayReader');\n\n/**\n * Create a reader adapted to the data.\n * @param {String|ArrayBuffer|Uint8Array|Buffer} data the data to read.\n * @return {DataReader} the data reader.\n */\nmodule.exports = function (data) {\n var type = utils.getTypeOf(data);\n utils.checkSupport(type);\n if (type === \"string\" && !support.uint8array) {\n return new StringReader(data);\n }\n if (type === \"nodebuffer\") {\n return new NodeBufferReader(data);\n }\n if (support.uint8array) {\n return new Uint8ArrayReader(utils.transformTo(\"uint8array\", data));\n }\n return new ArrayReader(utils.transformTo(\"array\", data));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/jszip/lib/reader/readerFor.js\n// module id = 308\n// module chunks = 1","'use strict';\nvar DataReader = require('./DataReader');\nvar utils = require('../utils');\n\nfunction ArrayReader(data) {\n DataReader.call(this, data);\n\tfor(var i = 0; i < this.data.length; i++) {\n\t\tdata[i] = data[i] & 0xFF;\n\t}\n}\nutils.inherits(ArrayReader, DataReader);\n/**\n * @see DataReader.byteAt\n */\nArrayReader.prototype.byteAt = function(i) {\n return this.data[this.zero + i];\n};\n/**\n * @see DataReader.lastIndexOfSignature\n */\nArrayReader.prototype.lastIndexOfSignature = function(sig) {\n var sig0 = sig.charCodeAt(0),\n sig1 = sig.charCodeAt(1),\n sig2 = sig.charCodeAt(2),\n sig3 = sig.charCodeAt(3);\n for (var i = this.length - 4; i >= 0; --i) {\n if (this.data[i] === sig0 && this.data[i + 1] === sig1 && this.data[i + 2] === sig2 && this.data[i + 3] === sig3) {\n return i - this.zero;\n }\n }\n\n return -1;\n};\n/**\n * @see DataReader.readAndCheckSignature\n */\nArrayReader.prototype.readAndCheckSignature = function (sig) {\n var sig0 = sig.charCodeAt(0),\n sig1 = sig.charCodeAt(1),\n sig2 = sig.charCodeAt(2),\n sig3 = sig.charCodeAt(3),\n data = this.readData(4);\n return sig0 === data[0] && sig1 === data[1] && sig2 === data[2] && sig3 === data[3];\n};\n/**\n * @see DataReader.readData\n */\nArrayReader.prototype.readData = function(size) {\n this.checkOffset(size);\n if(size === 0) {\n return [];\n }\n var result = this.data.slice(this.zero + this.index, this.zero + this.index + size);\n this.index += size;\n return result;\n};\nmodule.exports = ArrayReader;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/jszip/lib/reader/ArrayReader.js\n// module id = 309\n// module chunks = 1","'use strict';\nvar utils = require('../utils');\n\nfunction DataReader(data) {\n this.data = data; // type : see implementation\n this.length = data.length;\n this.index = 0;\n this.zero = 0;\n}\nDataReader.prototype = {\n /**\n * Check that the offset will not go too far.\n * @param {string} offset the additional offset to check.\n * @throws {Error} an Error if the offset is out of bounds.\n */\n checkOffset: function(offset) {\n this.checkIndex(this.index + offset);\n },\n /**\n * Check that the specifed index will not be too far.\n * @param {string} newIndex the index to check.\n * @throws {Error} an Error if the index is out of bounds.\n */\n checkIndex: function(newIndex) {\n if (this.length < this.zero + newIndex || newIndex < 0) {\n throw new Error(\"End of data reached (data length = \" + this.length + \", asked index = \" + (newIndex) + \"). Corrupted zip ?\");\n }\n },\n /**\n * Change the index.\n * @param {number} newIndex The new index.\n * @throws {Error} if the new index is out of the data.\n */\n setIndex: function(newIndex) {\n this.checkIndex(newIndex);\n this.index = newIndex;\n },\n /**\n * Skip the next n bytes.\n * @param {number} n the number of bytes to skip.\n * @throws {Error} if the new index is out of the data.\n */\n skip: function(n) {\n this.setIndex(this.index + n);\n },\n /**\n * Get the byte at the specified index.\n * @param {number} i the index to use.\n * @return {number} a byte.\n */\n byteAt: function(i) {\n // see implementations\n },\n /**\n * Get the next number with a given byte size.\n * @param {number} size the number of bytes to read.\n * @return {number} the corresponding number.\n */\n readInt: function(size) {\n var result = 0,\n i;\n this.checkOffset(size);\n for (i = this.index + size - 1; i >= this.index; i--) {\n result = (result << 8) + this.byteAt(i);\n }\n this.index += size;\n return result;\n },\n /**\n * Get the next string with a given byte size.\n * @param {number} size the number of bytes to read.\n * @return {string} the corresponding string.\n */\n readString: function(size) {\n return utils.transformTo(\"string\", this.readData(size));\n },\n /**\n * Get raw data without conversion, bytes.\n * @param {number} size the number of bytes to read.\n * @return {Object} the raw data, implementation specific.\n */\n readData: function(size) {\n // see implementations\n },\n /**\n * Find the last occurence of a zip signature (4 bytes).\n * @param {string} sig the signature to find.\n * @return {number} the index of the last occurence, -1 if not found.\n */\n lastIndexOfSignature: function(sig) {\n // see implementations\n },\n /**\n * Read the signature (4 bytes) at the current position and compare it with sig.\n * @param {string} sig the expected signature\n * @return {boolean} true if the signature matches, false otherwise.\n */\n readAndCheckSignature: function(sig) {\n // see implementations\n },\n /**\n * Get the next date.\n * @return {Date} the date.\n */\n readDate: function() {\n var dostime = this.readInt(4);\n return new Date(Date.UTC(\n ((dostime >> 25) & 0x7f) + 1980, // year\n ((dostime >> 21) & 0x0f) - 1, // month\n (dostime >> 16) & 0x1f, // day\n (dostime >> 11) & 0x1f, // hour\n (dostime >> 5) & 0x3f, // minute\n (dostime & 0x1f) << 1)); // second\n }\n};\nmodule.exports = DataReader;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/jszip/lib/reader/DataReader.js\n// module id = 310\n// module chunks = 1","'use strict';\nvar ArrayReader = require('./ArrayReader');\nvar utils = require('../utils');\n\nfunction Uint8ArrayReader(data) {\n ArrayReader.call(this, data);\n}\nutils.inherits(Uint8ArrayReader, ArrayReader);\n/**\n * @see DataReader.readData\n */\nUint8ArrayReader.prototype.readData = function(size) {\n this.checkOffset(size);\n if(size === 0) {\n // in IE10, when using subarray(idx, idx), we get the array [0x00] instead of [].\n return new Uint8Array(0);\n }\n var result = this.data.subarray(this.zero + this.index, this.zero + this.index + size);\n this.index += size;\n return result;\n};\nmodule.exports = Uint8ArrayReader;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/jszip/lib/reader/Uint8ArrayReader.js\n// module id = 311\n// module chunks = 1","import macro from 'vtk.js/Sources/macro';\nimport vtkDataArray from 'vtk.js/Sources/Common/Core/DataArray';\nimport vtkPolyData from 'vtk.js/Sources/Common/DataModel/PolyData';\nimport vtkMatrixBuilder from 'vtk.js/Sources/Common/Core/MatrixBuilder';\n\n// ----------------------------------------------------------------------------\n// vtkCubeSource methods\n// ----------------------------------------------------------------------------\n\nfunction vtkCubeSource(publicAPI, model) {\n // Set our className\n model.classHierarchy.push('vtkCubeSource');\n\n function requestData(inData, outData) {\n if (model.deleted) {\n return;\n }\n\n const polyData = vtkPolyData.newInstance();\n outData[0] = polyData;\n\n const numberOfPolys = 6;\n const numberOfPoints = 24;\n\n // Define points\n const points = new window[model.pointType](numberOfPoints * 3);\n polyData.getPoints().setData(points, 3);\n\n const normals = new window[model.pointType](numberOfPoints * 3);\n const normalArray = vtkDataArray.newInstance({\n name: 'Normals',\n values: normals,\n numberOfComponents: 3,\n });\n polyData.getPointData().setNormals(normalArray);\n\n let tcdim = 2;\n if (model.generate3DTextureCoordinates === true) {\n tcdim = 3;\n }\n\n const textureCoords = new window[model.pointType](numberOfPoints * tcdim);\n const tcoords = vtkDataArray.newInstance({\n name: 'TextureCoordinates',\n values: textureCoords,\n numberOfComponents: tcdim,\n });\n polyData.getPointData().setTCoords(tcoords);\n\n const x = [0.0, 0.0, 0.0];\n const n = [0.0, 0.0, 0.0];\n const tc = [0.0, 0.0];\n\n let pointIndex = 0;\n\n x[0] = -model.xLength / 2.0;\n n[0] = -1.0;\n n[1] = 0.0;\n n[2] = 0.0;\n for (let i = 0; i < 2; i++) {\n x[1] = -model.yLength / 2.0;\n\n for (let j = 0; j < 2; j++) {\n tc[1] = x[1] + 0.5;\n x[2] = -model.zLength / 2.0;\n\n for (let k = 0; k < 2; k++) {\n tc[0] = (x[2] + 0.5) * (1 - 2 * i);\n points[pointIndex * 3] = x[0];\n points[pointIndex * 3 + 1] = x[1];\n points[pointIndex * 3 + 2] = x[2];\n\n normals[pointIndex * 3] = n[0];\n normals[pointIndex * 3 + 1] = n[1];\n normals[pointIndex * 3 + 2] = n[2];\n\n if (tcdim === 2) {\n textureCoords[pointIndex * tcdim] = tc[0];\n textureCoords[pointIndex * tcdim + 1] = tc[1];\n } else {\n textureCoords[pointIndex * tcdim] = 2 * i - 1;\n textureCoords[pointIndex * tcdim + 1] = 2 * j - 1;\n textureCoords[pointIndex * tcdim + 2] = 2 * k - 1;\n }\n\n pointIndex++;\n\n x[2] += model.zLength;\n }\n x[1] += model.yLength;\n }\n x[0] += model.xLength;\n n[0] += 2.0;\n }\n\n x[1] = -model.yLength / 2.0;\n n[1] = -1.0;\n n[0] = 0.0;\n n[2] = 0.0;\n for (let i = 0; i < 2; i++) {\n x[0] = -model.xLength / 2.0;\n\n for (let j = 0; j < 2; j++) {\n tc[0] = (x[0] + 0.5) * (2 * i - 1);\n x[2] = -model.zLength / 2.0;\n\n for (let k = 0; k < 2; k++) {\n tc[1] = (x[2] + 0.5) * -1;\n\n points[pointIndex * 3] = x[0];\n points[pointIndex * 3 + 1] = x[1];\n points[pointIndex * 3 + 2] = x[2];\n\n normals[pointIndex * 3] = n[0];\n normals[pointIndex * 3 + 1] = n[1];\n normals[pointIndex * 3 + 2] = n[2];\n\n if (tcdim === 2) {\n textureCoords[pointIndex * tcdim] = tc[0];\n textureCoords[pointIndex * tcdim + 1] = tc[1];\n } else {\n textureCoords[pointIndex * tcdim] = 2 * j - 1;\n textureCoords[pointIndex * tcdim + 1] = 2 * i - 1;\n textureCoords[pointIndex * tcdim + 2] = 2 * k - 1;\n }\n\n pointIndex++;\n x[2] += model.zLength;\n }\n x[0] += model.xLength;\n }\n x[1] += model.yLength;\n n[1] += 2.0;\n }\n\n x[2] = -model.zLength / 2.0;\n n[2] = -1.0;\n n[0] = 0.0;\n n[1] = 0.0;\n for (let i = 0; i < 2; i++) {\n x[1] = -model.yLength / 2.0;\n\n for (let j = 0; j < 2; j++) {\n tc[1] = x[1] + 0.5;\n x[0] = -model.xLength / 2.0;\n\n for (let k = 0; k < 2; k++) {\n tc[0] = (x[0] + 0.5) * (2 * i - 1);\n\n points[pointIndex * 3] = x[0];\n points[pointIndex * 3 + 1] = x[1];\n points[pointIndex * 3 + 2] = x[2];\n\n normals[pointIndex * 3] = n[0];\n normals[pointIndex * 3 + 1] = n[1];\n normals[pointIndex * 3 + 2] = n[2];\n\n if (tcdim === 2) {\n textureCoords[pointIndex * tcdim] = tc[0];\n textureCoords[pointIndex * tcdim + 1] = tc[1];\n } else {\n textureCoords[pointIndex * tcdim] = 2 * k - 1;\n textureCoords[pointIndex * tcdim + 1] = 2 * j - 1;\n textureCoords[pointIndex * tcdim + 2] = 2 * i - 1;\n }\n\n pointIndex++;\n x[0] += model.xLength;\n }\n x[1] += model.yLength;\n }\n x[2] += model.zLength;\n n[2] += 2.0;\n }\n\n // Apply rotation to the points coordinates and normals\n vtkMatrixBuilder\n .buildFromDegree()\n .rotateX(model.rotations[0])\n .rotateY(model.rotations[1])\n .rotateZ(model.rotations[2])\n .apply(points)\n .apply(normals);\n\n // Apply transformation to the points coordinates\n vtkMatrixBuilder\n .buildFromRadian()\n .translate(...model.center)\n .apply(points);\n\n // Define quads\n const polys = new window[model.pointType](numberOfPolys * 5);\n polyData.getPolys().setData(polys, 1);\n\n let polyIndex = 0;\n\n polys[polyIndex++] = 4;\n polys[polyIndex++] = 0;\n polys[polyIndex++] = 1;\n polys[polyIndex++] = 3;\n polys[polyIndex++] = 2;\n\n polys[polyIndex++] = 4;\n polys[polyIndex++] = 4;\n polys[polyIndex++] = 6;\n polys[polyIndex++] = 7;\n polys[polyIndex++] = 5;\n\n polys[polyIndex++] = 4;\n polys[polyIndex++] = 8;\n polys[polyIndex++] = 10;\n polys[polyIndex++] = 11;\n polys[polyIndex++] = 9;\n\n polys[polyIndex++] = 4;\n polys[polyIndex++] = 12;\n polys[polyIndex++] = 13;\n polys[polyIndex++] = 15;\n polys[polyIndex++] = 14;\n\n polys[polyIndex++] = 4;\n polys[polyIndex++] = 16;\n polys[polyIndex++] = 18;\n polys[polyIndex++] = 19;\n polys[polyIndex++] = 17;\n\n polys[polyIndex++] = 4;\n polys[polyIndex++] = 20;\n polys[polyIndex++] = 21;\n polys[polyIndex++] = 23;\n polys[polyIndex] = 22;\n }\n\n publicAPI.setBounds = (...bounds) => {\n let boundsArray = [];\n\n if (Array.isArray(bounds[0])) {\n boundsArray = bounds[0];\n } else {\n for (let i = 0; i < bounds.length; i++) {\n boundsArray.push(bounds[i]);\n }\n }\n\n if (boundsArray.length !== 6) {\n return;\n }\n\n model.xLength = boundsArray[1] - boundsArray[0];\n model.yLength = boundsArray[3] - boundsArray[2];\n model.zLength = boundsArray[5] - boundsArray[4];\n model.center = [\n (boundsArray[0] + boundsArray[1]) / 2.0,\n (boundsArray[2] + boundsArray[3]) / 2.0,\n (boundsArray[4] + boundsArray[5]) / 2.0,\n ];\n };\n\n // Expose methods\n publicAPI.requestData = requestData;\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n xLength: 1.0,\n yLength: 1.0,\n zLength: 1.0,\n center: [0.0, 0.0, 0.0],\n rotations: [0.0, 0.0, 0.0],\n pointType: 'Float32Array',\n generate3DTextureCoordinates: false,\n};\n\n// ----------------------------------------------------------------------------\n\nexport function extend(publicAPI, model, initialValues = {}) {\n Object.assign(model, DEFAULT_VALUES, initialValues);\n\n // Build VTK API\n macro.obj(publicAPI, model);\n macro.setGet(publicAPI, model, [\n 'xLength',\n 'yLength',\n 'zLength',\n 'generate3DTextureCoordinates',\n ]);\n macro.setGetArray(publicAPI, model, ['center', 'rotations'], 3);\n\n macro.algo(publicAPI, model, 0, 1);\n vtkCubeSource(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\n\nexport const newInstance = macro.newInstance(extend, 'vtkCubeSource');\n\n// ----------------------------------------------------------------------------\n\nexport default { newInstance, extend };\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/Sources/Filters/Sources/CubeSource/index.js","import macro from 'vtk.js/Sources/macro';\nimport vtkPolyData from 'vtk.js/Sources/Common/DataModel/PolyData';\nimport vtkMatrixBuilder from 'vtk.js/Sources/Common/Core/MatrixBuilder';\n\n// ----------------------------------------------------------------------------\n// vtkConeSource methods\n// ----------------------------------------------------------------------------\n\nfunction vtkConeSource(publicAPI, model) {\n // Set our className\n model.classHierarchy.push('vtkConeSource');\n\n function requestData(inData, outData) {\n if (model.deleted) {\n return;\n }\n\n let dataset = outData[0];\n\n const angle = 2 * Math.PI / model.resolution;\n const xbot = -model.height / 2.0;\n const numberOfPoints = model.resolution + 1;\n const cellArraySize = 4 * model.resolution + 1 + model.resolution;\n\n // Points\n let pointIdx = 0;\n const points = new window[model.pointType](numberOfPoints * 3);\n\n // Cells\n let cellLocation = 0;\n const polys = new Uint32Array(cellArraySize);\n\n // Add summit point\n points[0] = model.height / 2.0;\n points[1] = 0.0;\n points[2] = 0.0;\n\n // Create bottom cell\n if (model.capping) {\n polys[cellLocation++] = model.resolution;\n }\n\n // Add all points\n for (let i = 0; i < model.resolution; i++) {\n pointIdx++;\n points[pointIdx * 3 + 0] = xbot;\n points[pointIdx * 3 + 1] = model.radius * Math.cos(i * angle);\n points[pointIdx * 3 + 2] = model.radius * Math.sin(i * angle);\n\n // Add points to bottom cell in reverse order\n if (model.capping) {\n polys[model.resolution - cellLocation++ + 1] = pointIdx;\n }\n }\n\n // Add all triangle cells\n for (let i = 0; i < model.resolution; i++) {\n polys[cellLocation++] = 3;\n polys[cellLocation++] = 0;\n polys[cellLocation++] = i + 1;\n polys[cellLocation++] = i + 2 > model.resolution ? 1 : i + 2;\n }\n\n // Apply tranformation to the points coordinates\n vtkMatrixBuilder\n .buildFromRadian()\n .translate(...model.center)\n .rotateFromDirections([1, 0, 0], model.direction)\n .apply(points);\n\n dataset = vtkPolyData.newInstance();\n dataset.getPoints().setData(points, 3);\n dataset.getPolys().setData(polys, 1);\n\n // Update output\n outData[0] = dataset;\n }\n\n // Expose methods\n publicAPI.requestData = requestData;\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n height: 1.0,\n radius: 0.5,\n resolution: 6,\n center: [0, 0, 0],\n direction: [1.0, 0.0, 0.0],\n capping: true,\n pointType: 'Float32Array',\n};\n\n// ----------------------------------------------------------------------------\n\nexport function extend(publicAPI, model, initialValues = {}) {\n Object.assign(model, DEFAULT_VALUES, initialValues);\n\n // Build VTK API\n macro.obj(publicAPI, model);\n macro.setGet(publicAPI, model, ['height', 'radius', 'resolution', 'capping']);\n macro.setGetArray(publicAPI, model, ['center', 'direction'], 3);\n macro.algo(publicAPI, model, 0, 1);\n vtkConeSource(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\n\nexport const newInstance = macro.newInstance(extend, 'vtkConeSource');\n\n// ----------------------------------------------------------------------------\n\nexport default { newInstance, extend };\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vtk.js/Sources/Filters/Sources/ConeSource/index.js","/*\n * Management application for showing isosurfaces of the local universe\n * and interactivity with several datasets.\n *\n * Copyright(C) 2017-2018 Guilhem Lavaux. Inspired from VTK Examples.\n */\n'use strict';\nimport { request as ajax } from 'helpers/ajax';\nimport { queryString, addNewState } from 'helpers/params';\nimport * as error from 'helpers/error';\nimport * as ko from 'knockout';\n\nrequire('bootstrap-colorpicker');\nrequire.resolve('bootstrap-colorpicker/src/sass/_colorpicker.scss');\n\nimport vtkDataArray from 'vtk.js/Sources/Common/Core/DataArray';\nimport vtkActor from 'vtk.js/Sources/Rendering/Core/Actor';\nimport vtkFullScreenRenderWindow from 'vtk.js/Sources/Rendering/Misc/FullScreenRenderWindow';\nimport vtkHttpDataSetReader from 'vtk.js/Sources/IO/Core/HttpDataSetReader';\nimport vtkImageMarchingCubes from 'vtk.js/Sources/Filters/General/ImageMarchingCubes';\nimport vtkMapper from 'vtk.js/Sources/Rendering/Core/Mapper';\nimport vtkGlyph3DMapper from 'vtk.js/Sources/Rendering/Core/Glyph3DMapper';\nimport vtkCubeSource from 'vtk.js/Sources/Filters/Sources/CubeSource';\nimport vtkConeSource from 'vtk.js/Sources/Filters/Sources/ConeSource';\nimport vtkArrowSource from 'vtk.js/Sources/Filters/Sources/ArrowSource';\nimport vtkPixelSpaceCallbackMapper from 'vtk.js/Sources/Rendering/Core/PixelSpaceCallbackMapper';\nimport vtkOrientationMarkerWidget from 'vtk.js/Sources/Interaction/Widgets/OrientationMarkerWidget';\nimport vtkAnnotatedCubeActor from 'vtk.js/Sources/Rendering/Core/AnnotatedCubeActor';\nimport { Representation } from 'vtk.js/Sources/Rendering/Core/Property/Constants.js';\n\nimport { setupLSS } from 'helpers/lss';\n\nimport lssRandomSources from 'vtk_plus/RandomSources';\nimport lssInterpolationFilter from 'vtk_plus/InterpolationFilter';\n\nimport vtkImageStreamline from 'vtk.js/Sources/Filters/General/ImageStreamline';\n\nimport style from './style.mcss';\n\n/*\n * This function sets up a cube to show the current scale. The cube\n * is 400 Mpc/h wide, centered on the observer.\n */\nfunction setupCube(renderer) {\n const actor = vtkActor.newInstance();\n const mapper = vtkMapper.newInstance();\n const cubeSource = vtkCubeSource.newInstance({\n xLength: 1,\n yLength: 1,\n zLength: 1,\n center: [0, 0, 0],\n });\n\n const actor_property = actor.getProperty();\n\n actor_property.setRepresentationToWireframe();\n actor_property.setColor(1, 1, 1);\n\n actor_property.setAmbientColor(1, 1, 1);\n actor_property.setInterpolationToFlat();\n actor_property.setLighting(false);\n actor_property.setAmbient(1);\n actor_property.setDiffuse(0);\n actor_property.setOpacity(0.5);\n\n actor.setScale([400, 400, 400]);\n actor.setMapper(mapper);\n mapper.setInputConnection(cubeSource.getOutputPort());\n renderer.addActor(actor);\n}\n\n/*\n * This functions sets up the auxiliary actor to show the orientation\n * of the camera, each side has a different color and label.\n */\nfunction setupOrientationActor() {\n const axes = vtkAnnotatedCubeActor.newInstance();\n axes.setDefaultStyle({\n text: '+X',\n fontStyle: 'bold',\n fontFamily: 'Arial',\n fontColor: 'black',\n fontSizeScale: (res) => res / 2,\n faceColor: '#0000ff',\n edgeThickness: 0.1,\n edgeColor: 'black',\n resolution: 400,\n });\n // axes.setXPlusFaceProperty({ text: '+X' });\n axes.setXMinusFaceProperty({\n text: '-X',\n faceColor: '#ffff00',\n fontStyle: 'italic',\n });\n axes.setYPlusFaceProperty({\n text: '+Y',\n faceColor: '#00ff00',\n fontSizeScale: (res) => res / 4,\n });\n axes.setYMinusFaceProperty({\n text: '-Y',\n faceColor: '#00ffff',\n fontColor: 'white',\n });\n axes.setZPlusFaceProperty({ text: '+Z', edgeColor: 'yellow' });\n axes.setZMinusFaceProperty({ text: '-Z', edgeThickness: 0 });\n\n return axes;\n}\n\n\n/*\n * This function is the constructor the view object used\n * by knockout to answer to change in the state of buttons/text inputs...\n */\nfunction ControlView() {\n let self = this;\n\n // First initialize the render window and attach it to the\n // adequate DOM entry.\n const fullScreenRenderWindow = vtkFullScreenRenderWindow.newInstance({\n background: [0, 0, 0],\n rootContainer: document.getElementById('placeholder'),\n containerStyle: {\n margin: '0',\n display: 'inline-block',\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n width: '100%',\n height: '100%',\n overflow: 'hidden',\n },\n });\n\n const renderWindow = fullScreenRenderWindow.getRenderWindow();\n const renderer = fullScreenRenderWindow.getRenderer();\n\n global.renderer = renderer;\n\n\n // -----------------------------------------------------------------\n // Iso-surface setup\n // Create the iso-surface generator.\n const [isoActor, marchingCube] = setupIsoSurface();\n\n\n\n const reader = vtkHttpDataSetReader.newInstance({\n fetchGzip: true,\n progressCallback: (ev)=> { loadIndicator(0, ev); }\n });\n marchingCube.setInputConnection(reader.getOutputPort());\n\n // -----------------------------------------------------------------\n // -----------------------------------------------------------------\n // Now prepare the streamline part\n //const streamline = setupStreamline();\n\n // Arrow vector part\n\n\n/* slineActor.getProperty().set({\n representation: Representation.POINTS,\n pointSize: 1\n });*/\n // -----------------------------------------------------------------\n\n // Create the small orientation actor to show what is the status\n // of the camera.\n\n const orientationWidget = vtkOrientationMarkerWidget.newInstance({\n actor: setupOrientationActor(),\n interactor: renderWindow.getInteractor(),\n });\n\n // Add the empty cube\n setupCube(renderer);\n\n // -----------------------------------------------------------------\n // Manage the names on top of the 3d representation\n\n // Create a canvas\n const textCanvas = document.createElement('canvas');\n // Add adequate class style\n textCanvas.classList.add(style.container, 'textCanvas');\n // Add the DOM element.\n fullScreenRenderWindow.getContainer().appendChild(textCanvas);\n\n const textCtx = textCanvas.getContext('2d');\n let dims = null;\n const textActor = vtkActor.newInstance();\n const psMapper = vtkPixelSpaceCallbackMapper.newInstance();\n\n setupLSS().then((args) => {\n const names = args.names;\n const polyData = args.poly;\n const centerPos = args.center;\n psMapper.setInputConnection(polyData.getOutputPort());\n psMapper.setCallback((coordsList) => {\n if (textCtx && dims) {\n // textCtx.strokeStyle = \"#fff\";\n textCtx.font = '12px serif';\n textCtx.textAlign = 'center';\n textCtx.textBaseline = 'middle';\n textCtx.setTransform(1, 0, 0, 1, 0, 0);\n textCtx.clearRect(0, 0, dims.width, dims.height);\n\n const mw = coordsList[centerPos];\n\n coordsList.forEach((xy, idx) => {\n if (idx == centerPos) {\n return;\n }\n\n const name = names[idx];\n const x = xy[0];\n const y = dims.height - xy[1];\n\n textCtx.setTransform(\n 1.2 - 1 * (xy[2] - mw[2]),\n 0,\n 0,\n 1.2 - 1 * (xy[2] - mw[2]),\n x,\n y\n );\n\n const width_txt = textCtx.measureText(name).width;\n textCtx.fillStyle = 'rgba(10,0,60,0.3)';\n textCtx.fillRect(-0.6 * width_txt, -10, 1.2 * width_txt, 20);\n textCtx.fillStyle = '#f00';\n textCtx.fillText(name, 0, 0);\n });\n }\n });\n textActor.setMapper(psMapper);\n renderer.addActor(textActor);\n // -----------------------------------------------------------------\n });\n\n // Handle window resize\n fullScreenRenderWindow.setResizeCallback((newDims) => {\n dims = newDims;\n textCanvas.setAttribute('width', dims.width);\n textCanvas.setAttribute('height', dims.height);\n });\n\n\n self.progressBar = ko.observable(false);\n global.test_control = self;\n\n self.progressPct = ko.observable(0);\n self.minDataRange = ko.observable(-1);\n self.maxDataRange = ko.observable(1);\n self.isoValue = ko.observable(1);\n self.specBright = ko.observable(0.5);\n self.useNormals = ko.observable(true);\n self.baseColor = ko.observable('#ff0000');\n self.addSpecular = ko.observable(true);\n self.dataset = ko.observable();\n self.autoRefresh = ko.observable(false);\n\n // Delay the trigger of the loading to the moment the whole page is ready.\n $(document).ready(() => {\n self.dataset('twompp_10.vtp');\n\n // Construction of arrows too.\n console.log(\"Go arrows\");\n setupArrows();\n\n });\n\n self.firstTime = true;\n\n self.dataset.subscribe(() => {\n const name = self.dataset();\n self.progressPct(0);\n self.progressBar(true);\n self.autoRefresh(false);\n reader.setUrl('/data/' + name, { loadData: true }).then(() => {\n const data = reader.getOutputData();\n const pointData = data.getPointData();\n const scalars = pointData.getScalars();\n const dataRange = scalars.getRange();\n\n self.minDataRange(-1); //dataRange[0]);\n self.maxDataRange(2); //dataRange[1]);\n\n self.progressBar(false);\n marchingCube.setContourValue(self.isoValue());\n\n if (self.firstTime) {\n renderer.addActor(isoActor);\n renderer\n .getActiveCamera()\n .set({ position: [1, 1, 1], viewUp: [0, 0, 1] });\n\n orientationWidget.setEnabled(true);\n orientationWidget.setViewportCorner(\n vtkOrientationMarkerWidget.Corners.BOTTOM_LEFT\n );\n orientationWidget.setViewportSize(0.15);\n\n renderer.resetCamera();\n self.firstTime = false;\n }\n\n renderWindow.render();\n self.autoRefresh(true);\n });\n });\n\n self.isoValue.subscribe((value) => {\n marchingCube.setContourValue(Number(value));\n renderWindow.render();\n });\n\n self.specBright.subscribe((value) => {\n const specBright = Number(value);\n isoActor.getProperty().setSpecularPower(value);\n renderWindow.render();\n });\n\n self.useNormals.subscribe((activeNormals) => {\n marchingCube.setComputeNormals(activeNormals);\n renderWindow.render();\n });\n\n self.addSpecular.subscribe((value) => {\n isoActor.getProperty().setSpecular(value);\n renderWindow.render();\n });\n\n self.baseColor.subscribe((color) => {\n let c = hexToRgb(color);\n isoActor.getProperty().setDiffuseColor(c.r / 255.0, c.g / 255.0, c.b / 255.0);\n renderWindow.render();\n });\n\n $(() => {\n $('.surface_color').colorpicker();\n });\n\n return self;\n\n function setupIsoSurface() {\n const actor = vtkActor.newInstance();\n const mapper = vtkMapper.newInstance();\n const marchingCube = vtkImageMarchingCubes.newInstance({\n contourValue: 0.0,\n mergePoints: true,\n computeNormals: true,\n });\n const actor_property = actor.getProperty();\n\n actor_property.setColor(1, 1, 1);\n actor_property.setDiffuseColor(1, 0, 1);\n actor_property.setAmbientColor(0.1, 0.1, 0.1);\n actor_property.setSpecularColor(1, 1, 1);\n actor_property.setSpecular(true);\n\n// actor.setScale([1,1,1]);\n// actor.setPosition([-200, -200, -200]);\n actor.setMapper(mapper);\n mapper.setInputConnection(marchingCube.getOutputPort());\n\n return [actor, marchingCube];\n }\n\n function setupArrows() {\n const mapper = vtkGlyph3DMapper.newInstance();\n const actor = vtkActor .newInstance();\n const coneSource = vtkArrowSource.newInstance({tipRadius:0.2, shaftRadius:0.02, tipLength:0.4});\n\n const vecSource = vtkHttpDataSetReader.newInstance({\n fetchGzip:true\n });\n\n const interpolationFilter = lssInterpolationFilter.newInstance();\n const randPoints = lssRandomSources.newInstance();\n randPoints.setMinBox(0.);\n randPoints.setMaxBox(32.);\n randPoints.setNumPoints(6000);\n\n interpolationFilter.setInputConnection(randPoints.getOutputPort(), 0);\n mapper.setInputConnection(interpolationFilter.getOutputPort(), 0);\n mapper.setInputConnection(coneSource.getOutputPort(), 1);\n mapper.setScaleModeToScaleByComponents();\n mapper.setOrientationModeToRotation();\n mapper.setScalarRange(0.0, 3000.0);\n\n mapper.setScaleFactor(3e-3);\n\n //coneSource.setResolution(12);\n\n actor.setScale([400 / 31, 400 / 31, 400 / 31]);\n actor.setPosition([-200, -200, -200]);\n// actor.getProperty().setOpacity(0.3);\n actor.setMapper(mapper);\n\n console.log(\"Set callbacks for arrows.\");\n\n vecSource.setUrl('/data_vec/vfield.vtp', { loadData: true }).then(\n () => {\n console.log(\"Got data\");\n\n const arrays = vecSource.getArrays().filter((a) => { return a.name == \"vectors\"; });\n\n vecSource.getOutputData().getPointData().setVectors(\n vtkDataArray.newInstance(arrays[0].array)\n );\n interpolationFilter.setInputConnection(vecSource.getOutputPort(), 1);\n\n// actor.setScale([10,10,10]);\n\n console.log(\"Actor added\");\n renderer.addActor(actor);\n renderWindow.render();\n\n let counter = 0;\n\tvar arrowRefreshActive = false, arrowRefresh = null; \n\tself.autoRefresh.subscribe(\n\t ()=> {\n\t const refresh = self.autoRefresh();\n\t console.log(\"Refresh state change to \", refresh);\n\t if (refresh) {\n\t if (arrowRefreshActive)\n\t\tclearInterval(arrowRefresh);\n arrowRefresh = setInterval(\n ()=> {\n mapper.setScaleFactor(3e-3*counter/40);\n counter = (counter + 1) % 40;\n renderWindow.render();\n },\n 100\n );\n arrowRefreshActive = true;\n } else\n\t if (arrowRefreshActive)\n\t\tclearInterval(arrowRefresh);\n\t }\n\t);\n }\n );\n }\n\n\n function setupStreamline() {\n const sline = vtkImageStreamline.newInstance();\n\n const vecSource = vtkHttpDataSetReader.newInstance({\n fetchGzip:true\n });\n\n const randPoints = lssRandomSources.newInstance();\n randPoints.setMinBox(0.);\n randPoints.setMaxBox(32.);\n randPoints.setNumPoints(600);\n sline.setInputConnection(randPoints.getOutputPort(), 1);\n\n\n sline.setIntegrationStep(0.001);\n sline.setMaximumNumberOfSteps(20);\n vecSource.setUrl('/data_vec/vfield.vtp', { loadData: true }).then(\n () => {\n const arrays = vecSource.getArrays().filter((a) => { return a.name == \"vectors\"; });\n\n vecSource.getOutputData().getPointData().setVectors(vtkDataArray.newInstance(arrays[0].array));\n\n sline.setInputConnection(vecSource.getOutputPort());\n\n const slineMapper = vtkMapper.newInstance();\n const slineActor = vtkActor.newInstance();\n slineMapper.setInputConnection(sline.getOutputPort());\n slineActor.setMapper(slineMapper);\n slineActor.setScale([400 / 31, 400 / 31, 400 / 31]);\n slineActor.setPosition([-200, -200, -200]);\n\n renderer.addActor(slineActor);\n renderWindow.render();\n }\n );\n return sline;\n }\n\n function loadIndicator(fid, pe) {\n if (pe.lengthComputable) {\n if (pe.total > 0) {\n self.progressPct(parseInt(pe.loaded * 100 / pe.total));\n } else self.progressPct(0);\n }\n }\n\n function hexToRgb(h) {\n var r = parseInt(cutHex(h).substring(0, 2), 16),\n g = parseInt(cutHex(h).substring(2, 4), 16),\n b = parseInt(cutHex(h).substring(4, 6), 16);\n return { r: r, g: g, b: b };\n }\n\n function cutHex(h) {\n return h.charAt(0) == '#' ? h.substring(1, 7) : h;\n }\n}\n\nko.applyBindings(new ControlView());\n\n\n\n// WEBPACK FOOTER //\n// ./app/contour_plot.js","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = { callback: callback, args: args };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function(handle) {\n process.nextTick(function () { runIfPresent(handle); });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function() {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function(event) {\n if (event.source === global &&\n typeof event.data === \"string\" &&\n event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function(event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function(handle) {\n // Create a