parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcelRequire,u="function"==typeof require&&require;function f(t,n){if(!r[t]){if(!e[t]){var i="function"==typeof parcelRequire&&parcelRequire;if(!n&&i)return i(t,!0);if(o)return o(t,!0);if(u&&"string"==typeof t)return u(t);var c=new Error("Cannot find module '"+t+"'");throw c.code="MODULE_NOT_FOUND",c}p.resolve=function(r){return e[t][1][r]||r},p.cache={};var l=r[t]=new f.Module(t);e[t][0].call(l.exports,p,l,l.exports,this)}return r[t].exports;function p(e){return f(p.resolve(e))}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.exports={}},f.modules=e,f.cache=r,f.parent=o,f.register=function(r,t){e[r]=[function(e,r){r.exports=t},{}]};for(var c=0;c3)for(n=[n],o=3;o2&&(t.children=s.slice.call(arguments,2)),n={},t)"key"!==o&&"ref"!==o&&(n[o]=t[o]);return d(e.type,n,t.key||e.key,t.ref||e.ref,null)}function R(e){var t={},n={__c:"__cC"+i++,__:e,Consumer:function(e,t){return e.children(t)},Provider:function(e){var o,_=this;return this.getChildContext||(o=[],this.getChildContext=function(){return t[n.__c]=_,t},this.shouldComponentUpdate=function(e){_.props.value!==e.value&&o.some(function(t){t.context=e.value,g(t)})},this.sub=function(e){o.push(e);var t=e.componentWillUnmount;e.componentWillUnmount=function(){o.splice(o.indexOf(e),1),t&&t.call(e)}}),e.children}};return n.Consumer.contextType=n,n.Provider.__=n,n}exports.isValidElement=t,exports.options=e,exports.options=e={__e:function(e,t){for(var n,o;t=t.__;)if((n=t.__c)&&!n.__)try{if(n.constructor&&null!=n.constructor.getDerivedStateFromError&&(o=!0,n.setState(n.constructor.getDerivedStateFromError(e))),null!=n.componentDidCatch&&(o=!0,n.componentDidCatch(e)),o)return g(n.__E=n)}catch(t){e=t}throw e}},exports.isValidElement=t=function(e){return null!=e&&void 0===e.constructor},y.prototype.setState=function(e,t){var n;n=this.__s!==this.state?this.__s:this.__s=p({},this.state),"function"==typeof e&&(e=e(n,this.props)),e&&p(n,e),null!=e&&this.__v&&(t&&this.__h.push(t),g(this))},y.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),g(this))},y.prototype.render=v,n=[],o=0,_="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,r=u,i=0; },{}],"ucYa":[function(require,module,exports) { "use strict";function t(t){return t[t.length-1]||null}function e(t,e){t.sort(function(t,r){const n=e(t),o=e(r);return no?1:0})}function r(t,e,r){return t.has(e)||t.set(e,r(e)),t.get(e)}function n(t,e,r){return t.has(e)?t.get(e):r(e)}function o(t,e){if(!t.has(e))throw new Error(`Expected key ${e}`);return t.get(e)}Object.defineProperty(exports,"__esModule",{value:!0}),exports.lastOf=t,exports.sortBy=e,exports.getOrInsert=r,exports.getOrElse=n,exports.getOrThrow=o,exports.itMap=l,exports.itForEach=u,exports.itReduce=i,exports.zeroPad=c,exports.formatPercent=a,exports.fract=f,exports.triangle=h,exports.findValueBisect=g,exports.findIndexBisect=p,exports.noop=x,exports.objectsHaveShallowEquality=d,exports.memoizeByShallowEquality=y,exports.memoizeByReference=w,exports.lazyStatic=E,exports.decodeBase64=A,exports.KeyedSet=void 0;class s{constructor(){this.map=new Map}getOrInsert(t){const e=t.key,r=this.map.get(e);return r||(this.map.set(e,t),t)}forEach(t){this.map.forEach(t)}[Symbol.iterator](){return this.map.values()}}function*l(t,e){for(let r of t)yield e(r)}function u(t,e){for(let r of t)e(r)}function i(t,e,r){let n=r;for(let o of t)n=e(n,o);return n}function c(t,e){return new Array(Math.max(e-t.length,0)+1).join("0")+t}function a(t){let e=`${t.toFixed(0)}%`;return 100===t?e="100%":t>99?e=">99%":t<.01?e="<0.01%":t<1?e=`${t.toFixed(2)}%`:t<10&&(e=`${t.toFixed(1)}%`),e}function f(t){return t-Math.floor(t)}function h(t){return 2*Math.abs(f(t)-.5)-1}function g(t,e,r,n,o=1){for(console.assert(!isNaN(o)&&!isNaN(n));;){if(e-t<=o)return[t,e];const s=(e+t)/2;r(s){let n;return null==e?(n=t(r),e={args:r,result:n},n):d(e.args,r)?e.result:(e.args=r,e.result=t(r),e.result)}}function w(t){let e=null;return r=>{let n;return null==e?(n=t(r),e={args:r,result:n},n):e.args===r?e.result:(e.args=r,e.result=t(r),e.result)}}function E(t){let e=null;return()=>(null==e&&(e={result:t()}),e.result)}exports.KeyedSet=s;const m=E(()=>{const t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",e=new Map;for(let r=0;r>4,"="!==u&&(o[s++]=(15&a)<<4|f>>2),"="!==i&&(o[s++]=(7&f)<<6|h)}if(s!==n)throw new Error(`Expected to decode ${n} bytes, but only decoded ${s})`);return o} },{}],"EhY8":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.LRUCache=exports.List=void 0;class t{constructor(t){this.data=t,this.prev=null,this.next=null}}class e{constructor(){this.head=null,this.tail=null,this.size=0}getHead(){return this.head}getTail(){return this.tail}getSize(){return this.size}append(t){this.tail?(this.tail.next=t,t.prev=this.tail,this.tail=t):this.head=this.tail=t,this.size++}prepend(t){return this.head?(this.head.prev=t,t.next=this.head,this.head=t):this.head=this.tail=t,this.size++,t}pop(){if(this.tail){const t=this.tail;return t.prev?(this.tail=t.prev,this.tail.next=null):this.head=this.tail=null,this.size--,t.prev=null,t}return null}dequeue(){if(this.head){const t=this.head;return t.next?(this.head=t.next,this.head.prev=null):this.head=this.tail=null,this.size--,t.next=null,t}return null}remove(t){null==t.prev?this.dequeue():null==t.next?this.pop():(t.next.prev=t.prev,t.prev.next=t.next,t.next=null,t.prev=null,this.size--)}}exports.List=e;class i{constructor(t){this.capacity=t,this.list=new e,this.map=new Map}has(t){return this.map.has(t)}get(t){const e=this.map.get(t);return e?(this.list.remove(e.listNode),this.list.prepend(e.listNode),e?e.value:null):null}getSize(){return this.list.getSize()}getCapacity(){return this.capacity}insert(e,i){const s=this.map.get(e);for(s&&this.list.remove(s.listNode);this.list.getSize()>=this.capacity;)this.map.delete(this.list.pop().data);const h=this.list.prepend(new t(e));this.map.set(e,{value:i,listNode:h})}getOrInsert(t,e){let i=this.get(t);return null==i&&(i=e(t),this.insert(t,i)),i}removeLRU(){const t=this.list.pop();if(!t)return null;const e=t.data,i=this.map.get(e).value;return this.map.delete(e),[e,i]}clear(){this.list=new e,this.map=new Map}}exports.LRUCache=i; },{}],"tDuZ":[function(require,module,exports) { "use strict";function t(t,i,s){return ts?s:t}Object.defineProperty(exports,"__esModule",{value:!0}),exports.clamp=t,exports.Rect=exports.AffineTransform=exports.Vec2=void 0;class i{constructor(t,i){this.x=t,this.y=i}withX(t){return new i(t,this.y)}withY(t){return new i(this.x,t)}plus(t){return new i(this.x+t.x,this.y+t.y)}minus(t){return new i(this.x-t.x,this.y-t.y)}times(t){return new i(this.x*t,this.y*t)}timesPointwise(t){return new i(this.x*t.x,this.y*t.y)}dividedByPointwise(t){return new i(this.x/t.x,this.y/t.y)}dot(t){return this.x*t.x+this.y*t.y}equals(t){return this.x===t.x&&this.y===t.y}approxEquals(t,i=1e-9){return Math.abs(this.x-t.x)1)for(var n=1;n=0&&e<=31),t.TEXTURE0+e}var h,a;exports.Graphics=h,function(t){t.Rect=class{constructor(t=0,e=0,i=0,r=0){this.x=t,this.y=e,this.width=i,this.height=r}set(t,e,i,r){this.x=t,this.y=e,this.width=i,this.height=r}equals(t){return this.x===t.x&&this.y===t.y&&this.width===t.width&&this.height===t.height}};class e{constructor(t,e,i,r){this.redF=t,this.greenF=e,this.blueF=i,this.alphaF=r}equals(t){return this.redF===t.redF&&this.greenF===t.greenF&&this.blueF===t.blueF&&this.alphaF===t.alphaF}}let i,r,s,n,h;e.TRANSPARENT=new e(0,0,0,0),t.Color=e,function(t){t[t.ZERO=0]="ZERO",t[t.ONE=1]="ONE",t[t.SOURCE_COLOR=2]="SOURCE_COLOR",t[t.TARGET_COLOR=3]="TARGET_COLOR",t[t.INVERSE_SOURCE_COLOR=4]="INVERSE_SOURCE_COLOR",t[t.INVERSE_TARGET_COLOR=5]="INVERSE_TARGET_COLOR",t[t.SOURCE_ALPHA=6]="SOURCE_ALPHA",t[t.TARGET_ALPHA=7]="TARGET_ALPHA",t[t.INVERSE_SOURCE_ALPHA=8]="INVERSE_SOURCE_ALPHA",t[t.INVERSE_TARGET_ALPHA=9]="INVERSE_TARGET_ALPHA",t[t.CONSTANT=10]="CONSTANT",t[t.INVERSE_CONSTANT=11]="INVERSE_CONSTANT"}(i=t.BlendOperation||(t.BlendOperation={})),function(t){t[t.TRIANGLES=0]="TRIANGLES",t[t.TRIANGLE_STRIP=1]="TRIANGLE_STRIP"}(r=t.Primitive||(t.Primitive={}));function a(t){return t==s.FLOAT?4:1}t.Context=class{constructor(){this.resizeEventHandlers=new Set}setCopyBlendState(){this.setBlendState(i.ONE,i.ZERO)}setAddBlendState(){this.setBlendState(i.ONE,i.ONE)}setPremultipliedBlendState(){this.setBlendState(i.ONE,i.INVERSE_SOURCE_ALPHA)}setUnpremultipliedBlendState(){this.setBlendState(i.SOURCE_ALPHA,i.INVERSE_SOURCE_ALPHA)}addAfterResizeEventHandler(t){this.resizeEventHandlers.add(t)}removeAfterResizeEventHandler(t){this.resizeEventHandlers.delete(t)}},function(t){t[t.FLOAT=0]="FLOAT",t[t.BYTE=1]="BYTE"}(s=t.AttributeType||(t.AttributeType={})),t.attributeByteLength=a;class _{constructor(t,e,i,r){this.name=t,this.type=e,this.count=i,this.byteOffset=r}}t.Attribute=_;t.VertexFormat=class{constructor(){this._attributes=[],this._stride=0}get attributes(){return this._attributes}get stride(){return this._stride}add(t,e,i){return this.attributes.push(new _(t,e,i,this.stride)),this._stride+=i*a(e),this}};t.VertexBuffer=class{uploadFloat32Array(t){this.upload(new Uint8Array(t.buffer),0)}uploadFloats(t){this.uploadFloat32Array(new Float32Array(t))}},function(t){t[t.NEAREST=0]="NEAREST",t[t.LINEAR=1]="LINEAR"}(n=t.PixelFilter||(t.PixelFilter={})),function(t){t[t.REPEAT=0]="REPEAT",t[t.CLAMP=1]="CLAMP"}(h=t.PixelWrap||(t.PixelWrap={}));class o{constructor(t,e,i){this.minFilter=t,this.magFilter=e,this.wrap=i}}o.LINEAR_CLAMP=new o(n.LINEAR,n.LINEAR,h.CLAMP),o.LINEAR_MIN_NEAREST_MAG_CLAMP=new o(n.LINEAR,n.NEAREST,h.CLAMP),o.NEAREST_CLAMP=new o(n.NEAREST,n.NEAREST,h.CLAMP),t.TextureFormat=o}(h||(exports.Graphics=h={})),exports.WebGL=a,function(t){class a extends h.Context{get widthInPixels(){return this._width}get heightInPixels(){return this._height}constructor(t=document.createElement("canvas")){super(),this._attributeCount=0,this._blendOperations=0,this._contextResetHandlers=[],this._currentClearColor=h.Color.TRANSPARENT,this._currentRenderTarget=null,this._defaultViewport=new h.Rect,this._forceStateUpdate=!0,this._generation=1,this._height=0,this._oldBlendOperations=0,this._oldRenderTarget=null,this._oldViewport=new h.Rect,this._width=0,this.handleWebglContextRestored=(()=>{this._attributeCount=0,this._currentClearColor=h.Color.TRANSPARENT,this._forceStateUpdate=!0,this._generation++;for(let t of this._contextResetHandlers)t()}),this.ANGLE_instanced_arrays=null,this.ANGLE_instanced_arrays_generation=-1;let e=t.getContext("webgl",{alpha:!1,antialias:!1,depth:!1,preserveDrawingBuffer:!1,stencil:!1});if(null==e)throw new Error("Setup failure");this._gl=e;let i=t.style;t.width=0,t.height=0,i.width=i.height="0",t.addEventListener("webglcontextlost",t=>{t.preventDefault()}),t.addEventListener("webglcontextrestored",this.handleWebglContextRestored),this._blendOperationMap={[h.BlendOperation.ZERO]:this._gl.ZERO,[h.BlendOperation.ONE]:this._gl.ONE,[h.BlendOperation.SOURCE_COLOR]:this._gl.SRC_COLOR,[h.BlendOperation.TARGET_COLOR]:this._gl.DST_COLOR,[h.BlendOperation.INVERSE_SOURCE_COLOR]:this._gl.ONE_MINUS_SRC_COLOR,[h.BlendOperation.INVERSE_TARGET_COLOR]:this._gl.ONE_MINUS_DST_COLOR,[h.BlendOperation.SOURCE_ALPHA]:this._gl.SRC_ALPHA,[h.BlendOperation.TARGET_ALPHA]:this._gl.DST_ALPHA,[h.BlendOperation.INVERSE_SOURCE_ALPHA]:this._gl.ONE_MINUS_SRC_ALPHA,[h.BlendOperation.INVERSE_TARGET_ALPHA]:this._gl.ONE_MINUS_DST_ALPHA,[h.BlendOperation.CONSTANT]:this._gl.CONSTANT_COLOR,[h.BlendOperation.INVERSE_CONSTANT]:this._gl.ONE_MINUS_CONSTANT_COLOR}}testContextLoss(){this.handleWebglContextRestored()}get gl(){return this._gl}get generation(){return this._generation}addContextResetHandler(t){r(this._contextResetHandlers,t)}removeContextResetHandler(t){s(this._contextResetHandlers,t)}get currentRenderTarget(){return this._currentRenderTarget}beginFrame(){this.setRenderTarget(null)}endFrame(){}setBlendState(t,e){this._blendOperations=a._packBlendModes(t,e)}setViewport(t,e,i,r){(null!=this._currentRenderTarget?this._currentRenderTarget.viewport:this._defaultViewport).set(t,e,i,r)}get viewport(){return null!=this._currentRenderTarget?this._currentRenderTarget.viewport:this._defaultViewport}get renderTargetWidthInPixels(){return null!=this._currentRenderTarget?this._currentRenderTarget.viewport.width:this._width}get renderTargetHeightInPixels(){return null!=this._currentRenderTarget?this._currentRenderTarget.viewport.height:this._height}draw(t,e,i){this._updateRenderTargetAndViewport(),f.from(e).prepare(),R.from(i).prepare(),this._updateFormat(e.format),this._updateBlendState(),this._gl.drawArrays(t==h.Primitive.TRIANGLES?this._gl.TRIANGLES:this._gl.TRIANGLE_STRIP,0,Math.floor(i.byteCount/e.format.stride)),this._forceStateUpdate=!1}resize(t,e,i,r){let s=this._gl.canvas;const n=s.getBoundingClientRect();if(this._width===t&&this._height===e&&n.width===i&&n.height===r)return;let h=s.style;s.width=t,s.height=e,h.width=`${i}px`,h.height=`${r}px`,this.setViewport(0,0,t,e),this._width=t,this._height=e,this.resizeEventHandlers.forEach(t=>t())}clear(t){this._updateRenderTargetAndViewport(),this._updateBlendState(),t.equals(this._currentClearColor)||(this._gl.clearColor(t.redF,t.greenF,t.blueF,t.alphaF),this._currentClearColor=t),this._gl.clear(this._gl.COLOR_BUFFER_BIT)}setRenderTarget(t){this._currentRenderTarget=A.from(t)}createMaterial(t,e,i){let r=new f(this,t,e,i);return r.program,r}createVertexBuffer(t){return i(t>0&&t%4==0),new R(this,t)}createTexture(t,e,i,r){return new p(this,t,e,i,r)}createRenderTarget(t){return new A(this,p.from(t))}getANGLE_instanced_arrays(){if(this.ANGLE_instanced_arrays_generation!==this._generation&&(this.ANGLE_instanced_arrays=null),!this.ANGLE_instanced_arrays&&(this.ANGLE_instanced_arrays=this.gl.getExtension("ANGLE_instanced_arrays"),!this.ANGLE_instanced_arrays))throw new Error("Failed to get extension ANGLE_instanced_arrays");return this.ANGLE_instanced_arrays}_updateRenderTargetAndViewport(){let t=this._currentRenderTarget,e=null!=t?t.viewport:this._defaultViewport,i=this._gl;(this._forceStateUpdate||this._oldRenderTarget!=t)&&(i.bindFramebuffer(i.FRAMEBUFFER,t?t.framebuffer:null),this._oldRenderTarget=t),!this._forceStateUpdate&&this._oldViewport.equals(e)||(i.viewport(e.x,this.renderTargetHeightInPixels-e.y-e.height,e.width,e.height),this._oldViewport.set(e.x,e.y,e.width,e.height))}_updateBlendState(){if(this._forceStateUpdate||this._oldBlendOperations!=this._blendOperations){let t=this._gl,e=this._blendOperations,r=this._oldBlendOperations,s=15&e,n=e>>4;i(s in this._blendOperationMap),i(n in this._blendOperationMap),e==a.COPY_BLEND_OPERATIONS?t.disable(t.BLEND):((this._forceStateUpdate||r==a.COPY_BLEND_OPERATIONS)&&t.enable(t.BLEND),t.blendFunc(this._blendOperationMap[s],this._blendOperationMap[n])),this._oldBlendOperations=e}}_updateFormat(t){let e=this._gl,i=t.attributes,r=i.length;for(let s=0;sr;)this._attributeCount--,e.disableVertexAttribArray(this._attributeCount);this._attributeCount=r}getWebGLInfo(){const t=this.gl.getExtension("WEBGL_debug_renderer_info");return{renderer:t?this.gl.getParameter(t.UNMASKED_RENDERER_WEBGL):null,vendor:t?this.gl.getParameter(t.UNMASKED_VENDOR_WEBGL):null,version:this.gl.getParameter(this.gl.VERSION)}}static from(t){return i(null==t||t instanceof a),t}static _packBlendModes(t,e){return t|e<<4}}a.COPY_BLEND_OPERATIONS=a._packBlendModes(h.BlendOperation.ONE,h.BlendOperation.ZERO),t.Context=a;class _{constructor(t,e,i=0,r=null,s=!0){this._material=t,this._name=e,this._generation=i,this._location=r,this._isDirty=s}get location(){let t=a.from(this._material.context);if(this._generation!=t.generation&&(this._location=t.gl.getUniformLocation(this._material.program,this._name),this._generation=t.generation,!e)){let e=this._material.program,r=t.gl;for(let t=0,s=r.getProgramParameter(e,r.ACTIVE_UNIFORMS);t0&&this._texture.height>0?this._texture.texture:null)}}class f{constructor(t,e,i,r,s={},n=[],h=0,a=null){this._context=t,this._format=e,this._vertexSource=i,this._fragmentSource=r,this._uniformsMap=s,this._uniformsList=n,this._generation=h,this._program=a}get context(){return this._context}get format(){return this._format}get vertexSource(){return this._vertexSource}get fragmentSource(){return this._fragmentSource}setUniformFloat(t,e){let r=this._uniformsMap[t]||null;null==r&&(r=new o(this,t),this._uniformsMap[t]=r,this._uniformsList.push(r)),i(r instanceof o),r.set(e)}setUniformInt(t,e){let r=this._uniformsMap[t]||null;null==r&&(r=new l(this,t),this._uniformsMap[t]=r,this._uniformsList.push(r)),i(r instanceof l),r.set(e)}setUniformVec2(t,e,r){let s=this._uniformsMap[t]||null;null==s&&(s=new u(this,t),this._uniformsMap[t]=s,this._uniformsList.push(s)),i(s instanceof u),s.set(e,r)}setUniformVec3(t,e,r,s){let n=this._uniformsMap[t]||null;null==n&&(n=new c(this,t),this._uniformsMap[t]=n,this._uniformsList.push(n)),i(n instanceof c),n.set(e,r,s)}setUniformVec4(t,e,r,s,n){let h=this._uniformsMap[t]||null;null==h&&(h=new d(this,t),this._uniformsMap[t]=h,this._uniformsList.push(h)),i(h instanceof d),h.set(e,r,s,n)}setUniformMat3(t,e,r,s,n,h,a,_,o,l){let u=this._uniformsMap[t]||null;null==u&&(u=new E(this,t),this._uniformsMap[t]=u,this._uniformsList.push(u)),i(u instanceof E),u.set(e,r,s,n,h,a,_,o,l)}setUniformSampler(t,e,r){let s=this._uniformsMap[t]||null;null==s&&(s=new g(this,t),this._uniformsMap[t]=s,this._uniformsList.push(s)),i(s instanceof g),s.set(e,r)}get program(){let t=this._context.gl;if(this._generation!=this._context.generation){this._program=t.createProgram(),this._compileShader(t,t.VERTEX_SHADER,this.vertexSource),this._compileShader(t,t.FRAGMENT_SHADER,this.fragmentSource);let r=this.format.attributes;for(let e=0;e=0),i(0<=t&&t+r<=this._byteCount),i(0<=e&&e+r<=this._byteCount),this._bytes&&t!=e&&0!=r&&(this._bytes.set(this._bytes.subarray(t,this._byteCount),e),this._growDirtyRegion(Math.min(t,e),Math.max(t,e)+r))}upload(t,e=0){i(0<=e&&e+t.length<=this._byteCount),i(null!=this._bytes),this._bytes.set(t,e),this._growDirtyRegion(e,e+t.length)}free(){this._buffer&&this._context.gl.deleteBuffer(this._buffer),this._generation=0}prepare(){let t=this._context.gl;this._generation!==this._context.generation&&(this._buffer=t.createBuffer(),this._generation=this._context.generation,this._isDirty=!0),t.bindBuffer(t.ARRAY_BUFFER,this._buffer),this._isDirty&&(t.bufferData(t.ARRAY_BUFFER,this._byteCount,t.DYNAMIC_DRAW),this._dirtyMin=this._totalMin,this._dirtyMax=this._totalMax,this._isDirty=!1),this._dirtyMin{const t=e.AffineTransform.betweenRects(i.configSpaceSrcRect,i.physicalSpaceDstRect),r=new e.Vec2(this.gl.viewport.width,this.gl.viewport.height);return e.AffineTransform.withTranslation(new e.Vec2(-1,1)).times(e.AffineTransform.withScale(new e.Vec2(2,-2).dividedByPointwise(r))).times(t)})()),this.gl.setUnpremultipliedBlendState(),this.gl.draw(t.Graphics.Primitive.TRIANGLES,this.material,i.batch.getBuffer())}}exports.RectangleBatchRenderer=c; },{"../lib/math":"tDuZ","./graphics":"XGYN","./utils":"MMP6"}],"x77Y":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Color=void 0;var t=require("./math");class r{constructor(t=0,r=0,s=0,e=1){this.r=t,this.g=r,this.b=s,this.a=e}static fromLumaChromaHue(s,e,o){const i=o/60,a=e*(1-Math.abs(i%2-1)),[n,h,u]=i<1?[e,a,0]:i<2?[a,e,0]:i<3?[0,e,a]:i<4?[0,a,e]:i<5?[a,0,e]:[e,0,a],c=s-(.3*n+.59*h+.11*u);return new r((0,t.clamp)(n+c,0,1),(0,t.clamp)(h+c,0,1),(0,t.clamp)(u+c,0,1),1)}static fromCSSHex(t){if(7!==t.length||"#"!==t[0])throw new Error(`Invalid color input ${t}`);const s=parseInt(t.substr(1,2),16)/255,e=parseInt(t.substr(3,2),16)/255,o=parseInt(t.substr(5,2),16)/255;if(s<0||s>1||e<0||e>1||o<0||o>1)throw new Error(`Invalid color input ${t}`);return new r(s,e,o)}withAlpha(t){return new r(this.r,this.g,this.b,t)}toCSS(){return`rgba(${(255*this.r).toFixed()}, ${(255*this.g).toFixed()}, ${(255*this.b).toFixed()}, ${this.a.toFixed(2)})`}}exports.Color=r; },{"./math":"tDuZ"}],"cFC1":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.RowAtlas=void 0;var e=require("../lib/lru-cache"),t=require("./rectangle-batch-renderer"),r=require("../lib/math"),i=require("../lib/color"),c=require("./graphics"),h=require("./utils");class a{constructor(h,a,s){this.gl=h,this.rectangleBatchRenderer=a,this.textureRenderer=s,this.texture=h.createTexture(c.Graphics.TextureFormat.NEAREST_CLAMP,4096,4096),this.renderTarget=h.createRenderTarget(this.texture),this.rowCache=new e.LRUCache(this.texture.height),this.clearLineBatch=new t.RectangleBatch(h),this.clearLineBatch.addRect(r.Rect.unit,new i.Color(0,0,0,0)),h.addContextResetHandler(()=>{this.rowCache.clear()})}has(e){return this.rowCache.has(e)}getResolution(){return this.texture.width}getCapacity(){return this.texture.height}allocateLine(e){if(this.rowCache.getSize(){for(let i of e){let e=this.rowCache.get(i);if(null!=e)continue;e=this.allocateLine(i);const c=new r.Rect(new r.Vec2(0,e),new r.Vec2(this.texture.width,1));this.rectangleBatchRenderer.render({batch:this.clearLineBatch,configSpaceSrcRect:r.Rect.unit,physicalSpaceDstRect:c}),t(c,i)}})}renderViaAtlas(e,t){let i=this.rowCache.get(e);if(null==i)return!1;const c=new r.Rect(new r.Vec2(0,i),new r.Vec2(this.texture.width,1));return this.textureRenderer.render({texture:this.texture,srcRect:c,dstRect:t}),!0}}exports.RowAtlas=a; },{"../lib/lru-cache":"EhY8","./rectangle-batch-renderer":"UGJH","../lib/math":"tDuZ","../lib/color":"x77Y","./graphics":"XGYN","./utils":"MMP6"}],"p3j0":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.TextureRenderer=void 0;var e=require("../lib/math"),t=require("./graphics"),r=require("./utils");const n="\n uniform mat3 uvTransform;\n uniform mat3 positionTransform;\n\n attribute vec2 position;\n attribute vec2 uv;\n varying vec2 vUv;\n\n void main() {\n vUv = (uvTransform * vec3(uv, 1)).xy;\n gl_Position = vec4((positionTransform * vec3(position, 1)).xy, 0, 1);\n }\n",i="\n precision mediump float;\n\n varying vec2 vUv;\n uniform sampler2D texture;\n\n void main() {\n gl_FragColor = texture2D(texture, vUv);\n }\n";class s{constructor(e){this.gl=e;const r=new t.Graphics.VertexFormat;r.add("position",t.Graphics.AttributeType.FLOAT,2),r.add("uv",t.Graphics.AttributeType.FLOAT,2);const s=[{pos:[-1,1],uv:[0,1]},{pos:[1,1],uv:[1,1]},{pos:[-1,-1],uv:[0,0]},{pos:[1,-1],uv:[1,0]}],o=[];for(let t of s)o.push(t.pos[0]),o.push(t.pos[1]),o.push(t.uv[0]),o.push(t.uv[1]);this.buffer=e.createVertexBuffer(r.stride*s.length),this.buffer.upload(new Uint8Array(new Float32Array(o).buffer)),this.material=e.createMaterial(r,n,i)}render(n){this.material.setUniformSampler("texture",n.texture,0),(0,r.setUniformAffineTransform)(this.material,"uvTransform",(()=>{const{srcRect:t,texture:r}=n,i=e.AffineTransform.withTranslation(new e.Vec2(0,1)).times(e.AffineTransform.withScale(new e.Vec2(1,-1))).times(e.AffineTransform.betweenRects(new e.Rect(e.Vec2.zero,new e.Vec2(r.width,r.height)),e.Rect.unit)).transformRect(t);return e.AffineTransform.betweenRects(e.Rect.unit,i)})()),(0,r.setUniformAffineTransform)(this.material,"positionTransform",(()=>{const{dstRect:t}=n,{viewport:r}=this.gl,i=new e.Vec2(r.width,r.height),s=e.AffineTransform.withScale(new e.Vec2(1,-1)).times(e.AffineTransform.betweenRects(new e.Rect(e.Vec2.zero,i),e.Rect.NDC)).transformRect(t);return e.AffineTransform.betweenRects(e.Rect.NDC,s)})()),this.gl.setUnpremultipliedBlendState(),this.gl.draw(t.Graphics.Primitive.TRIANGLE_STRIP,this.material,this.buffer)}}exports.TextureRenderer=s; },{"../lib/math":"tDuZ","./graphics":"XGYN","./utils":"MMP6"}],"tdKg":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ViewportRectangleRenderer=void 0;var e=require("../lib/color"),i=require("./graphics"),r=require("./utils");const o=new i.Graphics.VertexFormat;o.add("position",i.Graphics.AttributeType.FLOAT,2);const n="\n attribute vec2 position;\n\n void main() {\n gl_Position = vec4(position, 0, 1);\n }\n",t=i=>{const{r:r,g:o,b:n}=e.Color.fromCSSHex(i.fgSecondaryColor),t=`${r.toFixed(1)}, ${o.toFixed(1)}, ${n.toFixed(1)}`;return`\n precision mediump float;\n\n uniform mat3 configSpaceToPhysicalViewSpace;\n uniform vec2 physicalSize;\n uniform vec2 physicalOrigin;\n uniform vec2 configSpaceViewportOrigin;\n uniform vec2 configSpaceViewportSize;\n uniform float framebufferHeight;\n\n void main() {\n vec2 origin = (configSpaceToPhysicalViewSpace * vec3(configSpaceViewportOrigin, 1.0)).xy;\n vec2 size = (configSpaceToPhysicalViewSpace * vec3(configSpaceViewportSize, 0.0)).xy;\n\n vec2 halfSize = physicalSize / 2.0;\n\n float borderWidth = 2.0;\n\n origin = floor(origin * halfSize) / halfSize + borderWidth * vec2(1.0, 1.0);\n size = floor(size * halfSize) / halfSize - 2.0 * borderWidth * vec2(1.0, 1.0);\n\n vec2 coord = gl_FragCoord.xy;\n coord.x = coord.x - physicalOrigin.x;\n coord.y = framebufferHeight - coord.y - physicalOrigin.y;\n vec2 clamped = clamp(coord, origin, origin + size);\n vec2 gap = clamped - coord;\n float maxdist = max(abs(gap.x), abs(gap.y));\n\n // TOOD(jlfwong): Could probably optimize this to use mix somehow.\n if (maxdist == 0.0) {\n // Inside viewport rectangle\n gl_FragColor = vec4(0, 0, 0, 0);\n } else if (maxdist < borderWidth) {\n // Inside viewport rectangle at border\n gl_FragColor = vec4(${t}, 0.8);\n } else {\n // Outside viewport rectangle\n gl_FragColor = vec4(${t}, 0.5);\n }\n }\n `};class a{constructor(e,i){this.gl=e;const r=[[-1,1],[1,1],[-1,-1],[1,-1]],a=[];for(let o of r)a.push(o[0]),a.push(o[1]);this.buffer=e.createVertexBuffer(o.stride*r.length),this.buffer.upload(new Uint8Array(new Float32Array(a).buffer)),this.material=e.createMaterial(o,n,t(i))}render(e){(0,r.setUniformAffineTransform)(this.material,"configSpaceToPhysicalViewSpace",e.configSpaceToPhysicalViewSpace),(0,r.setUniformVec2)(this.material,"configSpaceViewportOrigin",e.configSpaceViewportRect.origin),(0,r.setUniformVec2)(this.material,"configSpaceViewportSize",e.configSpaceViewportRect.size);const o=this.gl.viewport;this.material.setUniformVec2("physicalOrigin",o.x,o.y),this.material.setUniformVec2("physicalSize",o.width,o.height),this.material.setUniformFloat("framebufferHeight",this.gl.renderTargetHeightInPixels),this.gl.setBlendState(i.Graphics.BlendOperation.SOURCE_ALPHA,i.Graphics.BlendOperation.INVERSE_SOURCE_ALPHA),this.gl.draw(i.Graphics.Primitive.TRIANGLE_STRIP,this.material,this.buffer)}}exports.ViewportRectangleRenderer=a; },{"../lib/color":"x77Y","./graphics":"XGYN","./utils":"MMP6"}],"Q0ad":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.FlamechartColorPassRenderer=void 0;var e=require("../lib/math"),r=require("./graphics"),n=require("./utils");const t=new r.Graphics.VertexFormat;t.add("position",r.Graphics.AttributeType.FLOAT,2),t.add("uv",r.Graphics.AttributeType.FLOAT,2);const i="\n uniform mat3 uvTransform;\n uniform mat3 positionTransform;\n\n attribute vec2 position;\n attribute vec2 uv;\n varying vec2 vUv;\n\n void main() {\n vUv = (uvTransform * vec3(uv, 1)).xy;\n gl_Position = vec4((positionTransform * vec3(position, 1)).xy, 0, 1);\n }\n",o=e=>`\n precision mediump float;\n\n uniform vec2 uvSpacePixelSize;\n uniform float renderOutlines;\n\n varying vec2 vUv;\n uniform sampler2D colorTexture;\n\n // https://en.wikipedia.org/wiki/HSL_and_HSV#From_luma/chroma/hue\n vec3 hcl2rgb(float H, float C, float L) {\n float hPrime = H / 60.0;\n float X = C * (1.0 - abs(mod(hPrime, 2.0) - 1.0));\n vec3 RGB =\n hPrime < 1.0 ? vec3(C, X, 0) :\n hPrime < 2.0 ? vec3(X, C, 0) :\n hPrime < 3.0 ? vec3(0, C, X) :\n hPrime < 4.0 ? vec3(0, X, C) :\n hPrime < 5.0 ? vec3(X, 0, C) :\n vec3(C, 0, X);\n\n float m = L - dot(RGB, vec3(0.30, 0.59, 0.11));\n return RGB + vec3(m, m, m);\n }\n\n float triangle(float x) {\n return 2.0 * abs(fract(x) - 0.5) - 1.0;\n }\n\n ${e}\n\n void main() {\n vec4 here = texture2D(colorTexture, vUv);\n\n if (here.z == 0.0) {\n // Background color\n gl_FragColor = vec4(0, 0, 0, 0);\n return;\n }\n\n // Sample the 4 surrounding pixels in the depth texture to determine\n // if we should draw a boundary here or not.\n vec4 N = texture2D(colorTexture, vUv + vec2(0, uvSpacePixelSize.y));\n vec4 E = texture2D(colorTexture, vUv + vec2(uvSpacePixelSize.x, 0));\n vec4 S = texture2D(colorTexture, vUv + vec2(0, -uvSpacePixelSize.y));\n vec4 W = texture2D(colorTexture, vUv + vec2(-uvSpacePixelSize.x, 0));\n\n // NOTE: For outline checks, we intentionally check both the right\n // and the left to determine if we're an edge. If a rectangle is a single\n // pixel wide, we don't want to render it as an outline, so this method\n // of checking ensures that we don't outline single physical-space\n // pixel width rectangles.\n if (\n renderOutlines > 0.0 &&\n (\n here.y == N.y && here.y != S.y || // Top edge\n here.y == S.y && here.y != N.y || // Bottom edge\n here.x == E.x && here.x != W.x || // Left edge\n here.x == W.x && here.x != E.x\n )\n ) {\n // We're on an edge! Draw transparent.\n gl_FragColor = vec4(0, 0, 0, 0);\n } else {\n // Not on an edge. Draw the appropriate color.\n gl_FragColor = vec4(colorForBucket(here.z), here.a);\n }\n }\n`;class a{constructor(e,r){this.gl=e;const n=[{pos:[-1,1],uv:[0,1]},{pos:[1,1],uv:[1,1]},{pos:[-1,-1],uv:[0,0]},{pos:[1,-1],uv:[1,0]}],a=[];for(let t of n)a.push(t.pos[0]),a.push(t.pos[1]),a.push(t.uv[0]),a.push(t.uv[1]);this.buffer=e.createVertexBuffer(t.stride*n.length),this.buffer.uploadFloats(a),this.material=e.createMaterial(t,i,o(r.colorForBucketGLSL))}render(t){const{srcRect:i,rectInfoTexture:o}=t,a=e.AffineTransform.withTranslation(new e.Vec2(0,1)).times(e.AffineTransform.withScale(new e.Vec2(1,-1))).times(e.AffineTransform.betweenRects(new e.Rect(e.Vec2.zero,new e.Vec2(o.width,o.height)),e.Rect.unit)).transformRect(i),s=e.AffineTransform.betweenRects(e.Rect.unit,a),{dstRect:c}=t,l=new e.Vec2(this.gl.viewport.width,this.gl.viewport.height),u=e.AffineTransform.withScale(new e.Vec2(1,-1)).times(e.AffineTransform.betweenRects(new e.Rect(e.Vec2.zero,l),e.Rect.NDC)).transformRect(c),h=e.AffineTransform.betweenRects(e.Rect.NDC,u),f=e.Vec2.unit.dividedByPointwise(new e.Vec2(t.rectInfoTexture.width,t.rectInfoTexture.height));this.material.setUniformSampler("colorTexture",t.rectInfoTexture,0),(0,n.setUniformAffineTransform)(this.material,"uvTransform",s),this.material.setUniformFloat("renderOutlines",t.renderOutlines?1:0),this.material.setUniformVec2("uvSpacePixelSize",f.x,f.y),(0,n.setUniformAffineTransform)(this.material,"positionTransform",h),this.gl.setUnpremultipliedBlendState(),this.gl.draw(r.Graphics.Primitive.TRIANGLE_STRIP,this.material,this.buffer)}}exports.FlamechartColorPassRenderer=a; },{"../lib/math":"tDuZ","./graphics":"XGYN","./utils":"MMP6"}],"KwET":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.CanvasContext=void 0;var e=require("./graphics"),r=require("./rectangle-batch-renderer"),t=require("./texture-renderer"),i=require("../lib/math"),n=require("./overlay-rectangle-renderer"),s=require("./flamechart-color-pass-renderer"),o=require("../lib/color");class a{constructor(i,a){this.animationFrameRequest=null,this.beforeFrameHandlers=new Set,this.onBeforeFrame=(()=>{this.animationFrameRequest=null,this.gl.setViewport(0,0,this.gl.renderTargetWidthInPixels,this.gl.renderTargetHeightInPixels);const r=o.Color.fromCSSHex(this.theme.bgPrimaryColor);this.gl.clear(new e.Graphics.Color(r.r,r.g,r.b,r.a));for(const e of this.beforeFrameHandlers)e()}),this.gl=new e.WebGL.Context(i),this.rectangleBatchRenderer=new r.RectangleBatchRenderer(this.gl),this.textureRenderer=new t.TextureRenderer(this.gl),this.viewportRectangleRenderer=new n.ViewportRectangleRenderer(this.gl,a),this.flamechartColorPassRenderer=new s.FlamechartColorPassRenderer(this.gl,a),this.theme=a,this.gl.addAfterResizeEventHandler(this.onBeforeFrame);const l=this.gl.getWebGLInfo();l&&console.log(`WebGL initialized. renderer: ${l.renderer}, vendor: ${l.vendor}, version: ${l.version}`),window.testContextLoss=(()=>{this.gl.testContextLoss()})}addBeforeFrameHandler(e){this.beforeFrameHandlers.add(e)}removeBeforeFrameHandler(e){this.beforeFrameHandlers.delete(e)}requestFrame(){this.animationFrameRequest||(this.animationFrameRequest=requestAnimationFrame(this.onBeforeFrame))}setViewport(e,r){const{origin:t,size:i}=e;let n=this.gl.viewport;this.gl.setViewport(t.x,t.y,i.x,i.y),r();let{x:s,y:o,width:a,height:l}=n;this.gl.setViewport(s,o,a,l)}renderBehind(e,r){const t=e.getBoundingClientRect(),n=new i.Rect(new i.Vec2(t.left*window.devicePixelRatio,t.top*window.devicePixelRatio),new i.Vec2(t.width*window.devicePixelRatio,t.height*window.devicePixelRatio));this.setViewport(n,r)}}exports.CanvasContext=a; },{"./graphics":"XGYN","./rectangle-batch-renderer":"UGJH","./texture-renderer":"p3j0","../lib/math":"tDuZ","./overlay-rectangle-renderer":"tdKg","./flamechart-color-pass-renderer":"Q0ad","../lib/color":"x77Y"}],"zEXv":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getFrameToColorBucket=exports.getProfileToView=exports.getRowAtlas=exports.getCanvasContext=exports.createGetCSSColorForFrame=exports.createGetColorBucketForFrame=void 0;var e=require("../lib/utils"),t=require("../gl/row-atlas"),o=require("../gl/canvas-context");const r=(0,e.memoizeByReference)(e=>t=>e.get(t.key)||0);exports.createGetColorBucketForFrame=r;const n=(0,e.memoizeByShallowEquality)(({theme:e,frameToColorBucket:t})=>{const o=r(t);return t=>{const r=o(t)/255;return e.colorForBucket(r).toCSS()}});exports.createGetCSSColorForFrame=n;const a=(0,e.memoizeByShallowEquality)(({theme:e,canvas:t})=>new o.CanvasContext(t,e));exports.getCanvasContext=a;const s=(0,e.memoizeByReference)(e=>new t.RowAtlas(e.gl,e.rectangleBatchRenderer,e.textureRenderer));exports.getRowAtlas=s;const l=(0,e.memoizeByShallowEquality)(({profile:e,flattenRecursion:t})=>t?e.getProfileWithRecursionFlattened():e);exports.getProfileToView=l;const c=(0,e.memoizeByReference)(e=>{const t=[];function o(e){return(e.file||"")+e.name}e.forEachFrame(e=>t.push(e)),t.sort(function(e,t){return o(e)>o(t)?1:-1});const r=new Map;for(let n=0;n=u.__.length&&u.__.push({}),u.__[_]}function a(_){return e=1,p(A,_)}function p(t,o,e){var u=f(_++,2);return u.__c||(u.__c=n,u.__=[e?e(o):A(void 0,o),function(_){var n=t(u.__[0],_);u.__[0]!==n&&(u.__[0]=n,u.__c.setState({}))}]),u.__}function h(t,e){var u=f(_++,3);!o.options.__s&&q(u.__H,e)&&(u.__=t,u.__H=e,n.__H.__h.push(u))}function v(t,e){var u=f(_++,4);!o.options.__s&&q(u.__H,e)&&(u.__=t,u.__H=e,n.__h.push(u))}function m(_){return e=5,l(function(){return{current:_}},[])}function H(_,n,t){e=6,v(function(){"function"==typeof _?_(n()):_&&(_.current=n())},null==t?t:t.concat(_))}function l(n,t){var o=f(_++,7);return q(o.__H,t)?(o.__H=t,o.__h=n,o.__=n()):o.__}function d(_,n){return e=8,l(function(){return _},n)}function x(t){var o=n.context[t.__c],e=f(_++,9);return e.__c=t,o?(null==e.__&&(e.__=!0,o.sub(n)),o.props.value):t.__}function y(_,n){o.options.useDebugValue&&o.options.useDebugValue(n?n(_):_)}function E(t){var o=f(_++,10),e=a();return o.__=t,n.componentDidCatch||(n.componentDidCatch=function(_){o.__&&o.__(_),e[1](_)}),[e[0],function(){e[1](void 0)}]}function b(){u.some(function(_){if(_.__P)try{_.__H.__h.forEach(g),_.__H.__h.forEach(D),_.__H.__h=[]}catch(n){return _.__H.__h=[],o.options.__e(n,_.__v),!0}}),u=[]}function g(_){_.t&&_.t()}function D(_){var n=_.__();"function"==typeof n&&(_.t=n)}function q(_,n){return!_||n.some(function(n,t){return n!==_[t]})}function A(_,n){return"function"==typeof n?n(_):n}o.options.__r=function(t){r&&r(t),_=0,(n=t.__c).__H&&(n.__H.__h.forEach(g),n.__H.__h.forEach(D),n.__H.__h=[])},o.options.diffed=function(_){i&&i(_);var n=_.__c;if(n){var e=n.__H;e&&e.__h.length&&(1!==u.push(n)&&t===o.options.requestAnimationFrame||((t=o.options.requestAnimationFrame)||function(_){var n,t=function(){clearTimeout(o),cancelAnimationFrame(n),setTimeout(_)},o=setTimeout(t,100);"undefined"!=typeof window&&(n=requestAnimationFrame(t))})(b))}},o.options.__c=function(_,n){n.some(function(_){try{_.__h.forEach(g),_.__h=_.__h.filter(function(_){return!_.__||D(_)})}catch(t){n.some(function(_){_.__h&&(_.__h=[])}),n=[],o.options.__e(t,_.__v)}}),c&&c(_,n)},o.options.unmount=function(_){s&&s(_);var n=_.__c;if(n){var t=n.__H;if(t)try{t.__.forEach(function(_){return _.t&&_.t()})}catch(_){o.options.__e(_,n.__v)}}}; },{"preact":"aSor"}],"AQ6k":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e={version:!0,Children:!0,render:!0,hydrate:!0,unmountComponentAtNode:!0,createPortal:!0,createFactory:!0,cloneElement:!0,isValidElement:!0,findDOMNode:!0,PureComponent:!0,memo:!0,forwardRef:!0,unstable_batchedUpdates:!0,Suspense:!0,SuspenseList:!0,lazy:!0,createElement:!0,createContext:!0,createRef:!0,Fragment:!0,Component:!0};exports.render=E,exports.hydrate=k,exports.unmountComponentAtNode=j,exports.createPortal=C,exports.createFactory=A,exports.cloneElement=U,exports.isValidElement=S,exports.findDOMNode=F,exports.memo=i,exports.forwardRef=l,exports.Suspense=d,exports.SuspenseList=v,exports.lazy=m,Object.defineProperty(exports,"createElement",{enumerable:!0,get:function(){return n.createElement}}),Object.defineProperty(exports,"createContext",{enumerable:!0,get:function(){return n.createContext}}),Object.defineProperty(exports,"createRef",{enumerable:!0,get:function(){return n.createRef}}),Object.defineProperty(exports,"Fragment",{enumerable:!0,get:function(){return n.Fragment}}),Object.defineProperty(exports,"Component",{enumerable:!0,get:function(){return n.Component}}),exports.unstable_batchedUpdates=exports.PureComponent=exports.Children=exports.version=exports.default=void 0;var t=require("preact/hooks");Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&(Object.prototype.hasOwnProperty.call(e,n)||Object.defineProperty(exports,n,{enumerable:!0,get:function(){return t[n]}}))});var n=require("preact");function r(e,t){for(var n in t)e[n]=t[n];return e}function o(e,t){for(var n in e)if("__source"!==n&&!(n in t))return!0;for(var r in t)if("__source"!==r&&e[r]!==t[r])return!0;return!1}var u=function(e){var t,n;function r(t){var n;return(n=e.call(this,t)||this).isPureReactComponent=!0,n}return n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,r.prototype.shouldComponentUpdate=function(e,t){return o(this.props,e)||o(this.state,t)},r}(n.Component);function i(e,t){function u(e){var n=this.props.ref,r=n==e.ref;return!r&&n&&(n.call?n(null):n.current=null),t?!t(this.props,e)||!r:o(this.props,e)}function i(t){return this.shouldComponentUpdate=u,(0,n.createElement)(e,r({},t))}return i.prototype.isReactComponent=!0,i.displayName="Memo("+(e.displayName||e.name)+")",i.t=!0,i}exports.PureComponent=u;var a=n.options.__b;function l(e){function t(t){var n=r({},t);return delete n.ref,e(n,t.ref)}return t.prototype.isReactComponent=t.t=!0,t.displayName="ForwardRef("+(e.displayName||e.name)+")",t}n.options.__b=function(e){e.type&&e.type.t&&e.ref&&(e.props.ref=e.ref,e.ref=null),a&&a(e)};var c=function(e,t){return e?(0,n.toChildArray)(e).reduce(function(e,n,r){return e.concat(t(n,r))},[]):null},p={map:c,forEach:c,count:function(e){return e?(0,n.toChildArray)(e).length:0},only:function(e){if(1!==(e=(0,n.toChildArray)(e)).length)throw new Error("Children.only() expects only one child.");return e[0]},toArray:n.toChildArray},s=n.options.__e;function f(e){return e&&((e=r({},e)).__c=null,e.__k=e.__k&&e.__k.map(f)),e}function d(){this.__u=0,this.o=null,this.__b=null}function _(e){var t=e.__.__c;return t&&t.u&&t.u(e)}function m(e){var t,r,o;function u(u){if(t||(t=e()).then(function(e){r=e.default||e},function(e){o=e}),o)throw o;if(!r)throw t;return(0,n.createElement)(r,u)}return u.displayName="Lazy",u.t=!0,u}function v(){this.i=null,this.l=null}exports.Children=p,n.options.__e=function(e,t,n){if(e.then)for(var r,o=t;o=o.__;)if((r=o.__c)&&r.__c)return r.__c(e,t.__c);s(e,t,n)},(d.prototype=new n.Component).__c=function(e,t){var n=this;null==n.o&&(n.o=[]),n.o.push(t);var r=_(n.__v),o=!1,u=function(){o||(o=!0,r?r(i):i())};t.__c=t.componentWillUnmount,t.componentWillUnmount=function(){u(),t.__c&&t.__c()};var i=function(){var e;if(!--n.__u)for(n.__v.__k[0]=n.state.u,n.setState({u:n.__b=null});e=n.o.pop();)e.forceUpdate()};n.__u++||n.setState({u:n.__b=n.__v.__k[0]}),e.then(u,u)},d.prototype.render=function(e,t){return this.__b&&(this.__v.__k[0]=f(this.__b),this.__b=null),[(0,n.createElement)(n.Component,null,t.u?null:e.children),t.u&&e.fallback]};var h=function(e,t,n){if(++n[1]===n[0]&&e.l.delete(t),e.props.revealOrder&&("t"!==e.props.revealOrder[0]||!e.l.size))for(n=e.i;n;){for(;n.length>3;)n.pop()();if(n[1]s()))}get(){return this.state}subscribe(s){this.observers.push(s)}unsubscribe(s){const t=this.observers.indexOf(s);-1!==t&&this.observers.splice(t,1)}}function i(t){const[e,r]=(0,s.useState)(t.get());return(0,s.useLayoutEffect)(()=>{function s(){r(t.get())}return r(t.get()),t.subscribe(s),()=>{t.unsubscribe(s)}},[t]),e}exports.Atom=r; },{"preact/hooks":"MwGB"}],"dpTI":[function(require,module,exports) { "use strict";var e;Object.defineProperty(exports,"__esModule",{value:!0}),exports.ViewMode=void 0,exports.ViewMode=e,function(e){e[e.CHRONO_FLAME_CHART=0]="CHRONO_FLAME_CHART",e[e.LEFT_HEAVY_FLAME_GRAPH=1]="LEFT_HEAVY_FLAME_GRAPH",e[e.SANDWICH_VIEW=2]="SANDWICH_VIEW"}(e||(exports.ViewMode=e={})); },{}],"O1pB":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getHashParams=o;var e=require("../lib/view-mode");function r(r){switch(r){case"time-ordered":return e.ViewMode.CHRONO_FLAME_CHART;case"left-heavy":return e.ViewMode.LEFT_HEAVY_FLAME_GRAPH;case"sandwich":return e.ViewMode.SANDWICH_VIEW;default:return null}}function o(e=window.location.hash){try{if(!e.startsWith("#"))return{};const t=e.substr(1).split("&"),i={};for(const e of t){let[o,t]=e.split("=");if(t=decodeURIComponent(t),"profileURL"===o)i.profileURL=t;else if("title"===o)i.title=t;else if("localProfilePath"===o)i.localProfilePath=t;else if("view"===o){const e=r(t);null!==e?i.viewMode=e:console.error(`Ignoring invalid view specifier: ${t}`)}}return i}catch(o){return console.error("Error when loading hash fragment."),console.error(o),{}}} },{"../lib/view-mode":"dpTI"}],"uxXA":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ProfileGroupAtom=exports.FlamechartID=void 0;var e,t=require("../lib/atom"),a=require("../lib/math"),l=require("../lib/utils");exports.FlamechartID=e,function(e){e.LEFT_HEAVY="LEFT_HEAVY",e.CHRONO="CHRONO",e.SANDWICH_INVERTED_CALLERS="SANDWICH_INVERTED_CALLERS",e.SANDWICH_CALLEES="SANDWICH_CALLEES"}(e||(exports.FlamechartID=e={}));let i={hover:null,selectedNode:null,configSpaceViewportRect:a.Rect.empty,logicalSpaceViewportSize:a.Vec2.zero};class s extends t.Atom{constructor(){super(...arguments),this.setProfileGroup=(e=>{this.set({name:e.name,indexToView:e.indexToView,profiles:e.profiles.map(e=>({profile:e,chronoViewState:i,leftHeavyViewState:i,sandwichViewState:{callerCallee:null}}))})}),this.setProfileIndexToView=(e=>{null!=this.state&&(e=(0,a.clamp)(e,0,this.state.profiles.length-1),this.set(Object.assign(Object.assign({},this.state),{indexToView:e})))}),this.setSelectedFrame=(e=>{if(null==this.state)return;null!=this.getActiveProfile()&&this.updateActiveSandwichViewState(t=>null==e?{callerCallee:null}:{callerCallee:{invertedCallerFlamegraph:i,calleeFlamegraph:i,selectedFrame:e}})})}set(e){const t=this.state;null!=t&&null!=e&&(0,l.objectsHaveShallowEquality)(t,e)||super.set(e)}getActiveProfile(){var e;return null==this.state?null:this.state.profiles[null===(e=this.state)||void 0===e?void 0:e.indexToView]||null}updateActiveProfileState(e){if(null==this.state)return;const{indexToView:t,profiles:a}=this.state;this.set(Object.assign(Object.assign({},this.state),{profiles:a.map((a,l)=>l!=t?a:e(a))}))}updateActiveSandwichViewState(e){this.updateActiveProfileState(t=>Object.assign(Object.assign({},t),{sandwichViewState:e(t.sandwichViewState)}))}updateFlamechartState(t,a){switch(t){case e.CHRONO:this.updateActiveProfileState(e=>Object.assign(Object.assign({},e),{chronoViewState:a(e.chronoViewState)}));break;case e.LEFT_HEAVY:this.updateActiveProfileState(e=>Object.assign(Object.assign({},e),{leftHeavyViewState:a(e.leftHeavyViewState)}));break;case e.SANDWICH_CALLEES:this.updateActiveSandwichViewState(e=>Object.assign(Object.assign({},e),{callerCallee:null==e.callerCallee?null:Object.assign(Object.assign({},e.callerCallee),{calleeFlamegraph:a(e.callerCallee.calleeFlamegraph)})}));break;case e.SANDWICH_INVERTED_CALLERS:this.updateActiveSandwichViewState(e=>Object.assign(Object.assign({},e),{callerCallee:null==e.callerCallee?null:Object.assign(Object.assign({},e.callerCallee),{invertedCallerFlamegraph:a(e.callerCallee.invertedCallerFlamegraph)})}))}}setFlamechartHoveredNode(e,t){this.updateFlamechartState(e,e=>Object.assign(Object.assign({},e),{hover:t}))}setSelectedNode(e,t){this.updateFlamechartState(e,e=>Object.assign(Object.assign({},e),{selectedNode:t}))}setConfigSpaceViewportRect(e,t){this.updateFlamechartState(e,e=>Object.assign(Object.assign({},e),{configSpaceViewportRect:t}))}setLogicalSpaceViewportSize(e,t){this.updateFlamechartState(e,e=>Object.assign(Object.assign({},e),{logicalSpaceViewportSize:t}))}clearHoverNode(){this.setFlamechartHoveredNode(e.CHRONO,null),this.setFlamechartHoveredNode(e.LEFT_HEAVY,null),this.setFlamechartHoveredNode(e.SANDWICH_CALLEES,null),this.setFlamechartHoveredNode(e.SANDWICH_INVERTED_CALLERS,null)}}exports.ProfileGroupAtom=s; },{"../lib/atom":"QkVE","../lib/math":"tDuZ","../lib/utils":"ucYa"}],"LDQe":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.tableSortMethodAtom=exports.SortDirection=exports.SortField=exports.errorAtom=exports.loadingAtom=exports.canUseXHR=exports.dragActiveAtom=exports.glCanvasAtom=exports.hashParamsAtom=exports.profileGroupAtom=exports.viewModeAtom=exports.searchQueryAtom=exports.searchIsActiveAtom=exports.flattenRecursionAtom=void 0;var o=require("../lib/atom"),t=require("../lib/view-mode"),e=require("../lib/hash-params"),r=require("./profile-group");const s=new o.Atom(!1,"flattenRecursion");exports.flattenRecursionAtom=s;const n=new o.Atom(!1,"searchIsActive");exports.searchIsActiveAtom=n;const i=new o.Atom("","searchQueryAtom");exports.searchQueryAtom=i;const A=new o.Atom(t.ViewMode.CHRONO_FLAME_CHART,"viewMode");exports.viewModeAtom=A;const a=new r.ProfileGroupAtom(null,"profileGroup");exports.profileGroupAtom=a,A.subscribe(()=>{a.clearHoverNode()});const p=(0,e.getHashParams)(),c=new o.Atom(p,"hashParams");exports.hashParamsAtom=c;const m=new o.Atom(null,"glCanvas");exports.glCanvasAtom=m;const l=new o.Atom(!1,"dragActive");exports.dragActiveAtom=l;const x=window.location.protocol,d="http:"===x||"https:"===x;exports.canUseXHR=d;const u=d&&null!=p.profileURL,h=new o.Atom(u,"loading");exports.loadingAtom=h;const S=new o.Atom(!1,"error");var v,w;exports.errorAtom=S,exports.SortField=v,function(o){o[o.SYMBOL_NAME=0]="SYMBOL_NAME",o[o.SELF=1]="SELF",o[o.TOTAL=2]="TOTAL"}(v||(exports.SortField=v={})),exports.SortDirection=w,function(o){o[o.ASCENDING=0]="ASCENDING",o[o.DESCENDING=1]="DESCENDING"}(w||(exports.SortDirection=w={}));const E=new o.Atom({field:v.SELF,direction:w.DESCENDING},"tableSortMethod");exports.tableSortMethodAtom=E; },{"../lib/atom":"QkVE","../lib/view-mode":"dpTI","../lib/hash-params":"O1pB","./profile-group":"uxXA"}],"MY42":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useActiveProfileState=t;var e=require("./getters"),i=require("."),r=require("../lib/atom");function t(){const t=(0,r.useAtom)(i.flattenRecursionAtom),o=(0,r.useAtom)(i.profileGroupAtom);if(!o)return null;if(o.indexToView>=o.profiles.length)return null;const n=o.indexToView,s=o.profiles[n];return Object.assign(Object.assign({},o.profiles[o.indexToView]),{profile:(0,e.getProfileToView)({profile:s.profile,flattenRecursion:t}),index:o.indexToView})} },{"./getters":"zEXv",".":"LDQe","../lib/atom":"QkVE"}],"KQrJ":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.colorSchemeAtom=exports.ColorScheme=void 0;var e,o=require("../lib/atom");exports.ColorScheme=e,function(e){e[e.SYSTEM=0]="SYSTEM",e[e.DARK=1]="DARK",e[e.LIGHT=2]="LIGHT"}(e||(exports.ColorScheme=e={}));const r="speedscope-color-scheme";function t(){const o=window.localStorage&&window.localStorage[r];return"DARK"===o?e.DARK:"LIGHT"===o?e.LIGHT:e.SYSTEM}function c(){return matchMedia("(prefers-color-scheme: dark)")}function s(o){if(c().matches)switch(o){case e.SYSTEM:return e.LIGHT;case e.LIGHT:return e.DARK;case e.DARK:return e.SYSTEM}else switch(o){case e.SYSTEM:return e.DARK;case e.DARK:return e.LIGHT;case e.LIGHT:return e.SYSTEM}}class a extends o.Atom{constructor(){super(...arguments),this.cycleToNextColorScheme=(()=>{this.set(s(this.get()))})}}const n=new a(t(),"colorScheme");exports.colorSchemeAtom=n,n.subscribe(()=>{const o=n.get();switch(o){case e.DARK:window.localStorage[r]="DARK";break;case e.LIGHT:window.localStorage[r]="LIGHT";break;case e.SYSTEM:delete window.localStorage[r];break;default:return o}return o}); },{"../lib/atom":"QkVE"}],"osod":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.darkTheme=void 0;var o,r=require("../../lib/color"),e=require("../../lib/utils");!function(o){o.LIGHTER_GRAY="#D0D0D0",o.LIGHT_GRAY="#BDBDBD",o.GRAY="#666666",o.DARK_GRAY="#222222",o.DARKER_GRAY="#0C0C0C",o.OFF_BLACK="#060606",o.BLACK="#000000",o.BLUE="#00769B",o.PALE_BLUE="#004E75",o.GREEN="#0F8A42",o.LIGHT_BROWN="#D6AE24",o.BROWN="#A66F1C"}(o||(o={}));const t=.2,l=.1,a=.2,R=.1,c=o=>{const t=(0,e.triangle)(30*o),l=.9*o*360,a=.2+.1*t,R=.2-.1*t;return r.Color.fromLumaChromaHue(R,a,l)},A=`\n vec3 colorForBucket(float t) {\n float x = triangle(30.0 * t);\n float H = 360.0 * (0.9 * t);\n float C = ${.2.toFixed(1)} + ${.1.toFixed(1)} * x;\n float L = ${.2.toFixed(1)} - ${.1.toFixed(1)} * x;\n return hcl2rgb(H, C, L);\n }\n`,C={fgPrimaryColor:o.LIGHTER_GRAY,fgSecondaryColor:o.GRAY,bgPrimaryColor:o.OFF_BLACK,bgSecondaryColor:o.DARKER_GRAY,altFgPrimaryColor:o.LIGHTER_GRAY,altFgSecondaryColor:o.GRAY,altBgPrimaryColor:o.BLACK,altBgSecondaryColor:o.DARKER_GRAY,selectionPrimaryColor:o.BLUE,selectionSecondaryColor:o.PALE_BLUE,weightColor:o.GREEN,searchMatchTextColor:o.DARKER_GRAY,searchMatchPrimaryColor:o.BROWN,searchMatchSecondaryColor:o.LIGHT_BROWN,colorForBucket:c,colorForBucketGLSL:A};exports.darkTheme=C; },{"../../lib/color":"x77Y","../../lib/utils":"ucYa"}],"CjU5":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.lightTheme=void 0;var o,r=require("../../lib/color"),e=require("../../lib/utils");!function(o){o.WHITE="#FFFFFF",o.OFF_WHITE="#F6F6F6",o.LIGHT_GRAY="#BDBDBD",o.GRAY="#666666",o.DARK_GRAY="#222222",o.OFF_BLACK="#111111",o.BLACK="#000000",o.DARK_BLUE="#2F80ED",o.PALE_DARK_BLUE="#8EB7ED",o.GREEN="#6FCF97",o.YELLOW="#FEDC62",o.ORANGE="#FFAC02"}(o||(o={}));const t=.25,l=.2,a=.8,F=.15,c=o=>{const t=(0,e.triangle)(30*o),l=.9*o*360,a=.25+.2*t,F=.8-.15*t;return r.Color.fromLumaChromaHue(F,a,l)},i=`\n vec3 colorForBucket(float t) {\n float x = triangle(30.0 * t);\n float H = 360.0 * (0.9 * t);\n float C = ${.25.toFixed(1)} + ${.2.toFixed(1)} * x;\n float L = ${.8.toFixed(1)} - ${.15.toFixed(1)} * x;\n return hcl2rgb(H, C, L);\n }\n`,C={fgPrimaryColor:o.BLACK,fgSecondaryColor:o.LIGHT_GRAY,bgPrimaryColor:o.WHITE,bgSecondaryColor:o.OFF_WHITE,altFgPrimaryColor:o.WHITE,altFgSecondaryColor:o.LIGHT_GRAY,altBgPrimaryColor:o.BLACK,altBgSecondaryColor:o.DARK_GRAY,selectionPrimaryColor:o.DARK_BLUE,selectionSecondaryColor:o.PALE_DARK_BLUE,weightColor:o.GREEN,searchMatchTextColor:o.BLACK,searchMatchPrimaryColor:o.ORANGE,searchMatchSecondaryColor:o.YELLOW,colorForBucket:c,colorForBucketGLSL:i};exports.lightTheme=C; },{"../../lib/color":"x77Y","../../lib/utils":"ucYa"}],"gzKG":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useTheme=i,exports.withTheme=u,exports.colorSchemeToString=a,exports.ThemeProvider=S,exports.ThemeContext=void 0;var e=require("preact"),r=require("preact/hooks"),t=require("../../app-state/color-scheme"),o=require("../../lib/atom"),c=require("../../lib/utils"),n=require("./dark-theme"),h=require("./light-theme");const s=(0,e.createContext)(h.lightTheme);function i(){return(0,r.useContext)(s)}function u(e){return(0,c.memoizeByReference)(e)}function m(){return matchMedia("(prefers-color-scheme: dark)")}function a(e){switch(e){case t.ColorScheme.SYSTEM:return"System";case t.ColorScheme.DARK:return"Dark";case t.ColorScheme.LIGHT:return"Light"}}function l(e,r){switch(e){case t.ColorScheme.SYSTEM:return r?n.darkTheme:h.lightTheme;case t.ColorScheme.DARK:return n.darkTheme;case t.ColorScheme.LIGHT:return h.lightTheme}}function S(c){const[n,h]=(0,r.useState)(()=>m().matches),i=(0,r.useCallback)(e=>{h(e.matches)},[h]);(0,r.useEffect)(()=>{const e=m();return e.addEventListener("change",i),()=>{e.removeEventListener("change",i)}},[i]);const u=l((0,o.useAtom)(t.colorSchemeAtom),n);return(0,e.h)(s.Provider,{value:u,children:c.children})}exports.ThemeContext=s; },{"preact":"aSor","preact/hooks":"MwGB","../../app-state/color-scheme":"KQrJ","../../lib/atom":"QkVE","../../lib/utils":"ucYa","./dark-theme":"osod","./light-theme":"CjU5"}],"QXNG":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=t;var e=/-webkit-|-moz-|-ms-/;function t(t){return"string"==typeof t&&e.test(t)}module.exports=exports.default; },{}],"tSfb":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=i;var e=require("css-in-js-utils/lib/isPrefixedValue"),t=r(e);function r(e){return e&&e.__esModule?e:{default:e}}var u=["-webkit-","-moz-",""];function i(e,r){if("string"==typeof r&&!(0,t.default)(r)&&r.indexOf("calc(")>-1)return u.map(function(e){return r.replace(/calc\(/g,e+"calc(")})}module.exports=exports.default; },{"css-in-js-utils/lib/isPrefixedValue":"QXNG"}],"ie1g":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=u;var e=require("css-in-js-utils/lib/isPrefixedValue"),r=t(e);function t(e){return e&&e.__esModule?e:{default:e}}var s=["-webkit-",""];function u(e,t){if("string"==typeof t&&!(0,r.default)(t)&&t.indexOf("cross-fade(")>-1)return s.map(function(e){return t.replace(/cross-fade\(/g,e+"cross-fade(")})}module.exports=exports.default; },{"css-in-js-utils/lib/isPrefixedValue":"QXNG"}],"CYBj":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=o;var e=["-webkit-","-moz-",""],r={"zoom-in":!0,"zoom-out":!0,grab:!0,grabbing:!0};function o(o,t){if("cursor"===o&&r.hasOwnProperty(t))return e.map(function(e){return e+t})}module.exports=exports.default; },{}],"MH9I":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=u;var e=require("css-in-js-utils/lib/isPrefixedValue"),t=r(e);function r(e){return e&&e.__esModule?e:{default:e}}var i=["-webkit-",""];function u(e,r){if("string"==typeof r&&!(0,t.default)(r)&&r.indexOf("filter(")>-1)return i.map(function(e){return r.replace(/filter\(/g,e+"filter(")})}module.exports=exports.default; },{"css-in-js-utils/lib/isPrefixedValue":"QXNG"}],"jmPR":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=i;var e={flex:["-webkit-box","-moz-box","-ms-flexbox","-webkit-flex","flex"],"inline-flex":["-webkit-inline-box","-moz-inline-box","-ms-inline-flexbox","-webkit-inline-flex","inline-flex"]};function i(i,l){if("display"===i&&e.hasOwnProperty(l))return e[l]}module.exports=exports.default; },{}],"FRuF":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=s;var e={"space-around":"distribute","space-between":"justify","flex-start":"start","flex-end":"end"},t={alignContent:"msFlexLinePack",alignSelf:"msFlexItemAlign",alignItems:"msFlexAlign",justifyContent:"msFlexPack",order:"msFlexOrder",flexGrow:"msFlexPositive",flexShrink:"msFlexNegative",flexBasis:"msFlexPreferredSize"};function s(s,l,r){t.hasOwnProperty(s)&&(r[t[s]]=e[l]||l)}module.exports=exports.default; },{}],"bHSr":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=i;var e={"space-around":"justify","space-between":"justify","flex-start":"start","flex-end":"end","wrap-reverse":"multiple",wrap:"multiple"},t={alignItems:"WebkitBoxAlign",justifyContent:"WebkitBoxPack",flexWrap:"WebkitBoxLines"};function i(i,r,o){"flexDirection"===i&&"string"==typeof r&&(r.indexOf("column")>-1?o.WebkitBoxOrient="vertical":o.WebkitBoxOrient="horizontal",r.indexOf("reverse")>-1?o.WebkitBoxDirection="reverse":o.WebkitBoxDirection="normal"),t.hasOwnProperty(i)&&(o[t[i]]=e[r]||r)}module.exports=exports.default; },{}],"QxYG":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=n;var e=require("css-in-js-utils/lib/isPrefixedValue"),t=r(e);function r(e){return e&&e.__esModule?e:{default:e}}var i=["-webkit-","-moz-",""],a=/linear-gradient|radial-gradient|repeating-linear-gradient|repeating-radial-gradient/;function n(e,r){if("string"==typeof r&&!(0,t.default)(r)&&a.test(r))return i.map(function(e){return e+r})}module.exports=exports.default; },{"css-in-js-utils/lib/isPrefixedValue":"QXNG"}],"qrrU":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=u;var e=require("css-in-js-utils/lib/isPrefixedValue"),t=r(e);function r(e){return e&&e.__esModule?e:{default:e}}var i=["-webkit-",""];function u(e,r){if("string"==typeof r&&!(0,t.default)(r)&&r.indexOf("image-set(")>-1)return i.map(function(e){return r.replace(/image-set\(/g,e+"image-set(")})}module.exports=exports.default; },{"css-in-js-utils/lib/isPrefixedValue":"QXNG"}],"pEQ2":[function(require,module,exports) { "use strict";function e(e,t){if("position"===e&&"sticky"===t)return["-webkit-sticky","sticky"]}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=e,module.exports=exports.default; },{}],"M0DH":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=i;var t=["-webkit-","-moz-",""],e={maxHeight:!0,maxWidth:!0,width:!0,height:!0,columnWidth:!0,minWidth:!0,minHeight:!0},n={"min-content":!0,"max-content":!0,"fill-available":!0,"fit-content":!0,"contain-floats":!0};function i(i,o){if(e.hasOwnProperty(i)&&n.hasOwnProperty(o))return t.map(function(t){return t+o})}module.exports=exports.default; },{}],"jNGL":[function(require,module,exports) { "use strict";var e=/[A-Z]/g,r=/^ms-/,s={};function t(t){return t in s?s[t]:s[t]=t.replace(e,"-$&").toLowerCase().replace(r,"-ms-")}module.exports=t; },{}],"S6J3":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=u;var e=require("hyphenate-style-name"),t=r(e);function r(e){return e&&e.__esModule?e:{default:e}}function u(e){return(0,t.default)(e)}module.exports=exports.default; },{"hyphenate-style-name":"jNGL"}],"XxlV":[function(require,module,exports) { "use strict";function e(e){return e.charAt(0).toUpperCase()+e.slice(1)}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=e,module.exports=exports.default; },{}],"cnM4":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=l;var t=require("css-in-js-utils/lib/hyphenateProperty"),e=s(t),r=require("css-in-js-utils/lib/isPrefixedValue"),i=s(r),n=require("../../utils/capitalizeString"),o=s(n);function s(t){return t&&t.__esModule?t:{default:t}}var u={transition:!0,transitionProperty:!0,WebkitTransition:!0,WebkitTransitionProperty:!0,MozTransition:!0,MozTransitionProperty:!0},a={Webkit:"-webkit-",Moz:"-moz-",ms:"-ms-"};function f(t,r){if((0,i.default)(t))return t;for(var n=t.split(/,(?![^()]*(?:\([^()]*\))?\))/g),o=0,s=n.length;o-1&&"order"!==p)for(var d=r[l],c=0,b=d.length;c-1)return s;var a=n.split(/,(?![^()]*(?:\([^()]*\))?\))/g).filter(function(t){return!/-webkit-|-ms-/.test(t)}).join(",");return t.indexOf("Moz")>-1?a:(r["Webkit"+(0,o.default)(t)]=s,r["Moz"+(0,o.default)(t)]=a,n)}}module.exports=exports.default; },{"css-in-js-utils/lib/hyphenateProperty":"S6J3","css-in-js-utils/lib/isPrefixedValue":"QXNG","../../utils/capitalizeString":"XxlV"}],"ZBgn":[function(require,module,exports) { "use strict";function r(r){for(var t=5381,e=r.length;e;)t=33*t^r.charCodeAt(--e);return t>>>0}module.exports=r; },{}],"D2Wi":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=u;var e=require("./capitalizeString"),r=t(e);function t(e){return e&&e.__esModule?e:{default:e}}function u(e,t,u){if(e.hasOwnProperty(t)){for(var o={},a=e[t],n=(0,r.default)(t),f=Object.keys(u),l=0;l0&&(i[s]=d)}else{var x=(0,u.default)(l,s,n,i,t);x&&(i[s]=x),i=(0,r.default)(t,s,i)}}return i}}module.exports=exports.default; },{"../utils/prefixProperty":"D2Wi","../utils/prefixValue":"qgi9","../utils/addNewValuesOnly":"a80f","../utils/isObject":"ek9P"}],"AARE":[function(require,module,exports) { var global = arguments[3]; var e=arguments[3];function t(e){r.length||(n(),a=!0),r[r.length]=e}module.exports=t;var n,r=[],a=!1,o=0,u=1024;function l(){for(;ou){for(var t=0,n=r.length-o;t4&&void 0!==arguments[4]?arguments[4]:[];if(!Q[e]){var o=N(t,r,i,V,n);te(e,o)}},ne=function(){$=[],Q={},ee=!1,Z=null},ie=function(){return $},oe=function(){if(ee)throw new Error("Cannot buffer while already buffering");ee=!0},ae=function(){ee=!1;var e=$;return $=[],e},se=function(){return ae().join("")},ue=function(){var e=ae();e.length>0&&K(e)};exports.flushToStyleTag=ue;var le=function(){return Object.keys(Q)},fe=function(e){e.forEach(function(e){Q[e]=!0})},ce=function e(t,r,n,i){for(var o=0;o0&&void 0!==arguments[0]?arguments[0]:[];fe(e)}}()},ge="undefined"!=typeof window?null:{renderStatic:function(){return function(e){return ne(),oe(),{html:e(),css:{content:se(),renderedClassNames:le()}}}}()},Se=null;function ve(e,t){return{StyleSheet:Object.assign({},he,{extend:function(){return function(r){var n=r.map(function(e){return e.selectorHandler}).filter(function(e){return e});return ve(e,t.concat(n))}}()}),StyleSheetServer:ge,StyleSheetTestUtils:Se,minify:function(){return function(e){me=e?W:pe}}(),css:function(){return function(){for(var r=arguments.length,n=Array(r),i=0;i{const t=s(e.name,this.searchQuery);this.matches.set(e,0===t.length?null:t)})),this.matches.get(e)||null}}exports.ProfileSearchResults=r;class h{constructor(e,t){this.flamechart=e,this.profileResults=t,this.matches=null}getResults(){if(null==this.matches){const e=[],s=new Map,r=(h,a)=>{const{node:c}=h;if(this.profileResults.getMatchForFrame(c.frame)){const r=new t.Rect(new t.Vec2(h.start,a),new t.Vec2(h.end-h.start,1));s.set(c,e.length),e.push({configSpaceBounds:r,node:c})}h.children.forEach(e=>{r(e,a+1)})},h=this.flamechart.getLayers();h.length>0&&h[0].forEach(e=>r(e,0)),this.matches={matches:e,indexForNode:s}}return this.matches}count(){return this.getResults().matches.length}indexOf(e){const t=this.getResults().indexForNode.get(e);return void 0===t?null:t}at(e){const t=this.getResults().matches;if(e<0||e>=t.length)throw new Error(`Index ${e} out of bounds in list of ${t.length} matches.`);return t[e]}}exports.FlamechartSearchResults=h; },{"./math":"tDuZ"}],"t9CM":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.SearchView=exports.ProfileSearchContextProvider=exports.ProfileSearchContext=void 0;var e=require("aphrodite"),t=require("preact"),r=require("preact/hooks"),o=require("preact/compat"),n=require("./style"),s=require("../lib/profile-search"),i=require("../app-state/active-profile-state"),l=require("./themes/theme"),a=require("../app-state"),c=require("../lib/atom");function u(e){e.stopPropagation()}const h=(0,t.createContext)(null);exports.ProfileSearchContext=h;const p=({children:e})=>{const o=(0,i.useActiveProfileState)(),n=o?o.profile:null,l=(0,c.useAtom)(a.searchIsActiveAtom),u=(0,c.useAtom)(a.searchQueryAtom),p=(0,r.useMemo)(()=>n&&l&&0!==u.length?new s.ProfileSearchResults(n,u):null,[l,u,n]);return(0,t.h)(h.Provider,{value:p},e)};exports.ProfileSearchContextProvider=p;const d=(0,o.memo)(({numResults:o,resultIndex:n,selectNext:s,selectPrev:i})=>{const h=(0,l.useTheme)(),p=m(h),d=(0,c.useAtom)(a.searchIsActiveAtom),f=(0,c.useAtom)(a.searchQueryAtom),y=a.searchQueryAtom.set,g=a.searchIsActiveAtom.set,x=(0,r.useCallback)(e=>{const t=e.target.value;y(t)},[y]),b=(0,r.useRef)(null),v=(0,r.useCallback)(()=>g(!1),[g]),C=(0,r.useCallback)(e=>{e.shiftKey?i():s()},[i,s]),S=(0,r.useCallback)(e=>{e.stopPropagation(),"Escape"===e.key&&g(!1),"Enter"===e.key&&C(e),"f"==e.key&&(e.metaKey||e.ctrlKey)&&(b.current&&b.current.select(),e.preventDefault())},[g,C]);return(0,r.useEffect)(()=>{const e=e=>{"f"==e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),b.current?b.current.select():(g(!0),requestAnimationFrame(()=>{b.current&&b.current.select()})))};return window.addEventListener("keydown",e),()=>{window.removeEventListener("keydown",e)}},[g]),d?(0,t.h)("div",{className:(0,e.css)(p.searchView)},(0,t.h)("span",{className:(0,e.css)(p.icon)},"🔍"),(0,t.h)("span",{className:(0,e.css)(p.inputContainer)},(0,t.h)("input",{className:(0,e.css)(p.input),value:f,onInput:x,onKeyDown:S,onKeyUp:u,onKeyPress:u,ref:b})),null!=o&&(0,t.h)(t.Fragment,null,(0,t.h)("span",{className:(0,e.css)(p.resultCount)},null==n?"?":n+1,"/",o),(0,t.h)("button",{className:(0,e.css)(p.icon,p.button),onClick:i},"⬅️"),(0,t.h)("button",{className:(0,e.css)(p.icon,p.button),onClick:s},"➡️")),(0,t.h)("svg",{className:(0,e.css)(p.icon),onClick:v,width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},(0,t.h)("path",{d:"M4.99999 4.16217L11.6427 10.8048M11.6427 4.16217L4.99999 10.8048",stroke:h.altFgSecondaryColor}))):null});exports.SearchView=d;const m=(0,l.withTheme)(t=>e.StyleSheet.create({searchView:{position:"absolute",top:0,right:10,height:n.Sizes.TOOLBAR_HEIGHT,width:208,borderWidth:2,borderColor:t.altFgPrimaryColor,borderStyle:"solid",fontSize:n.FontSize.LABEL,boxSizing:"border-box",background:t.altBgSecondaryColor,color:t.altFgPrimaryColor,display:"flex",alignItems:"center"},inputContainer:{flexShrink:1,flexGrow:1,display:"flex"},input:{width:"100%",border:"none",background:"none",fontSize:n.FontSize.LABEL,lineHeight:`${n.Sizes.TOOLBAR_HEIGHT}px`,color:t.altFgPrimaryColor,":focus":{border:"none",outline:"none"},"::selection":{color:t.altFgPrimaryColor,background:t.selectionPrimaryColor}},resultCount:{verticalAlign:"middle"},icon:{flexShrink:0,verticalAlign:"middle",height:"100%",margin:"0px 2px 0px 2px",fontSize:n.FontSize.LABEL},button:{display:"inline",background:"none",border:"none",padding:0,":focus":{outline:"none"}}})); },{"aphrodite":"CxN7","preact":"aSor","preact/hooks":"MwGB","preact/compat":"AQ6k","./style":"hvr4","../lib/profile-search":"DHvC","../app-state/active-profile-state":"MY42","./themes/theme":"gzKG","../app-state":"LDQe","../lib/atom":"QkVE"}],"FbpF":[function(require,module,exports) { "use strict";function e(e){return e.replace(/\\([a-fA-F0-9]{2})/g,(e,n)=>{const t=parseInt(n,16);return String.fromCharCode(t)})}function n(n){const t=n.split("\n");if(!t.length)return null;if(""===t[t.length-1]&&t.pop(),!t.length)return null;const r=new Map,o=/^(\d+):(.+)$/,s=/^([\$\w]+):([\$\w-]+)$/;for(const u of t){const n=o.exec(u);if(n){r.set(`wasm-function[${n[1]}]`,e(n[2]));continue}const t=s.exec(u);if(!t)return null;r.set(t[1],e(t[2]))}return e=>r.has(e.name)?{name:r.get(e.name)}:null}Object.defineProperty(exports,"__esModule",{value:!0}),exports.importEmscriptenSymbolMap=n; },{}],"Pua8":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ColorChit=o;var e=require("preact"),t=require("aphrodite"),r=require("./style"),i=require("./themes/theme");function o(r){const o=s((0,i.useTheme)());return(0,e.h)("span",{className:(0,t.css)(o.stackChit),style:{backgroundColor:r.color}})}const s=(0,i.withTheme)(e=>t.StyleSheet.create({stackChit:{position:"relative",top:-1,display:"inline-block",verticalAlign:"middle",marginRight:"0.5em",border:`1px solid ${e.fgSecondaryColor}`,width:r.FontSize.LABEL-2,height:r.FontSize.LABEL-2}})); },{"preact":"aSor","aphrodite":"CxN7","./style":"hvr4","./themes/theme":"gzKG"}],"SGwe":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ScrollableListView=void 0;var e=require("preact"),t=require("preact/hooks");const r=({items:r,axis:l,renderItems:n,className:i,initialIndexInView:s})=>{const[u,o]=(0,t.useState)(null),[c,a]=(0,t.useState)(0),d=(0,t.useRef)(null),f="x"===l?"width":"height",x="x"===l?"left":"top",b="x"===l?"scrollLeft":"scrollTop",h=s?r.reduce((e,t,r)=>r{e?requestAnimationFrame(()=>{o(e.getBoundingClientRect()[f]),null!=m.current&&(e.scrollTo({[x]:m.current}),m.current=null)}):o(null),d.current=e},[o,f,x]),g=(0,t.useMemo)(()=>{if(null==d.current||null==u||null==c)return null;const e=c-u/4,t=c+u+u/4;let l=0,n=0,i=0;for(;i=e)break}const s=i;for(;i=t)break}return{firstVisibleIndex:s,lastVisibleIndex:Math.min(i,r.length-1),invisiblePrefixSize:n}},[u,c,r]),p=(0,t.useMemo)(()=>r.reduce((e,t)=>e+t.size,0),[r]),w=(0,t.useCallback)(()=>{null!=d.current&&a(d.current[b])},[b]);(0,t.useEffect)(()=>{const e=()=>{null!=d.current&&o(d.current.getBoundingClientRect()[f])};return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}},[f]);const z=(0,t.useMemo)(()=>g?n(g.firstVisibleIndex,g.lastVisibleIndex):null,[n,g]),I=(0,t.useMemo)(()=>(0,e.h)("div",{style:{height:p}},(0,e.h)("div",{style:{transform:`translateY(${(null==g?void 0:g.invisiblePrefixSize)||0}px)`}},z)),[g,z,p]);return(0,e.h)("div",{className:i,ref:v,onScroll:w},I)};exports.ScrollableListView=r; },{"preact":"aSor","preact/hooks":"MwGB"}],"Ivh5":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ProfileTableViewContainer=exports.ProfileTableView=void 0;var e=require("preact"),t=require("aphrodite"),r=require("../lib/utils"),o=require("./style"),l=require("./color-chit"),i=require("./scrollable-list-view"),a=require("../app-state/getters"),s=require("preact/compat"),c=require("preact/hooks"),n=require("./sandwich-view"),h=require("../lib/color"),d=require("./themes/theme"),m=require("../app-state"),u=require("../lib/atom");function S(r){const o=p((0,d.useTheme)());return(0,e.h)("div",{className:(0,t.css)(o.hBarDisplay)},(0,e.h)("div",{className:(0,t.css)(o.hBarDisplayFilled),style:{width:`${r.perc}%`}}))}function b(r){const o=(0,d.useTheme)(),l=p(o),{activeDirection:i}=r,a=i===m.SortDirection.ASCENDING?o.fgPrimaryColor:o.fgSecondaryColor,s=i===m.SortDirection.DESCENDING?o.fgPrimaryColor:o.fgSecondaryColor;return(0,e.h)("svg",{width:"8",height:"10",viewBox:"0 0 8 10",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:(0,t.css)(l.sortIcon)},(0,e.h)("path",{d:"M0 4L4 0L8 4H0Z",fill:a}),(0,e.h)("path",{d:"M0 4L4 0L8 4H0Z",transform:"translate(0 10) scale(1 -1)",fill:s}))}function g(t,r,o){const l=[];let i=0;for(let a of r)l.push(t.slice(i,a[0])),l.push((0,e.h)("span",{className:o},t.slice(a[0],a[1]))),i=a[1];return l.push(t.slice(i)),(0,e.h)("span",null,l)}const C=({frame:o,matchedRanges:i,profile:a,index:s,selectedFrame:c,setSelectedFrame:n,getCSSColorForFrame:h})=>{const m=p((0,d.useTheme)()),u=o.getTotalWeight(),b=o.getSelfWeight(),C=100*u/a.getTotalNonIdleWeight(),f=100*b/a.getTotalNonIdleWeight(),w=o===c;return(0,e.h)("tr",{key:`${s}`,onClick:n.bind(null,o),className:(0,t.css)(m.tableRow,s%2==0&&m.tableRowEven,w&&m.tableRowSelected)},(0,e.h)("td",{className:(0,t.css)(m.numericCell)},a.formatValue(u)," (",(0,r.formatPercent)(C),")",(0,e.h)(S,{perc:C})),(0,e.h)("td",{className:(0,t.css)(m.numericCell)},a.formatValue(b)," (",(0,r.formatPercent)(f),")",(0,e.h)(S,{perc:f})),(0,e.h)("td",{title:o.file,className:(0,t.css)(m.textCell)},(0,e.h)(l.ColorChit,{color:h(o)}),i?g(o.name,i,(0,t.css)(m.matched,w&&m.matchedSelected)):o.name))},f=(0,s.memo)(({profile:r,sortMethod:l,setSortMethod:a,selectedFrame:s,setSelectedFrame:h,getCSSColorForFrame:u,searchQuery:S,searchIsActive:g})=>{const f=p((0,d.useTheme)()),w=(0,c.useCallback)((e,t)=>{if(t.preventDefault(),l.field==e)a({field:e,direction:l.direction===m.SortDirection.ASCENDING?m.SortDirection.DESCENDING:m.SortDirection.ASCENDING});else switch(e){case m.SortField.SYMBOL_NAME:a({field:e,direction:m.SortDirection.ASCENDING});break;case m.SortField.SELF:case m.SortField.TOTAL:a({field:e,direction:m.SortDirection.DESCENDING})}},[l,a]),F=(0,c.useContext)(n.SandwichViewContext),y=(0,c.useCallback)((o,l)=>{if(!F)return null;const i=[];for(let e=o;e<=l;e++){const t=F.rowList[e],o=F.getSearchMatchForFrame(t);i.push(C({frame:t,matchedRanges:null==o?null:o,index:e,profile:r,selectedFrame:s,setSelectedFrame:h,getCSSColorForFrame:u}))}return 0===i.length&&(g?i.push((0,e.h)("tr",null,(0,e.h)("td",{className:(0,t.css)(f.emptyState)},'No symbol names match query "',S,'".'))):i.push((0,e.h)("tr",null,(0,e.h)("td",{className:(0,t.css)(f.emptyState)},"No symbols found.")))),(0,e.h)("table",{className:(0,t.css)(f.tableView)},i)},[F,r,s,h,u,g,S,f.emptyState,f.tableView]),N=(0,c.useMemo)(()=>null==F?[]:F.rowList.map(e=>({size:o.Sizes.FRAME_HEIGHT})),[F]),E=(0,c.useCallback)(e=>w(m.SortField.TOTAL,e),[w]),A=(0,c.useCallback)(e=>w(m.SortField.SELF,e),[w]),v=(0,c.useCallback)(e=>w(m.SortField.SYMBOL_NAME,e),[w]);return(0,e.h)("div",{className:(0,t.css)(o.commonStyle.vbox,f.profileTableView)},(0,e.h)("table",{className:(0,t.css)(f.tableView)},(0,e.h)("thead",{className:(0,t.css)(f.tableHeader)},(0,e.h)("tr",null,(0,e.h)("th",{className:(0,t.css)(f.numericCell),onClick:E},(0,e.h)(b,{activeDirection:l.field===m.SortField.TOTAL?l.direction:null}),"Total"),(0,e.h)("th",{className:(0,t.css)(f.numericCell),onClick:A},(0,e.h)(b,{activeDirection:l.field===m.SortField.SELF?l.direction:null}),"Self"),(0,e.h)("th",{className:(0,t.css)(f.textCell),onClick:v},(0,e.h)(b,{activeDirection:l.field===m.SortField.SYMBOL_NAME?l.direction:null}),"Symbol Name")))),(0,e.h)(i.ScrollableListView,{axis:"y",items:N,className:(0,t.css)(f.scrollView),renderItems:y,initialIndexInView:null==s?null:null==F?void 0:F.getIndexForFrame(s)}))});exports.ProfileTableView=f;const p=(0,d.withTheme)(e=>t.StyleSheet.create({profileTableView:{background:e.bgPrimaryColor,height:"100%"},scrollView:{overflowY:"auto",overflowX:"hidden",flexGrow:1,"::-webkit-scrollbar":{background:e.bgPrimaryColor},"::-webkit-scrollbar-thumb":{background:e.fgSecondaryColor,borderRadius:20,border:`3px solid ${e.bgPrimaryColor}`,":hover":{background:e.fgPrimaryColor}}},tableView:{width:"100%",fontSize:o.FontSize.LABEL,background:e.bgPrimaryColor},tableHeader:{borderBottom:`2px solid ${e.bgSecondaryColor}`,textAlign:"left",color:e.fgPrimaryColor,userSelect:"none"},sortIcon:{position:"relative",top:1,marginRight:o.Sizes.FRAME_HEIGHT/4},tableRow:{background:e.bgPrimaryColor,height:o.Sizes.FRAME_HEIGHT},tableRowEven:{background:e.bgSecondaryColor},tableRowSelected:{background:e.selectionPrimaryColor,color:e.altFgPrimaryColor},numericCell:{textOverflow:"ellipsis",overflow:"hidden",whiteSpace:"nowrap",position:"relative",textAlign:"right",paddingRight:o.Sizes.FRAME_HEIGHT,width:6*o.Sizes.FRAME_HEIGHT,minWidth:6*o.Sizes.FRAME_HEIGHT},textCell:{textOverflow:"ellipsis",overflow:"hidden",whiteSpace:"nowrap",width:"100%",maxWidth:0},hBarDisplay:{position:"absolute",background:h.Color.fromCSSHex(e.weightColor).withAlpha(.2).toCSS(),bottom:2,height:2,width:`calc(100% - ${2*o.Sizes.FRAME_HEIGHT}px)`,right:o.Sizes.FRAME_HEIGHT},hBarDisplayFilled:{height:"100%",position:"absolute",background:e.weightColor,right:0},matched:{borderBottom:`2px solid ${e.fgPrimaryColor}`},matchedSelected:{borderColor:e.altFgPrimaryColor},emptyState:{textAlign:"center",fontWeight:"bold"}})),w=(0,s.memo)(t=>{const{activeProfileState:r}=t,{profile:o,sandwichViewState:l}=r;if(!o)throw new Error("profile missing");const i=(0,u.useAtom)(m.tableSortMethodAtom),s=(0,d.useTheme)(),{callerCallee:n}=l,h=n?n.selectedFrame:null,S=(0,a.getFrameToColorBucket)(o),b=(0,a.createGetCSSColorForFrame)({theme:s,frameToColorBucket:S}),g=(0,c.useCallback)(e=>{m.profileGroupAtom.setSelectedFrame(e)},[]),C=(0,u.useAtom)(m.searchIsActiveAtom),p=(0,u.useAtom)(m.searchQueryAtom);return(0,e.h)(f,{profile:o,selectedFrame:h,getCSSColorForFrame:b,sortMethod:i,setSelectedFrame:g,setSortMethod:m.tableSortMethodAtom.set,searchIsActive:C,searchQuery:p})});exports.ProfileTableViewContainer=w; },{"preact":"aSor","aphrodite":"CxN7","../lib/utils":"ucYa","./style":"hvr4","./color-chit":"Pua8","./scrollable-list-view":"SGwe","../app-state/getters":"zEXv","preact/compat":"AQ6k","preact/hooks":"MwGB","./sandwich-view":"L8J2","../lib/color":"x77Y","./themes/theme":"gzKG","../app-state":"LDQe","../lib/atom":"QkVE"}],"gFMr":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Flamechart=void 0;var t=require("./utils"),e=require("./math");class i{getTotalWeight(){return this.totalWeight}getLayers(){return this.layers}getColorBucketForFrame(t){return this.source.getColorBucketForFrame(t)}getMinFrameWidth(){return this.minFrameWidth}formatValue(t){return this.source.formatValue(t)}getClampedViewportWidth(t){const i=this.getTotalWeight(),r=Math.pow(2,40),s=(0,e.clamp)(3*this.getMinFrameWidth(),i/r,i);return(0,e.clamp)(t,s,i)}getClampedConfigSpaceViewportRect({configSpaceViewportRect:t,renderInverted:i}){const r=new e.Vec2(this.getTotalWeight(),this.getLayers().length),s=this.getClampedViewportWidth(t.size.x),h=t.size.withX(s),a=e.Vec2.clamp(t.origin,new e.Vec2(0,i?0:-1),e.Vec2.max(e.Vec2.zero,r.minus(h).plus(new e.Vec2(0,1))));return new e.Rect(a,t.size.withX(s))}constructor(e){this.source=e,this.layers=[],this.totalWeight=0,this.minFrameWidth=1;const i=[];this.minFrameWidth=1/0;this.totalWeight=e.getTotalWeight(),e.forEachCall((e,r)=>{const s=(0,t.lastOf)(i),h={node:e,parent:s,children:[],start:r,end:r};s&&s.children.push(h),i.push(h)},(t,e)=>{console.assert(i.length>0);const r=i.pop();if(r.end=e,r.end-r.start==0)return;const s=i.length;for(;this.layers.length<=s;)this.layers.push([]);this.layers[s].push(r),this.minFrameWidth=Math.min(this.minFrameWidth,r.end-r.start)}),isFinite(this.minFrameWidth)||(this.minFrameWidth=1)}}exports.Flamechart=i; },{"./utils":"ucYa","./math":"tDuZ"}],"P80v":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.FlamechartRenderer=exports.FlamechartRowAtlasKey=void 0;var e=require("./rectangle-batch-renderer"),t=require("../lib/math"),r=require("../lib/color"),n=require("../lib/utils"),s=require("./graphics"),o=require("./utils");const c=1e4;class i{constructor(e,t,r){this.batch=e,this.bounds=t,this.numPrecedingRectanglesInRow=r,this.children=[]}getBatch(){return this.batch}getBounds(){return this.bounds}getRectCount(){return this.batch.getRectCount()}getChildren(){return this.children}getParity(){return this.numPrecedingRectanglesInRow%2}forEachLeafNodeWithinBounds(e,t){this.bounds.hasIntersectionWith(e)&&t(this)}}class h{constructor(e){if(this.children=e,this.rectCount=0,0===e.length)throw new Error("Empty interior node");let r=1/0,n=-1/0,s=1/0,o=-1/0;for(let t of e){this.rectCount+=t.getRectCount();const e=t.getBounds();r=Math.min(r,e.left()),n=Math.max(n,e.right()),s=Math.min(s,e.top()),o=Math.max(o,e.bottom())}this.bounds=new t.Rect(new t.Vec2(r,s),new t.Vec2(n-r,o-s))}getBounds(){return this.bounds}getRectCount(){return this.rectCount}getChildren(){return this.children}forEachLeafNodeWithinBounds(e,t){if(this.bounds.hasIntersectionWith(e))for(let r of this.children)r.forEachLeafNodeWithinBounds(e,t)}}class a{get key(){return`${this.stackDepth}_${this.index}_${this.zoomLevel}`}constructor(e){this.stackDepth=e.stackDepth,this.zoomLevel=e.zoomLevel,this.index=e.index}static getOrInsert(e,t){return e.getOrInsert(new a(t))}}exports.FlamechartRowAtlasKey=a;class l{constructor(s,o,a,l,g,d={inverted:!1}){this.gl=s,this.rowAtlas=o,this.flamechart=a,this.rectangleBatchRenderer=l,this.colorPassRenderer=g,this.options=d,this.layers=[],this.rectInfoTexture=null,this.rectInfoRenderTarget=null,this.atlasKeys=new n.KeyedSet;const f=a.getLayers().length;for(let n=0;n=c&&(s.push(new i(u,new t.Rect(new t.Vec2(l,o),new t.Vec2(g-l,1)),R)),l=1/0,g=-1/0,u=new e.RectangleBatch(this.gl));const d=new t.Rect(new t.Vec2(a.start,o),new t.Vec2(a.end-a.start,1));l=Math.min(l,d.left()),g=Math.max(g,d.right());const f=new r.Color((1+h%255)/256,(1+n%255)/256,(1+this.flamechart.getColorBucketForFrame(a.node.frame))/256);u.addRect(d,f),R++}u.getRectCount()>0&&s.push(new i(u,new t.Rect(new t.Vec2(l,o),new t.Vec2(g-l,1)),R)),this.layers.push(new h(s))}}getRectInfoTexture(e,t){if(this.rectInfoTexture){const r=this.rectInfoTexture;r.width==e&&r.height==t||r.resize(e,t)}else this.rectInfoTexture=this.gl.createTexture(s.Graphics.TextureFormat.NEAREST_CLAMP,e,t);return this.rectInfoTexture}getRectInfoRenderTarget(e,t){const r=this.getRectInfoTexture(e,t);return this.rectInfoRenderTarget&&this.rectInfoRenderTarget.texture!=r&&(this.rectInfoRenderTarget.texture.free(),this.rectInfoRenderTarget.setColor(r)),this.rectInfoRenderTarget||(this.rectInfoRenderTarget=this.gl.createRenderTarget(r)),this.rectInfoRenderTarget}free(){this.rectInfoRenderTarget&&this.rectInfoRenderTarget.free(),this.rectInfoTexture&&this.rectInfoTexture.free()}configSpaceBoundsForKey(e){const{stackDepth:r,zoomLevel:n,index:s}=e,o=this.flamechart.getTotalWeight()/Math.pow(2,n),c=this.flamechart.getLayers().length,i=this.options.inverted?c-1-r:r;return new t.Rect(new t.Vec2(o*s,i),new t.Vec2(o,1))}render(e){const{configSpaceSrcRect:r,physicalSpaceDstRect:n}=e,c=[],i=t.AffineTransform.betweenRects(r,n);if(r.isEmpty())return;let h=0;for(;;){const e=a.getOrInsert(this.atlasKeys,{stackDepth:0,zoomLevel:h,index:0}),t=this.configSpaceBoundsForKey(e);if(i.transformRect(t).width(){const r=this.configSpaceBoundsForKey(t);this.layers[t.stackDepth].forEachLeafNodeWithinBounds(r,t=>{this.rectangleBatchRenderer.render({batch:t.getBatch(),configSpaceSrcRect:r,physicalSpaceDstRect:e})})});const T=this.getRectInfoRenderTarget(n.width(),n.height());(0,o.renderInto)(this.gl,T,()=>{this.gl.clear(new s.Graphics.Color(0,0,0,0));const e=new t.Rect(t.Vec2.zero,new t.Vec2(this.gl.viewport.width,this.gl.viewport.height)),n=t.AffineTransform.betweenRects(r,e);for(let t of m){const e=this.configSpaceBoundsForKey(t);this.rowAtlas.renderViaAtlas(t,n.transformRect(e))}for(let t of I){const e=this.configSpaceBoundsForKey(t),r=n.transformRect(e);this.layers[t.stackDepth].forEachLeafNodeWithinBounds(e,t=>{this.rectangleBatchRenderer.render({batch:t.getBatch(),configSpaceSrcRect:e,physicalSpaceDstRect:r})})}});const x=this.getRectInfoTexture(n.width(),n.height());this.colorPassRenderer.render({rectInfoTexture:x,srcRect:new t.Rect(t.Vec2.zero,new t.Vec2(x.width,x.height)),dstRect:n,renderOutlines:e.renderOutlines})}}exports.FlamechartRenderer=l; },{"./rectangle-batch-renderer":"UGJH","../lib/math":"tDuZ","../lib/color":"x77Y","../lib/utils":"ucYa","./graphics":"XGYN","./utils":"MMP6"}],"jZ6t":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getFlamechartStyle=void 0;var e=require("aphrodite"),o=require("./style"),r=require("./themes/theme");const t=(0,r.withTheme)(r=>e.StyleSheet.create({hoverCount:{color:r.weightColor},fill:{width:"100%",height:"100%",position:"absolute",left:0,top:0},minimap:{height:o.Sizes.MINIMAP_HEIGHT,borderBottom:`${o.Sizes.SEPARATOR_HEIGHT}px solid ${r.fgSecondaryColor}`},panZoomView:{flex:1},detailView:{display:"grid",height:o.Sizes.DETAIL_VIEW_HEIGHT,overflow:"hidden",gridTemplateColumns:"120px 120px 1fr",gridTemplateRows:"repeat(4, 1fr)",borderTop:`${o.Sizes.SEPARATOR_HEIGHT}px solid ${r.fgSecondaryColor}`,fontSize:o.FontSize.LABEL,position:"absolute",background:r.bgPrimaryColor,width:"100vw",bottom:0},stackTraceViewPadding:{padding:5},stackTraceView:{height:o.Sizes.DETAIL_VIEW_HEIGHT,lineHeight:`${o.FontSize.LABEL+2}px`,overflow:"auto","::-webkit-scrollbar":{background:r.bgPrimaryColor},"::-webkit-scrollbar-thumb":{background:r.fgSecondaryColor,borderRadius:20,border:`3px solid ${r.bgPrimaryColor}`,":hover":{background:r.fgPrimaryColor}}},stackLine:{whiteSpace:"nowrap"},stackFileLine:{color:r.fgSecondaryColor},statsTable:{display:"grid",gridTemplateColumns:"1fr 1fr",gridTemplateRows:`repeat(3, ${o.FontSize.LABEL+10}px)`,gridGap:"1px 1px",textAlign:"center",paddingRight:1},statsTableHeader:{gridColumn:"1 / 3"},statsTableCell:{position:"relative",display:"flex",justifyContent:"center",alignItems:"center"},thisInstanceCell:{background:r.selectionPrimaryColor,color:r.altFgPrimaryColor},allInstancesCell:{background:r.selectionSecondaryColor,color:r.altFgPrimaryColor},barDisplay:{position:"absolute",top:0,left:0,background:"rgba(0, 0, 0, 0.2)",width:"100%"}}));exports.getFlamechartStyle=t; },{"aphrodite":"CxN7","./style":"hvr4","./themes/theme":"gzKG"}],"eeWS":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.cachedMeasureTextWidth=i,exports.buildTrimmedText=s,exports.trimTextMid=h,exports.remapRangesToTrimmedText=o,exports.ELLIPSIS=void 0;var e=require("./utils");const t="…";exports.ELLIPSIS=t;const n=new Map;let r=-1;function i(e,t){return window.devicePixelRatio!==r&&(n.clear(),r=window.devicePixelRatio),n.has(t)||n.set(t,e.measureText(t).width),n.get(t)}function s(e,n){if(e.length<=n)return{trimmedString:e,trimmedLength:e.length,prefixLength:e.length,suffixLength:0,originalString:e,originalLength:e.length};let r=Math.floor(n/2);const i=n-r-1,s=e.substring(0,r),h=e.substring(e.length-i,e.length),g=s+t+h;return{trimmedString:g,trimmedLength:g.length,prefixLength:s.length,suffixLength:h.length,originalString:e,originalLength:e.length}}function h(t,n,r){if(i(t,n)<=r)return s(n,n.length);const[h]=(0,e.findValueBisect)(0,n.length,e=>i(t,s(n,Math.floor(e)).trimmedString),r);return s(n,Math.floor(h))}var g;function a(e,t){return t{this.container=e||null}),this.overlayCanvas=null,this.overlayCtx=null,this.onWindowResize=(()=>{this.onBeforeFrame()}),this.onBeforeFrame=(()=>{this.maybeClearInteractionLock(),this.resizeOverlayCanvasIfNeeded(),this.renderRects(),this.renderOverlays()}),this.renderCanvas=(()=>{this.props.canvasContext.requestFrame()}),this.frameHadWheelEvent=!1,this.framesWithoutWheelEvents=0,this.interactionLock=null,this.maybeClearInteractionLock=(()=>{this.interactionLock&&(this.frameHadWheelEvent||(this.framesWithoutWheelEvents++,this.framesWithoutWheelEvents>=2&&(this.interactionLock=null,this.framesWithoutWheelEvents=0)),this.props.canvasContext.requestFrame()),this.frameHadWheelEvent=!1}),this.onWheel=(e=>{if(e.preventDefault(),this.frameHadWheelEvent=!0,(e.metaKey||e.ctrlKey)&&"pan"!==this.interactionLock){let t=1+e.deltaY/100;e.ctrlKey&&(t=1+e.deltaY/40),t=(0,o.clamp)(t,.1,10),this.zoom(t)}else"zoom"!==this.interactionLock&&this.pan(new o.Vec2(e.deltaX,e.deltaY));this.renderCanvas()}),this.dragStartConfigSpaceMouse=null,this.dragConfigSpaceViewportOffset=null,this.draggingMode=null,this.onMouseDown=(t=>{const i=this.configSpaceMouse(t);i&&(this.props.configSpaceViewportRect.contains(i)?(this.draggingMode=e.TRANSLATE_VIEWPORT,this.dragConfigSpaceViewportOffset=i.minus(this.props.configSpaceViewportRect.origin)):this.draggingMode=e.DRAW_NEW_VIEWPORT,this.dragStartConfigSpaceMouse=i,window.addEventListener("mousemove",this.onWindowMouseMove),window.addEventListener("mouseup",this.onWindowMouseUp),this.updateCursor(i))}),this.onWindowMouseMove=(t=>{if(!this.dragStartConfigSpaceMouse)return;let i=this.configSpaceMouse(t);if(i)if(this.updateCursor(i),i=new o.Rect(new o.Vec2(0,0),this.configSpaceSize()).closestPointTo(i),this.draggingMode===e.DRAW_NEW_VIEWPORT){const e=this.dragStartConfigSpaceMouse;let t=i;if(!e||!t)return;const s=Math.min(e.x,t.x),n=Math.max(e.x,t.x)-s,r=this.props.configSpaceViewportRect.height();this.props.setConfigSpaceViewportRect(new o.Rect(new o.Vec2(s,t.y-r/2),new o.Vec2(n,r)))}else if(this.draggingMode===e.TRANSLATE_VIEWPORT){if(!this.dragConfigSpaceViewportOffset)return;const e=i.minus(this.dragConfigSpaceViewportOffset);this.props.setConfigSpaceViewportRect(this.props.configSpaceViewportRect.withOrigin(e))}}),this.updateCursor=(t=>{this.draggingMode===e.TRANSLATE_VIEWPORT?(document.body.style.cursor="grabbing",document.body.style.cursor="-webkit-grabbing"):this.draggingMode===e.DRAW_NEW_VIEWPORT?document.body.style.cursor="col-resize":this.props.configSpaceViewportRect.contains(t)?(document.body.style.cursor="grab",document.body.style.cursor="-webkit-grab"):document.body.style.cursor="col-resize"}),this.onMouseLeave=(()=>{null==this.draggingMode&&(document.body.style.cursor="default")}),this.onMouseMove=(e=>{const t=this.configSpaceMouse(e);t&&this.updateCursor(t)}),this.onWindowMouseUp=(e=>{this.draggingMode=null,window.removeEventListener("mousemove",this.onWindowMouseMove),window.removeEventListener("mouseup",this.onWindowMouseUp);const t=this.configSpaceMouse(e);t&&this.updateCursor(t)}),this.overlayCanvasRef=(e=>{e?(this.overlayCanvas=e,this.overlayCtx=this.overlayCanvas.getContext("2d"),this.renderCanvas()):(this.overlayCanvas=null,this.overlayCtx=null)})}physicalViewSize(){return new o.Vec2(this.overlayCanvas?this.overlayCanvas.width:0,this.overlayCanvas?this.overlayCanvas.height:0)}getStyle(){return(0,s.getFlamechartStyle)(this.props.theme)}minimapOrigin(){return new o.Vec2(0,n.Sizes.FRAME_HEIGHT*window.devicePixelRatio)}configSpaceSize(){return new o.Vec2(this.props.flamechart.getTotalWeight(),this.props.flamechart.getLayers().length)}configSpaceToPhysicalViewSpace(){const e=this.minimapOrigin();return o.AffineTransform.betweenRects(new o.Rect(new o.Vec2(0,0),this.configSpaceSize()),new o.Rect(e,this.physicalViewSize().minus(e)))}logicalToPhysicalViewSpace(){return o.AffineTransform.withScale(new o.Vec2(window.devicePixelRatio,window.devicePixelRatio))}windowToLogicalViewSpace(){if(!this.container)return new o.AffineTransform;const e=this.container.getBoundingClientRect();return o.AffineTransform.withTranslation(new o.Vec2(-e.left,-e.top))}renderRects(){this.container&&(this.physicalViewSize().x<2||this.props.canvasContext.renderBehind(this.container,()=>{this.props.flamechartRenderer.render({configSpaceSrcRect:new o.Rect(new o.Vec2(0,0),this.configSpaceSize()),physicalSpaceDstRect:new o.Rect(this.minimapOrigin(),this.physicalViewSize().minus(this.minimapOrigin())),renderOutlines:!1}),this.props.canvasContext.viewportRectangleRenderer.render({configSpaceViewportRect:this.props.configSpaceViewportRect,configSpaceToPhysicalViewSpace:this.configSpaceToPhysicalViewSpace()})}))}renderOverlays(){const e=this.overlayCtx;if(!e)return;const t=this.physicalViewSize();e.clearRect(0,0,t.x,t.y);const i=this.configSpaceToPhysicalViewSpace(),s=this.configSpaceSize().x,c=(this.configSpaceToPhysicalViewSpace().inverted()||new o.AffineTransform).times(this.logicalToPhysicalViewSpace()).transformVector(new o.Vec2(200,1)).x,h=n.Sizes.FRAME_HEIGHT*window.devicePixelRatio,l=n.FontSize.LABEL*window.devicePixelRatio,p=(h-l)/2;e.font=`${l}px/${h}px ${n.FontFamily.MONOSPACE}`,e.textBaseline="top";let d=Math.pow(10,Math.floor(Math.log10(c)));c/d>5?d*=5:c/d>2&&(d*=2);const f=this.props.theme;e.fillStyle=a.Color.fromCSSHex(f.bgPrimaryColor).withAlpha(.8).toCSS(),e.fillRect(0,0,t.x,h),e.textBaseline="top";for(let n=Math.ceil(0/d)*d;n ")),t.push(c.name),c.file){let s=c.file;null!=c.line&&(s+=`:${c.line}`,null!=c.col&&(s+=`:${c.col}`)),t.push((0,l.h)("span",{className:(0,e.css)(r.stackFileLine)}," (",s,")"))}i.push((0,l.h)("div",{className:(0,e.css)(r.stackLine)},t))}return(0,l.h)("div",{className:(0,e.css)(r.stackTraceView)},(0,l.h)("div",{className:(0,e.css)(r.stackTraceViewPadding)},i))}function o(s){const a=(0,t.getFlamechartStyle)((0,c.useTheme)()),{flamechart:o,selectedNode:h}=s,{frame:n}=h;return(0,l.h)("div",{className:(0,e.css)(a.detailView)},(0,l.h)(r,{title:"This Instance",cellStyle:a.thisInstanceCell,grandTotal:o.getTotalWeight(),selectedTotal:h.getTotalWeight(),selectedSelf:h.getSelfWeight(),formatter:o.formatValue.bind(o)}),(0,l.h)(r,{title:"All Instances",cellStyle:a.allInstancesCell,grandTotal:o.getTotalWeight(),selectedTotal:n.getTotalWeight(),selectedSelf:n.getSelfWeight(),formatter:o.formatValue.bind(o)}),(0,l.h)(i,{node:h,getFrameColor:s.getCSSColorForFrame}))} },{"aphrodite":"CxN7","preact":"aSor","./flamechart-style":"jZ6t","../lib/utils":"ucYa","./color-chit":"Pua8","./themes/theme":"gzKG"}],"e6nh":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.BatchCanvasRectRenderer=exports.BatchCanvasTextRenderer=void 0;class t{constructor(){this.argsBatch=[]}text(t){this.argsBatch.push(t)}fill(t,e){if(0!==this.argsBatch.length){t.fillStyle=e;for(let e of this.argsBatch)t.fillText(e.text,e.x,e.y);this.argsBatch=[]}}}exports.BatchCanvasTextRenderer=t;class e{constructor(){this.argsBatch=[]}rect(t){this.argsBatch.push(t)}drawPath(t){t.beginPath();for(let e of this.argsBatch)t.rect(e.x,e.y,e.w,e.h);t.closePath(),this.argsBatch=[]}fill(t,e){0!==this.argsBatch.length&&(t.fillStyle=e,this.drawPath(t),t.fill())}stroke(t,e,s){0!==this.argsBatch.length&&(t.strokeStyle=e,t.lineWidth=s,this.drawPath(t),t.stroke())}}exports.BatchCanvasRectRenderer=e; },{}],"e7Fh":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.FlamechartPanZoomView=void 0;var e=require("../lib/math"),t=require("./style"),i=require("../lib/text-utils"),o=require("./flamechart-style"),s=require("preact"),r=require("aphrodite"),n=require("../lib/canvas-2d-batch-renderers"),a=require("../lib/color");class h extends s.Component{constructor(){super(...arguments),this.container=null,this.containerRef=(e=>{this.container=e||null}),this.overlayCanvas=null,this.overlayCtx=null,this.hoveredLabel=null,this.overlayCanvasRef=(e=>{e?(this.overlayCanvas=e,this.overlayCtx=this.overlayCanvas.getContext("2d"),this.renderCanvas()):(this.overlayCanvas=null,this.overlayCtx=null)}),this.LOGICAL_VIEW_SPACE_FRAME_HEIGHT=t.Sizes.FRAME_HEIGHT,this.onWindowResize=(()=>{this.updateConfigSpaceViewport(),this.onBeforeFrame()}),this.frameHadWheelEvent=!1,this.framesWithoutWheelEvents=0,this.interactionLock=null,this.maybeClearInteractionLock=(()=>{this.interactionLock&&(this.frameHadWheelEvent||(this.framesWithoutWheelEvents++,this.framesWithoutWheelEvents>=2&&(this.interactionLock=null,this.framesWithoutWheelEvents=0)),this.props.canvasContext.requestFrame()),this.frameHadWheelEvent=!1}),this.onBeforeFrame=(()=>{this.resizeOverlayCanvasIfNeeded(),this.renderRects(),this.renderOverlays(),this.maybeClearInteractionLock()}),this.renderCanvas=(()=>{this.props.canvasContext.requestFrame()}),this.lastDragPos=null,this.mouseDownPos=null,this.onMouseDown=(t=>{this.mouseDownPos=this.lastDragPos=new e.Vec2(t.offsetX,t.offsetY),this.updateCursor(),window.addEventListener("mouseup",this.onWindowMouseUp)}),this.onMouseDrag=(t=>{if(!this.lastDragPos)return;const i=new e.Vec2(t.offsetX,t.offsetY);this.pan(this.lastDragPos.minus(i)),this.lastDragPos=i,this.hoveredLabel&&this.props.onNodeHover(null)}),this.onDblClick=(t=>{if(this.hoveredLabel){const t=this.hoveredLabel.configSpaceBounds,i=new e.Rect(t.origin.minus(new e.Vec2(0,1)),t.size.withY(this.props.configSpaceViewportRect.height()));this.props.setConfigSpaceViewportRect(i)}}),this.onClick=(t=>{const i=new e.Vec2(t.offsetX,t.offsetY),o=this.mouseDownPos;this.mouseDownPos=null,o&&i.minus(o).length()>5||(this.hoveredLabel?(this.props.onNodeSelect(this.hoveredLabel.node),this.renderCanvas()):this.props.onNodeSelect(null))}),this.onWindowMouseUp=(e=>{this.lastDragPos=null,this.updateCursor(),window.removeEventListener("mouseup",this.onWindowMouseUp)}),this.onMouseMove=(t=>{if(this.updateCursor(),this.lastDragPos)return t.preventDefault(),void this.onMouseDrag(t);const i=new e.Vec2(t.offsetX,t.offsetY),o=this.logicalToPhysicalViewSpace().transformPosition(i),s=this.configSpaceToPhysicalViewSpace().inverseTransformPosition(o);if(!s)return;const r=(t,i=0)=>{const o=t.end-t.start,n=this.props.renderInverted?this.configSpaceSize().y-1-i:i,a=new e.Rect(new e.Vec2(t.start,n),new e.Vec2(o,1));if(s.xa.right())return null;a.contains(s)&&(this.hoveredLabel={configSpaceBounds:a,node:t.node});for(let e of t.children)r(e,i+1)};(()=>{this.hoveredLabel=null})();for(let e of this.props.flamechart.getLayers()[0]||[])r(e);this.hoveredLabel?this.props.onNodeHover({node:this.hoveredLabel.node,event:t}):this.props.onNodeHover(null),this.renderCanvas()}),this.onMouseLeave=(e=>{this.hoveredLabel=null,this.props.onNodeHover(null),this.renderCanvas()}),this.onWheel=(t=>{t.preventDefault(),this.frameHadWheelEvent=!0;const i=t.metaKey||t.ctrlKey;let o=t.deltaY,s=t.deltaX;if(t.deltaMode===t.DOM_DELTA_LINE&&(o*=this.LOGICAL_VIEW_SPACE_FRAME_HEIGHT,s*=this.LOGICAL_VIEW_SPACE_FRAME_HEIGHT),i&&"pan"!==this.interactionLock){let i=1+o/100;t.ctrlKey&&(i=1+o/40),i=(0,e.clamp)(i,.1,10),this.zoom(new e.Vec2(t.offsetX,t.offsetY),i)}else"zoom"!==this.interactionLock&&this.pan(new e.Vec2(s,o));this.renderCanvas()}),this.onWindowKeyPress=(t=>{if(!this.container)return;const{width:i,height:o}=this.container.getBoundingClientRect();"="===t.key||"+"===t.key?(this.zoom(new e.Vec2(i/2,o/2),.5),t.preventDefault()):"-"!==t.key&&"_"!==t.key||(this.zoom(new e.Vec2(i/2,o/2),2),t.preventDefault()),t.ctrlKey||t.shiftKey||t.metaKey||("0"===t.key?this.zoom(new e.Vec2(i/2,o/2),1e9):"ArrowRight"===t.key||"KeyD"===t.code?this.pan(new e.Vec2(100,0)):"ArrowLeft"===t.key||"KeyA"===t.code?this.pan(new e.Vec2(-100,0)):"ArrowUp"===t.key||"KeyW"===t.code?this.pan(new e.Vec2(0,-100)):"ArrowDown"===t.key||"KeyS"===t.code?this.pan(new e.Vec2(0,100)):"Escape"===t.key&&(this.props.onNodeSelect(null),this.renderCanvas()))})}getStyle(){return(0,o.getFlamechartStyle)(this.props.theme)}setConfigSpaceViewportRect(e){this.props.setConfigSpaceViewportRect(e)}configSpaceSize(){return new e.Vec2(this.props.flamechart.getTotalWeight(),this.props.flamechart.getLayers().length)}physicalViewSize(){return new e.Vec2(this.overlayCanvas?this.overlayCanvas.width:0,this.overlayCanvas?this.overlayCanvas.height:0)}physicalBounds(){if(this.props.renderInverted){const t=this.physicalViewSize().y,i=(this.configSpaceSize().y+1)*this.LOGICAL_VIEW_SPACE_FRAME_HEIGHT*window.devicePixelRatio;if(i{var u;const v=t.end-t.start,m=this.props.renderInverted?this.configSpaceSize().y-1-n:n,g=new e.Rect(new e.Vec2(t.start,m),new e.Vec2(v,1));if(!(vthis.props.configSpaceViewportRect.right()||g.right()this.props.configSpaceViewportRect.bottom())return;if(g.hasIntersectionWith(this.props.configSpaceViewportRect)){let e=s.transformRect(g);if(e.left()<0&&(e=e.withOrigin(e.origin.withX(0)).withSize(e.size.withX(e.size.x+e.left()))),e.right()>h.x&&(e=e.withSize(e.size.withX(h.x-e.left()))),e.width()>c){const s=null===(u=this.props.searchResults)||void 0===u?void 0:u.getMatchForFrame(t.node.frame),n=(0,i.trimTextMid)(o,t.node.frame.name,e.width()-2*p);if(s){const t=(0,i.remapRangesToTrimmedText)(n,s);let h=0,c=e.left()+p;const l=(a-r)/2-2;for(let[s,r]of t){c+=(0,i.cachedMeasureTextWidth)(o,n.trimmedString.substring(h,s));const t=(0,i.cachedMeasureTextWidth)(o,n.trimmedString.substring(s,r));w.rect({x:c,y:e.top()+l,w:t,h:a-2*l}),c+=t,h=r}}(null==this.props.searchResults||s?d:f).text({text:n.trimmedString,x:e.left()+p,y:Math.round(e.bottom()-(a-r)/2)})}}for(let e of t.children)y(e,n+1)}},g=2*window.devicePixelRatio;o.strokeStyle=this.props.theme.selectionSecondaryColor;const S=(s.inverseTransformVector(new e.Vec2(1,0))||new e.Vec2(0,0)).x,C=(t,i=0)=>{var o;if(!this.props.selectedNode&&null==this.props.searchResults)return;const r=t.end-t.start,n=this.props.renderInverted?this.configSpaceSize().y-1-i:i,a=new e.Rect(new e.Vec2(t.start,n),new e.Vec2(r,1));if(!(rthis.props.configSpaceViewportRect.right()||a.right()this.props.configSpaceViewportRect.bottom())){if(a.hasIntersectionWith(this.props.configSpaceViewportRect)){if(null===(o=this.props.searchResults)||void 0===o?void 0:o.getMatchForFrame(t.node.frame)){const e=s.transformRect(a);m.rect({x:Math.round(e.left()+g/2),y:Math.round(e.top()+g/2),w:Math.round(Math.max(0,e.width()-g)),h:Math.round(Math.max(0,e.height()-g))})}if(null!=this.props.selectedNode&&t.node.frame===this.props.selectedNode.frame){let e=t.node===this.props.selectedNode?u:v;const i=s.transformRect(a);e.rect({x:Math.round(i.left()+1+g/2),y:Math.round(i.top()+1+g/2),w:Math.round(Math.max(0,i.width()-2-g)),h:Math.round(Math.max(0,i.height()-2-g))})}}for(let e of t.children)C(e,i+1)}};for(let e of this.props.flamechart.getLayers()[0]||[])C(e);for(let e of this.props.flamechart.getLayers()[0]||[])y(e);const V=this.props.theme;if(m.fill(o,V.searchMatchPrimaryColor),w.fill(o,V.searchMatchSecondaryColor),f.fill(o,V.fgSecondaryColor),d.fill(o,null!=this.props.searchResults?V.searchMatchTextColor:V.fgPrimaryColor),v.stroke(o,V.selectionSecondaryColor,g),u.stroke(o,V.selectionPrimaryColor,g),this.hoveredLabel){let e=V.fgPrimaryColor;this.props.selectedNode===this.hoveredLabel.node&&(e=V.selectionPrimaryColor),o.lineWidth=2*devicePixelRatio,o.strokeStyle=e;const t=s.transformRect(this.hoveredLabel.configSpaceBounds);o.strokeRect(Math.round(t.left()),Math.round(t.top()),Math.round(Math.max(0,t.width())),Math.round(Math.max(0,t.height())))}this.renderTimeIndicators()}renderTimeIndicators(){const o=this.overlayCtx;if(!o)return;const s=this.LOGICAL_VIEW_SPACE_FRAME_HEIGHT*window.devicePixelRatio,r=this.physicalViewSize(),n=this.configSpaceToPhysicalViewSpace(),h=(s-t.FontSize.LABEL*window.devicePixelRatio)/2,c=this.props.configSpaceViewportRect.left(),l=this.props.configSpaceViewportRect.right(),p=(this.configSpaceToPhysicalViewSpace().inverted()||new e.AffineTransform).times(this.logicalToPhysicalViewSpace()).transformVector(new e.Vec2(200,1)).x;let d=Math.pow(10,Math.floor(Math.log10(p)));p/d>5?d*=5:p/d>2&&(d*=2);const f=this.props.theme;{const t=this.props.renderInverted?r.y-s:0;o.fillStyle=a.Color.fromCSSHex(f.bgPrimaryColor).withAlpha(.8).toCSS(),o.fillRect(0,t,r.x,s),o.textBaseline="top";for(let s=Math.ceil(c/d)*d;s{this.props.flamechartRenderer.render({physicalSpaceDstRect:this.physicalBounds(),configSpaceSrcRect:this.props.configSpaceViewportRect,renderOutlines:!0})}))}pan(t){this.interactionLock="pan";const i=this.logicalToPhysicalViewSpace().transformVector(t),o=this.configSpaceToPhysicalViewSpace().inverseTransformVector(i);this.hoveredLabel&&this.props.onNodeHover(null),o&&this.props.transformViewport(e.AffineTransform.withTranslation(o))}zoom(t,i){this.interactionLock="zoom";const o=this.logicalToPhysicalViewSpace().transformPosition(t),s=this.configSpaceToPhysicalViewSpace().inverseTransformPosition(o);if(!s)return;const r=e.AffineTransform.withTranslation(s.times(-1)).scaledBy(new e.Vec2(i,1)).translatedBy(s);this.props.transformViewport(r)}updateCursor(){this.lastDragPos?(document.body.style.cursor="grabbing",document.body.style.cursor="-webkit-grabbing"):document.body.style.cursor="default"}shouldComponentUpdate(){return!1}componentWillReceiveProps(e){this.props.flamechart!==e.flamechart?(this.hoveredLabel=null,this.renderCanvas()):this.props.searchResults!==e.searchResults?this.renderCanvas():this.props.selectedNode!==e.selectedNode?this.renderCanvas():this.props.configSpaceViewportRect!==e.configSpaceViewportRect?this.renderCanvas():this.props.canvasContext!==e.canvasContext&&(this.props.canvasContext&&this.props.canvasContext.removeBeforeFrameHandler(this.onBeforeFrame),e.canvasContext&&(e.canvasContext.addBeforeFrameHandler(this.onBeforeFrame),e.canvasContext.requestFrame()))}componentDidMount(){this.props.canvasContext.addBeforeFrameHandler(this.onBeforeFrame),window.addEventListener("resize",this.onWindowResize),window.addEventListener("keydown",this.onWindowKeyPress)}componentWillUnmount(){this.props.canvasContext.removeBeforeFrameHandler(this.onBeforeFrame),window.removeEventListener("resize",this.onWindowResize),window.removeEventListener("keydown",this.onWindowKeyPress)}render(){const e=this.getStyle();return(0,s.h)("div",{className:(0,r.css)(e.panZoomView,t.commonStyle.vbox),onMouseDown:this.onMouseDown,onMouseMove:this.onMouseMove,onMouseLeave:this.onMouseLeave,onClick:this.onClick,onDblClick:this.onDblClick,onWheel:this.onWheel,ref:this.containerRef},(0,s.h)("canvas",{width:1,height:1,ref:this.overlayCanvasRef,className:(0,r.css)(e.fill)}))}}exports.FlamechartPanZoomView=h; },{"../lib/math":"tDuZ","./style":"hvr4","../lib/text-utils":"eeWS","./flamechart-style":"jZ6t","preact":"aSor","aphrodite":"CxN7","../lib/canvas-2d-batch-renderers":"e6nh","../lib/color":"x77Y"}],"PGRN":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Hovertip=n;var e=require("./style"),t=require("aphrodite"),i=require("preact"),o=require("./themes/theme"),r=require("preact/hooks");function n(e){const n=a((0,o.useTheme)()),{containerSize:s,offset:d}=e,h=s.x,l=s.y,p=(0,r.useCallback)(e=>{if(!e)return;const t=e.getBoundingClientRect();let i=d.x+7;i+t.width>h-1&&(i=h-t.width-1)<1&&(i=1),e.style.left=`${i}px`;let o=d.y+7;o+t.height>l-1&&(o=d.y-t.height-1)<1&&(o=1),e.style.top=`${o}px`},[h,l,d.x,d.y]);return(0,i.h)("div",{className:(0,t.css)(n.hoverTip),ref:p},(0,i.h)("div",{className:(0,t.css)(n.hoverTipRow)},e.children))}const s=2,a=(0,o.withTheme)(i=>t.StyleSheet.create({hoverTip:{position:"absolute",background:i.bgPrimaryColor,border:"1px solid black",maxWidth:e.Sizes.TOOLTIP_WIDTH_MAX,paddingTop:2,paddingBottom:2,pointerEvents:"none",userSelect:"none",fontSize:e.FontSize.LABEL,fontFamily:e.FontFamily.MONOSPACE,zIndex:e.ZIndex.HOVERTIP},hoverTipRow:{textOverflow:"ellipsis",whiteSpace:"nowrap",overflowX:"hidden",paddingLeft:2,paddingRight:2,maxWidth:e.Sizes.TOOLTIP_WIDTH_MAX}})); },{"./style":"hvr4","aphrodite":"CxN7","preact":"aSor","./themes/theme":"gzKG","preact/hooks":"MwGB"}],"zsRf":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.FlamechartSearchView=exports.FlamechartSearchContextProvider=exports.FlamechartSearchContext=void 0;var e=require("preact/compat"),t=require("preact/hooks"),l=require("./search-view"),r=require("../lib/profile-search"),c=require("../lib/math"),n=require("preact");const o=(0,n.createContext)(null);exports.FlamechartSearchContext=o;const u=({flamechart:e,selectedNode:c,setSelectedNode:u,configSpaceViewportRect:a,setConfigSpaceViewportRect:s,children:i})=>{const p=(0,t.useContext)(l.ProfileSearchContext),h=(0,t.useMemo)(()=>null==p?null:new r.FlamechartSearchResults(e,p),[e,p]);return(0,n.h)(o.Provider,{value:{results:h,flamechart:e,selectedNode:c,setSelectedNode:u,configSpaceViewportRect:a,setConfigSpaceViewportRect:s}},i)};exports.FlamechartSearchContextProvider=u;const a=(0,e.memo)(()=>{const e=(0,t.useContext)(o),r=null==e?null:e.results,u=null==e?null:e.selectedNode,a=null==e?null:e.setSelectedNode,s=null==e?null:e.configSpaceViewportRect,i=null==e?null:e.setConfigSpaceViewportRect,p=null==e?null:e.flamechart,h=null==r?null:r.count(),d=(0,t.useMemo)(()=>null==r?null:null==u?null:r.indexOf(u),[r,u]),f=(0,t.useCallback)(e=>{if(!a)return;if(!p)return;if(!s)return;if(!i)return;const t=e.configSpaceBounds,l=new c.Rect(t.origin.minus(new c.Vec2(0,1)),t.size.withY(s.height()));a(e.node),i(p.getClampedConfigSpaceViewportRect({configSpaceViewportRect:l}))},[s,i,a,p]),{selectPrev:x,selectNext:S}=(0,t.useMemo)(()=>null==h||0===h||null==r?{selectPrev:()=>{},selectNext:()=>{}}:{selectPrev:()=>{if(!(null==r?void 0:r.at))return;if(null==h||0===h)return;let e=null==d?h-1:d-1;e<0&&(e=h-1);const t=r.at(e);f(t)},selectNext:()=>{if(!(null==r?void 0:r.at))return;if(null==h||0===h)return;let e=null==d?0:d+1;e>=h&&(e=0);const t=r.at(e);f(t)}},[h,d,r,f]);return(0,n.h)(l.SearchView,{resultIndex:d,numResults:h,selectPrev:x,selectNext:S})});exports.FlamechartSearchView=a; },{"preact/compat":"AQ6k","preact/hooks":"MwGB","./search-view":"t9CM","../lib/profile-search":"DHvC","../lib/math":"tDuZ","preact":"aSor"}],"Hete":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.StatelessComponent=void 0;var e=require("preact");class t extends e.Component{}exports.StatelessComponent=t; },{"preact":"aSor"}],"Z2mP":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.FlamechartView=void 0;var e=require("preact"),t=require("aphrodite"),r=require("../lib/math"),i=require("../lib/utils"),o=require("./flamechart-minimap-view"),s=require("./style"),a=require("./flamechart-detail-view"),c=require("./flamechart-pan-zoom-view"),p=require("./hovertip"),h=require("./search-view"),n=require("./flamechart-search-view"),l=require("./flamechart-style"),m=require("../lib/preact-helpers");class f extends m.StatelessComponent{constructor(){super(...arguments),this.setConfigSpaceViewportRect=(e=>{const t=s.Sizes.DETAIL_VIEW_HEIGHT/s.Sizes.FRAME_HEIGHT,i=this.configSpaceSize(),o=this.props.flamechart.getClampedViewportWidth(e.size.x),a=e.size.withX(o),c=r.Vec2.clamp(e.origin,new r.Vec2(0,-1),r.Vec2.max(r.Vec2.zero,i.minus(a).plus(new r.Vec2(0,t+1))));this.props.setConfigSpaceViewportRect(new r.Rect(c,e.size.withX(o)))}),this.setLogicalSpaceViewportSize=(e=>{this.props.setLogicalSpaceViewportSize(e)}),this.transformViewport=(e=>{const t=e.transformRect(this.props.configSpaceViewportRect);this.setConfigSpaceViewportRect(t)}),this.onNodeHover=(e=>{this.props.setNodeHover(e)}),this.onNodeClick=(e=>{this.props.setSelectedNode(e)}),this.container=null,this.containerRef=(e=>{this.container=e||null})}getStyle(){return(0,l.getFlamechartStyle)(this.props.theme)}configSpaceSize(){return new r.Vec2(this.props.flamechart.getTotalWeight(),this.props.flamechart.getLayers().length)}formatValue(e){const t=100*e/this.props.flamechart.getTotalWeight(),r=(0,i.formatPercent)(t);return`${this.props.flamechart.formatValue(e)} (${r})`}renderTooltip(){if(!this.container)return null;const{hover:i}=this.props;if(!i)return null;const{width:o,height:s,left:a,top:c}=this.container.getBoundingClientRect(),h=new r.Vec2(i.event.clientX-a,i.event.clientY-c),n=i.node.frame,l=this.getStyle();return(0,e.h)(p.Hovertip,{containerSize:new r.Vec2(o,s),offset:h},(0,e.h)("span",{className:(0,t.css)(l.hoverCount)},this.formatValue(i.node.getTotalWeight()))," ",n.name,n.file?(0,e.h)("div",null,n.file,":",n.line):void 0)}render(){const r=this.getStyle();return(0,e.h)("div",{className:(0,t.css)(r.fill,s.commonStyle.vbox),ref:this.containerRef},(0,e.h)(o.FlamechartMinimapView,{theme:this.props.theme,configSpaceViewportRect:this.props.configSpaceViewportRect,transformViewport:this.transformViewport,flamechart:this.props.flamechart,flamechartRenderer:this.props.flamechartRenderer,canvasContext:this.props.canvasContext,setConfigSpaceViewportRect:this.setConfigSpaceViewportRect}),(0,e.h)(h.ProfileSearchContext.Consumer,null,t=>(0,e.h)(e.Fragment,null,(0,e.h)(c.FlamechartPanZoomView,{theme:this.props.theme,canvasContext:this.props.canvasContext,flamechart:this.props.flamechart,flamechartRenderer:this.props.flamechartRenderer,renderInverted:!1,onNodeHover:this.onNodeHover,onNodeSelect:this.onNodeClick,selectedNode:this.props.selectedNode,transformViewport:this.transformViewport,configSpaceViewportRect:this.props.configSpaceViewportRect,setConfigSpaceViewportRect:this.setConfigSpaceViewportRect,logicalSpaceViewportSize:this.props.logicalSpaceViewportSize,setLogicalSpaceViewportSize:this.setLogicalSpaceViewportSize,searchResults:t}),(0,e.h)(n.FlamechartSearchView,null))),this.renderTooltip(),this.props.selectedNode&&(0,e.h)(a.FlamechartDetailView,{flamechart:this.props.flamechart,getCSSColorForFrame:this.props.getCSSColorForFrame,selectedNode:this.props.selectedNode}))}}exports.FlamechartView=f; },{"preact":"aSor","aphrodite":"CxN7","../lib/math":"tDuZ","../lib/utils":"ucYa","./flamechart-minimap-view":"S7z0","./style":"hvr4","./flamechart-detail-view":"uohB","./flamechart-pan-zoom-view":"e7Fh","./hovertip":"PGRN","./search-view":"t9CM","./flamechart-search-view":"zsRf","./flamechart-style":"jZ6t","../lib/preact-helpers":"Hete"}],"PJJu":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useFlamechartSetters=h,exports.LeftHeavyFlamechartView=exports.getLeftHeavyFlamechart=exports.ChronoFlamechartView=exports.createMemoizedFlamechartRenderer=exports.getChronoViewFlamechart=void 0;var e=require("preact"),t=require("../lib/flamechart"),r=require("../gl/flamechart-renderer"),a=require("../lib/utils"),o=require("./flamechart-view"),c=require("../app-state/getters"),l=require("preact/compat"),i=require("./flamechart-search-view"),m=require("./themes/theme"),s=require("../app-state/profile-group"),n=require("../app-state");function h(e){return{setNodeHover:(0,l.useCallback)(t=>{n.profileGroupAtom.setFlamechartHoveredNode(e,t)},[e]),setLogicalSpaceViewportSize:(0,l.useCallback)(t=>{n.profileGroupAtom.setLogicalSpaceViewportSize(e,t)},[e]),setConfigSpaceViewportRect:(0,l.useCallback)(t=>{n.profileGroupAtom.setConfigSpaceViewportRect(e,t)},[e]),setSelectedNode:(0,l.useCallback)(t=>{n.profileGroupAtom.setSelectedNode(e,t)},[e])}}const p=(0,a.memoizeByShallowEquality)(({profile:e,getColorBucketForFrame:r})=>new t.Flamechart({getTotalWeight:e.getTotalWeight.bind(e),forEachCall:e.forEachCall.bind(e),formatValue:e.formatValue.bind(e),getColorBucketForFrame:r}));exports.getChronoViewFlamechart=p;const f=e=>(0,a.memoizeByShallowEquality)(({canvasContext:t,flamechart:a})=>new r.FlamechartRenderer(t.gl,(0,c.getRowAtlas)(t),a,t.rectangleBatchRenderer,t.flamechartColorPassRenderer,e));exports.createMemoizedFlamechartRenderer=f;const C=f(),u=(0,l.memo)(t=>{const{activeProfileState:r,glCanvas:a}=t,{profile:l,chronoViewState:n}=r,f=(0,m.useTheme)(),u=(0,c.getCanvasContext)({theme:f,canvas:a}),d=(0,c.getFrameToColorBucket)(l),F=(0,c.createGetColorBucketForFrame)(d),g=(0,c.createGetCSSColorForFrame)({theme:f,frameToColorBucket:d}),S=p({profile:l,getColorBucketForFrame:F}),w=C({canvasContext:u,flamechart:S}),v=h(s.FlamechartID.CHRONO);return(0,e.h)(i.FlamechartSearchContextProvider,{flamechart:S,selectedNode:n.selectedNode,setSelectedNode:v.setSelectedNode,configSpaceViewportRect:n.configSpaceViewportRect,setConfigSpaceViewportRect:v.setConfigSpaceViewportRect},(0,e.h)(o.FlamechartView,Object.assign({theme:f,renderInverted:!1,flamechart:S,flamechartRenderer:w,canvasContext:u,getCSSColorForFrame:g},n,v)))});exports.ChronoFlamechartView=u;const d=(0,a.memoizeByShallowEquality)(({profile:e,getColorBucketForFrame:r})=>new t.Flamechart({getTotalWeight:e.getTotalNonIdleWeight.bind(e),forEachCall:e.forEachCallGrouped.bind(e),formatValue:e.formatValue.bind(e),getColorBucketForFrame:r}));exports.getLeftHeavyFlamechart=d;const F=f(),g=(0,l.memo)(t=>{const{activeProfileState:r,glCanvas:a}=t,{profile:l,leftHeavyViewState:n}=r,p=(0,m.useTheme)(),f=(0,c.getCanvasContext)({theme:p,canvas:a}),C=(0,c.getFrameToColorBucket)(l),u=(0,c.createGetColorBucketForFrame)(C),g=(0,c.createGetCSSColorForFrame)({theme:p,frameToColorBucket:C}),S=d({profile:l,getColorBucketForFrame:u}),w=F({canvasContext:f,flamechart:S}),v=h(s.FlamechartID.LEFT_HEAVY);return(0,e.h)(i.FlamechartSearchContextProvider,{flamechart:S,selectedNode:n.selectedNode,setSelectedNode:v.setSelectedNode,configSpaceViewportRect:n.configSpaceViewportRect,setConfigSpaceViewportRect:v.setConfigSpaceViewportRect},(0,e.h)(o.FlamechartView,Object.assign({theme:p,renderInverted:!1,flamechart:S,flamechartRenderer:w,canvasContext:f,getCSSColorForFrame:g},n,v)))});exports.LeftHeavyFlamechartView=g; },{"preact":"aSor","../lib/flamechart":"gFMr","../gl/flamechart-renderer":"P80v","../lib/utils":"ucYa","./flamechart-view":"Z2mP","../app-state/getters":"zEXv","preact/compat":"AQ6k","./flamechart-search-view":"zsRf","./themes/theme":"gzKG","../app-state/profile-group":"uxXA","../app-state":"LDQe"}],"MXNL":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getStyle=exports.FlamechartWrapper=void 0;var e=require("aphrodite"),t=require("preact"),r=require("./style"),o=require("../lib/math"),i=require("./flamechart-pan-zoom-view"),s=require("../lib/utils"),p=require("./hovertip"),a=require("./themes/theme"),n=require("../lib/preact-helpers");class c extends n.StatelessComponent{constructor(){super(...arguments),this.setConfigSpaceViewportRect=(e=>{this.props.setConfigSpaceViewportRect(this.clampViewportToFlamegraph(e))}),this.setLogicalSpaceViewportSize=(e=>{this.props.setLogicalSpaceViewportSize(e)}),this.transformViewport=(e=>{this.setConfigSpaceViewportRect(e.transformRect(this.props.configSpaceViewportRect))}),this.container=null,this.containerRef=(e=>{this.container=e||null}),this.setNodeHover=(e=>{this.props.setNodeHover(e)})}clampViewportToFlamegraph(e){const{flamechart:t,renderInverted:r}=this.props;return t.getClampedConfigSpaceViewportRect({configSpaceViewportRect:e,renderInverted:r})}formatValue(e){const t=100*e/this.props.flamechart.getTotalWeight(),r=(0,s.formatPercent)(t);return`${this.props.flamechart.formatValue(e)} (${r})`}renderTooltip(){if(!this.container)return null;const{hover:r}=this.props;if(!r)return null;const{width:i,height:s,left:a,top:n}=this.container.getBoundingClientRect(),c=new o.Vec2(r.event.clientX-a,r.event.clientY-n),h=l(this.props.theme),m=r.node.frame;return(0,t.h)(p.Hovertip,{containerSize:new o.Vec2(i,s),offset:c},(0,t.h)("span",{className:(0,e.css)(h.hoverCount)},this.formatValue(r.node.getTotalWeight()))," ",m.name,m.file?(0,t.h)("div",null,m.file,":",m.line):void 0)}render(){return(0,t.h)("div",{className:(0,e.css)(r.commonStyle.fillY,r.commonStyle.fillX,r.commonStyle.vbox),ref:this.containerRef},(0,t.h)(i.FlamechartPanZoomView,{theme:this.props.theme,selectedNode:null,onNodeHover:this.setNodeHover,onNodeSelect:s.noop,configSpaceViewportRect:this.props.configSpaceViewportRect,setConfigSpaceViewportRect:this.setConfigSpaceViewportRect,transformViewport:this.transformViewport,flamechart:this.props.flamechart,flamechartRenderer:this.props.flamechartRenderer,canvasContext:this.props.canvasContext,renderInverted:this.props.renderInverted,logicalSpaceViewportSize:this.props.logicalSpaceViewportSize,setLogicalSpaceViewportSize:this.setLogicalSpaceViewportSize,searchResults:null}),this.renderTooltip())}}exports.FlamechartWrapper=c;const l=(0,a.withTheme)(t=>e.StyleSheet.create({hoverCount:{color:t.weightColor}}));exports.getStyle=l; },{"aphrodite":"CxN7","preact":"aSor","./style":"hvr4","../lib/math":"tDuZ","./flamechart-pan-zoom-view":"e7Fh","../lib/utils":"ucYa","./hovertip":"PGRN","./themes/theme":"gzKG","../lib/preact-helpers":"Hete"}],"Cw7z":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.InvertedCallerFlamegraphView=void 0;var e=require("../lib/utils"),r=require("../lib/flamechart"),t=require("./flamechart-view-container"),a=require("../app-state/getters"),o=require("./flamechart-wrapper"),l=require("preact"),i=require("preact/compat"),n=require("./themes/theme"),m=require("../app-state/profile-group"),c=require("../app-state"),s=require("../lib/atom");const u=(0,e.memoizeByShallowEquality)(({profile:e,frame:r,flattenRecursion:t})=>{let a=e.getInvertedProfileForCallersOf(r);return t?a.getProfileWithRecursionFlattened():a}),h=(0,e.memoizeByShallowEquality)(({invertedCallerProfile:e,getColorBucketForFrame:t})=>new r.Flamechart({getTotalWeight:e.getTotalNonIdleWeight.bind(e),forEachCall:e.forEachCallGrouped.bind(e),formatValue:e.formatValue.bind(e),getColorBucketForFrame:t})),f=(0,t.createMemoizedFlamechartRenderer)({inverted:!0}),p=(0,i.memo)(r=>{const{activeProfileState:i}=r;let{profile:p,sandwichViewState:C}=i;const d=(0,s.useAtom)(c.flattenRecursionAtom),F=(0,s.useAtom)(c.glCanvasAtom),g=(0,n.useTheme)();if(!p)throw new Error("profile missing");if(!F)throw new Error("glCanvas missing");const{callerCallee:v}=C;if(!v)throw new Error("callerCallee missing");const{selectedFrame:w}=v,q=(0,a.getFrameToColorBucket)(p),S=(0,a.createGetColorBucketForFrame)(q),E=(0,a.createGetCSSColorForFrame)({theme:g,frameToColorBucket:q}),b=(0,a.getCanvasContext)({theme:g,canvas:F}),B=h({invertedCallerProfile:u({profile:p,frame:w,flattenRecursion:d}),getColorBucketForFrame:S}),I=f({canvasContext:b,flamechart:B});return(0,l.h)(o.FlamechartWrapper,Object.assign({theme:g,renderInverted:!0,flamechart:B,flamechartRenderer:I,canvasContext:b,getCSSColorForFrame:E},(0,t.useFlamechartSetters)(m.FlamechartID.SANDWICH_INVERTED_CALLERS),v.invertedCallerFlamegraph,{setSelectedNode:e.noop}))});exports.InvertedCallerFlamegraphView=p; },{"../lib/utils":"ucYa","../lib/flamechart":"gFMr","./flamechart-view-container":"PJJu","../app-state/getters":"zEXv","./flamechart-wrapper":"MXNL","preact":"aSor","preact/compat":"AQ6k","./themes/theme":"gzKG","../app-state/profile-group":"uxXA","../app-state":"LDQe","../lib/atom":"QkVE"}],"KT37":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.CalleeFlamegraphView=void 0;var e=require("../lib/utils"),r=require("../lib/flamechart"),t=require("./flamechart-view-container"),a=require("../app-state/getters"),o=require("./flamechart-wrapper"),l=require("preact"),i=require("preact/compat"),c=require("./themes/theme"),m=require("../app-state/profile-group"),n=require("../app-state"),s=require("../lib/atom");const u=(0,e.memoizeByShallowEquality)(({profile:e,frame:r,flattenRecursion:t})=>{let a=e.getProfileForCalleesOf(r);return t?a.getProfileWithRecursionFlattened():a}),h=(0,e.memoizeByShallowEquality)(({calleeProfile:e,getColorBucketForFrame:t})=>new r.Flamechart({getTotalWeight:e.getTotalNonIdleWeight.bind(e),forEachCall:e.forEachCallGrouped.bind(e),formatValue:e.formatValue.bind(e),getColorBucketForFrame:t})),f=(0,t.createMemoizedFlamechartRenderer)(),p=(0,i.memo)(r=>{const{activeProfileState:i}=r,{profile:p,sandwichViewState:C}=i,F=(0,s.useAtom)(n.flattenRecursionAtom),g=(0,s.useAtom)(n.glCanvasAtom),d=(0,c.useTheme)();if(!p)throw new Error("profile missing");if(!g)throw new Error("glCanvas missing");const{callerCallee:w}=C;if(!w)throw new Error("callerCallee missing");const{selectedFrame:q}=w,v=(0,a.getFrameToColorBucket)(p),S=(0,a.createGetColorBucketForFrame)(v),E=(0,a.createGetCSSColorForFrame)({theme:d,frameToColorBucket:v}),b=(0,a.getCanvasContext)({theme:d,canvas:g}),B=h({calleeProfile:u({profile:p,frame:q,flattenRecursion:F}),getColorBucketForFrame:S}),k=f({canvasContext:b,flamechart:B});return(0,l.h)(o.FlamechartWrapper,Object.assign({theme:d,renderInverted:!1,flamechart:B,flamechartRenderer:k,canvasContext:b,getCSSColorForFrame:E},(0,t.useFlamechartSetters)(m.FlamechartID.SANDWICH_CALLEES),w.calleeFlamegraph,{setSelectedNode:e.noop}))});exports.CalleeFlamegraphView=p; },{"../lib/utils":"ucYa","../lib/flamechart":"gFMr","./flamechart-view-container":"PJJu","../app-state/getters":"zEXv","./flamechart-wrapper":"MXNL","preact":"aSor","preact/compat":"AQ6k","./themes/theme":"gzKG","../app-state/profile-group":"uxXA","../app-state":"LDQe","../lib/atom":"QkVE"}],"cWm7":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.SandwichSearchView=void 0;var e=require("preact/compat"),l=require("preact/hooks"),t=require("./search-view"),r=require("preact"),s=require("./sandwich-view");const c=(0,e.memo)(()=>{const e=(0,l.useContext)(s.SandwichViewContext),c=null!=e?e.rowList:null,n=null!=(null==e?void 0:e.selectedFrame)?e.getIndexForFrame(e.selectedFrame):null,u=null!=c?c.length:null,{selectPrev:i,selectNext:a}=(0,l.useMemo)(()=>null==c||null==u||0===u||null==e?{selectPrev:()=>{},selectNext:()=>{}}:{selectPrev:()=>{let l=null==n?u-1:n-1;l<0&&(l=u-1),e.setSelectedFrame(c[l])},selectNext:()=>{let l=null==n?0:n+1;l>=u&&(l=0),e.setSelectedFrame(c[l])}},[n,c,u,e]);return(0,r.h)(t.SearchView,{resultIndex:n,numResults:u,selectPrev:i,selectNext:a})});exports.SandwichSearchView=c; },{"preact/compat":"AQ6k","preact/hooks":"MwGB","./search-view":"t9CM","preact":"aSor","./sandwich-view":"L8J2"}],"L8J2":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.SandwichViewContainer=exports.SandwichViewContext=void 0;var e=require("aphrodite"),t=require("./profile-table-view"),r=require("preact"),a=require("preact/compat"),l=require("preact/hooks"),o=require("./style"),s=require("./inverted-caller-flamegraph-view"),i=require("./callee-flamegraph-view"),n=require("./sandwich-search-view"),c=require("../lib/utils"),h=require("./search-view"),m=require("./themes/theme"),d=require("../app-state"),p=require("../lib/atom"),f=require("../lib/preact-helpers");class u extends f.StatelessComponent{constructor(){super(...arguments),this.setSelectedFrame=(e=>{this.props.setSelectedFrame(e)}),this.onWindowKeyPress=(e=>{"Escape"===e.key&&this.setSelectedFrame(null)})}componentDidMount(){window.addEventListener("keydown",this.onWindowKeyPress)}componentWillUnmount(){window.removeEventListener("keydown",this.onWindowKeyPress)}render(){const a=S(this.props.theme),{selectedFrame:l}=this.props;let c=null;return l&&(c=(0,r.h)("div",{className:(0,e.css)(o.commonStyle.fillY,a.callersAndCallees,o.commonStyle.vbox)},(0,r.h)("div",{className:(0,e.css)(o.commonStyle.hbox,a.panZoomViewWraper)},(0,r.h)("div",{className:(0,e.css)(a.flamechartLabelParent)},(0,r.h)("div",{className:(0,e.css)(a.flamechartLabel)},"Callers")),(0,r.h)(s.InvertedCallerFlamegraphView,{glCanvas:this.props.glCanvas,activeProfileState:this.props.activeProfileState})),(0,r.h)("div",{className:(0,e.css)(a.divider)}),(0,r.h)("div",{className:(0,e.css)(o.commonStyle.hbox,a.panZoomViewWraper)},(0,r.h)("div",{className:(0,e.css)(a.flamechartLabelParent,a.flamechartLabelParentBottom)},(0,r.h)("div",{className:(0,e.css)(a.flamechartLabel,a.flamechartLabelBottom)},"Callees")),(0,r.h)(i.CalleeFlamegraphView,{glCanvas:this.props.glCanvas,activeProfileState:this.props.activeProfileState})))),(0,r.h)("div",{className:(0,e.css)(o.commonStyle.hbox,o.commonStyle.fillY)},(0,r.h)("div",{className:(0,e.css)(a.tableView)},(0,r.h)(t.ProfileTableViewContainer,{activeProfileState:this.props.activeProfileState}),(0,r.h)(n.SandwichSearchView,null)),c)}}const S=(0,m.withTheme)(t=>e.StyleSheet.create({tableView:{position:"relative",flex:1},panZoomViewWraper:{flex:1},flamechartLabelParent:{display:"flex",flexDirection:"column",justifyContent:"flex-end",alignItems:"flex-start",fontSize:o.FontSize.TITLE,width:1.2*o.FontSize.TITLE,borderRight:`1px solid ${t.fgSecondaryColor}`},flamechartLabelParentBottom:{justifyContent:"flex-start"},flamechartLabel:{transform:"rotate(-90deg)",transformOrigin:"50% 50% 0",width:1.2*o.FontSize.TITLE,flexShrink:1},flamechartLabelBottom:{transform:"rotate(-90deg)",display:"flex",justifyContent:"flex-end"},callersAndCallees:{flex:1,borderLeft:`${o.Sizes.SEPARATOR_HEIGHT}px solid ${t.fgSecondaryColor}`},divider:{height:2,background:t.fgSecondaryColor}})),v=(0,r.createContext)(null);exports.SandwichViewContext=v;const w=(0,a.memo)(e=>{const{activeProfileState:t,glCanvas:a}=e,{sandwichViewState:o,index:s}=t,{callerCallee:i}=o,n=(0,m.useTheme)(),f=(0,l.useCallback)(e=>{d.profileGroupAtom.setSelectedFrame(e)},[]),S=t.profile,w=(0,p.useAtom)(d.tableSortMethodAtom),x=(0,l.useContext)(h.ProfileSearchContext),C=i?i.selectedFrame:null,g=(0,l.useMemo)(()=>{const e=[];switch(S.forEachFrame(t=>{x&&!x.getMatchForFrame(t)||e.push(t)}),w.field){case d.SortField.SYMBOL_NAME:(0,c.sortBy)(e,e=>e.name.toLowerCase());break;case d.SortField.SELF:(0,c.sortBy)(e,e=>e.getSelfWeight());break;case d.SortField.TOTAL:(0,c.sortBy)(e,e=>e.getTotalWeight())}return w.direction===d.SortDirection.DESCENDING&&e.reverse(),e},[S,x,w]),b=(0,l.useMemo)(()=>{const e=new Map;for(let t=0;t{const r=e.get(t);return null==r?null:r}},[g]),F=(0,l.useMemo)(()=>e=>null==x?null:x.getMatchForFrame(e),[x]),y={rowList:g,selectedFrame:C,setSelectedFrame:f,getIndexForFrame:b,getSearchMatchForFrame:F};return(0,r.h)(v.Provider,{value:y},(0,r.h)(u,{theme:n,activeProfileState:t,glCanvas:a,setSelectedFrame:f,selectedFrame:C,profileIndex:s}))});exports.SandwichViewContainer=w; },{"aphrodite":"CxN7","./profile-table-view":"Ivh5","preact":"aSor","preact/compat":"AQ6k","preact/hooks":"MwGB","./style":"hvr4","./inverted-caller-flamegraph-view":"Cw7z","./callee-flamegraph-view":"KT37","./sandwich-search-view":"cWm7","../lib/utils":"ucYa","./search-view":"t9CM","./themes/theme":"gzKG","../app-state":"LDQe","../lib/atom":"QkVE","../lib/preact-helpers":"Hete"}],"LsM4":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ByteFormatter=exports.TimeFormatter=exports.RawValueFormatter=void 0;var t=require("./utils");class e{constructor(){this.unit="none"}format(t){return t.toLocaleString()}}exports.RawValueFormatter=e;class r{constructor(t){this.unit=t,this.multiplier="nanoseconds"===t?1e-9:"microseconds"===t?1e-6:"milliseconds"===t?.001:1}formatUnsigned(e){const r=e*this.multiplier;if(r/60>=1){const e=Math.floor(r/60),o=Math.floor(r-60*e).toString();return`${e}:${(0,t.zeroPad)(o,2)}`}return r/1>=1?`${r.toFixed(2)}s`:r/.001>=1?`${(r/.001).toFixed(2)}ms`:r/1e-6>=1?`${(r/1e-6).toFixed(2)}µs`:`${(r/1e-9).toFixed(2)}ns`}format(t){return`${t<0?"-":""}${this.formatUnsigned(Math.abs(t))}`}}exports.TimeFormatter=r;class o{constructor(){this.unit="bytes"}format(t){return t<1024?`${t.toFixed(0)} B`:(t/=1024)<1024?`${t.toFixed(2)} KB`:(t/=1024)<1024?`${t.toFixed(2)} MB`:`${(t/=1024).toFixed(2)} GB`}}exports.ByteFormatter=o; },{"./utils":"ucYa"}],"FheM":[function(require,module,exports) { var t=null;function e(){return t||(t=n()),t}function n(){try{throw new Error}catch(e){var t=(""+e.stack).match(/(https?|file|ftp|chrome-extension|moz-extension):\/\/[^)\n]+/g);if(t)return r(t[0])}return"/"}function r(t){return(""+t).replace(/^((?:https?|file|ftp|chrome-extension|moz-extension):\/\/.+)\/[^/]+$/,"$1")+"/"}exports.getBundleURL=e,exports.getBaseURL=r; },{}],"TUK3":[function(require,module,exports) { var r=require("./bundle-url").getBundleURL;function e(r){Array.isArray(r)||(r=[r]);var e=r[r.length-1];try{return Promise.resolve(require(e))}catch(n){if("MODULE_NOT_FOUND"===n.code)return new s(function(n,i){t(r.slice(0,-1)).then(function(){return require(e)}).then(n,i)});throw n}}function t(r){return Promise.all(r.map(u))}var n={};function i(r,e){n[r]=e}module.exports=exports=e,exports.load=t,exports.register=i;var o={};function u(e){var t;if(Array.isArray(e)&&(t=e[1],e=e[0]),o[e])return o[e];var i=(e.substring(e.lastIndexOf(".")+1,e.length)||e).toLowerCase(),u=n[i];return u?o[e]=u(r()+e).then(function(r){return r&&module.bundle.register(t,r),r}).catch(function(r){throw delete o[e],r}):void 0}function s(r){this.executor=r,this.promise=null}s.prototype.then=function(r,e){return null===this.promise&&(this.promise=new Promise(this.executor)),this.promise.then(r,e)},s.prototype.catch=function(r){return null===this.promise&&(this.promise=new Promise(this.executor)),this.promise.catch(r)}; },{"./bundle-url":"FheM"}],"YG8z":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.CallTreeProfileBuilder=exports.StackListProfileBuilder=exports.Profile=exports.CallTreeNode=exports.Frame=exports.HasWeights=void 0;var e=require("./utils"),t=require("./value-formatters"),r=function(e,t,r,s){return new(r||(r=Promise))(function(a,i){function l(e){try{n(s.next(e))}catch(t){i(t)}}function o(e){try{n(s.throw(e))}catch(t){i(t)}}function n(e){var t;e.done?a(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(l,o)}n((s=s.apply(e,t||[])).next())})};const s=require("_bundle_loader")(require.resolve("./demangle-cpp"));class a{constructor(){this.selfWeight=0,this.totalWeight=0}getSelfWeight(){return this.selfWeight}getTotalWeight(){return this.totalWeight}addToTotalWeight(e){this.totalWeight+=e}addToSelfWeight(e){this.selfWeight+=e}overwriteWeightWith(e){this.selfWeight=e.selfWeight,this.totalWeight=e.totalWeight}}exports.HasWeights=a;class i extends a{constructor(e){super(),this.key=e.key,this.name=e.name,this.file=e.file,this.line=e.line,this.col=e.col}static getOrInsert(e,t){return e.getOrInsert(new i(t))}}exports.Frame=i,i.root=new i({key:"(speedscope root)",name:"(speedscope root)"});class l extends a{isRoot(){return this.frame===i.root}isFrozen(){return this.frozen}freeze(){this.frozen=!0}constructor(e,t){super(),this.frame=e,this.parent=t,this.children=[],this.frozen=!1}}exports.CallTreeNode=l;class o{getAppendOrderCalltreeRoot(){return this.appendOrderCalltreeRoot}getGroupedCalltreeRoot(){return this.groupedCalltreeRoot}constructor(r=0){this.name="",this.frames=new e.KeyedSet,this.appendOrderCalltreeRoot=new l(i.root,null),this.groupedCalltreeRoot=new l(i.root,null),this.samples=[],this.weights=[],this.valueFormatter=new t.RawValueFormatter,this.totalNonIdleWeight=null,this.totalWeight=r}shallowClone(){const e=new o(this.totalWeight);return Object.assign(e,this),e}formatValue(e){return this.valueFormatter.format(e)}setValueFormatter(e){this.valueFormatter=e}getWeightUnit(){return this.valueFormatter.unit}getName(){return this.name}setName(e){this.name=e}getTotalWeight(){return this.totalWeight}getTotalNonIdleWeight(){return null===this.totalNonIdleWeight&&(this.totalNonIdleWeight=this.groupedCalltreeRoot.children.reduce((e,t)=>e+t.getTotalWeight(),0)),this.totalNonIdleWeight}sortGroupedCallTree(){!function e(t){t.children.sort((e,t)=>-(e.getTotalWeight()-t.getTotalWeight())),t.children.forEach(e)}(this.groupedCalltreeRoot)}forEachCallGrouped(e,t){!function r(s,a){s.frame!==i.root&&e(s,a);let l=0;s.children.forEach(function(e){r(e,a+l),l+=e.getTotalWeight()}),s.frame!==i.root&&t(s,a+s.getTotalWeight())}(this.groupedCalltreeRoot,0)}forEachCall(t,r){let s=[],a=0,l=0;for(let o of this.samples){let n=null;for(n=o;n&&n.frame!=i.root&&-1===s.indexOf(n);n=n.parent);for(;s.length>0&&(0,e.lastOf)(s)!=n;){r(s.pop(),a)}const h=[];for(let e=o;e&&e.frame!=i.root&&e!=n;e=e.parent)h.push(e);h.reverse();for(let e of h)t(e,a);s=s.concat(h),a+=this.weights[l++]}for(let e=s.length-1;e>=0;e--)r(s[e],a)}forEachFrame(e){this.frames.forEach(e)}getProfileWithRecursionFlattened(){const e=new h,t=[],r=new Set;this.forEachCall(function(s,a){r.has(s.frame)?t.push(null):(r.add(s.frame),t.push(s),e.enterFrame(s.frame,a))},function(s,a){const i=t.pop();i&&(r.delete(i.frame),e.leaveFrame(i.frame,a))});const s=e.build();return s.name=this.name,s.valueFormatter=this.valueFormatter,this.forEachFrame(e=>{s.frames.getOrInsert(e).overwriteWeightWith(e)}),s}getInvertedProfileForCallersOf(e){const t=i.getOrInsert(this.frames,e),r=new n,s=[];!function e(r){if(r.frame===t)s.push(r);else for(let t of r.children)e(t)}(this.appendOrderCalltreeRoot);for(let l of s){const e=[];for(let t=l;null!=t&&t.frame!==i.root;t=t.parent)e.push(t.frame);r.appendSampleWithWeight(e,l.getTotalWeight())}const a=r.build();return a.name=this.name,a.valueFormatter=this.valueFormatter,a}getProfileForCalleesOf(e){const t=i.getOrInsert(this.frames,e),r=new n;!function e(s){if(s.frame===t)!function(e){const t=[];!function e(s){t.push(s.frame),r.appendSampleWithWeight(t,s.getSelfWeight());for(let t of s.children)e(t);t.pop()}(e)}(s);else for(let t of s.children)e(t)}(this.appendOrderCalltreeRoot);const s=r.build();return s.name=this.name,s.valueFormatter=this.valueFormatter,s}demangle(){return r(this,void 0,void 0,function*(){let e=null;for(let t of this.frames)t.name.startsWith("__Z")&&(e||(e=(yield s).demangleCpp),t.name=e(t.name))})}remapSymbols(e){for(let t of this.frames){const r=e(t);if(null==r)continue;const{name:s,file:a,line:i,col:l}=r;null!=s&&(t.name=s),null!=a&&(t.file=a),null!=i&&(t.line=i),null!=l&&(t.col=l)}}}exports.Profile=o;class n extends o{constructor(){super(...arguments),this.pendingSample=null}_appendSample(t,r,s){if(isNaN(r))throw new Error("invalid weight");let a=s?this.appendOrderCalltreeRoot:this.groupedCalltreeRoot,i=new Set;for(let o of t){const t=s?(0,e.lastOf)(a.children):a.children.find(e=>e.frame===o);if(t&&!t.isFrozen()&&t.frame==o)a=t;else{const e=a;a=new l(o,a),e.children.push(a)}a.addToTotalWeight(r),i.add(a.frame)}if(a.addToSelfWeight(r),s)for(let e of a.children)e.freeze();if(s){a.frame.addToSelfWeight(r);for(let e of i)e.addToTotalWeight(r);a===(0,e.lastOf)(this.samples)?this.weights[this.weights.length-1]+=r:(this.samples.push(a),this.weights.push(r))}}appendSampleWithWeight(e,t){if(0===t)return;if(t<0)throw new Error("Samples must have positive weights");const r=e.map(e=>i.getOrInsert(this.frames,e));this._appendSample(r,t,!0),this._appendSample(r,t,!1)}appendSampleWithTimestamp(e,t){if(this.pendingSample){if(t0?this.appendSampleWithWeight(this.pendingSample.stack,this.pendingSample.centralTimestamp-this.pendingSample.startTimestamp):(this.appendSampleWithWeight(this.pendingSample.stack,1),this.setValueFormatter(new t.RawValueFormatter))),this.totalWeight=Math.max(this.totalWeight,this.weights.reduce((e,t)=>e+t,0)),this.sortGroupedCallTree(),this}}exports.StackListProfileBuilder=n;class h extends o{constructor(){super(...arguments),this.appendOrderStack=[this.appendOrderCalltreeRoot],this.groupedOrderStack=[this.groupedCalltreeRoot],this.framesInStack=new Map,this.stack=[],this.lastValue=0}addWeightsToFrames(t){const r=t-this.lastValue;for(let e of this.framesInStack.keys())e.addToTotalWeight(r);const s=(0,e.lastOf)(this.stack);s&&s.addToSelfWeight(r)}addWeightsToNodes(t,r){const s=t-this.lastValue;for(let e of r)e.addToTotalWeight(s);const a=(0,e.lastOf)(r);a&&a.addToSelfWeight(s)}_enterFrame(t,r,s){let a=s?this.appendOrderStack:this.groupedOrderStack;this.addWeightsToNodes(r,a);let i=(0,e.lastOf)(a);if(i){if(s){const e=r-this.lastValue;if(e>0)this.samples.push(i),this.weights.push(r-this.lastValue);else if(e<0)throw new Error(`Samples must be provided in increasing order of cumulative value. Last sample was ${this.lastValue}, this sample was ${r}`)}const o=s?(0,e.lastOf)(i.children):i.children.find(e=>e.frame===t);let n;o&&!o.isFrozen()&&o.frame==t?n=o:(n=new l(t,i),i.children.push(n)),a.push(n)}}enterFrame(e,t){const r=i.getOrInsert(this.frames,e);this.addWeightsToFrames(t),this._enterFrame(r,t,!0),this._enterFrame(r,t,!1),this.stack.push(r);const s=this.framesInStack.get(r)||0;this.framesInStack.set(r,s+1),this.lastValue=t,this.totalWeight=Math.max(this.totalWeight,this.lastValue)}_leaveFrame(e,t,r){let s=r?this.appendOrderStack:this.groupedOrderStack;if(this.addWeightsToNodes(t,s),r){const r=this.appendOrderStack.pop();if(null==r)throw new Error(`Trying to leave ${e.key} when stack is empty`);if(null==this.lastValue)throw new Error(`Trying to leave a ${e.key} before any have been entered`);if(r.freeze(),r.frame.key!==e.key)throw new Error(`Tried to leave frame "${e.name}" while frame "${r.frame.name}" was at the top at ${t}`);const s=t-this.lastValue;if(s>0)this.samples.push(r),this.weights.push(t-this.lastValue);else if(s<0)throw new Error(`Samples must be provided in increasing order of cumulative value. Last sample was ${this.lastValue}, this sample was ${t}`)}else this.groupedOrderStack.pop()}leaveFrame(e,t){const r=i.getOrInsert(this.frames,e);this.addWeightsToFrames(t),this._leaveFrame(r,t,!0),this._leaveFrame(r,t,!1),this.stack.pop();const s=this.framesInStack.get(r);null!=s&&(1===s?this.framesInStack.delete(r):this.framesInStack.set(r,s-1),this.lastValue=t,this.totalWeight=Math.max(this.totalWeight,this.lastValue))}build(){if(this.appendOrderStack.length>1||this.groupedOrderStack.length>1)throw new Error("Tried to complete profile construction with a non-empty stack");return this.sortGroupedCallTree(),this}}exports.CallTreeProfileBuilder=h; },{"./utils":"ucYa","./value-formatters":"LsM4","_bundle_loader":"TUK3","./demangle-cpp":[["demangle-cpp.1768f4cc.js","bS28"],"demangle-cpp.1768f4cc.js.map","bS28"]}],"x8nU":[function(require,module,exports) { "use strict";var e;Object.defineProperty(exports,"__esModule",{value:!0}),exports.FileFormat=void 0,exports.FileFormat=e,function(e){let t,o;!function(e){e.EVENTED="evented",e.SAMPLED="sampled"}(t=e.ProfileType||(e.ProfileType={})),function(e){e.OPEN_FRAME="O",e.CLOSE_FRAME="C"}(o=e.EventType||(e.EventType={}))}(e||(exports.FileFormat=e={})); },{}],"EHrm":[function(require,module,exports) { module.exports={name:"speedscope",version:"1.20.0",description:"",repository:"jlfwong/speedscope",main:"index.js",bin:{speedscope:"./bin/cli.js"},scripts:{deploy:"./scripts/deploy.sh",prepack:"./scripts/build-release.sh",prettier:"prettier --write 'src/**/*.ts' 'src/**/*.tsx'",lint:"eslint 'src/**/*.ts' 'src/**/*.tsx'",jest:"./scripts/test-setup.sh && jest --runInBand",coverage:"npm run jest -- --coverage",typecheck:"tsc --noEmit",test:"./scripts/ci.sh",serve:"parcel assets/index.html --open --no-autoinstall"},files:["bin/cli.js","dist/release/**","!*.map"],browserslist:["last 2 Chrome versions","last 2 Firefox versions"],author:"",license:"MIT",devDependencies:{"@types/jest":"22.2.3","@types/jszip":"3.1.4","@types/node":"14.0.1","@types/pako":"1.0.0","@typescript-eslint/eslint-plugin":"6.16.0","@typescript-eslint/parser":"6.16.0",acorn:"7.2.0",aphrodite:"2.1.0",eslint:"8.0.0","eslint-plugin-prettier":"5.1.2","eslint-plugin-react-hooks":"4.6.0",jest:"24.3.0",jsverify:"0.8.3",jszip:"3.1.5",pako:"1.0.6","parcel-bundler":"1.12.4",preact:"10.4.1",prettier:"3.1.1",protobufjs:"6.8.8","source-map":"0.6.1","ts-jest":"24.3.0",typescript:"5.3.3","typescript-json-schema":"0.42.0","uglify-es":"3.2.2","uint8array-json-parser":"0.0.2"},jest:{transform:{"^.+\\.tsx?$":"ts-jest"},setupFilesAfterEnv:["./src/jest-setup.js"],testRegex:"\\.test\\.tsx?$",collectCoverageFrom:["**/*.{ts,tsx}","!**/*.d.{ts,tsx}"],moduleFileExtensions:["ts","tsx","js","jsx","json"]},dependencies:{open:"7.2.0"}}; },{}],"Xzb6":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.exportProfileGroup=r,exports.importSpeedscopeProfiles=s,exports.saveToFile=l;var e=require("./profile"),t=require("./value-formatters"),n=require("./file-format-spec");function r(e){const t=[],n=new Map;function r(e){let r=n.get(e);if(null==r){const o={name:e.name};null!=e.file&&(o.file=e.file),null!=e.line&&(o.line=e.line),null!=e.col&&(o.col=e.col),r=t.length,n.set(e,r),t.push(o)}return r}const a={exporter:`speedscope@${require("../../package.json").version}`,name:e.name,activeProfileIndex:e.indexToView,$schema:"https://www.speedscope.app/file-format-schema.json",shared:{frames:t},profiles:[]};for(let s of e.profiles)a.profiles.push(o(s,r));return a}function o(e,t){const r={type:n.FileFormat.ProfileType.EVENTED,name:e.getName(),unit:e.getWeightUnit(),startValue:0,endValue:e.getTotalWeight(),events:[]};return e.forEachCall((e,o)=>{r.events.push({type:n.FileFormat.EventType.OPEN_FRAME,frame:t(e.frame),at:o})},(e,o)=>{r.events.push({type:n.FileFormat.EventType.CLOSE_FRAME,frame:t(e.frame),at:o})}),r}function a(r,o){function a(e){const{name:n,unit:o}=r;switch(o){case"nanoseconds":case"microseconds":case"milliseconds":case"seconds":e.setValueFormatter(new t.TimeFormatter(o));break;case"bytes":e.setValueFormatter(new t.ByteFormatter);break;case"none":e.setValueFormatter(new t.RawValueFormatter)}e.setName(n)}switch(r.type){case n.FileFormat.ProfileType.EVENTED:return function(t){const{startValue:r,endValue:s,events:l}=t,i=new e.CallTreeProfileBuilder(s-r);a(i);const c=o.map((e,t)=>Object.assign({key:t},e));for(let e of l)switch(e.type){case n.FileFormat.EventType.OPEN_FRAME:i.enterFrame(c[e.frame],e.at-r);break;case n.FileFormat.EventType.CLOSE_FRAME:i.leaveFrame(c[e.frame],e.at-r)}return i.build()}(r);case n.FileFormat.ProfileType.SAMPLED:return function(t){const{startValue:n,endValue:r,samples:s,weights:l}=t,i=new e.StackListProfileBuilder(r-n);a(i);const c=o.map((e,t)=>Object.assign({key:t},e));if(s.length!==l.length)throw new Error(`Expected samples.length (${s.length}) to equal weights.length (${l.length})`);for(let e=0;ec[e]),n)}return i.build()}(r)}}function s(e){return{name:e.name||e.profiles[0].name||"profile",indexToView:e.activeProfileIndex||0,profiles:e.profiles.map(t=>a(t,e.shared.frames))}}function l(e){const t=r(e),n=new Blob([JSON.stringify(t)],{type:"text/json"}),o=`${(t.name?t.name.split(".")[0]:"profile").replace(/\W+/g,"_")}.speedscope.json`;console.log("Saving",o);const a=document.createElement("a");a.download=o,a.href=window.URL.createObjectURL(n),a.dataset.downloadurl=["text/json",a.download,a.href].join(":"),document.body.appendChild(a),a.click(),document.body.removeChild(a)} },{"./profile":"YG8z","./value-formatters":"LsM4","./file-format-spec":"x8nU","../../package.json":"EHrm"}],"C6HJ":[function(require,module,exports) { "use strict";function r(r,e){return d(r,e)}Object.defineProperty(exports,"__esModule",{value:!0}),exports.fuzzyMatchStrings=r;const e="a".charCodeAt(0),t="z".charCodeAt(0),n="A".charCodeAt(0),o="Z".charCodeAt(0),c="0".charCodeAt(0),a="9".charCodeAt(0);var h;function u(r){const u=r.charCodeAt(0);return e<=u&&u<=t?h.charLower:n<=u&&u<=o?h.charUpper:c<=u&&u<=a?h.charNumber:h.charNonWord}function l(r,o){if(r===o)return!0;const c=o.charCodeAt(0);return e<=c&&c<=t&&r.charCodeAt(0)===c-e+n}function d(r,e){if(0==e.length)return{matchedRanges:[],score:0};let t=0,n=-1,o=-1,c=r.length,a=e.length;for(let h=0;h=n;h--){if(l(r[h],e[t])&&--t<0)return A(r,e,n=h,o)}throw new Error("Implementation error. This must be a bug in fzfFuzzyMatchV1")}!function(r){r[r.charNonWord=0]="charNonWord",r[r.charLower=1]="charLower",r[r.charUpper=2]="charUpper",r[r.charNumber=3]="charNumber"}(h||(h={}));const f=16,i=-3,s=-1,p=f/2,N=f/2,b=p+s,g=-(i+s),m=2;function w(r,e){return r===h.charNonWord&&e!==h.charNonWord?p:r===h.charLower&&e==h.charUpper||r!==h.charNumber&&e==h.charNumber?b:e===h.charNonWord?N:0}function A(r,e,t,n){let o=0,c=0,a=!1,d=0,N=0,b=new Array(e.length),A=h.charNonWord;t>0&&(A=u(r[t-1]));for(let h=t;h{p(),l(h)},[p,l,h]),I=(0,o.useCallback)(e=>{t(h)},[t,h]),P=i.getName(),w=1+Math.floor(Math.log10(d)),y=(0,r.css)(b.highlighted),S=(0,o.useMemo)(()=>{return s(P,g,y)},[P,g,y]);return(0,e.h)("div",{ref:u,onMouseUp:x,onMouseEnter:I,title:P,className:(0,r.css)(b.profileRow,m%2==0&&b.profileRowEven,a&&b.profileRowSelected,c&&b.profileRowHovered)},(0,e.h)("span",{className:(0,r.css)(b.profileIndex,a&&b.profileIndexSelected),style:{width:w+"em"}},h+1,":")," ",S)}function c(e){e.stopPropagation()}function d(e,o){const r=[];for(let l=0;l-e.score),r}function u({profiles:l,closeProfileSelect:t,indexToView:i,visible:s,setProfileIndexToView:u}){const p=f((0,n.useTheme)()),[h,g]=(0,o.useState)(""),m=(0,o.useCallback)(e=>{const o=e.target.value;g(o)},[g]),b=(0,o.useCallback)(e=>{e&&(s?e.select():e.blur())},[s]),x=(0,o.useMemo)(()=>d(l,h),[l,h]),[I,P]=(0,o.useState)(0),w=(0,o.useRef)(null);(0,o.useEffect)(()=>{s&&(P(null),null!==w.current&&w.current.scrollIntoView({behavior:"auto",block:"nearest",inline:"nearest"}))},[s]);const y=(0,o.useCallback)(e=>{e.stopPropagation();let o=null;switch(e.key){case"Enter":null!=I&&(t(),u(I));break;case"Escape":t();break;case"ArrowDown":if(e.preventDefault(),o=0,null!=I){const e=x.findIndex(e=>e.indexInProfileGroup===I);-1!==e&&(o=e+1)}break;case"ArrowUp":if(e.preventDefault(),o=x.length-1,null!=I){const e=x.findIndex(e=>e.indexInProfileGroup===I);-1!==e&&(o=e-1)}}if(null!=o&&o>=0&&o{x.length>0&&(P(x[0].indexInProfileGroup),v(!0))},[P,x]);const C=(0,o.useCallback)(e=>{S&&e&&(e.scrollIntoView({behavior:"auto",block:"nearest",inline:"nearest"}),v(!1))},[S,v]),k=(0,o.useCallback)(e=>{w.current=e,C(e)},[w,C]);return(0,e.h)("div",{className:(0,r.css)(p.profileSelectOuter)},(0,e.h)("div",{className:(0,r.css)(p.caret)}),(0,e.h)("div",{className:(0,r.css)(p.profileSelectBox)},(0,e.h)("div",{className:(0,r.css)(p.filterInputContainer)},(0,e.h)("input",{type:"text",className:(0,r.css)(p.filterInput),ref:b,placeholder:"Filter...",value:h,onInput:m,onKeyDown:y,onKeyUp:c,onKeyPress:c})),(0,e.h)("div",{className:(0,r.css)(p.profileSelectScrolling)},x.map(({profile:o,matchedRanges:r,indexInProfileGroup:n},s)=>{let c=void 0;const d=n===i,p=n===I;return d&&p?c=k:d?c=w:p&&(c=C),(0,e.h)(a,{setHoveredProfileIndex:P,indexInProfileGroup:n,indexInFilteredListView:s,hovered:n==I,selected:n===i,profile:o,profileCount:l.length,nodeRef:c,matchedRanges:r,setProfileIndexToView:u,closeProfileSelect:t})}),0===x.length?(0,e.h)("div",{className:(0,r.css)(p.profileRow)},'No results match filter "',h,'"'):null)))}const p=10,f=(0,n.withTheme)(e=>r.StyleSheet.create({filterInputContainer:{display:"flex",flexDirection:"column",padding:5,alignItems:"stretch"},filterInput:{color:e.altFgPrimaryColor,background:e.altBgSecondaryColor,borderRadius:5,padding:5,":focus":{border:"none",outline:"none"},"::selection":{color:e.altFgPrimaryColor,background:e.selectionPrimaryColor}},caret:{width:0,height:0,borderLeft:"5px solid transparent",borderRight:"5px solid transparent",borderBottom:"5px solid black"},highlighted:{background:e.selectionSecondaryColor},padding:{height:10,background:e.altBgPrimaryColor},profileRow:{height:l.Sizes.FRAME_HEIGHT-2,border:"1px solid transparent",textAlign:"left",paddingLeft:10,paddingRight:10,background:e.altBgPrimaryColor,overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis",cursor:"pointer"},profileRowHovered:{border:`1px solid ${e.selectionPrimaryColor}`},profileRowSelected:{background:e.selectionPrimaryColor},profileRowEven:{background:e.altBgSecondaryColor},profileSelectScrolling:{maxHeight:`min(calc(100vh - ${l.Sizes.TOOLBAR_HEIGHT-20}px), ${20*l.Sizes.FRAME_HEIGHT}px)`,overflow:"auto","::-webkit-scrollbar":{background:e.altBgPrimaryColor},"::-webkit-scrollbar-thumb":{background:e.altFgSecondaryColor,borderRadius:20,border:`3px solid ${e.altBgPrimaryColor}`,":hover":{background:e.altBgPrimaryColor}}},profileSelectBox:{width:"100%",paddingBottom:10,background:e.altBgPrimaryColor,color:e.altFgPrimaryColor},profileSelectOuter:{width:"100%",maxWidth:480,margin:"0 auto",position:"relative",zIndex:l.ZIndex.PROFILE_SELECT,alignItems:"center",display:"flex",flexDirection:"column"},profileIndex:{textAlign:"right",display:"inline-block",color:e.altFgSecondaryColor},profileIndexSelected:{color:e.altFgPrimaryColor}})); },{"preact":"aSor","preact/hooks":"MwGB","aphrodite":"CxN7","./style":"hvr4","../lib/fuzzy-find":"C6HJ","../lib/utils":"ucYa","./themes/theme":"gzKG"}],"BPHY":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Toolbar=T;var e=require("preact"),o=require("preact/hooks"),t=require("aphrodite"),i=require("./style"),s=require("./profile-select"),l=require("../lib/utils"),a=require("./themes/theme"),r=require("../lib/view-mode"),n=require("../app-state"),c=require("../app-state/color-scheme"),h=require("../lib/atom");function d(e,t){return(0,o.useCallback)(()=>e(t),[e,t])}function m(o){const i=g((0,a.useTheme)()),s=d(n.viewModeAtom.set,r.ViewMode.CHRONO_FLAME_CHART),l=d(n.viewModeAtom.set,r.ViewMode.LEFT_HEAVY_FLAME_GRAPH),c=d(n.viewModeAtom.set,r.ViewMode.SANDWICH_VIEW);return o.activeProfileState?(0,e.h)("div",{className:(0,t.css)(i.toolbarLeft)},(0,e.h)("div",{className:(0,t.css)(i.toolbarTab,o.viewMode===r.ViewMode.CHRONO_FLAME_CHART&&i.toolbarTabActive),onClick:s},(0,e.h)("span",{className:(0,t.css)(i.emoji)},"🕰"),"Time Order"),(0,e.h)("div",{className:(0,t.css)(i.toolbarTab,o.viewMode===r.ViewMode.LEFT_HEAVY_FLAME_GRAPH&&i.toolbarTabActive),onClick:l},(0,e.h)("span",{className:(0,t.css)(i.emoji)},"⬅️"),"Left Heavy"),(0,e.h)("div",{className:(0,t.css)(i.toolbarTab,o.viewMode===r.ViewMode.SANDWICH_VIEW&&i.toolbarTabActive),onClick:c},(0,e.h)("span",{className:(0,t.css)(i.emoji)},"🥪"),"Sandwich")):null}const b=(()=>{let e=null;return o=>{let t=(null==o?void 0:o.profiles.map(e=>e.profile))||null;return(null===e||null!=t&&!(0,l.objectsHaveShallowEquality)(e,t))&&(e=t),e}})();function u(i){const l=g((0,a.useTheme)()),{activeProfileState:r,profileGroup:n}=i,c=b(n),[h,d]=(0,o.useState)(!1),m=(0,o.useCallback)(()=>{d(!0)},[d]),u=(0,o.useCallback)(()=>{d(!1)},[d]);return(0,o.useEffect)(()=>{const e=e=>{"t"===e.key&&(e.preventDefault(),d(!0))};return window.addEventListener("keypress",e),()=>{window.removeEventListener("keypress",e)}},[d]),(0,o.useEffect)(()=>{const e=e=>{"t"===e.key&&(e.preventDefault(),d(!0))};return window.addEventListener("keypress",e),()=>{window.removeEventListener("keypress",e)}},[d]),r&&n&&c?1===n.profiles.length?(0,e.h)(e.Fragment,null,r.profile.getName()):(0,e.h)("div",{className:(0,t.css)(l.toolbarCenter),onMouseLeave:u},(0,e.h)("span",{onMouseOver:m},r.profile.getName()," ",(0,e.h)("span",{className:(0,t.css)(l.toolbarProfileIndex)},"(",r.index+1,"/",n.profiles.length,")")),(0,e.h)("div",{style:{display:h?"block":"none"}},(0,e.h)(s.ProfileSelect,{setProfileIndexToView:i.setProfileIndexToView,indexToView:n.indexToView,profiles:c,closeProfileSelect:u,visible:h}))):(0,e.h)(e.Fragment,null,"🔬speedscope")}function p(o){const i=g((0,a.useTheme)()),s=(0,h.useAtom)(c.colorSchemeAtom),l=(0,e.h)("div",{className:(0,t.css)(i.toolbarTab),onClick:o.saveFile},(0,e.h)("span",{className:(0,t.css)(i.emoji)},"⤴️"),"Export"),r=(0,e.h)("div",{className:(0,t.css)(i.toolbarTab),onClick:o.browseForFile},(0,e.h)("span",{className:(0,t.css)(i.emoji)},"⤵️"),"Import"),n=(0,e.h)("div",{className:(0,t.css)(i.toolbarTab),onClick:c.colorSchemeAtom.cycleToNextColorScheme},(0,e.h)("span",{className:(0,t.css)(i.emoji)},"🎨"),(0,e.h)("span",{className:(0,t.css)(i.toolbarTabColorSchemeToggle)},(0,a.colorSchemeToString)(s))),d=(0,e.h)("div",{className:(0,t.css)(i.toolbarTab)},(0,e.h)("a",{href:"https://github.com/jlfwong/speedscope#usage",className:(0,t.css)(i.noLinkStyle),target:"_blank"},(0,e.h)("span",{className:(0,t.css)(i.emoji)},"❓"),"Help"));return(0,e.h)("div",{className:(0,t.css)(i.toolbarRight)},o.activeProfileState&&l,r,n,d)}function T(o){const i=g((0,a.useTheme)());return(0,e.h)("div",{className:(0,t.css)(i.toolbar)},(0,e.h)(m,Object.assign({},o)),(0,e.h)(u,Object.assign({},o)),(0,e.h)(p,Object.assign({},o)))}const g=(0,a.withTheme)(e=>t.StyleSheet.create({toolbar:{height:i.Sizes.TOOLBAR_HEIGHT,flexShrink:0,background:e.altBgPrimaryColor,color:e.altFgPrimaryColor,textAlign:"center",fontFamily:i.FontFamily.MONOSPACE,fontSize:i.FontSize.TITLE,lineHeight:`${i.Sizes.TOOLBAR_TAB_HEIGHT}px`,userSelect:"none"},toolbarLeft:{position:"absolute",height:i.Sizes.TOOLBAR_HEIGHT,overflow:"hidden",top:0,left:0,marginRight:2,textAlign:"left"},toolbarCenter:{paddingTop:1,height:i.Sizes.TOOLBAR_HEIGHT},toolbarRight:{height:i.Sizes.TOOLBAR_HEIGHT,overflow:"hidden",position:"absolute",top:0,right:0,marginRight:2,textAlign:"right"},toolbarProfileIndex:{color:e.altFgSecondaryColor},toolbarTab:{background:e.altBgSecondaryColor,marginTop:i.Sizes.SEPARATOR_HEIGHT,height:i.Sizes.TOOLBAR_TAB_HEIGHT,lineHeight:`${i.Sizes.TOOLBAR_TAB_HEIGHT}px`,paddingLeft:2,paddingRight:8,display:"inline-block",marginLeft:2,transition:`all ${i.Duration.HOVER_CHANGE} ease-in`,":hover":{background:e.selectionSecondaryColor}},toolbarTabActive:{background:e.selectionPrimaryColor,":hover":{background:e.selectionPrimaryColor}},toolbarTabColorSchemeToggle:{display:"inline-block",textAlign:"center",minWidth:"50px"},emoji:{display:"inline-block",verticalAlign:"middle",paddingTop:"0px",marginRight:"0.3em"},noLinkStyle:{textDecoration:"none",color:"inherit"}})); },{"preact":"aSor","preact/hooks":"MwGB","aphrodite":"CxN7","./style":"hvr4","./profile-select":"tOar","../lib/utils":"ucYa","./themes/theme":"gzKG","../lib/view-mode":"dpTI","../app-state":"LDQe","../app-state/color-scheme":"KQrJ","../lib/atom":"QkVE"}],"bv0g":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.importJavaScriptSourceMapSymbolRemapper=r;var e=require("./utils"),n=function(e,n,o,l){return new(o||(o=Promise))(function(r,i){function t(e){try{a(l.next(e))}catch(n){i(n)}}function u(e){try{a(l.throw(e))}catch(n){i(n)}}function a(e){var n;e.done?r(e.value):(n=e.value,n instanceof o?n:new o(function(e){e(n)})).then(t,u)}a((l=l.apply(e,n||[])).next())})};const o=require("_bundle_loader")(require.resolve("source-map")),l=!1;function r(r,i){return n(this,void 0,void 0,function*(){const n=yield o;let t=null,u=null;try{u=JSON.parse(r),t=new n.SourceMapConsumer(u)}catch(s){return null}const a=[];t.eachMapping(function(e){a.push(Object.assign(Object.assign({},e),{generatedColumn:e.generatedColumn+1,originalColumn:e.originalColumn+1}))},{},n.SourceMapConsumer.GENERATED_ORDER);const c=i.replace(/\.[^/]*$/,"");return n=>{var o;let r=!1;if((null==u?void 0:u.file)&&(null==u?void 0:u.file)===n.file?r=!0:("/"+(null===(o=n.file)||void 0===o?void 0:o.replace(/\.[^/]*$/,""))).endsWith("/"+c)&&(r=!0),!r)return null;if(null==n.line||null==n.col)return null;let i=(0,e.findIndexBisect)(a,e=>e.generatedLine>n.line||!(e.generatedLine=n.col);if(-1===i)i=a.length-1;else{if(0===i)return null;i--}const s=a[i],m={};if(null!=s.name)m.name=s.name;else if(null!=s.source){const e=null==t?void 0:t.sourceContentFor(s.source,!0);if(e){const n=e.split("\n")[s.originalLine-1];if(n){const e=/\w+/.exec(n.substr(s.originalColumn-1));e&&(m.name=e[0])}}}switch(m.name){case"constructor":m.name=n.name+" constructor";break;case"function":m.name=n.name;break;case"const":case"export":m.name=n.name}return m.name&&n.name.includes(m.name)&&(m.name=n.name),null!=s.source&&(m.file=s.source,m.line=s.originalLine,m.col=s.originalColumn),l&&(console.groupCollapsed(`Remapping "${n.name}" -> "${m.name}"`),console.log("before",Object.assign({},n)),console.log("item @ index",s),console.log("item @ index + 1",a[i+1]),console.log("after",m),console.groupEnd()),m}})} },{"_bundle_loader":"TUK3","source-map":[["source-map.438fa06b.js","aRf0"],"source-map.438fa06b.js.map","aRf0"],"./utils":"ucYa"}],"ThNa":[function(require,module,exports) { module.exports="perf-vertx-stacks-01-collapsed-all.2681da68.txt"; },{}],"wCGh":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Application=exports.GLCanvas=void 0;var e=require("preact"),t=require("aphrodite"),o=require("./style"),i=require("../lib/emscripten"),r=require("./sandwich-view"),s=require("../lib/file-format"),n=require("./flamechart-view-container"),a=require("./toolbar"),l=require("../lib/js-source-map"),c=require("./themes/theme"),p=require("../lib/view-mode"),d=require("../app-state"),h=require("../lib/preact-helpers"),u=function(e,t,o,i){return new(o||(o=Promise))(function(r,s){function n(e){try{l(i.next(e))}catch(t){s(t)}}function a(e){try{l(i.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?r(e.value):(t=e.value,t instanceof o?t:new o(function(e){e(t)})).then(n,a)}l((i=i.apply(e,t||[])).next())})};const m=require("_bundle_loader")(require.resolve("../import"));function f(e,t){return u(this,void 0,void 0,function*(){return(yield m).importProfileGroupFromText(e,t)})}function v(e,t){return u(this,void 0,void 0,function*(){return(yield m).importProfileGroupFromBase64(e,t)})}function g(e,t){return u(this,void 0,void 0,function*(){return(yield m).importProfilesFromArrayBuffer(e,t)})}function w(e){return u(this,void 0,void 0,function*(){return(yield m).importProfilesFromFile(e)})}function y(e){return u(this,void 0,void 0,function*(){return(yield m).importFromFileSystemDirectoryEntry(e)})}m.then(()=>{}),require("_bundle_loader")(require.resolve("../lib/demangle-cpp")).then(()=>{}),require("_bundle_loader")(require.resolve("source-map")).then(()=>{});const b=require("../../sample/profiles/stackcollapse/perf-vertx-stacks-01-collapsed-all.txt");function x(e){return null!=e&&e.isDirectory}class C extends h.StatelessComponent{constructor(){super(...arguments),this.canvas=null,this.ref=(e=>{e instanceof HTMLCanvasElement?this.canvas=e:this.canvas=null,this.props.setGLCanvas(this.canvas)}),this.container=null,this.containerRef=(e=>{e instanceof HTMLElement?this.container=e:this.container=null}),this.maybeResize=(()=>{if(!this.container)return;if(!this.props.canvasContext)return;let{width:e,height:t}=this.container.getBoundingClientRect();const o=e,i=t,r=e*window.devicePixelRatio,s=t*window.devicePixelRatio;this.props.canvasContext.gl.resize(r,s,o,i)}),this.onWindowResize=(()=>{this.props.canvasContext&&this.props.canvasContext.requestFrame()})}componentWillReceiveProps(e){this.props.canvasContext!==e.canvasContext&&(this.props.canvasContext&&this.props.canvasContext.removeBeforeFrameHandler(this.maybeResize),e.canvasContext&&(e.canvasContext.addBeforeFrameHandler(this.maybeResize),e.canvasContext.requestFrame()))}componentDidMount(){window.addEventListener("resize",this.onWindowResize)}componentWillUnmount(){this.props.canvasContext&&this.props.canvasContext.removeBeforeFrameHandler(this.maybeResize),window.removeEventListener("resize",this.onWindowResize)}render(){const o=F(this.props.theme);return(0,e.h)("div",{ref:this.containerRef,className:(0,t.css)(o.glCanvasView)},(0,e.h)("canvas",{ref:this.ref,width:1,height:1}))}}exports.GLCanvas=C;class P extends h.StatelessComponent{constructor(){super(...arguments),this.loadExample=(()=>{this.loadProfile(()=>u(this,void 0,void 0,function*(){const e=yield fetch(b).then(e=>e.text());return yield f("perf-vertx-stacks-01-collapsed-all.txt",e)}))}),this.onDrop=(e=>{if(this.props.setDragActive(!1),e.preventDefault(),!e.dataTransfer)return;const t=e.dataTransfer.items[0];if("webkitGetAsEntry"in t){const e=t.webkitGetAsEntry();if(e&&x(e)&&e.name.endsWith(".trace")){console.log("Importing as Instruments.app .trace file");const t=e;return void this.loadProfile(()=>u(this,void 0,void 0,function*(){return yield y(t)}))}}let o=e.dataTransfer.files.item(0);o&&this.loadFromFile(o)}),this.onDragOver=(e=>{this.props.setDragActive(!0),e.preventDefault()}),this.onDragLeave=(e=>{this.props.setDragActive(!1),e.preventDefault()}),this.onWindowKeyPress=(e=>u(this,void 0,void 0,function*(){if("1"===e.key)this.props.setViewMode(p.ViewMode.CHRONO_FLAME_CHART);else if("2"===e.key)this.props.setViewMode(p.ViewMode.LEFT_HEAVY_FLAME_GRAPH);else if("3"===e.key)this.props.setViewMode(p.ViewMode.SANDWICH_VIEW);else if("r"===e.key){const{flattenRecursion:e}=this.props;this.props.setFlattenRecursion(!e)}else if("n"===e.key){const{activeProfileState:e}=this.props;e&&this.props.setProfileIndexToView(e.index+1)}else if("p"===e.key){const{activeProfileState:e}=this.props;e&&this.props.setProfileIndexToView(e.index-1)}})),this.saveFile=(()=>{if(this.props.profileGroup){const{name:e,indexToView:t,profiles:o}=this.props.profileGroup,i={name:e,indexToView:t,profiles:o.map(e=>e.profile)};(0,s.saveToFile)(i)}}),this.browseForFile=(()=>{const e=document.createElement("input");e.type="file",e.addEventListener("change",this.onFileSelect),e.click()}),this.onWindowKeyDown=(e=>u(this,void 0,void 0,function*(){"s"===e.key&&(e.ctrlKey||e.metaKey)?(e.preventDefault(),this.saveFile()):"o"===e.key&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),this.browseForFile())})),this.onDocumentPaste=(e=>{if(null!=document.activeElement&&"INPUT"===document.activeElement.nodeName)return;e.preventDefault(),e.stopPropagation();const t=e.clipboardData;if(!t)return;const o=t.getData("text");this.loadProfile(()=>u(this,void 0,void 0,function*(){return yield f("From Clipboard",o)}))}),this.onFileSelect=(e=>{const t=e.target.files.item(0);t&&this.loadFromFile(t)})}loadProfile(e){return u(this,void 0,void 0,function*(){if(this.props.setLoading(!0),yield new Promise(e=>setTimeout(e,0)),!this.props.glCanvas)return;console.time("import");let t=null;try{t=yield e()}catch(o){return console.log("Failed to load format",o),void this.props.setError(!0)}if(null==t)return alert("Unrecognized format! See documentation about supported formats."),void this.props.setLoading(!1);if(0===t.profiles.length)return alert("Successfully imported profile, but it's empty!"),void this.props.setLoading(!1);this.props.hashParams.title&&(t=Object.assign(Object.assign({},t),{name:this.props.hashParams.title})),document.title=`${t.name} - speedscope`,this.props.hashParams.viewMode&&this.props.setViewMode(this.props.hashParams.viewMode);for(let e of t.profiles)yield e.demangle();for(let e of t.profiles){const t=this.props.hashParams.title||e.getName();e.setName(t)}console.timeEnd("import"),this.props.setProfileGroup(t),this.props.setLoading(!1)})}getStyle(){return F(this.props.theme)}loadFromFile(e){this.loadProfile(()=>u(this,void 0,void 0,function*(){const t=yield w(e);if(t){for(let o of t.profiles)o.getName()||o.setName(e.name);return t}if(this.props.profileGroup&&this.props.activeProfileState){const t=new FileReader,o=new Promise(e=>{t.addEventListener("loadend",()=>{if("string"!=typeof t.result)throw new Error("Expected reader.result to be a string");e(t.result)})});t.readAsText(e);const r=yield o;let s=null;const n=(0,i.importEmscriptenSymbolMap)(r);n&&(console.log("Importing as emscripten symbol map"),s=n);const a=yield(0,l.importJavaScriptSourceMapSymbolRemapper)(r,e.name);if(!s&&a&&(console.log("Importing as JavaScript source map"),s=a),null!=s)return{name:this.props.profileGroup.name||"profile",indexToView:this.props.profileGroup.indexToView,profiles:this.props.profileGroup.profiles.map(e=>{const t=e.profile.shallowClone();return t.remapSymbols(s),t})}}return null}))}componentDidMount(){window.addEventListener("keydown",this.onWindowKeyDown),window.addEventListener("keypress",this.onWindowKeyPress),document.addEventListener("paste",this.onDocumentPaste),this.maybeLoadHashParamProfile()}componentWillUnmount(){window.removeEventListener("keydown",this.onWindowKeyDown),window.removeEventListener("keypress",this.onWindowKeyPress),document.removeEventListener("paste",this.onDocumentPaste)}maybeLoadHashParamProfile(){return u(this,void 0,void 0,function*(){const{profileURL:e}=this.props.hashParams;if(e){if(!d.canUseXHR)return void alert(`Cannot load a profile URL when loading from "${window.location.protocol}" URL protocol`);this.loadProfile(()=>u(this,void 0,void 0,function*(){const t=yield fetch(e);let o=new URL(e,window.location.href).pathname;return o.includes("/")&&(o=o.slice(o.lastIndexOf("/")+1)),yield g(o,yield t.arrayBuffer())}))}else if(this.props.hashParams.localProfilePath){window.speedscope={loadFileFromBase64:(e,t)=>{this.loadProfile(()=>v(e,t))}};const e=document.createElement("script");e.src=`file:///${this.props.hashParams.localProfilePath}`,document.head.appendChild(e)}})}renderLanding(){const o=this.getStyle();return(0,e.h)("div",{className:(0,t.css)(o.landingContainer)},(0,e.h)("div",{className:(0,t.css)(o.landingMessage)},(0,e.h)("p",{className:(0,t.css)(o.landingP)},"👋 Hi there! Welcome to 🔬speedscope, an interactive"," ",(0,e.h)("a",{className:(0,t.css)(o.link),href:"http://www.brendangregg.com/FlameGraphs/cpuflamegraphs.html"},"flamegraph")," ","visualizer. Use it to help you make your software faster."),d.canUseXHR?(0,e.h)("p",{className:(0,t.css)(o.landingP)},"Drag and drop a profile file onto this window to get started, click the big blue button below to browse for a profile to explore, or"," ",(0,e.h)("a",{tabIndex:0,className:(0,t.css)(o.link),onClick:this.loadExample},"click here")," ","to load an example profile."):(0,e.h)("p",{className:(0,t.css)(o.landingP)},"Drag and drop a profile file onto this window to get started, or click the big blue button below to browse for a profile to explore."),(0,e.h)("div",{className:(0,t.css)(o.browseButtonContainer)},(0,e.h)("input",{type:"file",name:"file",id:"file",onChange:this.onFileSelect,className:(0,t.css)(o.hide)}),(0,e.h)("label",{for:"file",className:(0,t.css)(o.browseButton),tabIndex:0},"Browse")),(0,e.h)("p",{className:(0,t.css)(o.landingP)},"See the"," ",(0,e.h)("a",{className:(0,t.css)(o.link),href:"https://github.com/jlfwong/speedscope#usage",target:"_blank"},"documentation")," ","for information about supported file formats, keyboard shortcuts, and how to navigate around the profile."),(0,e.h)("p",{className:(0,t.css)(o.landingP)},"speedscope is open source. Please"," ",(0,e.h)("a",{className:(0,t.css)(o.link),target:"_blank",href:"https://github.com/jlfwong/speedscope/issues"},"report any issues on GitHub"),".")))}renderError(){const o=this.getStyle();return(0,e.h)("div",{className:(0,t.css)(o.error)},(0,e.h)("div",null,"😿 Something went wrong."),(0,e.h)("div",null,"Check the JS console for more details."))}renderLoadingBar(){const o=this.getStyle();return(0,e.h)("div",{className:(0,t.css)(o.loading)})}renderContent(){const{viewMode:t,activeProfileState:o,error:i,loading:s,glCanvas:a}=this.props;if(i)return this.renderError();if(s)return this.renderLoadingBar();if(!o||!a)return this.renderLanding();switch(t){case p.ViewMode.CHRONO_FLAME_CHART:return(0,e.h)(n.ChronoFlamechartView,{activeProfileState:o,glCanvas:a});case p.ViewMode.LEFT_HEAVY_FLAME_GRAPH:return(0,e.h)(n.LeftHeavyFlamechartView,{activeProfileState:o,glCanvas:a});case p.ViewMode.SANDWICH_VIEW:return(0,e.h)(r.SandwichViewContainer,{activeProfileState:o,glCanvas:a})}}render(){const o=this.getStyle();return(0,e.h)("div",{onDrop:this.onDrop,onDragOver:this.onDragOver,onDragLeave:this.onDragLeave,className:(0,t.css)(o.root,this.props.dragActive&&o.dragTargetRoot)},(0,e.h)(C,{setGLCanvas:this.props.setGLCanvas,canvasContext:this.props.canvasContext,theme:this.props.theme}),(0,e.h)(a.Toolbar,Object.assign({saveFile:this.saveFile,browseForFile:this.browseForFile},this.props)),(0,e.h)("div",{className:(0,t.css)(o.contentContainer)},this.renderContent()),this.props.dragActive&&(0,e.h)("div",{className:(0,t.css)(o.dragTarget)}))}}exports.Application=P;const F=(0,c.withTheme)(e=>t.StyleSheet.create({glCanvasView:{position:"absolute",width:"100vw",height:"100vh",zIndex:-1,pointerEvents:"none"},error:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"},loading:{height:3,marginBottom:-3,background:e.selectionPrimaryColor,transformOrigin:"0% 50%",animationName:[{from:{transform:"scaleX(0)"},to:{transform:"scaleX(1)"}}],animationTimingFunction:"cubic-bezier(0, 1, 0, 1)",animationDuration:"30s"},root:{width:"100vw",height:"100vh",overflow:"hidden",display:"flex",flexDirection:"column",position:"relative",fontFamily:o.FontFamily.MONOSPACE,lineHeight:"20px",color:e.fgPrimaryColor},dragTargetRoot:{cursor:"copy"},dragTarget:{boxSizing:"border-box",position:"absolute",top:0,left:0,width:"100%",height:"100%",border:`5px dashed ${e.selectionPrimaryColor}`,pointerEvents:"none"},contentContainer:{position:"relative",display:"flex",overflow:"hidden",flexDirection:"column",flex:1},landingContainer:{display:"flex",alignItems:"center",justifyContent:"center",flex:1},landingMessage:{maxWidth:600},landingP:{marginBottom:16},hide:{display:"none"},browseButtonContainer:{display:"flex",alignItems:"center",justifyContent:"center"},browseButton:{marginBottom:16,height:72,flex:1,maxWidth:256,textAlign:"center",fontSize:o.FontSize.BIG_BUTTON,lineHeight:"72px",background:e.selectionPrimaryColor,color:e.altFgPrimaryColor,transition:`all ${o.Duration.HOVER_CHANGE} ease-in`,":hover":{background:e.selectionSecondaryColor}},link:{color:e.selectionPrimaryColor,cursor:"pointer",textDecoration:"none",transition:`all ${o.Duration.HOVER_CHANGE} ease-in`,":hover":{color:e.selectionSecondaryColor}}})); },{"preact":"aSor","aphrodite":"CxN7","./style":"hvr4","../lib/emscripten":"FbpF","./sandwich-view":"L8J2","../lib/file-format":"Xzb6","./flamechart-view-container":"PJJu","./toolbar":"BPHY","../lib/js-source-map":"bv0g","./themes/theme":"gzKG","../lib/view-mode":"dpTI","../app-state":"LDQe","../lib/preact-helpers":"Hete","_bundle_loader":"TUK3","../import":[["import.7f8cb9f9.js","uRa7"],"import.7f8cb9f9.js.map","uRa7"],"../lib/demangle-cpp":[["demangle-cpp.1768f4cc.js","bS28"],"demangle-cpp.1768f4cc.js.map","bS28"],"source-map":[["source-map.438fa06b.js","aRf0"],"source-map.438fa06b.js.map","aRf0"],"../../sample/profiles/stackcollapse/perf-vertx-stacks-01-collapsed-all.txt":"ThNa"}],"A6uO":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ApplicationContainer=void 0;var e=require("preact"),t=require("../app-state/getters"),o=require("preact/compat"),r=require("../app-state/active-profile-state"),a=require("./themes/theme"),i=require("../app-state"),s=require("../lib/atom"),n=require("./search-view"),m=require("./application");const u=(0,o.memo)(()=>{const u=(0,s.useAtom)(i.glCanvasAtom),l=(0,a.useTheme)(),p=(0,o.useMemo)(()=>u?(0,t.getCanvasContext)({theme:l,canvas:u}):null,[l,u]);return(0,e.h)(n.ProfileSearchContextProvider,null,(0,e.h)(m.Application,{activeProfileState:(0,r.useActiveProfileState)(),canvasContext:p,setGLCanvas:i.glCanvasAtom.set,setLoading:i.loadingAtom.set,setError:i.errorAtom.set,setProfileGroup:i.profileGroupAtom.setProfileGroup,setDragActive:i.dragActiveAtom.set,setViewMode:i.viewModeAtom.set,setFlattenRecursion:i.flattenRecursionAtom.set,setProfileIndexToView:i.profileGroupAtom.setProfileIndexToView,profileGroup:(0,s.useAtom)(i.profileGroupAtom),theme:l,flattenRecursion:(0,s.useAtom)(i.flattenRecursionAtom),viewMode:(0,s.useAtom)(i.viewModeAtom),hashParams:(0,s.useAtom)(i.hashParamsAtom),glCanvas:u,dragActive:(0,s.useAtom)(i.dragActiveAtom),loading:(0,s.useAtom)(i.loadingAtom),error:(0,s.useAtom)(i.errorAtom)}))});exports.ApplicationContainer=u; },{"preact":"aSor","../app-state/getters":"zEXv","preact/compat":"AQ6k","../app-state/active-profile-state":"MY42","./themes/theme":"gzKG","../app-state":"LDQe","../lib/atom":"QkVE","./search-view":"t9CM","./application":"wCGh"}],"K5F6":[function(require,module,exports) { "use strict";var e=require("preact"),o=require("./views/application-container"),d=require("./views/themes/theme");console.log(`speedscope v${require("../package.json").version}`),module.hot&&(module.hot.dispose(()=>{(0,e.render)((0,e.h)("div",null),document.body,document.body.lastElementChild||void 0)}),module.hot.accept()),(0,e.render)((0,e.h)(d.ThemeProvider,null,(0,e.h)(o.ApplicationContainer,null)),document.body,document.body.lastElementChild||void 0); },{"preact":"aSor","./views/application-container":"A6uO","./views/themes/theme":"gzKG","../package.json":"EHrm"}],"Yi9z":[function(require,module,exports) { module.exports=function(n){return new Promise(function(e,o){var r=document.createElement("script");r.async=!0,r.type="text/javascript",r.charset="utf-8",r.src=n,r.onerror=function(n){r.onerror=r.onload=null,o(n)},r.onload=function(){r.onerror=r.onload=null,e()},document.getElementsByTagName("head")[0].appendChild(r)})}; },{}],0:[function(require,module,exports) { var b=require("TUK3");b.register("js",require("Yi9z")); },{}]},{},[0,"K5F6"], null) //# sourceMappingURL=speedscope.80eb88d2.js.map